Re: Need help from FreeBSD developers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 24, 2016 at 1:39 PM, Kaushal M <kshlmster@xxxxxxxxx> wrote:
> On Fri, Jun 24, 2016 at 1:00 PM, Pranith Kumar Karampuri
> <pkarampu@xxxxxxxxxx> wrote:
>> hi,
>>     Based on the debugging done by Niels on the bug
>> https://bugzilla.redhat.com/show_bug.cgi?id=1181500#c5, we need a
>> confirmation about what listxattr returns on FreeBSD. Could someone please
>> help?
>
> sys_llistxattr() is a wrapper around extattr_list_link() on BSDs, as
> defined in libglusterfs/src/syscall.c
>
> sys_llistxattr(path, list, size) -> extattr_list_link(path,
> EXTATTR_NAMESPACE_USER, list, size)
>
>
> The man page for extattr_list_link() is available at [1].
>
> From the man page,
> '''
>      extattr_list_file() returns a list of attributes present in the requested
>      namespace. Each list entry consists of a single byte containing the
>      length of the attribute name, followed by the attribute name.  The
>      attribute name is not terminated by ASCII 0 (nul). The
>      extattr_get_file(), and extattr_list_file() calls consume the data and
>      nbytes arguments in the style of read(2);
> '''
> (The *link() syscalls behave the same as the *file() syscalls, expect
> they don't follow symlinks)
>

The linux man entry for llistxattr is as follows,
'''
      listxattr() retrieves the list of extended attribute names
associated with the given path in the filesystem.  The retrieved list
is placed in list, a caller-allocated buffer whose size (in bytes) is
specified in  the  argu‐
      ment  size.   The  list  is the set of (null-terminated) names,
one after the other.  Names of extended attributes to which the
calling process does not have access may be omitted from the list.
The length of the attribute
      name list is returned.

      llistxattr() is identical to listxattr(), except in the case of
a symbolic link, where the list of names of extended attributes
associated with the link itself is retrieved, not the file that it
refers to.
'''

There is a difference in the format used to return the names in the list.
The procedure to iterate the list needs to be changed for FreeBSD, or
the list needs to be normalized before sys_llistxattr() returns.

> ~kaushal
>
> [1] https://www.freebsd.org/cgi/man.cgi?query=extattr_list_link&apropos=0&sektion=0&manpath=FreeBSD+10.3-RELEASE+and+Ports&arch=default&format=html
>
>>
>> --
>> Pranith
>>
>> _______________________________________________
>> Gluster-devel mailing list
>> Gluster-devel@xxxxxxxxxxx
>> http://www.gluster.org/mailman/listinfo/gluster-devel
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel




[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux