]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.4.172/loop-fold-__loop_release-into-loop_release.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.4.172 / loop-fold-__loop_release-into-loop_release.patch
CommitLineData
bec8288c
GKH
1From 967d1dc144b50ad005e5eecdfadfbcfb399ffff6 Mon Sep 17 00:00:00 2001
2From: Jan Kara <jack@suse.cz>
3Date: Thu, 8 Nov 2018 14:01:03 +0100
4Subject: loop: Fold __loop_release into loop_release
5
6From: Jan Kara <jack@suse.cz>
7
8commit 967d1dc144b50ad005e5eecdfadfbcfb399ffff6 upstream.
9
10__loop_release() has a single call site. Fold it there. This is
11currently not a huge win but it will make following replacement of
12loop_index_mutex more obvious.
13
14Signed-off-by: Jan Kara <jack@suse.cz>
15Signed-off-by: Jens Axboe <axboe@kernel.dk>
16Signed-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