ceph: only check pool permissions for regular files

There is no need to do a ceph_pool_perm_check() on anything that isn't a
regular file, as the MDS is what handles talking to the OSD in those
cases. Just return 0 if it's not a regular file.

Reported-by: Luis Henriques <lhenriques@suse.de>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
Jeff Layton 2021-01-26 11:49:54 -05:00 коммит произвёл Ilya Dryomov
Родитель 3d8b6987a2
Коммит e9b2250156
1 изменённых файлов: 4 добавлений и 0 удалений

Просмотреть файл

@ -1941,6 +1941,10 @@ int ceph_pool_perm_check(struct inode *inode, int need)
s64 pool;
int ret, flags;
/* Only need to do this for regular files */
if (!S_ISREG(inode->i_mode))
return 0;
if (ci->i_vino.snap != CEPH_NOSNAP) {
/*
* Pool permission check needs to write to the first object.