OSDN Git Service

rbd: introduce rbd_dev_header_info()
authorIlya Dryomov <ilya.dryomov@inktank.com>
Wed, 23 Jul 2014 13:11:19 +0000 (17:11 +0400)
committerIlya Dryomov <ilya.dryomov@inktank.com>
Fri, 25 Jul 2014 09:15:00 +0000 (13:15 +0400)
A wrapper around rbd_dev_v{1,2}_header_info() to reduce duplication.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
drivers/block/rbd.c

index 7847fbb..0d3be60 100644 (file)
@@ -514,7 +514,7 @@ static void rbd_dev_remove_parent(struct rbd_device *rbd_dev);
 
 static int rbd_dev_refresh(struct rbd_device *rbd_dev);
 static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev);
-static int rbd_dev_v2_header_info(struct rbd_device *rbd_dev);
+static int rbd_dev_header_info(struct rbd_device *rbd_dev);
 static const char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev,
                                        u64 snap_id);
 static int _rbd_dev_v2_snap_size(struct rbd_device *rbd_dev, u64 snap_id,
@@ -3506,13 +3506,10 @@ static int rbd_dev_refresh(struct rbd_device *rbd_dev)
        u64 mapping_size;
        int ret;
 
-       rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
        down_write(&rbd_dev->header_rwsem);
        mapping_size = rbd_dev->mapping.size;
-       if (rbd_dev->image_format == 1)
-               ret = rbd_dev_v1_header_info(rbd_dev);
-       else
-               ret = rbd_dev_v2_header_info(rbd_dev);
+
+       ret = rbd_dev_header_info(rbd_dev);
 
        /* If it's a mapped snapshot, validate its EXISTS flag */
 
@@ -4501,6 +4498,16 @@ static int rbd_dev_v2_header_info(struct rbd_device *rbd_dev)
        return ret;
 }
 
+static int rbd_dev_header_info(struct rbd_device *rbd_dev)
+{
+       rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
+
+       if (rbd_dev->image_format == 1)
+               return rbd_dev_v1_header_info(rbd_dev);
+
+       return rbd_dev_v2_header_info(rbd_dev);
+}
+
 static int rbd_bus_add_dev(struct rbd_device *rbd_dev)
 {
        struct device *dev;
@@ -5149,10 +5156,7 @@ static int rbd_dev_image_probe(struct rbd_device *rbd_dev, bool mapping)
                        goto out_header_name;
        }
 
-       if (rbd_dev->image_format == 1)
-               ret = rbd_dev_v1_header_info(rbd_dev);
-       else
-               ret = rbd_dev_v2_header_info(rbd_dev);
+       ret = rbd_dev_header_info(rbd_dev);
        if (ret)
                goto err_out_watch;