On 14/08/2024 15:52, Martin K. Petersen wrote:
Keith,
Your change looks fine, though it sounds odd that md raid is changing
queue_limit values outside the limits_lock. The stacking limits should
have set the md device to 0 if one of the member drives doesn't
support write_zeroes, right?
And even if we had used the limits lock to synchronize the update, that
only synchronizes writers but not readers (of the limits).
SCSI can't reliably detect ahead of time whether a device supports WRITE
SAME. So we'll issue a WRITE SAME command and if that fails we'll set
the queue limit to 0. So it is "normal" that the limit changes at
runtime.
I'm debugging a couple of other regressions from the queue limits
shuffle so I haven't looked into this one yet. But I assume that's
what's happening.