[dm-devel] dm: disable WRITE SAME if it fails

Mike Snitzer snitzer at redhat.com
Wed Jun 4 13:52:14 UTC 2014


On Wed, Jun 04 2014 at 12:03am -0400,
alex chen <alex.chen at huawei.com> wrote:

> On 2014/6/3 2:36, Mike Snitzer wrote:
> > On Sat, May 31 2014 at 11:05am -0400,
> > Alasdair G Kergon <agk at redhat.com> wrote:
> > 
> >> On Sat, May 31, 2014 at 04:51:30PM +0800, alex chen wrote:
> >>> The original commit f84cb8a46a771f36a04a02c61ea635c968ed5f6a("dm mpath:
> >>> disable WRITE SAME if it fails") disables WRITE SAME in the DM multipath
> >>> device if it fails, but when the DM linear device stacks ontop of the
> >>> multipath device it doesn't help.
> >>> this patch adds DM linear end_io method to catch WRITE SAME errors and
> >>> disables WRITE SAME in the DM linear device's queue_limits if an
> >>> underlying device disables it.
> >>
> >> How does your patch address striped targets?
> >>  
> >> Shouldn't this code be taken out of mpath and moved to dm.c and applied to all
> >> targets (both bio and rq-based, at least where WRITE SAME is supported)?
> > 
> > Alex,
> > 
> > I've implemented what Alasdair and I have been suggesting.
> > Can you please test this untested patch?
> > 
> > Thanks,
> > Mike
> > 
> 
> I tested this patch, it is OK.
> Test cases is as follow:
> CASE 1:
> dm linear device(dm-23): ocfs2-fs;
> multipath device(dm-9);
> scsi device(sdr,sdv);
> 
> After WRITE SAME IO fails:
> linux-MOLybD:~ # cat /sys/block/dm-23/queue/write_same_max_bytes
> 0
> linux-MOLybD:~ # cat /sys/block/dm-9/queue/write_same_max_bytes
> 0
> linux-MOLybD:~ # cat /sys/block/sdr/queue/write_same_max_bytes
> 0
> linux-MOLybD:~ # cat /sys/block/sdv/queue/write_same_max_bytes
> 0
> 
> Result: pass
> 
> Tested-by: Alex Chen <alex.chen at huawei.com>

OK, thanks.. FYI, as I sahred before: I updated it slightly to check for
the specific -EREMOTEIO error code that SCSI returns for this case, see:

https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=7eee4ae2dbb2be0a15a4406718806e48b18ba831




More information about the dm-devel mailing list