[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <E1IILwa-0007Eq-00@dorka.pomaz.szeredi.hu>
Date: Tue, 07 Aug 2007 12:05:40 +0200
From: Miklos Szeredi <miklos@...redi.hu>
To: trond.myklebust@....uio.no
CC: miklos@...redi.hu, jlayton@...hat.com,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
mikulas@...ax.karlin.mff.cuni.cz, zippel@...ux-m68k.org,
joel.becker@...cle.com, wli@...omorphy.com, dhowells@...hat.com,
bfennema@...con.csc.calpoly.edu
Subject: Re: [fuse-devel] [PATCH 01/25] VFS: move attr_kill logic from
notify_change into helper function
There's another way to deal with this in NFS and fuse, without having
to change the API:
- remove suid/sgid bits from i_mode, when refreshing the inode attributes
- store the removed bits (or the original mode) in the fs' inode strucure
- in ->getattr() restore the original mode into the returned stat
This way the VFS believes, that the inode does not in fact have the
suid/sgid bits and so won't call ->setattr() unnecessarily.
I've tested a similar change in fuse for working around unneeded check
for the directory sticky bit.
Yes, this is cheating the interface, but there's a deeper level where
it makes sense: the VFS should not be checking _any_ inode attribute
besides the file type, since they can change at any moment, and the
VFS might be using stale data without having first properly
revalidated it.
Miklos
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists