Commit eadb8c14 authored by Trond Myklebust's avatar Trond Myklebust

NFS: get rid of some needless code obfuscation in xdr_encode_sattr().

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent cf3fff54
...@@ -146,23 +146,23 @@ xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr) ...@@ -146,23 +146,23 @@ xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr)
return p; return p;
} }
#define SATTR(p, attr, flag, field) \
*p++ = (attr->ia_valid & flag) ? htonl(attr->field) : ~(u32) 0
static inline u32 * static inline u32 *
xdr_encode_sattr(u32 *p, struct iattr *attr) xdr_encode_sattr(u32 *p, struct iattr *attr)
{ {
SATTR(p, attr, ATTR_MODE, ia_mode); const u32 not_set = __constant_htonl(0xFFFFFFFF);
SATTR(p, attr, ATTR_UID, ia_uid);
SATTR(p, attr, ATTR_GID, ia_gid); *p++ = (attr->ia_valid & ATTR_MODE) ? htonl(attr->ia_mode) : not_set;
SATTR(p, attr, ATTR_SIZE, ia_size); *p++ = (attr->ia_valid & ATTR_UID) ? htonl(attr->ia_uid) : not_set;
*p++ = (attr->ia_valid & ATTR_GID) ? htonl(attr->ia_gid) : not_set;
*p++ = (attr->ia_valid & ATTR_SIZE) ? htonl(attr->ia_size) : not_set;
if (attr->ia_valid & ATTR_ATIME_SET) { if (attr->ia_valid & ATTR_ATIME_SET) {
p = xdr_encode_time(p, &attr->ia_atime); p = xdr_encode_time(p, &attr->ia_atime);
} else if (attr->ia_valid & ATTR_ATIME) { } else if (attr->ia_valid & ATTR_ATIME) {
p = xdr_encode_current_server_time(p, &attr->ia_atime); p = xdr_encode_current_server_time(p, &attr->ia_atime);
} else { } else {
*p++ = ~(u32) 0; *p++ = not_set;
*p++ = ~(u32) 0; *p++ = not_set;
} }
if (attr->ia_valid & ATTR_MTIME_SET) { if (attr->ia_valid & ATTR_MTIME_SET) {
...@@ -170,12 +170,11 @@ xdr_encode_sattr(u32 *p, struct iattr *attr) ...@@ -170,12 +170,11 @@ xdr_encode_sattr(u32 *p, struct iattr *attr)
} else if (attr->ia_valid & ATTR_MTIME) { } else if (attr->ia_valid & ATTR_MTIME) {
p = xdr_encode_current_server_time(p, &attr->ia_mtime); p = xdr_encode_current_server_time(p, &attr->ia_mtime);
} else { } else {
*p++ = ~(u32) 0; *p++ = not_set;
*p++ = ~(u32) 0; *p++ = not_set;
} }
return p; return p;
} }
#undef SATTR
/* /*
* NFS encode functions * NFS encode functions
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment