示例#1
0
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
}
示例#2
0
文件: node.go 项目: rfjakob/cluefs
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
}
示例#3
0
func (f *listxattrSize) Listxattr(req *fuse.ListxattrRequest, resp *fuse.ListxattrResponse, intr fs.Intr) fuse.Error {
	resp.Xattr = []byte("one\x00two\x00")
	return nil
}