support: Handle FUSE_GETXATTR during FUSE FS mount

When testing with some kernel versions, support FUSE infrastructure
encounters a FUSE_GETXATTR request, leading to FUSE tests hanging until
timed out.  Therefore, pass FUSE_GETXATTR requests from
support_fuse_handle_mountpoint to support_fuse_handle_directory, and
adjust support_fuse_handle_directory to return ENOSYS so that tests can
proceed.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
This commit is contained in:
Arjun Shankar 2025-08-18 15:33:13 +02:00
parent d4ccda8e69
commit 6f999af332
1 changed files with 5 additions and 1 deletions

View File

@ -212,6 +212,9 @@ support_fuse_handle_directory (struct support_fuse *f)
support_fuse_reply_prepared (f);
}
return true;
case FUSE_GETXATTR:
support_fuse_reply_error (f, ENOSYS);
return true;
default:
return false;
}
@ -222,7 +225,8 @@ support_fuse_handle_mountpoint (struct support_fuse *f)
{
TEST_VERIFY (f->inh != NULL);
/* 1 is the root node. */
if (f->inh->opcode == FUSE_GETATTR && f->inh->nodeid == 1)
if ((f->inh->opcode == FUSE_GETATTR || f->inh->opcode == FUSE_GETXATTR)
&& f->inh->nodeid == 1)
return support_fuse_handle_directory (f);
return false;
}