Message ID | 1559795545-17290-2-git-send-email-wshilong1991@gmail.com |
---|---|
State | Not Applicable |
Headers | show |
Series | [1/2] ext4: only set project inherit bit for directory | expand |
On 2019/6/6 12:32, Wang Shilong wrote: > From: Wang Shilong <wshilong@ddn.com> > > It doesn't make any sense to have project inherit bits > for regular files, even though this won't cause any > problem, but it is better fix this. > > Cc: Andreas Dilger <adilger@dilger.ca> > Signed-off-by: Wang Shilong <wshilong@ddn.com> > --- > fs/f2fs/f2fs.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > index 06b89a9862ab..f02ebecb68ea 100644 > --- a/fs/f2fs/f2fs.h > +++ b/fs/f2fs/f2fs.h > @@ -2370,7 +2370,8 @@ static inline void f2fs_change_bit(unsigned int nr, char *addr) > F2FS_PROJINHERIT_FL) > > /* Flags that are appropriate for regular files (all but dir-specific ones). */ > -#define F2FS_REG_FLMASK (~(F2FS_DIRSYNC_FL | F2FS_TOPDIR_FL)) > +#define F2FS_REG_FLMASK (~(F2FS_DIRSYNC_FL | F2FS_TOPDIR_FL |\ > + F2FS_PROJINHERIT_FL)) Hi Shilong, Could you please add below diff as ext4 did? diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index efdafa886510..295ca5ed42d9 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -1759,6 +1759,9 @@ static int f2fs_ioc_getflags(struct file *filp, unsigned long arg) fsflags &= F2FS_GETTABLE_FS_FL; + if (S_ISREG(inode->i_mode)) + fsflags &= ~FS_PROJINHERIT_FL; + return put_user(fsflags, (int __user *)arg); } Thanks, > > /* Flags that are appropriate for non-directories/regular files. */ > #define F2FS_OTHER_FLMASK (F2FS_NODUMP_FL | F2FS_NOATIME_FL) >
On 2019/6/13 15:34, Wang Shilong wrote: > Hi Chao, > > I just sent a V2, but I think we'd better do that when reading inode, for two reasons: > > 1) not only F2FS_IOC_GETFLAGS need filter flags but also F2FS_IOC_FSGETXATTR need that, so the amended parts is not enough IMO. > > 2) doing that by reading inode give a benefit that we could correct on disk flags for regular file next dirtying inode happen. Hi Shilong, agreed, I'm okay with that change. :) Thanks,
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 06b89a9862ab..f02ebecb68ea 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -2370,7 +2370,8 @@ static inline void f2fs_change_bit(unsigned int nr, char *addr) F2FS_PROJINHERIT_FL) /* Flags that are appropriate for regular files (all but dir-specific ones). */ -#define F2FS_REG_FLMASK (~(F2FS_DIRSYNC_FL | F2FS_TOPDIR_FL)) +#define F2FS_REG_FLMASK (~(F2FS_DIRSYNC_FL | F2FS_TOPDIR_FL |\ + F2FS_PROJINHERIT_FL)) /* Flags that are appropriate for non-directories/regular files. */ #define F2FS_OTHER_FLMASK (F2FS_NODUMP_FL | F2FS_NOATIME_FL)