| From 59e47456ae11932dfb970f78e644d01d487c4506 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Date: Wed, 30 Jan 2019 08:35:00 +0100 |
| Subject: Revert "loop: Fold __loop_release into loop_release" |
| |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| This reverts commit 4ee414c3b6021db621901f2697d35774926268f6 which is |
| commit 967d1dc144b50ad005e5eecdfadfbcfb399ffff6 upstream. |
| |
| It is not needed in the 4.4.y tree at this time. |
| |
| Reported-by: Jan Kara <jack@suse.cz> |
| Cc: Jens Axboe <axboe@kernel.dk> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/block/loop.c | 16 +++++++++------- |
| 1 file changed, 9 insertions(+), 7 deletions(-) |
| |
| --- a/drivers/block/loop.c |
| +++ b/drivers/block/loop.c |
| @@ -1586,15 +1586,12 @@ out: |
| return err; |
| } |
| |
| -static void lo_release(struct gendisk *disk, fmode_t mode) |
| +static void __lo_release(struct loop_device *lo) |
| { |
| - struct loop_device *lo; |
| int err; |
| |
| - mutex_lock(&loop_index_mutex); |
| - lo = disk->private_data; |
| if (atomic_dec_return(&lo->lo_refcnt)) |
| - goto unlock_index; |
| + return; |
| |
| mutex_lock(&loop_ctl_mutex); |
| if (lo->lo_flags & LO_FLAGS_AUTOCLEAR) { |
| @@ -1604,7 +1601,7 @@ static void lo_release(struct gendisk *d |
| */ |
| err = loop_clr_fd(lo); |
| if (!err) |
| - goto unlock_index; |
| + return; |
| } else { |
| /* |
| * Otherwise keep thread (if running) and config, |
| @@ -1614,7 +1611,12 @@ static void lo_release(struct gendisk *d |
| } |
| |
| mutex_unlock(&loop_ctl_mutex); |
| -unlock_index: |
| +} |
| + |
| +static void lo_release(struct gendisk *disk, fmode_t mode) |
| +{ |
| + mutex_lock(&loop_index_mutex); |
| + __lo_release(disk->private_data); |
| mutex_unlock(&loop_index_mutex); |
| } |
| |