Commit 450b4b3b authored by Chuck Lever's avatar Chuck Lever Committed by Anna Schumaker

nfs/blocklayout: Report only when /no/ device is found

Since commit f931d837 ("nfs/blocklayout: refactor block device
opening"), an error is reported when no multi-path device is found.
But this isn't a fatal error if the subsequent device open is
successful. On systems without multi-path devices, this message
always appears whether there is a problem or not.

Instead, generate less system journal noise by reporting an error
only when both open attempts fail. The new error message is more
actionable since it indicates that there is a real configuration
issue to be addressed.
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarBenjamin Coddington <bcodding@redhat.com>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent d869da91
...@@ -369,7 +369,7 @@ bl_open_path(struct pnfs_block_volume *v, const char *prefix) ...@@ -369,7 +369,7 @@ bl_open_path(struct pnfs_block_volume *v, const char *prefix)
bdev_file = bdev_file_open_by_path(devname, BLK_OPEN_READ | BLK_OPEN_WRITE, bdev_file = bdev_file_open_by_path(devname, BLK_OPEN_READ | BLK_OPEN_WRITE,
NULL, NULL); NULL, NULL);
if (IS_ERR(bdev_file)) { if (IS_ERR(bdev_file)) {
pr_warn("pNFS: failed to open device %s (%ld)\n", dprintk("failed to open device %s (%ld)\n",
devname, PTR_ERR(bdev_file)); devname, PTR_ERR(bdev_file));
} }
...@@ -398,8 +398,11 @@ bl_parse_scsi(struct nfs_server *server, struct pnfs_block_dev *d, ...@@ -398,8 +398,11 @@ bl_parse_scsi(struct nfs_server *server, struct pnfs_block_dev *d,
bdev_file = bl_open_path(v, "dm-uuid-mpath-0x"); bdev_file = bl_open_path(v, "dm-uuid-mpath-0x");
if (IS_ERR(bdev_file)) if (IS_ERR(bdev_file))
bdev_file = bl_open_path(v, "wwn-0x"); bdev_file = bl_open_path(v, "wwn-0x");
if (IS_ERR(bdev_file)) if (IS_ERR(bdev_file)) {
pr_warn("pNFS: no device found for volume %*phN\n",
v->scsi.designator_len, v->scsi.designator);
return PTR_ERR(bdev_file); return PTR_ERR(bdev_file);
}
d->bdev_file = bdev_file; d->bdev_file = bdev_file;
d->len = bdev_nr_bytes(file_bdev(d->bdev_file)); d->len = bdev_nr_bytes(file_bdev(d->bdev_file));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment