提交 a029750c 编写于 作者: T Theodore Ts'o 提交者: Zheng Zengkai

fs: fix reporting supported extra file attributes for statx()

stable inclusion
from stable-5.10.36
commit 1b41d4e5aa75675c915cbed09e2a7813f3fd2e49
bugzilla: 51867
CVE: NA

--------------------------------

commit 5afa7e8b upstream.

statx(2) notes that any attribute that is not indicated as supported
by stx_attributes_mask has no usable value.  Commits 801e5237
("fs: move generic stat response attr handling to vfs_getattr_nosec")
and 712b2698 ("fs/stat: Define DAX statx attribute") sets
STATX_ATTR_AUTOMOUNT and STATX_ATTR_DAX, respectively, without setting
stx_attributes_mask, which can cause xfstests generic/532 to fail.

Fix this in the same way as commit 1b9598c8 ("xfs: fix reporting
supported extra file attributes for statx()")

Fixes: 801e5237 ("fs: move generic stat response attr handling to vfs_getattr_nosec")
Fixes: 712b2698 ("fs/stat: Define DAX statx attribute")
Cc: stable@kernel.org
Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NChen Jun <chenjun102@huawei.com>
Acked-by: NWeilong Chen <chenweilong@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 5941bd31
......@@ -77,12 +77,20 @@ int vfs_getattr_nosec(const struct path *path, struct kstat *stat,
/* SB_NOATIME means filesystem supplies dummy atime value */
if (inode->i_sb->s_flags & SB_NOATIME)
stat->result_mask &= ~STATX_ATIME;
/*
* Note: If you add another clause to set an attribute flag, please
* update attributes_mask below.
*/
if (IS_AUTOMOUNT(inode))
stat->attributes |= STATX_ATTR_AUTOMOUNT;
if (IS_DAX(inode))
stat->attributes |= STATX_ATTR_DAX;
stat->attributes_mask |= (STATX_ATTR_AUTOMOUNT |
STATX_ATTR_DAX);
if (inode->i_op->getattr)
return inode->i_op->getattr(path, stat, request_mask,
query_flags);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册