Message ID | 157009832879.13858.5261547183927327078.stgit@fedora-28 (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | xfs: mount API patch series | expand |
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. */ >
On Thu, 2019-10-03 at 07:56 -0700, Darrick J. Wong wrote: > 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...... It's not expected to be but is needed if anyone wants to test the series. I sent this to Al asking if these are in fact missing. If they are I expect he will push an update to Linus pretty quickly. > > --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. */ > >
On Fri, 2019-10-04 at 14:49 +0800, Ian Kent wrote: > On Thu, 2019-10-03 at 07:56 -0700, Darrick J. Wong wrote: > > 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...... > > It's not expected to be but is needed if anyone wants to test > the series. > > I sent this to Al asking if these are in fact missing. > If they are I expect he will push an update to Linus pretty > quickly. But he hasn't responded so perhaps I should have annotated it, just in case ... > > > --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. */ > > >
On Fri, Oct 04, 2019 at 02:59:57PM +0800, Ian Kent wrote: > On Fri, 2019-10-04 at 14:49 +0800, Ian Kent wrote: > > On Thu, 2019-10-03 at 07:56 -0700, Darrick J. Wong wrote: > > > 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...... > > > > It's not expected to be but is needed if anyone wants to test > > the series. > > > > I sent this to Al asking if these are in fact missing. > > If they are I expect he will push an update to Linus pretty > > quickly. > > But he hasn't responded so perhaps I should have annotated > it, just in case ... Sorry, just getting out of flu ;-/ I'll apply that fix and push out.
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. */