Nick Piggin <npiggin@xxxxxxx> writes: >> If __block_prepare_write() was failed in block_write_begin(), the >> allocated blocks can be outside of ->i_size. >> >> But new truncate_pagecache() in vmtuncate() does nothing if new < old. >> It means the above usage is not working anymore. >> >> So, this patch fixes it by removing "new < old" check. It would need >> more cleanup/change. But, now -rc and truncate working is in progress, >> so, this tried to fix it minimum change. >> >> Cc: stable@xxxxxxxxxx >> Signed-off-by: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> > > Hmm, truncate_pagecache() is for truncating the mm/vm part of the > pagecache. vmtruncate should still call inode->i_op->truncate() to > trim blocks if required. > > However I'd say we do still need to ensure do_invalidatepage is > called for the page, for private metadata. So yes I think your patch > looks good. Thanks for reviewing. Yes, and it also needs to be called to ensure that have the same state on-disk and page/bh state. [BTW, this became the cause of fatfs corruption.] Thanks. -- OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html