Date: Sat, 10 Jan 2009 19:48:52 -0800 From: Tim Kientzle <kientzle@freebsd.org> To: pluknet <pluknet@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: extattr problems? Message-ID: <49696C24.8010601@freebsd.org> In-Reply-To: <a31046fc0901101836q1f43028awe4f7b0ba746248ac@mail.gmail.com> References: <49692659.2030306@freebsd.org> <a31046fc0901101836q1f43028awe4f7b0ba746248ac@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
pluknet wrote: > 2009/1/11 Tim Kientzle <kientzle@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49696C24.8010601>