From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christophe Varoqui Subject: Re: [PATCH] multipath: fix scsi timeout code Date: Fri, 23 Dec 2011 21:04:18 +0100 Message-ID: <1324670658.18455.4.camel@lapoo.opensvc.com> References: <20111219221956.GP24133@ether.msp.redhat.com> Reply-To: christophe.varoqui@opensvc.com, device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20111219221956.GP24133@ether.msp.redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Benjamin Marzinski Cc: device-mapper development , Christophe Varoqui List-Id: dm-devel.ids On lun., 2011-12-19 at 16:19 -0600, Benjamin Marzinski wrote: > sysfs_attr_set_value() returns the amount written on on success, or -1 on > failure. sysfs_setc_scsi_tmo() was checking if the return was nonzero, and > failing if it was. This meant that it always failed out silently after writing > the first value. I've changed the check, and added some error messages. I also > made sysfs_attr_set_value return -1 for all errors. > > Signed-off-by: Benjamin Marzinski Merged. > --- > libmultipath/discovery.c | 11 +++++++++-- > libmultipath/sysfs.c | 2 +- > 2 files changed, 10 insertions(+), 3 deletions(-) > > Index: multipath-tools-111111/libmultipath/discovery.c > =================================================================== > --- multipath-tools-111111.orig/libmultipath/discovery.c > +++ multipath-tools-111111/libmultipath/discovery.c > @@ -316,8 +316,11 @@ sysfs_set_scsi_tmo (struct multipath *mp > if (mpp->dev_loss){ > snprintf(value, 11, "%u", mpp->dev_loss); > if (sysfs_attr_set_value(attr_path, "dev_loss_tmo", > - value, 11)) > + value, 11) < 0) { > + condlog(0, "%s failed to set %s/dev_loss_tmo", > + mpp->alias, attr_path); > return 1; > + } > } > if (mpp->fast_io_fail){ > if (mpp->fast_io_fail == -1) > @@ -325,8 +328,12 @@ sysfs_set_scsi_tmo (struct multipath *mp > else > snprintf(value, 11, "%u", mpp->fast_io_fail); > if (sysfs_attr_set_value(attr_path, "fast_io_fail_tmo", > - value, 11)) > + value, 11) < 0) { > + condlog(0, > + "%s failed to set %s/fast_io_fail_tmo", > + mpp->alias, attr_path); > return 1; > + } > } > } > return 0; > Index: multipath-tools-111111/libmultipath/sysfs.c > =================================================================== > --- multipath-tools-111111.orig/libmultipath/sysfs.c > +++ multipath-tools-111111/libmultipath/sysfs.c > @@ -351,7 +351,7 @@ ssize_t sysfs_attr_set_value(const char > char path_full[PATH_SIZE]; > struct stat statbuf; > int fd; > - ssize_t size = 0; > + ssize_t size = -1; > size_t sysfs_len; > > if (!attr_name || !value || !value_len)