diff options
author | Ian Kent <raven@themaw.net> | 2019-10-02 05:56:33 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2019-10-09 22:53:57 -0400 |
commit | 6fcf0c72e4b9360768cf5ef543c4f14c34800ee8 (patch) | |
tree | a298cb78d99e35e2847e2fec757aeb6503a90b4a | |
parent | 33f37c648812bdbe1bd1eea75ddab3e799d51e77 (diff) |
vfs: add missing blkdev_put() in get_tree_bdev()
Is there are a couple of missing blkdev_put() in get_tree_bdev()?
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | fs/super.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/super.c b/fs/super.c index beaf076d9733..530dd13fa98b 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -1296,6 +1296,7 @@ int get_tree_bdev(struct fs_context *fc, | |||
1296 | mutex_lock(&bdev->bd_fsfreeze_mutex); | 1296 | mutex_lock(&bdev->bd_fsfreeze_mutex); |
1297 | if (bdev->bd_fsfreeze_count > 0) { | 1297 | if (bdev->bd_fsfreeze_count > 0) { |
1298 | mutex_unlock(&bdev->bd_fsfreeze_mutex); | 1298 | mutex_unlock(&bdev->bd_fsfreeze_mutex); |
1299 | blkdev_put(bdev, mode); | ||
1299 | warnf(fc, "%pg: Can't mount, blockdev is frozen", bdev); | 1300 | warnf(fc, "%pg: Can't mount, blockdev is frozen", bdev); |
1300 | return -EBUSY; | 1301 | return -EBUSY; |
1301 | } | 1302 | } |
@@ -1304,8 +1305,10 @@ int get_tree_bdev(struct fs_context *fc, | |||
1304 | fc->sget_key = bdev; | 1305 | fc->sget_key = bdev; |
1305 | s = sget_fc(fc, test_bdev_super_fc, set_bdev_super_fc); | 1306 | s = sget_fc(fc, test_bdev_super_fc, set_bdev_super_fc); |
1306 | mutex_unlock(&bdev->bd_fsfreeze_mutex); | 1307 | mutex_unlock(&bdev->bd_fsfreeze_mutex); |
1307 | if (IS_ERR(s)) | 1308 | if (IS_ERR(s)) { |
1309 | blkdev_put(bdev, mode); | ||
1308 | return PTR_ERR(s); | 1310 | return PTR_ERR(s); |
1311 | } | ||
1309 | 1312 | ||
1310 | if (s->s_root) { | 1313 | if (s->s_root) { |
1311 | /* Don't summarily change the RO/RW state. */ | 1314 | /* Don't summarily change the RO/RW state. */ |