Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4bb1f1ed authored by Alex Elder's avatar Alex Elder
Browse files

rbd: move locking out of rbd_header_set_snap()



Move the calls to get the header semaphore out of
rbd_header_set_snap() and into its caller.

Signed-off-by: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent 1fcdb8aa
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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;