]>
Commit | Line | Data |
---|---|---|
bec8288c GKH |
1 | From 967d1dc144b50ad005e5eecdfadfbcfb399ffff6 Mon Sep 17 00:00:00 2001 |
2 | From: Jan Kara <jack@suse.cz> | |
3 | Date: Thu, 8 Nov 2018 14:01:03 +0100 | |
4 | Subject: loop: Fold __loop_release into loop_release | |
5 | ||
6 | From: Jan Kara <jack@suse.cz> | |
7 | ||
8 | commit 967d1dc144b50ad005e5eecdfadfbcfb399ffff6 upstream. | |
9 | ||
10 | __loop_release() has a single call site. Fold it there. This is | |
11 | currently not a huge win but it will make following replacement of | |
12 | loop_index_mutex more obvious. | |
13 | ||
14 | Signed-off-by: Jan Kara <jack@suse.cz> | |
15 | Signed-off-by: Jens Axboe <axboe@kernel.dk> | |
16 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
17 | ||
18 | --- | |
19 | drivers/block/loop.c | 16 +++++++--------- | |
20 | 1 file changed, 7 insertions(+), 9 deletions(-) | |
21 | ||
22 | --- a/drivers/block/loop.c | |
23 | +++ b/drivers/block/loop.c | |
24 | @@ -1586,12 +1586,15 @@ out: | |
25 | return err; | |
26 | } | |
27 | ||
28 | -static void __lo_release(struct loop_device *lo) | |
29 | +static void lo_release(struct gendisk *disk, fmode_t mode) | |
30 | { | |
31 | + struct loop_device *lo; | |
32 | int err; | |
33 | ||
34 | + mutex_lock(&loop_index_mutex); | |
35 | + lo = disk->private_data; | |
36 | if (atomic_dec_return(&lo->lo_refcnt)) | |
37 | - return; | |
38 | + goto unlock_index; | |
39 | ||
40 | mutex_lock(&loop_ctl_mutex); | |
41 | if (lo->lo_flags & LO_FLAGS_AUTOCLEAR) { | |
42 | @@ -1601,7 +1604,7 @@ static void __lo_release(struct loop_dev | |
43 | */ | |
44 | err = loop_clr_fd(lo); | |
45 | if (!err) | |
46 | - return; | |
47 | + goto unlock_index; | |
48 | } else { | |
49 | /* | |
50 | * Otherwise keep thread (if running) and config, | |
51 | @@ -1611,12 +1614,7 @@ static void __lo_release(struct loop_dev | |
52 | } | |
53 | ||
54 | mutex_unlock(&loop_ctl_mutex); | |
55 | -} | |
56 | - | |
57 | -static void lo_release(struct gendisk *disk, fmode_t mode) | |
58 | -{ | |
59 | - mutex_lock(&loop_index_mutex); | |
60 | - __lo_release(disk->private_data); | |
61 | +unlock_index: | |
62 | mutex_unlock(&loop_index_mutex); | |
63 | } | |
64 |