On Thu 20-01-22 01:06:03, Christoph Hellwig wrote:
On Tue, Jan 18, 2022 at 10:57:48AM +0100, Jan Kara wrote:
When we fail to expand inode from inline format to a normal format, we restore inode to contain the original inline formatting but we forgot to set i_lenAlloc back. The mismatch between i_lenAlloc and i_size was then causing further problems such as warnings and lost data down the line.
Looks good,
Reviewed-by: Christoph Hellwig hch@lst.de
Btw, how did the reported even hit that failure in a way where the file system continues working? If we fail to write back data we'd probably better stop modifying anything and bail out..
We can fail the expansion from inline to out-of-line format e.g. when the filesystem is full (ENOSPC). So we have to handle that case gracefully and the filesystem should be fully operational after this.
Thanks for review!
Honza