From: Chao Yu <[email protected]>

When getting fscrypto policy via EXT4_IOC_GET_ENCRYPTION_POLICY, if
encryption feature is off, it's better to return EOPNOTSUPP instead
of ENODATA, so let's add ext4_has_feature_encrypt() to do the check
for that.

Signed-off-by: Chao Yu <[email protected]>
---
 fs/ext4/ioctl.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index 442f7ef873fc..bf87835c1237 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -1112,9 +1112,11 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, 
unsigned long arg)
                return -EOPNOTSUPP;
 #endif
        }
-       case EXT4_IOC_GET_ENCRYPTION_POLICY:
+       case EXT4_IOC_GET_ENCRYPTION_POLICY: {
+               if (!ext4_has_feature_encrypt(sb))
+                       return -EOPNOTSUPP;
                return fscrypt_ioctl_get_policy(filp, (void __user *)arg);
-
+       }
        case EXT4_IOC_FSGETXATTR:
        {
                struct fsxattr fa;
-- 
2.22.0

Reply via email to