Fix fast_io_fail capping
PATCH 1/1 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
Signature · 1 line
Jun'ichi Nomura, NEC Corporation
libmultipath/discovery.c +3 -3
@@ -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 ;