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 not use the RDAC override for arrays that have legacy configuration to use a checker other than "rdac". For "unkown" devices with no checker configured in either the hwtable or multipath.conf, the VPD call will be tried. 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 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c index caf55b68..e6263e9b 100644 --- a/libmultipath/propsel.c +++ b/libmultipath/propsel.c @@ -478,9 +478,14 @@ check_rdac(struct path * pp) { int len; char buff[44]; + const char *checker_name; if (pp->bus != SYSFS_BUS_SCSI) return 0; + /* Avoid ioctl if this is likely not an RDAC array */ + if (__do_set_from_hwe(checker_name, pp, 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