nfs4_ntov_map
struct nfs4_ntov_map *ntovp, union nfs4_attr_u *nap, int flags,
if (!(nfs4_ntov_map[i].vbit & vap->va_mask)) {
if (nfs4_ntov_map[i].fbit != FATTR4_ACL_MASK)
if (!(*attrfunc)(vap, vsap, &nfs4_ntov_map[i],
if (!(*attrfunc)(vap, &nfs4_ntov_map[i], &na[attrcnt],
if (nfs4_ntov_map[i].xdr_size != 0) {
xdr_size += nfs4_ntov_map[i].xdr_size;
if ((nfs4_ntov_map[i].nval == FATTR4_TIME_ACCESS_SET ||
nfs4_ntov_map[i].nval == FATTR4_TIME_MODIFY_SET) &&
ASSERT(nfs4_ntov_map[i].vbit == AT_UID ||
nfs4_ntov_map[i].vbit == AT_GID ||
nfs4_ntov_map[i].fbit == FATTR4_ACL_MASK);
if (nfs4_ntov_map[i].vbit == AT_UID) {
} else if (nfs4_ntov_map[i].vbit == AT_GID) {
} else if (nfs4_ntov_map[i].fbit == FATTR4_ACL_MASK) {
amap[attrcnt] = (uint8_t)nfs4_ntov_map[i].nval;
va_mask &= ~nfs4_ntov_map[i].vbit;
if ((*nfs4_ntov_map[amap[i]].xfunc)(&xdr, &na[i]) == FALSE) {
struct nfs4_ntov_map nfs4_ntov_map[] = {
nfs4_ver_fattr4_attr(vattr_t *vap, struct nfs4_ntov_map *ntovp,
uint_t nfs4_ntov_map_size = sizeof (nfs4_ntov_map) /
sizeof (struct nfs4_ntov_map);
if ((breq & nfs4_ntov_map[i].fbit) &&
nfs4_ntov_map[i].vbit)
va_mask |= nfs4_ntov_map[i].vbit;
(void) (*nfs4_ntov_map[*amap].sv_getit)(
xdr_free(nfs4_ntov_map[*amap].xfunc, (caddr_t)na);
if (breq & nfs4_ntov_map[i].fbit) {
if ((*nfs4_ntov_map[i].sv_getit)(
error = (*nfs4_ntov_map[i].sv_getit)(
nfs4_ntov_map[i].fbit;
(uint8_t)nfs4_ntov_map[i].nval;
((*nfs4_ntov_map[k].sv_getit)(
(void) (*nfs4_ntov_map[k].sv_getit)(
xdr_size += xdr_sizeof(nfs4_ntov_map[*amap].xfunc, na);
if (!(*nfs4_ntov_map[*amap].xfunc)(&xdr, na)) {
ASSERT(nfs4_ntov_map[k].nval == k);
vbit = nfs4_ntov_map[k].vbit;
} else if (!(getsb && nfs4_ntov_map[k].vfsstat)) {
error = (*nfs4_ntov_map[k].sv_getit)(NFS4ATTR_VERIT, sargp, na);
*resp |= nfs4_ntov_map[k].fbit;
sargp->vap->va_mask |= nfs4_ntov_map[k].vbit;
if ((*nfs4_ntov_map[k].xfunc)(xdrp, nap)) {
set_later = nfs4_ntov_map[k].vbit || nfs4_ntov_map[k].vfsstat;
if (nfs4_ntov_map[k].fbit != FATTR4_ACL_MASK) {
error = (*nfs4_ntov_map[k].sv_getit)(cmd,
xdr_free(nfs4_ntov_map[k].xfunc,
*resp_bval |= nfs4_ntov_map[k].fbit;
if (!(fattrp->attrmask & nfs4_ntov_map[i].fbit)) {
if ((error = (*nfs4_ntov_map[i].sv_getit)(
error = decode_fattr4_attr(cmd, sargp, nfs4_ntov_map[i].nval,
*amap++ = (uint8_t)nfs4_ntov_map[i].nval;
if (nfs4_ntov_map[i].vfsstat)
error = (*nfs4_ntov_map[FATTR4_ACL].sv_getit)(
if ((*nfs4_ntov_map[i].sv_getit)(NFS4ATTR_SUPPORTED,
rfs4_supported_attrs |= nfs4_ntov_map[i].fbit;
nfs4_ntov_map[0].sv_getit = rfs4_fattr4_supported_attrs;
nfs4_ntov_map[1].sv_getit = rfs4_fattr4_type;
nfs4_ntov_map[2].sv_getit = rfs4_fattr4_fh_expire_type;
nfs4_ntov_map[3].sv_getit = rfs4_fattr4_change;
nfs4_ntov_map[4].sv_getit = rfs4_fattr4_size;
nfs4_ntov_map[5].sv_getit = rfs4_fattr4_link_support;
nfs4_ntov_map[6].sv_getit = rfs4_fattr4_symlink_support;
nfs4_ntov_map[7].sv_getit = rfs4_fattr4_named_attr;
nfs4_ntov_map[8].sv_getit = rfs4_fattr4_fsid;
nfs4_ntov_map[9].sv_getit = rfs4_fattr4_unique_handles;
nfs4_ntov_map[10].sv_getit = rfs4_fattr4_lease_time;
nfs4_ntov_map[11].sv_getit = rfs4_fattr4_rdattr_error;
nfs4_ntov_map[12].sv_getit = rfs4_fattr4_acl;
nfs4_ntov_map[13].sv_getit = rfs4_fattr4_aclsupport;
nfs4_ntov_map[14].sv_getit = rfs4_fattr4_archive;
nfs4_ntov_map[15].sv_getit = rfs4_fattr4_cansettime;
nfs4_ntov_map[16].sv_getit = rfs4_fattr4_case_insensitive;
nfs4_ntov_map[17].sv_getit = rfs4_fattr4_case_preserving;
nfs4_ntov_map[18].sv_getit = rfs4_fattr4_chown_restricted;
nfs4_ntov_map[19].sv_getit = rfs4_fattr4_filehandle;
nfs4_ntov_map[20].sv_getit = rfs4_fattr4_fileid;
nfs4_ntov_map[21].sv_getit = rfs4_fattr4_files_avail;
nfs4_ntov_map[22].sv_getit = rfs4_fattr4_files_free;
nfs4_ntov_map[23].sv_getit = rfs4_fattr4_files_total;
nfs4_ntov_map[24].sv_getit = rfs4_fattr4_fs_locations;
nfs4_ntov_map[25].sv_getit = rfs4_fattr4_hidden;
nfs4_ntov_map[26].sv_getit = rfs4_fattr4_homogeneous;
nfs4_ntov_map[27].sv_getit = rfs4_fattr4_maxfilesize;
nfs4_ntov_map[28].sv_getit = rfs4_fattr4_maxlink;
nfs4_ntov_map[29].sv_getit = rfs4_fattr4_maxname;
nfs4_ntov_map[30].sv_getit = rfs4_fattr4_maxread;
nfs4_ntov_map[31].sv_getit = rfs4_fattr4_maxwrite;
nfs4_ntov_map[32].sv_getit = rfs4_fattr4_mimetype;
nfs4_ntov_map[33].sv_getit = rfs4_fattr4_mode;
nfs4_ntov_map[34].sv_getit = rfs4_fattr4_no_trunc;
nfs4_ntov_map[35].sv_getit = rfs4_fattr4_numlinks;
nfs4_ntov_map[36].sv_getit = rfs4_fattr4_owner;
nfs4_ntov_map[37].sv_getit = rfs4_fattr4_owner_group;
nfs4_ntov_map[38].sv_getit = rfs4_fattr4_quota_avail_hard;
nfs4_ntov_map[39].sv_getit = rfs4_fattr4_quota_avail_soft;
nfs4_ntov_map[40].sv_getit = rfs4_fattr4_quota_used;
nfs4_ntov_map[41].sv_getit = rfs4_fattr4_rawdev;
nfs4_ntov_map[42].sv_getit = rfs4_fattr4_space_avail;
nfs4_ntov_map[43].sv_getit = rfs4_fattr4_space_free;
nfs4_ntov_map[44].sv_getit = rfs4_fattr4_space_total;
nfs4_ntov_map[45].sv_getit = rfs4_fattr4_space_used;
nfs4_ntov_map[46].sv_getit = rfs4_fattr4_system;
nfs4_ntov_map[47].sv_getit = rfs4_fattr4_time_access;
nfs4_ntov_map[48].sv_getit = rfs4_fattr4_time_access_set;
nfs4_ntov_map[49].sv_getit = rfs4_fattr4_time_backup;
nfs4_ntov_map[50].sv_getit = rfs4_fattr4_time_create;
nfs4_ntov_map[51].sv_getit = rfs4_fattr4_time_delta;
nfs4_ntov_map[52].sv_getit = rfs4_fattr4_time_metadata;
nfs4_ntov_map[53].sv_getit = rfs4_fattr4_time_modify;
nfs4_ntov_map[54].sv_getit = rfs4_fattr4_time_modify_set;
nfs4_ntov_map[55].sv_getit = rfs4_fattr4_mounted_on_fileid;
nfs4_ntov_map[56].sv_getit = rfs4_fattr4_suppattr_exclcreat;
extern struct nfs4_ntov_map nfs4_ntov_map[];