summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Kent <raven@themaw.net>2019-10-02 05:56:33 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2019-10-09 22:53:57 -0400
commit6fcf0c72e4b9360768cf5ef543c4f14c34800ee8 (patch)
treea298cb78d99e35e2847e2fec757aeb6503a90b4a
parent33f37c648812bdbe1bd1eea75ddab3e799d51e77 (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.c5
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. */