|
@@ -686,7 +686,7 @@ int f2fs_getattr(const struct path *path, struct kstat *stat,
|
|
stat->btime.tv_nsec = fi->i_crtime.tv_nsec;
|
|
stat->btime.tv_nsec = fi->i_crtime.tv_nsec;
|
|
}
|
|
}
|
|
|
|
|
|
- flags = fi->i_flags & (F2FS_FL_USER_VISIBLE | F2FS_PROJINHERIT_FL);
|
|
|
|
|
|
+ flags = fi->i_flags & F2FS_FL_USER_VISIBLE;
|
|
if (flags & F2FS_APPEND_FL)
|
|
if (flags & F2FS_APPEND_FL)
|
|
stat->attributes |= STATX_ATTR_APPEND;
|
|
stat->attributes |= STATX_ATTR_APPEND;
|
|
if (flags & F2FS_COMPR_FL)
|
|
if (flags & F2FS_COMPR_FL)
|
|
@@ -1606,8 +1606,8 @@ static int __f2fs_ioc_setflags(struct inode *inode, unsigned int flags)
|
|
if (!capable(CAP_LINUX_IMMUTABLE))
|
|
if (!capable(CAP_LINUX_IMMUTABLE))
|
|
return -EPERM;
|
|
return -EPERM;
|
|
|
|
|
|
- flags = flags & (F2FS_FL_USER_MODIFIABLE | F2FS_PROJINHERIT_FL);
|
|
|
|
- flags |= oldflags & ~(F2FS_FL_USER_MODIFIABLE | F2FS_PROJINHERIT_FL);
|
|
|
|
|
|
+ flags = flags & F2FS_FL_USER_MODIFIABLE;
|
|
|
|
+ flags |= oldflags & ~F2FS_FL_USER_MODIFIABLE;
|
|
fi->i_flags = flags;
|
|
fi->i_flags = flags;
|
|
|
|
|
|
if (fi->i_flags & F2FS_PROJINHERIT_FL)
|
|
if (fi->i_flags & F2FS_PROJINHERIT_FL)
|
|
@@ -2649,7 +2649,7 @@ static int f2fs_ioc_fsgetxattr(struct file *filp, unsigned long arg)
|
|
|
|
|
|
memset(&fa, 0, sizeof(struct fsxattr));
|
|
memset(&fa, 0, sizeof(struct fsxattr));
|
|
fa.fsx_xflags = f2fs_iflags_to_xflags(fi->i_flags &
|
|
fa.fsx_xflags = f2fs_iflags_to_xflags(fi->i_flags &
|
|
- (F2FS_FL_USER_VISIBLE | F2FS_PROJINHERIT_FL));
|
|
|
|
|
|
+ F2FS_FL_USER_VISIBLE);
|
|
|
|
|
|
if (f2fs_sb_has_project_quota(inode->i_sb))
|
|
if (f2fs_sb_has_project_quota(inode->i_sb))
|
|
fa.fsx_projid = (__u32)from_kprojid(&init_user_ns,
|
|
fa.fsx_projid = (__u32)from_kprojid(&init_user_ns,
|