[dm-devel] SCSI's heuristics for enabling WRITE SAME still need work [was: dm mpath: disable WRITE SAME if it fails]

Mike Snitzer snitzer at redhat.com
Tue Sep 24 22:02:03 UTC 2013


On Tue, Sep 24 2013 at  4:44pm -0400,
Martin K. Petersen <martin.petersen at oracle.com> wrote:

> The other headache is what happens if a stacking driver gets -EIO or
> -EREMOTEIO on a WRITE SAME request. That's what Mike was trying to fix
> with his patch. Maybe it would make sense for us to use -EINVAL or
> something similar to single out the ILLEGAL REQUEST case. While
> -EREMOTEIO specifically calls out for "no retry" it might be helpful to
> indicate that we're dealing with an unsupported command. That way DM or
> MD can reconfigure themselves accordingly.

What I've committed as a v3.12 fix works, see:
http://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-linus&id=f84cb8a46a771f36a04a02c61ea635c968ed5f6a

"Workaround the SCSI layer's problematic WRITE SAME heuristics by
disabling WRITE SAME in the DM multipath device's queue_limits if an
underlying device disabled it."

So I'm trapping requests with REQ_WRITE_SAME whose underlying queue's
queue_limits have disabled WRITE SAME.  And as the before and after
detailed in the patch header shows, it works.

I'm open to tweaking this later but will be leaving well enough alone
for v3.12 by keeping this fix.




More information about the dm-devel mailing list