]> git-server-git.apps.pok.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>
Tue, 17 Aug 2021 14:04:39 +0000 (15:04 +0100)
committerJeff Layton <jlayton@kernel.org>
Tue, 31 May 2022 15:50:00 +0000 (11:50 -0400)
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;