Re: [RFC PATCH] ext4: destroy inline data immediately when converting to extent

From: Daniel Dawson
Date: Thu Feb 08 2024 - 20:31:19 EST


On 2/8/24 8:58 AM, Luis Henriques wrote:
The 'lsattr' command shows that the file has data stored inline. However,
that is not correct because writing 192 bytes (3 * 64) has forced the data
to be un-inlined. Doing a 'sync' before running the 'lsattr' fixes it.
I know I'm the one who initially reported this, but I suppose there is an argument to be made that this in itself is not a bug, as Ted seemed to say before. What is a problem, however, is lseek() giving ENOENT when the kernel finds file data where it expects to find a block/extent map, and I can confirm this patch solves that (tested against 6.8.0-rc3). Not sure if it's the best thing to do so by forcing immediate allocation, but I feel it's still an improvement.


--
PGP fingerprint: 5BBD5080FEB0EF7F142F8173D572B791F7B4422A