Currently check_rdac() always runs an SG_IO for VPD 0xc9 to check if the storage supports RDAC. This is an extra IO, and may cause annoying error messages on the storage side for non-RDAC arrays. Do the RDAC override only for arrays that have legacy configuration to use the rdac checker. Cc: Steve.Schremmer@xxxxxxxxxx Cc: NetApp RDAC team <ng-eseries-upstream-maintainers@xxxxxxxxxx> Cc: Hannes Reinecke <hare@xxxxxxxx> Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmultipath/propsel.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c index 27474f05..8c08a5cc 100644 --- a/libmultipath/propsel.c +++ b/libmultipath/propsel.c @@ -470,9 +470,17 @@ check_rdac(struct path * pp) { int len; char buff[44]; + const char *checker_name = NULL; + /* dummy, for do_set_from_hwe */ + const char *origin __attribute__((unused)); if (pp->bus != SYSFS_BUS_SCSI) return 0; + /* Avoid ioctl if this is likely not an RDAC array */ + do_set_from_hwe(checker_name, pp, checker_name, NULL); +out: /* for do_set_from_hwe */ + if (!checker_name || strcmp(checker_name, RDAC)) + return 0; len = get_vpd_sgio(pp->fd, 0xC9, buff, 44); if (len <= 0) return 0; -- 2.21.0 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel