diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2011-06-28 22:52:38 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2011-06-28 22:52:38 +0000 |
commit | 0393f389af4d3d0b054c79ffd0af82e081218262 (patch) | |
tree | 979886e8e89b86282d64a53c2b4ed0f99b3ddc6f /sys/fs/nfs/nfsproto.h | |
parent | 82faa3e64109fa8b1a1833758bd1404e494548b2 (diff) | |
download | FreeBSD-src-0393f389af4d3d0b054c79ffd0af82e081218262.zip FreeBSD-src-0393f389af4d3d0b054c79ffd0af82e081218262.tar.gz |
Fix the new NFSv4 client so that it doesn't fill the cached
mode attribute in as 0 when doing writes. The change adds
the Mode attribute plus the others except Owner and Owner_group
to the list requested by the NFSv4 Write Operation. This fixed
a problem where an executable file built by "cc" would get mode
0111 instead of 0755 for some NFSv4 servers.
Found at the recent NFSv4 interoperability Bakeathon.
Tested by: tdh at excfb.com
MFC after: 2 weeks
Diffstat (limited to 'sys/fs/nfs/nfsproto.h')
-rw-r--r-- | sys/fs/nfs/nfsproto.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/fs/nfs/nfsproto.h b/sys/fs/nfs/nfsproto.h index a15f93b..5ae2e3d 100644 --- a/sys/fs/nfs/nfsproto.h +++ b/sys/fs/nfs/nfsproto.h @@ -868,15 +868,24 @@ struct nfsv3_sattr { * NFSATTRBIT_WRITEGETATTR0 - bits 0<->31 */ #define NFSATTRBIT_WRITEGETATTR0 \ - (NFSATTRBM_CHANGE | \ + (NFSATTRBM_SUPPORTEDATTRS | \ + NFSATTRBM_TYPE | \ + NFSATTRBM_CHANGE | \ NFSATTRBM_SIZE | \ - NFSATTRBM_FSID) + NFSATTRBM_FSID | \ + NFSATTRBM_FILEID | \ + NFSATTRBM_MAXREAD) /* * NFSATTRBIT_WRITEGETATTR1 - bits 32<->63 */ #define NFSATTRBIT_WRITEGETATTR1 \ - (NFSATTRBM_TIMEMETADATA | \ + (NFSATTRBM_MODE | \ + NFSATTRBM_NUMLINKS | \ + NFSATTRBM_RAWDEV | \ + NFSATTRBM_SPACEUSED | \ + NFSATTRBM_TIMEACCESS | \ + NFSATTRBM_TIMEMETADATA | \ NFSATTRBM_TIMEMODIFY) /* |