[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