f2fs: fix to show missing bits in FS_IOC_GETFLAGS
authorChao Yu <yuchao0@huawei.com>
Sun, 8 Apr 2018 03:27:14 +0000 (11:27 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 31 May 2018 18:31:45 +0000 (11:31 -0700)
This patch fixes to show missing encrypt/inline_data flag in
FS_IOC_GETFLAGS like ext4 does.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/file.c

index 74df80ae172885c6bd8089bce0984f77a1dcab5f..97bb4af8d8d6ab5ef4b38644a37580378862b4df 100644 (file)
@@ -1584,8 +1584,15 @@ static int f2fs_ioc_getflags(struct file *filp, unsigned long arg)
 {
        struct inode *inode = file_inode(filp);
        struct f2fs_inode_info *fi = F2FS_I(inode);
-       unsigned int flags = fi->i_flags &
-                       (F2FS_FL_USER_VISIBLE | F2FS_PROJINHERIT_FL);
+       unsigned int flags = fi->i_flags;
+
+       if (file_is_encrypt(inode))
+               flags |= F2FS_ENCRYPT_FL;
+       if (f2fs_has_inline_data(inode) || f2fs_has_inline_dentry(inode))
+               flags |= F2FS_INLINE_DATA_FL;
+
+       flags &= F2FS_FL_USER_VISIBLE;
+
        return put_user(flags, (int __user *)arg);
 }