static inline u32 * xdr_encode_sattr(u32 *p, struct iattr *attr) { SATTR(p, attr, ATTR_MODE, ia_mode); SATTR(p, attr, ATTR_UID, ia_uid); SATTR(p, attr, ATTR_GID, ia_gid); SATTR(p, attr, ATTR_SIZE, ia_size); if (attr->ia_valid & ATTR_ATIME_SET) { p = xdr_encode_time(p, &attr->ia_atime); } else if (attr->ia_valid & ATTR_ATIME) { p = xdr_encode_current_server_time(p, &attr->ia_atime); } else { *p++ = ~(u32) 0; *p++ = ~(u32) 0; } if (attr->ia_valid & ATTR_MTIME_SET) { p = xdr_encode_time(p, &attr->ia_mtime); } else if (attr->ia_valid & ATTR_MTIME) { p = xdr_encode_current_server_time(p, &attr->ia_mtime); } else { *p++ = ~(u32) 0; *p++ = ~(u32) 0; } return p; }
static inline u32 * xdr_encode_sattr(u32 *p, struct iattr *attr) { SATTR(p, attr, ATTR_MODE, ia_mode); SATTR(p, attr, ATTR_UID, ia_uid); SATTR(p, attr, ATTR_GID, ia_gid); SATTR(p, attr, ATTR_SIZE, ia_size); if (attr->ia_valid & (ATTR_ATIME|ATTR_ATIME_SET)) { *p++ = htonl(attr->ia_atime); *p++ = 0; } else { *p++ = ~(u32) 0; *p++ = ~(u32) 0; } if (attr->ia_valid & (ATTR_MTIME|ATTR_MTIME_SET)) { *p++ = htonl(attr->ia_mtime); *p++ = 0; } else { *p++ = ~(u32) 0; *p++ = ~(u32) 0; } return p; }