]> git.apps.os.sepia.ceph.com Git - ceph-client.git/commitdiff
ceph: don't allow changing layout on encrypted files/directories
authorLuís Henriques <lhenriques@suse.de>
Thu, 25 Aug 2022 13:31:04 +0000 (09:31 -0400)
committerXiubo Li <xiubli@redhat.com>
Fri, 26 Aug 2022 23:58:54 +0000 (07:58 +0800)
Encryption is currently only supported on files/directories with layouts
where stripe_count=1.  Forbid changing layouts when encryption is involved.

Signed-off-by: Luis Henriques <lhenriques@suse.de>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
fs/ceph/ioctl.c

index b9f0f4e460abf309c8714a41c8b8f1d775608ef2..9675ef3a6c478e3e986aebf4c8c224303fb2b789 100644 (file)
@@ -294,6 +294,10 @@ static long ceph_set_encryption_policy(struct file *file, unsigned long arg)
        struct inode *inode = file_inode(file);
        struct ceph_inode_info *ci = ceph_inode(inode);
 
+       /* encrypted directories can't have striped layout */
+       if (ci->i_layout.stripe_count > 1)
+               return -EINVAL;
+
        ret = vet_mds_for_fscrypt(file);
        if (ret)
                return ret;