]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ext4: only set project inherit bit for directory
authorWang Shilong <wshilong@ddn.com>
Mon, 10 Jun 2019 04:13:32 +0000 (00:13 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 10 Jun 2019 04:13:32 +0000 (00:13 -0400)
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.

Signed-off-by: Wang Shilong <wshilong@ddn.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
fs/ext4/ext4.h
fs/ext4/ioctl.c

index 1cb67859e0518b590af7e44299125bddfccb0c27..ceb74093e138f37037b4aa29d9b326f9cad2f1ce 100644 (file)
@@ -421,7 +421,8 @@ struct flex_groups {
                           EXT4_PROJINHERIT_FL | EXT4_CASEFOLD_FL)
 
 /* Flags that are appropriate for regular files (all but dir-specific ones). */
-#define EXT4_REG_FLMASK (~(EXT4_DIRSYNC_FL | EXT4_TOPDIR_FL | EXT4_CASEFOLD_FL))
+#define EXT4_REG_FLMASK (~(EXT4_DIRSYNC_FL | EXT4_TOPDIR_FL | EXT4_CASEFOLD_FL |\
+                          EXT4_PROJINHERIT_FL))
 
 /* Flags that are appropriate for non-directories/regular files. */
 #define EXT4_OTHER_FLMASK (EXT4_NODUMP_FL | EXT4_NOATIME_FL)
index 7af835ac8d23a8b940b1169759bd0c28b2481155..74648d42c69b3ee2b2bf0397a2fc85c9d6dd3a6f 100644 (file)
@@ -779,6 +779,8 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                return ext4_ioc_getfsmap(sb, (void __user *)arg);
        case EXT4_IOC_GETFLAGS:
                flags = ei->i_flags & EXT4_FL_USER_VISIBLE;
+               if (S_ISREG(inode->i_mode))
+                       flags &= ~EXT4_PROJINHERIT_FL;
                return put_user(flags, (int __user *) arg);
        case EXT4_IOC_SETFLAGS: {
                int err;