On Wed, 2013-05-08 at 12:39 -0400, Steve Dickson wrote: > > On 01/05/13 15:03, Myklebust, Trond wrote: > >> @@ -2409,10 +2468,26 @@ static int _nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *f > >> > server->caps |= NFS_CAP_CTIME; > >> > if (res.attr_bitmask[1] & FATTR4_WORD1_TIME_MODIFY) > >> > server->caps |= NFS_CAP_MTIME; > >> > +#ifdef CONFIG_NFS_V4_SECURITY_LABEL > >> > + if (res.attr_bitmask[2] & FATTR4_WORD2_SECURITY_LABEL) > >> > + server->caps |= NFS_CAP_SECURITY_LABEL; > >> > +#endif > >> > + memcpy(server->attr_bitmask_nl, res.attr_bitmask, > >> > + sizeof(server->attr_bitmask)); > >> > + > >> > + if (server->caps & NFS_CAP_SECURITY_LABEL) > >> > + server->attr_bitmask_nl[2] &= ~FATTR4_WORD2_SECURITY_LABEL; > >> > > >> > memcpy(server->cache_consistency_bitmask, res.attr_bitmask, sizeof(server->cache_consistency_bitmask)); > >> > server->cache_consistency_bitmask[0] &= FATTR4_WORD0_CHANGE|FATTR4_WORD0_SIZE; > >> > - server->cache_consistency_bitmask[1] &= FATTR4_WORD1_TIME_METADATA|FATTR4_WORD1_TIME_MODIFY; > >> > + server->cache_consistency_bitmask[1] &= FATTR4_WORD1_TIME_METADATA | > >> > + FATTR4_WORD1_TIME_MODIFY; > >> > +#ifdef CONFIG_NFS_V4_SECURITY_LABEL > >> > + server->cache_consistency_bitmask[2] &= FATTR4_WORD2_SECURITY_LABEL; > > Why? How is the security label relevant to cache consistency? > Its used to the set label bit in the GETATTR that goes out with ACCESS compound. The GETATTR that goes out with ACCESS is only there in order to get the change attribute so that we know when to invalidate the access cache. It is _only_ for cache consistency. Why do we need to fetch the label too? -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@xxxxxxxxxx www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html