Commit 2704024d authored by Tetsuo Handa's avatar Tetsuo Handa Committed by Jens Axboe
Browse files

loop: add missing bd_abort_claiming in loop_set_status



Commit 08e136eb ("loop: don't change loop device under exclusive
opener in loop_set_status") forgot to call bd_abort_claiming() when
mutex_lock_killable() failed.

Fixes: 08e136eb ("loop: don't change loop device under exclusive opener in loop_set_status")
Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 6acd4ac5
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1245,7 +1245,8 @@ loop_set_status(struct loop_device *lo, blk_mode_t mode,

	err = mutex_lock_killable(&lo->lo_mutex);
	if (err)
		return err;
		goto out_abort_claiming;

	if (lo->lo_state != Lo_bound) {
		err = -ENXIO;
		goto out_unlock;
@@ -1284,6 +1285,7 @@ loop_set_status(struct loop_device *lo, blk_mode_t mode,
	}
out_unlock:
	mutex_unlock(&lo->lo_mutex);
out_abort_claiming:
	if (!(mode & BLK_OPEN_EXCL))
		bd_abort_claiming(bdev, loop_set_status);
out_reread_partitions: