extattr problems?

Tim Kientzle kientzle at freebsd.org
Sat Jan 10 19:48:55 PST 2009


pluknet wrote:
> 2009/1/11 Tim Kientzle <kientzle at freebsd.org>:
> 
>>FreeBSD 6.3:
>>
>>fd = open("test", O_WRONLY | O_CREAT | O_EXCL, 0777);
>>n = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, "testattr", "1234", 4);
>>
>>After this, fd=3, n is non-zero, errno = 9 (EBADF)
>>
>>Huh?  I would have expected EOPNOTSUPP if
>>extended attributes weren't supported on this
>>filesystem.  The file descriptor is clearly
>>valid.
> 
> Simple guess.
> Don't hit me if I'm wrong. :)
> 
> You call open() with (O_CREAT | O_EXCL) on an already existing file.

Nope.  As you can see from my earlier summary,
fd=3 immediately after this, so the open did
succeed normally.

Oh, but that gives me an idea ... <checking, checking>
... darn.  Still no joy.  I tried changing the open to
open("test", O_RDWR | O_CREATE, 0777) and it still
fails in exactly the same way.  The open still succeeds
and the extattr_set_fd() still fails with a nonsensical
errno value.

Time to dig through kernel sources....

Tim


More information about the freebsd-hackers mailing list