Re: block: correctly fallback for zeroout
From: Mike Snitzer
Date: Thu Jun 02 2016 - 23:54:22 EST
On Thu, Jun 02 2016 at 11:06pm -0400,
Martin K. Petersen <martin.petersen@xxxxxxxxxx> wrote:
> >>>>> "Christoph" == Christoph Hellwig <hch@xxxxxxxxxxxxx> writes:
> Christoph> As part of that I also removed the strange EOPNOTSUPP ignore,
> Christoph> but Mike reverted it just because it changed something in the
> Christoph> dm testsuite.
Seems there is some serious confusion going on here. The entirety of
hch's post (to which you quoted a subset) makes little sense to me.
shli's patch builds ontop of latest blk-lib.c code yet hch said this::
"We've split blkdev_issue_discard into __blkdev_issue_discard and a
small wrapper around in for 4.7, so this will need a bit of an update."
And hch never "removed the strange EOPNOTSUPP ignore". He preserved it
(see his commit 38f25255330's "return ret != -EOPNOTSUPP ? ret : 0;"
that I adjusted in commit bbd848e0f -- _and_ he expanded it to eat the
early return that I restored).
So I can only infer that hch is still missing why my revert fixes
historic blkdev_issue_discard() behavior that his commit regressed.
Please read commit bbd848e0f's header. That at least details the early
vs late -EOPNOTSUPP blkdev_issue_discard() return.
But all that nuance aside, AFAICT my commit bbd848e0f ("block: reinstate
early return of -EOPNOTSUPP from blkdev_issue_discard") really has
_nothing_ to do with the issue shli is addressing with his fix.
> Christoph> I still believe we should never ignore it in this helper, and
> Christoph> only do so in callers that believe it's the right thing.
You agreed to what hch said there about how we should probably always
return EOPNOTSUPP but then you immediately elaborated with details that
mean you don't agree:
> I really wish EOPNOTSUPP would just go away except for ioctl callers.
> Now that we have real bi_error I don't understand why we need it.
But hch was originally in favor of _always_ dropping EOPNOTSUPP on the
floor (that is what his commit 38f25255330 did). Then he said he
disagrees with these interfaces playing games with masking EOPNOTSUPP --
to which you seemingly really don't agree. Unless I'm completely
Anyway, shli is at least making it so that blkdev_issue_zerout() can
fallback to other mechanisms as needed.