[PATCH] support: Handle FUSE_GETXATTR during FUSE FS mount
Florian Weimer
fweimer@redhat.com
Mon Aug 18 14:18:08 GMT 2025
* Arjun Shankar:
> 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.
> ---
> I ran into FUSE test failures on RHEL 10 aarch64 builders because during
> mount, the test rig receives a FUSE_GETXATTR request and the test hangs.
> Returning ENOSYS is sufficient for the tests to make progress and PASS.
Technically it happens on a RHEL 8 kernel, so the RHEL 10 reference is a
bit misleading. But I assume this part won't go into the commit
message.
> ---
> support/support_fuse.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/support/support_fuse.c b/support/support_fuse.c
> index a70a74c8e8..a90882e3aa 100644
> --- a/support/support_fuse.c
> +++ b/support/support_fuse.c
> @@ -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;
> }
Looks okay to me.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
Thanks,
Florian
More information about the Libc-alpha
mailing list