Message ID | 20240619135255.176454-2-cel@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | nfs/blocklayout: fput() needed for ENODEV error flow | expand |
On Wed, Jun 19, 2024 at 09:52:56AM -0400, cel@kernel.org wrote: > From: Chuck Lever <chuck.lever@oracle.com> > > A recently-added error flow needs to fput() the block device just > like the other error flows in this area; otherwise the device is > leaked. > > Fixes: d76c769c8db4 ("pnfs/blocklayout: Don't add zero-length pnfs_block_dev") > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Looks good: Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
On 19 Jun 2024, at 9:52, cel@kernel.org wrote: > From: Chuck Lever <chuck.lever@oracle.com> > > A recently-added error flow needs to fput() the block device just > like the other error flows in this area; otherwise the device is > leaked. > > Fixes: d76c769c8db4 ("pnfs/blocklayout: Don't add zero-length pnfs_block_dev") > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Mea Culpa, Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Ben
diff --git a/fs/nfs/blocklayout/dev.c b/fs/nfs/blocklayout/dev.c index 93ef7f864980..519c310c745d 100644 --- a/fs/nfs/blocklayout/dev.c +++ b/fs/nfs/blocklayout/dev.c @@ -351,8 +351,10 @@ bl_parse_scsi(struct nfs_server *server, struct pnfs_block_dev *d, d->map = bl_map_simple; d->pr_key = v->scsi.pr_key; - if (d->len == 0) - return -ENODEV; + if (d->len == 0) { + error = -ENODEV; + goto out_blkdev_put; + } pr_info("pNFS: using block device %s (reservation key 0x%llx)\n", file_bdev(d->bdev_file)->bd_disk->disk_name, d->pr_key);