Hi Yunlei, Could you please post another version to have all the suggestions? :) Thanks, On 02/25, Eric Biggers wrote: > On Fri, Feb 26, 2021 at 09:42:33AM +0800, heyunlei 00015531 wrote: > > > > 在 2021/2/25 7:11, Eric Biggers 写道: > > > On Wed, Feb 24, 2021 at 03:02:52PM -0800, Eric Biggers wrote: > > > > Hi Yunlei, > > > > > > > > On Wed, Feb 24, 2021 at 09:16:24PM +0800, Chao Yu wrote: > > > > > Hi Yunlei, > > > > > > > > > > On 2021/2/23 19:24, heyunlei wrote: > > > > > > If file enable verity failed, should truncate anything wrote > > > > > > past i_size, including cache pages. > > > > > +Cc Eric, > > > > > > > > > > After failure of enabling verity, we will see verity metadata if we truncate > > > > > file to larger size later? > > > > > > > > > > Thanks, > > Hi Eric, > > > > > > Signed-off-by: heyunlei <heyunlei@xxxxxxxxxxx> > > > > > > --- > > > > > > fs/f2fs/verity.c | 4 +++- > > > > > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > > > > > > > > > diff --git a/fs/f2fs/verity.c b/fs/f2fs/verity.c > > > > > > index 054ec852b5ea..f1f9b9361a71 100644 > > > > > > --- a/fs/f2fs/verity.c > > > > > > +++ b/fs/f2fs/verity.c > > > > > > @@ -170,8 +170,10 @@ static int f2fs_end_enable_verity(struct file *filp, const void *desc, > > > > > > } > > > > > > /* If we failed, truncate anything we wrote past i_size. */ > > > > > > - if (desc == NULL || err) > > > > > > + if (desc == NULL || err) { > > > > > > + truncate_inode_pages(inode->i_mapping, inode->i_size); > > > > > > f2fs_truncate(inode); > > > > > > + } > > > > > > clear_inode_flag(inode, FI_VERITY_IN_PROGRESS); > > > > > > > > By the way,should we consider set xattr failed? > > > > Yes, that seems to be another oversight. Similarly for ext4, if > ext4_journal_start(), ext4_orphan_del(), or ext4_reserve_inode_write() fails. > > I think the right fix is to move the truncation to the end of the function. > > - Eric