On Sat, Jun 20, 2020 at 10:54:23AM +0800, zhangyi (F) wrote: > There is a risk of filesystem inconsistency if we failed to async write > back metadata buffer in the background. Because of current buffer's end > io procedure is handled by end_buffer_async_write() in the block layer, > and it only clear the buffer's uptodate flag and mark the write_io_error > flag, so ext4 cannot detect such failure immediately. In most cases of > getting metadata buffer (e.g. ext4_read_inode_bitmap()), although the > buffer's data is actually uptodate, it may still read data from disk > because the buffer's uptodate flag has been cleared. Finally, it may > lead to on-disk filesystem inconsistency if reading old data from the > disk successfully and write them out again. > > This patch detect bdev mapping->wb_err when getting journal's write > access and mark the filesystem error if bdev's mapping->wb_err was > increased, this could prevent further writing and potential > inconsistency. > > Signed-off-by: zhangyi (F) <yi.zhang@xxxxxxxxxx> > Suggested-by: Jan Kara <jack@xxxxxxx> Thanks, applied. - Ted