From: Jun'ichi Nomura Date: Mon, 12 Mar 2012 11:56:52 +0000 (+0900) Subject: Fix fast_io_fail capping X-Git-Tag: upstream/0.5.0~39 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c75d521c3642c16ad32532205560e10b0b0cb8df;p=platform%2Fupstream%2Fmultipath-tools.git 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 --- 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;