On Fri, Sep 02, 2011 at 12:38:13PM -0400, Chuck Lever wrote: > Sometime soon we are going to have easy-to-install user space FedFS > components. Here are kernel patches needed to make server-side FedFS > support work. Please consider these for the 3.2 kernel. > > The third patch introduces a potentially expensive check to see if > a junction has been encountered during a mountpoint lookup. An object > is a junction iff it has the requisite set of extended attributes. > However, reading an extended attribute is expensive on some file > systems. > > To mitigate the cost of this check, junctions always have their sticky > bit set. The expensive extended attribute part of the junction test > is done only if the sticky bit is present. > > Note that today junctions are directories, but someday symlinks might > also act as junctions (for SMB2 support). And very few files have the > sticky bit set. So we avoid doing a directory test here. > > Also, junctions ostensibly have all zero mode bits to hide their local > contents. I don't think the kernel needs to be concerned about the > permissions as long as the sticky bit is set. This allows some > flexibility in how junctions are represented. However, Jeff thinks > that having nfsd4_is_junction() also consider mode bits would make the > expensive part of this test still less frequent. > > Any thoughts about this? Hm, right, a sticky bit set on a directory is a normal thing. I thought Trond's original idea was to check for the sticky bit and not executable? Which is a pointless combination so should be very rare. On a typical system maybe directories with the sticky bit are normally somewhat rare, but that's a question of policy and there could be cases where it's common. --b. > > --- > > Trond Myklebust (3): > NFSD: Add a cache for fs_locations information > NFSD: Remove the ex_pathname field from struct svc_export > NFSD: Cleanup for nfsd4_path() > > > fs/nfsd/export.c | 15 +----- > fs/nfsd/nfs4xdr.c | 106 ++++++++++++++++++++++++++++++++----------- > fs/nfsd/nfsd.h | 7 +++ > fs/nfsd/vfs.c | 16 ++++++ > include/linux/nfsd/export.h | 2 - > 5 files changed, 104 insertions(+), 42 deletions(-) > > -- > Chuck Lever > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html