[LTP] [PATCH] syscalls/file_attr01: Fix EOPNOTSUPP expectation on tmpfs

Wake Liu wakel@google.com
Fri Aug 7 12:44:42 CEST 2026


The test was expecting EOPNOTSUPP when ufattr is NULL on tmpfs without
xattr support. However, file_setattr() always copy structure from
userspace early (via copy_struct_from_user) and returns EFAULT if the
pointer is invalid, before checking filesystem xattr support.

Therefore, the EOPNOTSUPP exception is only valid for file_getattr()
which does not read from ufattr early.

Restrict the EOPNOTSUPP expectation to file_getattr() (tst_variant != 0)
to avoid false failures on file_setattr().

Signed-off-by: Wake Liu <wakel@google.com>
---
 testcases/kernel/syscalls/file_attr/file_attr01.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/testcases/kernel/syscalls/file_attr/file_attr01.c b/testcases/kernel/syscalls/file_attr/file_attr01.c
index 419d54c36..2e6c07d07 100644
--- a/testcases/kernel/syscalls/file_attr/file_attr01.c
+++ b/testcases/kernel/syscalls/file_attr/file_attr01.c
@@ -119,7 +119,7 @@ static void run(unsigned int i)
 	struct tcase *tc = &tcases[i];
 	int exp_errno = tc->exp_errno;
 
-	if (tc->ufattr == (struct file_attr **)(&null_ptr) && missing_tmpfs_xattr)
+	if (tc->ufattr == (struct file_attr **)(&null_ptr) && missing_tmpfs_xattr && tst_variant)
 		exp_errno = EOPNOTSUPP;
 
 	if (tst_variant) {
-- 
2.55.0.654.g21b8a5bc05-goog



More information about the ltp mailing list