On Thu, Jan 26, 2023 at 09:51:55AM +0100, Jan Kara wrote: > When filesystem's ->get_block function does not map the buffer head when > called from __mpage_writepage(), the function will happily go and pass > bogus bdev and block number to bio allocation routines which leads to > crashes sooner or later. E.g. UDF can do this because it doesn't want to > allocate blocks from ->writepages callbacks. It allocates blocks on > write or page fault but writeback can still spot dirty buffers without > underlying blocks allocated e.g. if blocksize < pagesize, the tail page > is dirtied (which means all its buffers are dirtied), and truncate > extends the file so that some buffer starts to be within i_size. Yes, this matches what the buffer.c helpers do, so: Reviewed-by: Christoph Hellwig <hch@xxxxxx>