On Thu, Oct 03, 2019 at 06:25:28PM +0800, Ian Kent wrote: > There appear to be a couple of missing blkdev_put() in get_tree_bdev(). No SOB, not reviewable...... --D > --- > fs/super.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/fs/super.c b/fs/super.c > index a7f62c964e58..fd816014bd7d 100644 > --- a/fs/super.c > +++ b/fs/super.c > @@ -1268,6 +1268,7 @@ int get_tree_bdev(struct fs_context *fc, > mutex_lock(&bdev->bd_fsfreeze_mutex); > if (bdev->bd_fsfreeze_count > 0) { > mutex_unlock(&bdev->bd_fsfreeze_mutex); > + blkdev_put(bdev, mode); > warnf(fc, "%pg: Can't mount, blockdev is frozen", bdev); > return -EBUSY; > } > @@ -1276,8 +1277,10 @@ int get_tree_bdev(struct fs_context *fc, > fc->sget_key = bdev; > s = sget_fc(fc, test_bdev_super_fc, set_bdev_super_fc); > mutex_unlock(&bdev->bd_fsfreeze_mutex); > - if (IS_ERR(s)) > + if (IS_ERR(s)) { > + blkdev_put(bdev, mode); > return PTR_ERR(s); > + } > > if (s->s_root) { > /* Don't summarily change the RO/RW state. */ >