ceph: don't allow access to MDS-private inodes
authorJeff Layton <jlayton@kernel.org>
Thu, 1 Apr 2021 17:55:11 +0000 (13:55 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Tue, 27 Apr 2021 21:52:23 +0000 (23:52 +0200)
commitd4f6b31d721779d91b5e2f8072478af73b196c34
tree9d33cb37f6afc7d1e1f2f3299aa03c591f37e26e
parent2d6795fbb8c34ed5eb44db2a99960614424585f8
ceph: don't allow access to MDS-private inodes

The MDS reserves a set of inodes for its own usage, and these should
never be accessible to clients. Add a new helper to vet a proposed
inode number against that range, and complain loudly and refuse to
create or look it up if it's in it.

Also, ensure that the MDS doesn't try to delegate inodes that are in
that range or lower. Print a warning if it does, and don't save the
range in the xarray.

URL: https://tracker.ceph.com/issues/49922
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/export.c
fs/ceph/inode.c
fs/ceph/mds_client.c
fs/ceph/super.h