Re: fsetxattr() fails on a writable descriptor?

Pádraig Brady
2009-09-09T21:25:39Z

Christoph Hellwig wrote:
> On Tue, Sep 08, 2009 at 12:29:49PM +0100, P??draig Brady wrote:
>> fsetxattr() is failing for me when the permissions are readonly
>> but the descriptor is writable as demonstrated by the program below.
>> I've tried this on ext3 and ext4 with libattr-2.4.43-3.fc11.i586
>> and linux-2.6.30.5-43.fc11.i586
>
> That's not XFS specifci behaviour. For all xattr operations, fd-based
> or not we always do the full permission checks, and have done so since
> day one. Check the routined xattr_permission in fs/xattr.c of the
> kernel tree. It seems a bit unusual, but I'm not sure changing it now
> is a good idea - the xattr support has been around for a long time.

Sorry if you get this twice. Resending using another server...

Thanks for this info Christoph.
http://lxr.linux.no/#linux+v2.6.30.5/fs/xattr.c

The specific issue we have is that `cp --preserve=xattr` gets an
error when copying xattrs from a read only file. Since this has been
an xattr issue since the start, we'll have to work around it.
We'll probably temporarily set u+w on the new file to apply xattrs.

cheers,
Pádraig.