Hi Eric, On 2019/6/26 1:52, Eric Biggers wrote: > Hi Chao, thanks for the review. > > On Tue, Jun 25, 2019 at 03:55:57PM +0800, Chao Yu wrote: >> Hi Eric, >> >> On 2019/6/21 4:50, Eric Biggers wrote: >>> +static int f2fs_begin_enable_verity(struct file *filp) >>> +{ >>> + struct inode *inode = file_inode(filp); >>> + int err; >>> + >> >> I think we'd better add condition here (under inode lock) to disallow enabling >> verity on atomic/volatile inode, as we may fail to write merkle tree data due to >> atomic/volatile inode's special writeback method. >> > > Yes, I'll add the following: > > if (f2fs_is_atomic_file(inode) || f2fs_is_volatile_file(inode)) > return -EOPNOTSUPP; > >>> + err = f2fs_convert_inline_inode(inode); >>> + if (err) >>> + return err; >>> + >>> + err = dquot_initialize(inode); >>> + if (err) >>> + return err; >> >> We can get rid of dquot_initialize() here, since f2fs_file_open() -> >> dquot_file_open() should has initialized quota entry previously, right? > > We still need it because dquot_file_open() only calls dquot_initialize() if the > file is being opened for writing. But here the file descriptor is readonly. > I'll add a comment explaining this here and in the ext4 equivalent. Ah, you're right. f2fs_convert_inline_inode() may grab one more block during conversion, so we need to call dquot_initialize() before inline conversion? Thanks, > > - Eric > . >