All of lore.kernel.org
 help / color / mirror / Atom feed
* XATTR bugs
@ 2003-11-26  0:27 Fredrik Tolf
  2003-11-25 14:05 ` Hans Reiser
  2003-12-09 23:31 ` Jeff Mahoney
  0 siblings, 2 replies; 7+ messages in thread
From: Fredrik Tolf @ 2003-11-26  0:27 UTC (permalink / raw)
  To: reiserfs-list

Hi!

I just applied the ReiserFS xattr patches to my 2.6.0-test10 Linux
kernel, and I found what appears to be two bugs.

The patches were those from
ftp://ftp.suse.com/pub/people/jeffm/reiserfs/aclea/

Since there is no mention of this URL on the namesys.com home page, I
don't know if these patches are "official". If they aren't, please
tell me so and I will turn elsewhere, and if you know where to mail it
instead, please tell me that too.

Anyway, I'm going to ramble on as if they were official.

The first bug was in inode.c and was really simple. The only thing was
that #include <linux/quotaops.h> was missing. It is necessary for
DQUOT_TRANSFER, which is used by the xattr patch, and as such the
module won't load.

The second one was a bit more subtle. I'm using this ReiserFS to serve
NFS, and I discovered that there was an ACL-related bug in
reiserfs_setattr (also from inode.c). In the end of that function
(line 2464 in my kernel), it makes a call to reiserfs_acl_chmod, like
this:

if (!error && reiserfs_posixacl (inode->i_sb)) {
    if (attr->ia_valid & ATTR_MODE)
        error = reiserfs_acl_chmod (inode);
}

reiserfs_acl_chmod always returns EOPNOTSUPP if called on a
symlink. That isn't normally a problem, but it seems that nfsd always
chmods symlinks when they are created via this method. The symlink
gets created as it should, but the RPC returns EIO (NFS apparently has
no return code for EOPNOTSUPP and therefore translates it into EIO),
which brakes many programs on the clients.

I solved it by simply not calling reiserfs_acl_chmod in case the inode
is a symlink, like this:

if (!error && !S_ISLNK(inode->i_mode) && reiserfs_posixacl (inode->i_sb)) {
    if (attr->ia_valid & ATTR_MODE)
        error = reiserfs_acl_chmod (inode);
}

The thing is that I don't know ReiserFS, and so I don't really know
what I'm doing. If you think this breaks anything, please tell me
so. In any other case, I guess it would be a good thing to change the
patches into this.

Fredrik Tolf



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-12-10  2:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-26  0:27 XATTR bugs Fredrik Tolf
2003-11-25 14:05 ` Hans Reiser
2003-11-26  2:13   ` Fredrik Tolf
2003-12-09 23:31 ` Jeff Mahoney
2003-12-10  1:22   ` Fredrik Tolf
2003-12-10  2:10     ` Jeff Mahoney
2003-12-10  2:27       ` Fredrik Tolf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.