After writing data at NFS client, file's access mode is inconsistent with server. Because WRITE proceduce changes the S_ISUID and S_ISGID bits, but client don't get it. #touch hello; chmod 06777 hello; stat hello; File: ‘hello’ Size: 0 Blocks: 0 IO Block: 262144 regular empty file Device: 24h/36d Inode: 786434 Links: 1 Access: (6777/-rwsrwsrwx) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:nfs_t:s0 Access: 2014-04-13 21:00:44.996908708 +0800 Modify: 2014-04-13 21:00:44.996908708 +0800 Change: 2014-04-13 21:00:45.033908705 +0800 Birth: - #echo 12324 > hello; stat hello; stat /nfstest/hello File: ‘hello’ Size: 6 Blocks: 0 IO Block: 262144 regular file Device: 24h/36d Inode: 786434 Links: 1 Access: (6777/-rwsrwsrwx) Uid: ( 0/ root) Gid: ( 0/ root) ^^^^^ it should be 0777 Context: system_u:object_r:nfs_t:s0 Access: 2014-04-13 21:00:44.996908708 +0800 Modify: 2014-04-13 21:00:45.061908703 +0800 Change: 2014-04-13 21:00:45.061908703 +0800 Birth: - File: ‘/nfstest/hello’ Size: 6 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 786434 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root) ^^^^^ bits on the server Context: system_u:object_r:default_t:s0 Access: 2014-04-13 21:00:44.996908708 +0800 Modify: 2014-04-13 21:00:45.061908703 +0800 Change: 2014-04-13 21:00:45.061908703 +0800 Birth: - Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx> --- fs/nfs/nfs4proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 397be39..f234af7 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -2819,7 +2819,7 @@ static int _nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *f 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_MODE|FATTR4_WORD1_TIME_METADATA|FATTR4_WORD1_TIME_MODIFY; server->cache_consistency_bitmask[2] = 0; server->acl_bitmask = res.acl_bitmask; server->fh_expire_type = res.fh_expire_type; -- 1.9.0 -- 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