Re: [PATCH 1/2] fs: Do not dispatch FITRIM through separate super_operation

From: Mark Lord
Date: Fri Nov 19 2010 - 10:24:59 EST


On 10-11-19 09:54 AM, Christoph Hellwig wrote:
On Fri, Nov 19, 2010 at 09:48:12AM -0500, Mark Lord wrote:
I'm not sure about the issues on "adapting the block layer" ?
For FITRIM, the blocks being trimmed would be reserved at the fs level,
before issuing the discard for them. So ordering through the block layer
shouldn't matter much for it. Does that simplify things?

I see FITRIM just allocating a page to hold the ranges (for the>1 case)
and passing that page down through the layers to libata (or any other
LLD that supports>1 ranges).

Ordering should not be an issue. What were problems when I tried this
before is that we currently assume in the block layer that discard
bios have a valid bi_sector/bi_size, which is already needed e.g. for
the trivial remapping use for partitions and that they don't have
a payload. You'd need to teach various places that discard payloads
may have a payload, which contains multiple ranges that have a
sector/len tuple that needs to be remapped and checked in various
places.

I wonder if this can be treated more like how SG_IO does things?
The SG_IO mechanism seems to have no issues passing through stuff
like this, so perhaps we could implement something in a similar fashion?

-ml
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/