nfsd: don't return high mode bits
authorAlbert Fluegel <af@muc.de>
Mon, 18 Nov 2013 17:18:01 +0000 (12:18 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 11 Dec 2013 01:35:58 +0000 (20:35 -0500)
commit6e14b46b91fee8a049b0940333ce13a820beaaa5
tree6531f1a4613ade90ae007afa76557b27a455f30b
parent4bd8eabc29e17d9b29cee16077e1621e209a1b27
nfsd: don't return high mode bits

The Linux NFS server replies among other things to a "Check access permission"
the following:

NFS:    File type = 2 (Directory)
NFS:    Mode = 040755

A netapp server replies here:
NFS:    File type = 2 (Directory)
NFS:    Mode = 0755

The RFC 1813 i read:
   fattr3

      struct fattr3 {
         ftype3     type;
         mode3      mode;
         uint32     nlink;
...
For the mode bits only the lowest 9 are defined in the RFC

As far as I can tell, knfsd has always done this, so apparently it's harmless.
Nevertheless, it appears to be wrong.

Note this is already correct in the NFSv4 case, only v2 and v3 need
fixing.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs3xdr.c
fs/nfsd/nfsxdr.c