Messages in this thread | | | From | OGAWA Hirofumi <> | Subject | Re: [PATCH] vfs: Fix vmtruncate() regression | Date | Wed, 13 Jan 2010 21:07:59 +0900 |
| |
Nick Piggin <npiggin@suse.de> 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@kernel.org >> Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> > > 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@mail.parknet.co.jp>
| |