Message ID | 504A09A4.7050404@inktank.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Reviewed-by: Josh Durgin <josh.durgin@inktank.com> On 09/07/2012 07:50 AM, Alex Elder wrote: > Move the calls to get the header semaphore out of > rbd_header_set_snap() and into its caller. > > Signed-off-by: Alex Elder <elder@inktank.com> > --- > drivers/block/rbd.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c > index 634a16c..214c937 100644 > --- a/drivers/block/rbd.c > +++ b/drivers/block/rbd.c > @@ -647,8 +647,6 @@ static int rbd_header_set_snap(struct rbd_device > *rbd_dev, char *snap_name) > { > int ret; > > - down_write(&rbd_dev->header_rwsem); > - > if (!memcmp(snap_name, RBD_SNAP_HEAD_NAME, > sizeof (RBD_SNAP_HEAD_NAME))) { > rbd_dev->mapping.snap_id = CEPH_NOSNAP; > @@ -666,7 +664,6 @@ static int rbd_header_set_snap(struct rbd_device > *rbd_dev, char *snap_name) > > ret = 0; > done: > - up_write(&rbd_dev->header_rwsem); > return ret; > } > > @@ -2608,7 +2605,9 @@ static ssize_t rbd_add(struct bus_type *bus, > if (rc) > goto err_out_bus; > > + down_write(&rbd_dev->header_rwsem); > rc = rbd_header_set_snap(rbd_dev, snap_name); > + up_write(&rbd_dev->header_rwsem); > if (rc) > goto err_out_bus; > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 634a16c..214c937 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -647,8 +647,6 @@ static int rbd_header_set_snap(struct rbd_device *rbd_dev, char *snap_name) { int ret; - down_write(&rbd_dev->header_rwsem); - if (!memcmp(snap_name, RBD_SNAP_HEAD_NAME, sizeof (RBD_SNAP_HEAD_NAME))) {
Move the calls to get the header semaphore out of rbd_header_set_snap() and into its caller. Signed-off-by: Alex Elder <elder@inktank.com> --- drivers/block/rbd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) rbd_dev->mapping.snap_id = CEPH_NOSNAP; @@ -666,7 +664,6 @@ static int rbd_header_set_snap(struct rbd_device *rbd_dev, char *snap_name) ret = 0; done: - up_write(&rbd_dev->header_rwsem); return ret; } @@ -2608,7 +2605,9 @@ static ssize_t rbd_add(struct bus_type *bus, if (rc) goto err_out_bus; + down_write(&rbd_dev->header_rwsem); rc = rbd_header_set_snap(rbd_dev, snap_name); + up_write(&rbd_dev->header_rwsem); if (rc) goto err_out_bus;