From c75d521c3642c16ad32532205560e10b0b0cb8df Mon Sep 17 00:00:00 2001 From: Jun'ichi Nomura Date: Mon, 12 Mar 2012 20:56:52 +0900 Subject: [PATCH] Fix fast_io_fail capping Hi Christophe, fast_io_fail is only meaningful if it is smaller than dev_loss_tmo. Setting dev_loss_tmo value to fast_io_fail ends up with -EINVAL. If the fast_io_fail is not configured properly, turning it off seems to be the right behavior. MP_FAST_IO_FAIL_OFF is -1, defined in the following patch: [PATCH] Fix for setting '0' to fast_io_fail http://www.redhat.com/archives/dm-devel/2012-March/msg00047.html -- Jun'ichi Nomura, NEC Corporation --- libmultipath/discovery.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c index ff011c3..1b67e76 100644 --- a/libmultipath/discovery.c +++ b/libmultipath/discovery.c @@ -307,10 +307,10 @@ sysfs_set_scsi_tmo (struct multipath *mpp) mpp->alias, dev_loss_tmo); } mpp->dev_loss = dev_loss_tmo; - if (mpp->fast_io_fail > (int)mpp->dev_loss) { - mpp->fast_io_fail = mpp->dev_loss; - condlog(3, "%s: update fast_io_fail to %d", + if (mpp->dev_loss && mpp->fast_io_fail >= (int)mpp->dev_loss) { + condlog(3, "%s: turning off fast_io_fail (%d is not smaller than dev_loss_tmo)", mpp->alias, mpp->fast_io_fail); + mpp->fast_io_fail = MP_FAST_IO_FAIL_OFF; } if (!mpp->dev_loss && !mpp->fast_io_fail) return 0; -- 2.7.4