func (x *xattr) list(req *fuse.ListxattrRequest, res *fuse.ListxattrResponse) error { x.mu.Lock() defer x.mu.Unlock() for k := range *x.xattrs { res.Xattr = append(res.Xattr, k...) res.Xattr = append(res.Xattr, '\x00') } return nil }
func (n *Node) Listxattr(ctx context.Context, req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse) error { defer trace(NewListxattrOp(req, n.path)) size, err := syscallx.Listxattr(n.path, []byte{}) if err != nil || size <= 0 { return nil } buffer := make([]byte, size) size, err = syscallx.Listxattr(n.path, buffer) if err != nil { return osErrorToFuseError(err) } resp.Xattr = buffer return nil }
func (f *listxattrSize) Listxattr(req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse, intr fs.Intr) fuse.Error { resp.Xattr = []byte("one\x00two\x00") return nil }