Lines Matching +full:vrs +full:- +full:10
4 * Client-side XDR for NFSv4.
313 #define IMPL_NAME_LIMIT (sizeof(utsname()->sysname) + sizeof(utsname()->release) + \
314 sizeof(utsname()->version) + sizeof(utsname()->machine) + 8)
424 #define encode_layoutget_maxsz (op_encode_hdr_maxsz + 10 + \
1014 while (len > 0 && bitmap[len-1] == 0) in xdr_encode_bitmap4()
1015 len--; in xdr_encode_bitmap4()
1028 while (len > 0 && (bitmap[len-1] == 0 || mask[len-1] == 0)) in mask_bitmap4()
1029 len--; in mask_bitmap4()
1030 for (i = len; i-- > 0;) { in mask_bitmap4()
1041 encode_uint32(xdr, seqid->sequence->counter); in encode_nfs4_seqid()
1055 hdr->replen = 3 + hdr->taglen; in encode_compound_hdr()
1057 WARN_ON_ONCE(hdr->taglen > NFS4_MAXTAGLEN); in encode_compound_hdr()
1058 encode_string(xdr, hdr->taglen, hdr->tag); in encode_compound_hdr()
1060 *p++ = cpu_to_be32(hdr->minorversion); in encode_compound_hdr()
1061 hdr->nops_p = p; in encode_compound_hdr()
1062 *p = cpu_to_be32(hdr->nops); in encode_compound_hdr()
1070 hdr->nops++; in encode_op_hdr()
1071 hdr->replen += replen; in encode_op_hdr()
1076 WARN_ON_ONCE(hdr->nops > NFS4_MAX_OPS); in encode_nops()
1077 *hdr->nops_p = htonl(hdr->nops); in encode_nops()
1083 encode_opaque_fixed(xdr, stateid->data, NFS4_STATEID_SIZE); in encode_nfs4_stateid()
1088 encode_opaque_fixed(xdr, verf->data, NFS4_VERIFIER_SIZE); in encode_nfs4_verifier()
1094 p = xdr_encode_hyper(p, t->tv_sec); in xdr_encode_nfstime4()
1095 *p++ = cpu_to_be32(t->tv_nsec); in xdr_encode_nfstime4()
1116 if ((iap->ia_valid & ATTR_SIZE) && (attrmask[0] & FATTR4_WORD0_SIZE)) { in encode_attrs()
1120 if (iap->ia_valid & ATTR_MODE) { in encode_attrs()
1129 if ((iap->ia_valid & ATTR_UID) && (attrmask[1] & FATTR4_WORD1_OWNER)) { in encode_attrs()
1130 owner_namelen = nfs_map_uid_to_name(server, iap->ia_uid, owner_name, IDMAP_NAMESZ); in encode_attrs()
1133 from_kuid(&init_user_ns, iap->ia_uid)); in encode_attrs()
1136 owner_namelen = sizeof("nobody") - 1; in encode_attrs()
1142 if ((iap->ia_valid & ATTR_GID) && in encode_attrs()
1144 owner_grouplen = nfs_map_gid_to_group(server, iap->ia_gid, owner_group, IDMAP_NAMESZ); in encode_attrs()
1147 from_kgid(&init_user_ns, iap->ia_gid)); in encode_attrs()
1149 owner_grouplen = sizeof("nobody") - 1; in encode_attrs()
1156 if (iap->ia_valid & ATTR_ATIME_SET) { in encode_attrs()
1159 } else if (iap->ia_valid & ATTR_ATIME) { in encode_attrs()
1165 if (iap->ia_valid & ATTR_MTIME_SET) { in encode_attrs()
1168 } else if (iap->ia_valid & ATTR_MTIME) { in encode_attrs()
1175 len += 4 + 4 + 4 + (XDR_QUADLEN(label->len) << 2); in encode_attrs()
1183 p = xdr_encode_hyper(p, iap->ia_size); in encode_attrs()
1185 *p++ = cpu_to_be32(iap->ia_mode & S_IALLUGO); in encode_attrs()
1191 if (iap->ia_valid & ATTR_ATIME_SET) { in encode_attrs()
1193 p = xdr_encode_nfstime4(p, &iap->ia_atime); in encode_attrs()
1198 if (iap->ia_valid & ATTR_MTIME_SET) { in encode_attrs()
1200 p = xdr_encode_nfstime4(p, &iap->ia_mtime); in encode_attrs()
1205 *p++ = cpu_to_be32(label->lfs); in encode_attrs()
1206 *p++ = cpu_to_be32(label->pi); in encode_attrs()
1207 *p++ = cpu_to_be32(label->len); in encode_attrs()
1208 p = xdr_encode_opaque_fixed(p, label->label, label->len); in encode_attrs()
1211 *p++ = cpu_to_be32(iap->ia_mode & S_IALLUGO); in encode_attrs()
1227 encode_nfs4_seqid(xdr, arg->seqid); in encode_close()
1228 encode_nfs4_stateid(xdr, &arg->stateid); in encode_close()
1237 p = xdr_encode_hyper(p, args->offset); in encode_commit()
1238 *p = cpu_to_be32(args->count); in encode_commit()
1246 encode_uint32(xdr, create->ftype); in encode_create()
1248 switch (create->ftype) { in encode_create()
1251 *p = cpu_to_be32(create->u.symlink.len); in encode_create()
1252 xdr_write_pages(xdr, create->u.symlink.pages, 0, in encode_create()
1253 create->u.symlink.len); in encode_create()
1254 xdr->buf->flags |= XDRBUF_WRITE; in encode_create()
1259 *p++ = cpu_to_be32(create->u.device.specdata1); in encode_create()
1260 *p = cpu_to_be32(create->u.device.specdata2); in encode_create()
1267 encode_string(xdr, create->name->len, create->name->name); in encode_create()
1268 encode_attrs(xdr, create->attrs, create->label, &create->umask, in encode_create()
1269 create->server, create->server->attr_bitmask); in encode_create()
1321 encode_string(xdr, name->len, name->name); in encode_link()
1333 if (fl->fl_end == OFFSET_MAX) in nfs4_lock_length()
1335 return fl->fl_end - fl->fl_start + 1; in nfs4_lock_length()
1343 p = xdr_encode_hyper(p, lowner->clientid); in encode_lockowner()
1346 *p++ = cpu_to_be32(lowner->s_dev); in encode_lockowner()
1347 xdr_encode_hyper(p, lowner->id); in encode_lockowner()
1360 *p++ = cpu_to_be32(nfs4_lock_type(args->fl, args->block)); in encode_lock()
1361 *p++ = cpu_to_be32(args->reclaim); in encode_lock()
1362 p = xdr_encode_hyper(p, args->fl->fl_start); in encode_lock()
1363 p = xdr_encode_hyper(p, nfs4_lock_length(args->fl)); in encode_lock()
1364 *p = cpu_to_be32(args->new_lock_owner); in encode_lock()
1365 if (args->new_lock_owner){ in encode_lock()
1366 encode_nfs4_seqid(xdr, args->open_seqid); in encode_lock()
1367 encode_nfs4_stateid(xdr, &args->open_stateid); in encode_lock()
1368 encode_nfs4_seqid(xdr, args->lock_seqid); in encode_lock()
1369 encode_lockowner(xdr, &args->lock_owner); in encode_lock()
1372 encode_nfs4_stateid(xdr, &args->lock_stateid); in encode_lock()
1373 encode_nfs4_seqid(xdr, args->lock_seqid); in encode_lock()
1383 *p++ = cpu_to_be32(nfs4_lock_type(args->fl, 0)); in encode_lockt()
1384 p = xdr_encode_hyper(p, args->fl->fl_start); in encode_lockt()
1385 p = xdr_encode_hyper(p, nfs4_lock_length(args->fl)); in encode_lockt()
1386 encode_lockowner(xdr, &args->lock_owner); in encode_lockt()
1394 encode_uint32(xdr, nfs4_lock_type(args->fl, 0)); in encode_locku()
1395 encode_nfs4_seqid(xdr, args->seqid); in encode_locku()
1396 encode_nfs4_stateid(xdr, &args->stateid); in encode_locku()
1398 p = xdr_encode_hyper(p, args->fl->fl_start); in encode_locku()
1399 xdr_encode_hyper(p, nfs4_lock_length(args->fl)); in encode_locku()
1411 encode_string(xdr, name->len, name->name); in encode_lookup()
1435 encode_nfs4_seqid(xdr, arg->seqid); in encode_openhdr()
1436 encode_share_access(xdr, arg->share_access); in encode_openhdr()
1438 p = xdr_encode_hyper(p, arg->clientid); in encode_openhdr()
1441 *p++ = cpu_to_be32(arg->server->s_dev); in encode_openhdr()
1442 p = xdr_encode_hyper(p, arg->id.uniquifier); in encode_openhdr()
1443 xdr_encode_hyper(p, arg->id.create_time); in encode_openhdr()
1451 switch(arg->createmode) { in encode_createmode()
1454 encode_attrs(xdr, arg->u.attrs, arg->label, &arg->umask, in encode_createmode()
1455 arg->server, arg->server->attr_bitmask); in encode_createmode()
1459 encode_attrs(xdr, arg->u.attrs, arg->label, &arg->umask, in encode_createmode()
1460 arg->server, arg->server->attr_bitmask); in encode_createmode()
1464 encode_nfs4_verifier(xdr, &arg->u.verifier); in encode_createmode()
1468 encode_nfs4_verifier(xdr, &arg->u.verifier); in encode_createmode()
1469 encode_attrs(xdr, arg->u.attrs, arg->label, &arg->umask, in encode_createmode()
1470 arg->server, arg->server->exclcreat_bitmask); in encode_createmode()
1479 switch (arg->open_flags & O_CREAT) { in encode_opentype()
1513 encode_string(xdr, name->len, name->name); in encode_claim_null()
1532 encode_string(xdr, name->len, name->name); in encode_claim_delegate_cur()
1557 switch (arg->claim) { in encode_open()
1559 encode_claim_null(xdr, arg->name); in encode_open()
1562 encode_claim_previous(xdr, arg->u.delegation_type); in encode_open()
1565 encode_claim_delegate_cur(xdr, arg->name, &arg->u.delegation); in encode_open()
1571 encode_claim_delegate_cur_fh(xdr, &arg->u.delegation); in encode_open()
1581 encode_nfs4_stateid(xdr, arg->stateid); in encode_open_confirm()
1582 encode_nfs4_seqid(xdr, arg->seqid); in encode_open_confirm()
1588 encode_nfs4_stateid(xdr, &arg->stateid); in encode_open_downgrade()
1589 encode_nfs4_seqid(xdr, arg->seqid); in encode_open_downgrade()
1590 encode_share_access(xdr, arg->share_access); in encode_open_downgrade()
1597 encode_string(xdr, fh->size, fh->data); in encode_putfh()
1611 encode_nfs4_stateid(xdr, &args->stateid); in encode_read()
1614 p = xdr_encode_hyper(p, args->offset); in encode_read()
1615 *p = cpu_to_be32(args->count); in encode_read()
1625 uint32_t dircount = readdir->count; in encode_readdir()
1626 uint32_t maxcount = readdir->count; in encode_readdir()
1631 if (readdir->plus) { in encode_readdir()
1650 if (!(readdir->bitmask[1] & FATTR4_WORD1_MOUNTED_ON_FILEID)) in encode_readdir()
1653 attrs[i] &= readdir->bitmask[i]; in encode_readdir()
1659 encode_uint64(xdr, readdir->cookie); in encode_readdir()
1660 encode_nfs4_verifier(xdr, &readdir->verifier); in encode_readdir()
1667 memcpy(verf, readdir->verifier.data, sizeof(verf)); in encode_readdir()
1671 (unsigned long long)readdir->cookie, in encode_readdir()
1673 attrs[0] & readdir->bitmask[0], in encode_readdir()
1674 attrs[1] & readdir->bitmask[1], in encode_readdir()
1675 attrs[2] & readdir->bitmask[2]); in encode_readdir()
1686 encode_string(xdr, name->len, name->name); in encode_remove()
1692 encode_string(xdr, oldname->len, oldname->name); in encode_rename()
1693 encode_string(xdr, newname->len, newname->name); in encode_rename()
1732 nfs4_acltype_to_bitmap(arg->acl_type, bitmap); in encode_setacl()
1737 encode_uint32(xdr, arg->acl_len); in encode_setacl()
1738 xdr_write_pages(xdr, arg->acl_pages, 0, arg->acl_len); in encode_setacl()
1750 encode_nfs4_stateid(xdr, &arg->stateid); in encode_setattr()
1751 encode_attrs(xdr, arg->iap, arg->label, NULL, server, in encode_setattr()
1752 server->attr_bitmask); in encode_setattr()
1766 if (attr->atime_set) { in encode_delegattr()
1770 if (attr->mtime_set) { in encode_delegattr()
1777 p = xdr_encode_nfstime4(p, &attr->atime); in encode_delegattr()
1779 p = xdr_encode_nfstime4(p, &attr->mtime); in encode_delegattr()
1787 encode_nfs4_verifier(xdr, setclientid->sc_verifier); in encode_setclientid()
1789 encode_string(xdr, strlen(setclientid->sc_clnt->cl_owner_id), in encode_setclientid()
1790 setclientid->sc_clnt->cl_owner_id); in encode_setclientid()
1792 *p = cpu_to_be32(setclientid->sc_prog); in encode_setclientid()
1793 encode_string(xdr, setclientid->sc_netid_len, setclientid->sc_netid); in encode_setclientid()
1794 encode_string(xdr, setclientid->sc_uaddr_len, setclientid->sc_uaddr); in encode_setclientid()
1796 *p = cpu_to_be32(setclientid->sc_clnt->cl_cb_ident); in encode_setclientid()
1803 encode_uint64(xdr, arg->clientid); in encode_setclientid_confirm()
1804 encode_nfs4_verifier(xdr, &arg->confirm); in encode_setclientid_confirm()
1813 encode_nfs4_stateid(xdr, &args->stateid); in encode_write()
1816 p = xdr_encode_hyper(p, args->offset); in encode_write()
1817 *p++ = cpu_to_be32(args->stable); in encode_write()
1818 *p = cpu_to_be32(args->count); in encode_write()
1820 xdr_write_pages(xdr, args->pages, args->pgbase, args->count); in encode_write()
1832 encode_string(xdr, name->len, name->name); in encode_secinfo()
1845 encode_opaque_fixed(xdr, args->sessionid.data, NFS4_MAX_SESSIONID_LEN); in encode_bind_conn_to_session()
1847 *p++ = cpu_to_be32(args->dir); in encode_bind_conn_to_session()
1848 *p = (args->use_conn_in_rdma_mode) ? cpu_to_be32(1) : cpu_to_be32(0); in encode_bind_conn_to_session()
1856 encode_uint32(xdr, op_map->u.words[i]); in encode_op_map()
1868 encode_nfs4_verifier(xdr, &args->verifier); in encode_exchange_id()
1870 encode_string(xdr, strlen(args->client->cl_owner_id), in encode_exchange_id()
1871 args->client->cl_owner_id); in encode_exchange_id()
1873 encode_uint32(xdr, args->flags); in encode_exchange_id()
1874 encode_uint32(xdr, args->state_protect.how); in encode_exchange_id()
1876 switch (args->state_protect.how) { in encode_exchange_id()
1880 encode_op_map(xdr, &args->state_protect.enforce); in encode_exchange_id()
1881 encode_op_map(xdr, &args->state_protect.allow); in encode_exchange_id()
1893 utsname()->sysname, utsname()->release, in encode_exchange_id()
1894 utsname()->version, utsname()->machine); in encode_exchange_id()
1900 sizeof(CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN) - 1, in encode_exchange_id()
1903 /* just send zeros for nii_date - the date is in nii_name */ in encode_exchange_id()
1916 struct nfs_client *clp = args->client; in encode_create_session()
1917 struct rpc_clnt *clnt = clp->cl_rpcclient; in encode_create_session()
1918 struct nfs_net *nn = net_generic(clp->cl_net, nfs_net_id); in encode_create_session()
1922 * Assumes OPEN is the biggest non-idempotent compound. in encode_create_session()
1929 p = reserve_space(xdr, 16 + 2*28 + 20 + clnt->cl_nodelen + 12); in encode_create_session()
1930 p = xdr_encode_hyper(p, args->clientid); in encode_create_session()
1931 *p++ = cpu_to_be32(args->seqid); /*Sequence id */ in encode_create_session()
1932 *p++ = cpu_to_be32(args->flags); /*flags */ in encode_create_session()
1936 *p++ = cpu_to_be32(args->fc_attrs.max_rqst_sz); /* max req size */ in encode_create_session()
1937 *p++ = cpu_to_be32(args->fc_attrs.max_resp_sz); /* max resp size */ in encode_create_session()
1939 *p++ = cpu_to_be32(args->fc_attrs.max_ops); /* max operations */ in encode_create_session()
1940 *p++ = cpu_to_be32(args->fc_attrs.max_reqs); /* max requests */ in encode_create_session()
1945 *p++ = cpu_to_be32(args->bc_attrs.max_rqst_sz); /* max req size */ in encode_create_session()
1946 *p++ = cpu_to_be32(args->bc_attrs.max_resp_sz); /* max resp size */ in encode_create_session()
1947 *p++ = cpu_to_be32(args->bc_attrs.max_resp_sz_cached); /* Max resp sz cached */ in encode_create_session()
1948 *p++ = cpu_to_be32(args->bc_attrs.max_ops); /* max operations */ in encode_create_session()
1949 *p++ = cpu_to_be32(args->bc_attrs.max_reqs); /* max requests */ in encode_create_session()
1952 *p++ = cpu_to_be32(args->cb_program); /* cb_program */ in encode_create_session()
1957 *p++ = cpu_to_be32(ktime_to_ns(nn->boot_time)); /* stamp */ in encode_create_session()
1958 p = xdr_encode_array(p, clnt->cl_nodename, clnt->cl_nodelen); in encode_create_session()
1969 encode_opaque_fixed(xdr, session->sess_id.data, NFS4_MAX_SESSIONID_LEN); in encode_destroy_session()
1985 encode_uint32(xdr, args->one_fs); in encode_reclaim_complete()
1996 struct nfs4_slot *slot = args->sa_slot; in encode_sequence()
1999 tp = slot->table; in encode_sequence()
2000 session = tp->session; in encode_sequence()
2012 ((u32 *)session->sess_id.data)[0], in encode_sequence()
2013 ((u32 *)session->sess_id.data)[1], in encode_sequence()
2014 ((u32 *)session->sess_id.data)[2], in encode_sequence()
2015 ((u32 *)session->sess_id.data)[3], in encode_sequence()
2016 slot->seq_nr, slot->slot_nr, in encode_sequence()
2017 tp->highest_used_slotid, args->sa_cache_this); in encode_sequence()
2019 p = xdr_encode_opaque_fixed(p, session->sess_id.data, NFS4_MAX_SESSIONID_LEN); in encode_sequence()
2020 *p++ = cpu_to_be32(slot->seq_nr); in encode_sequence()
2021 *p++ = cpu_to_be32(slot->slot_nr); in encode_sequence()
2022 *p++ = cpu_to_be32(tp->highest_used_slotid); in encode_sequence()
2023 *p = cpu_to_be32(args->sa_cache_this); in encode_sequence()
2064 p = xdr_encode_opaque_fixed(p, args->pdev->dev_id.data, in encode_getdeviceinfo()
2066 *p++ = cpu_to_be32(args->pdev->layout_type); in encode_getdeviceinfo()
2067 *p++ = cpu_to_be32(args->pdev->maxcount); /* gdia_maxcount */ in encode_getdeviceinfo()
2071 *p++ = cpu_to_be32(args->notify_types); in encode_getdeviceinfo()
2084 *p++ = cpu_to_be32(args->type); in encode_layoutget()
2085 *p++ = cpu_to_be32(args->range.iomode); in encode_layoutget()
2086 p = xdr_encode_hyper(p, args->range.offset); in encode_layoutget()
2087 p = xdr_encode_hyper(p, args->range.length); in encode_layoutget()
2088 p = xdr_encode_hyper(p, args->minlength); in encode_layoutget()
2089 encode_nfs4_stateid(xdr, &args->stateid); in encode_layoutget()
2090 encode_uint32(xdr, args->maxcount); in encode_layoutget()
2094 args->type, in encode_layoutget()
2095 args->range.iomode, in encode_layoutget()
2096 (unsigned long)args->range.offset, in encode_layoutget()
2097 (unsigned long)args->range.length, in encode_layoutget()
2098 args->maxcount); in encode_layoutget()
2109 dprintk("%s: lbw: %llu type: %d\n", __func__, args->lastbytewritten, in encode_layoutcommit()
2110 NFS_SERVER(args->inode)->pnfs_curr_ld->id); in encode_layoutcommit()
2116 p = xdr_encode_hyper(p, args->lastbytewritten + 1); /* length */ in encode_layoutcommit()
2118 encode_nfs4_stateid(xdr, &args->stateid); in encode_layoutcommit()
2119 if (args->lastbytewritten != U64_MAX) { in encode_layoutcommit()
2122 p = xdr_encode_hyper(p, args->lastbytewritten); in encode_layoutcommit()
2128 *p++ = cpu_to_be32(NFS_SERVER(args->inode)->pnfs_curr_ld->id);/* type */ in encode_layoutcommit()
2130 encode_uint32(xdr, args->layoutupdate_len); in encode_layoutcommit()
2131 if (args->layoutupdate_pages) in encode_layoutcommit()
2132 xdr_write_pages(xdr, args->layoutupdate_pages, 0, in encode_layoutcommit()
2133 args->layoutupdate_len); in encode_layoutcommit()
2148 *p++ = cpu_to_be32(args->layout_type); in encode_layoutreturn()
2149 *p++ = cpu_to_be32(args->range.iomode); in encode_layoutreturn()
2152 p = xdr_encode_hyper(p, args->range.offset); in encode_layoutreturn()
2153 p = xdr_encode_hyper(p, args->range.length); in encode_layoutreturn()
2154 spin_lock(&args->inode->i_lock); in encode_layoutreturn()
2155 encode_nfs4_stateid(xdr, &args->stateid); in encode_layoutreturn()
2156 spin_unlock(&args->inode->i_lock); in encode_layoutreturn()
2157 if (args->ld_private->ops && args->ld_private->ops->encode) in encode_layoutreturn()
2158 args->ld_private->ops->encode(xdr, args, args->ld_private); in encode_layoutreturn()
2169 encode_uint32(xdr, args->style); in encode_secinfo_no_name()
2179 encode_nfs4_stateid(xdr, &args->stateid); in encode_test_stateid()
2187 encode_nfs4_stateid(xdr, &args->stateid); in encode_free_stateid()
2217 struct nfs4_session *session = args->sa_slot->table->session; in nfs4_xdr_minorversion()
2219 return session->clp->cl_mvops->minor_version; in nfs4_xdr_minorversion()
2232 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_access()
2236 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_access()
2237 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_access()
2238 encode_access(xdr, args->access, &hdr); in nfs4_xdr_enc_access()
2239 if (args->bitmask) in nfs4_xdr_enc_access()
2240 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_access()
2252 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_lookup()
2256 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_lookup()
2257 encode_putfh(xdr, args->dir_fh, &hdr); in nfs4_xdr_enc_lookup()
2258 encode_lookup(xdr, args->name, &hdr); in nfs4_xdr_enc_lookup()
2260 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_lookup()
2272 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_lookupp()
2276 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_lookupp()
2277 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_lookupp()
2280 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_lookupp()
2293 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_lookup_root()
2297 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_lookup_root()
2300 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_lookup_root()
2312 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_remove()
2316 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_remove()
2317 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_remove()
2318 encode_remove(xdr, &args->name, &hdr); in nfs4_xdr_enc_remove()
2330 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_rename()
2334 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_rename()
2335 encode_putfh(xdr, args->old_dir, &hdr); in nfs4_xdr_enc_rename()
2337 encode_putfh(xdr, args->new_dir, &hdr); in nfs4_xdr_enc_rename()
2338 encode_rename(xdr, args->old_name, args->new_name, &hdr); in nfs4_xdr_enc_rename()
2350 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_link()
2354 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_link()
2355 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_link()
2357 encode_putfh(xdr, args->dir_fh, &hdr); in nfs4_xdr_enc_link()
2358 encode_link(xdr, args->name, &hdr); in nfs4_xdr_enc_link()
2360 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_link()
2372 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_create()
2376 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_create()
2377 encode_putfh(xdr, args->dir_fh, &hdr); in nfs4_xdr_enc_create()
2380 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_create()
2403 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_getattr()
2407 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_getattr()
2408 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_getattr()
2409 if (args->get_dir_deleg) in nfs4_xdr_enc_getattr()
2411 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_getattr()
2423 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_close()
2427 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_close()
2428 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_close()
2429 if (args->lr_args) in nfs4_xdr_enc_close()
2430 encode_layoutreturn(xdr, args->lr_args, &hdr); in nfs4_xdr_enc_close()
2431 if (args->bitmask != NULL) in nfs4_xdr_enc_close()
2432 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_close()
2445 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_open()
2449 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_open()
2450 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_open()
2453 if (args->access) in nfs4_xdr_enc_open()
2454 encode_access(xdr, args->access, &hdr); in nfs4_xdr_enc_open()
2455 encode_getfattr_open(xdr, args->bitmask, args->open_bitmap, &hdr); in nfs4_xdr_enc_open()
2456 if (args->lg_args) { in nfs4_xdr_enc_open()
2457 encode_layoutget(xdr, args->lg_args, &hdr); in nfs4_xdr_enc_open()
2458 rpc_prepare_reply_pages(req, args->lg_args->layout.pages, 0, in nfs4_xdr_enc_open()
2459 args->lg_args->layout.pglen, in nfs4_xdr_enc_open()
2460 hdr.replen - pagepad_maxsz); in nfs4_xdr_enc_open()
2478 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_open_confirm()
2492 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_open_noattr()
2496 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_open_noattr()
2497 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_open_noattr()
2499 if (args->access) in nfs4_xdr_enc_open_noattr()
2500 encode_access(xdr, args->access, &hdr); in nfs4_xdr_enc_open_noattr()
2501 encode_getfattr_open(xdr, args->bitmask, args->open_bitmap, &hdr); in nfs4_xdr_enc_open_noattr()
2502 if (args->lg_args) { in nfs4_xdr_enc_open_noattr()
2503 encode_layoutget(xdr, args->lg_args, &hdr); in nfs4_xdr_enc_open_noattr()
2504 rpc_prepare_reply_pages(req, args->lg_args->layout.pages, 0, in nfs4_xdr_enc_open_noattr()
2505 args->lg_args->layout.pglen, in nfs4_xdr_enc_open_noattr()
2506 hdr.replen - pagepad_maxsz); in nfs4_xdr_enc_open_noattr()
2520 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_open_downgrade()
2524 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_open_downgrade()
2525 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_open_downgrade()
2526 if (args->lr_args) in nfs4_xdr_enc_open_downgrade()
2527 encode_layoutreturn(xdr, args->lr_args, &hdr); in nfs4_xdr_enc_open_downgrade()
2540 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_lock()
2544 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_lock()
2545 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_lock()
2558 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_lockt()
2562 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_lockt()
2563 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_lockt()
2576 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_locku()
2580 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_locku()
2581 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_locku()
2596 encode_release_lockowner(xdr, &args->lock_owner, &hdr); in nfs4_xdr_enc_release_lockowner()
2608 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_readlink()
2612 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_readlink()
2613 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_readlink()
2616 rpc_prepare_reply_pages(req, args->pages, args->pgbase, in nfs4_xdr_enc_readlink()
2617 args->pglen, hdr.replen - pagepad_maxsz); in nfs4_xdr_enc_readlink()
2629 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_readdir()
2633 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_readdir()
2634 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_readdir()
2637 rpc_prepare_reply_pages(req, args->pages, args->pgbase, in nfs4_xdr_enc_readdir()
2638 args->count, hdr.replen - pagepad_maxsz); in nfs4_xdr_enc_readdir()
2650 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_read()
2654 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_read()
2655 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_read()
2658 rpc_prepare_reply_pages(req, args->pages, args->pgbase, in nfs4_xdr_enc_read()
2659 args->count, hdr.replen - pagepad_maxsz); in nfs4_xdr_enc_read()
2660 req->rq_rcv_buf.flags |= XDRBUF_READ; in nfs4_xdr_enc_read()
2672 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_setattr()
2676 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_setattr()
2677 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_setattr()
2678 encode_setattr(xdr, args, args->server, &hdr); in nfs4_xdr_enc_setattr()
2679 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_setattr()
2691 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_getacl()
2696 nfs4_acltype_to_bitmap(args->acl_type, nfs4_acl_bitmap); in nfs4_xdr_enc_getacl()
2699 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_getacl()
2700 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_getacl()
2705 rpc_prepare_reply_pages(req, args->acl_pages, 0, in nfs4_xdr_enc_getacl()
2706 args->acl_len, replen); in nfs4_xdr_enc_getacl()
2718 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_write()
2722 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_write()
2723 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_write()
2725 req->rq_snd_buf.flags |= XDRBUF_WRITE; in nfs4_xdr_enc_write()
2726 if (args->bitmask) in nfs4_xdr_enc_write()
2727 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_write()
2739 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_commit()
2743 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_commit()
2744 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_commit()
2757 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_fsinfo()
2761 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_fsinfo()
2762 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_fsinfo()
2763 encode_fsinfo(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_fsinfo()
2775 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_pathconf()
2779 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_pathconf()
2780 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_pathconf()
2781 encode_getattr(xdr, nfs4_pathconf_bitmap, args->bitmask, in nfs4_xdr_enc_pathconf()
2794 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_statfs()
2798 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_statfs()
2799 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_statfs()
2800 encode_getattr(xdr, nfs4_statfs_bitmap, args->bitmask, in nfs4_xdr_enc_statfs()
2813 const u32 *bitmask = args->bitmask; in nfs4_xdr_enc_server_caps()
2815 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_server_caps()
2819 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_server_caps()
2820 encode_putfh(xdr, args->fhandle, &hdr); in nfs4_xdr_enc_server_caps()
2838 encode_renew(xdr, clp->cl_clientid, &hdr); in nfs4_xdr_enc_renew()
2885 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_delegreturn()
2889 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_delegreturn()
2890 encode_putfh(xdr, args->fhandle, &hdr); in nfs4_xdr_enc_delegreturn()
2891 if (args->lr_args) in nfs4_xdr_enc_delegreturn()
2892 encode_layoutreturn(xdr, args->lr_args, &hdr); in nfs4_xdr_enc_delegreturn()
2893 if (args->sattr_args) in nfs4_xdr_enc_delegreturn()
2894 encode_delegattr(xdr, args->stateid, args->sattr_args, &hdr); in nfs4_xdr_enc_delegreturn()
2895 if (args->bitmask) in nfs4_xdr_enc_delegreturn()
2896 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_delegreturn()
2897 encode_delegreturn(xdr, args->stateid, &hdr); in nfs4_xdr_enc_delegreturn()
2910 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_fs_locations()
2915 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_fs_locations()
2916 if (args->migration) { in nfs4_xdr_enc_fs_locations()
2917 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_fs_locations()
2919 encode_fs_locations(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_fs_locations()
2920 if (args->renew) in nfs4_xdr_enc_fs_locations()
2921 encode_renew(xdr, args->clientid, &hdr); in nfs4_xdr_enc_fs_locations()
2923 encode_putfh(xdr, args->dir_fh, &hdr); in nfs4_xdr_enc_fs_locations()
2924 encode_lookup(xdr, args->name, &hdr); in nfs4_xdr_enc_fs_locations()
2926 encode_fs_locations(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_fs_locations()
2929 rpc_prepare_reply_pages(req, (struct page **)&args->page, 0, in nfs4_xdr_enc_fs_locations()
2943 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_secinfo()
2947 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_secinfo()
2948 encode_putfh(xdr, args->dir_fh, &hdr); in nfs4_xdr_enc_secinfo()
2949 encode_secinfo(xdr, args->name, &hdr); in nfs4_xdr_enc_secinfo()
2962 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_fsid_present()
2966 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_fsid_present()
2967 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_fsid_present()
2969 if (args->renew) in nfs4_xdr_enc_fsid_present()
2970 encode_renew(xdr, args->clientid, &hdr); in nfs4_xdr_enc_fsid_present()
2984 .minorversion = args->client->cl_mvops->minor_version, in nfs4_xdr_enc_bind_conn_to_session()
3001 .minorversion = args->client->cl_mvops->minor_version, in nfs4_xdr_enc_exchange_id()
3018 .minorversion = args->client->cl_mvops->minor_version, in nfs4_xdr_enc_create_session()
3035 .minorversion = session->clp->cl_mvops->minor_version, in nfs4_xdr_enc_destroy_session()
3052 .minorversion = clp->cl_mvops->minor_version, in nfs4_xdr_enc_destroy_clientid()
3056 encode_destroy_clientid(xdr, clp->cl_clientid, &hdr); in nfs4_xdr_enc_destroy_clientid()
3087 .minorversion = nfs4_xdr_minorversion(&args->la_seq_args), in nfs4_xdr_enc_get_lease_time()
3092 encode_sequence(xdr, &args->la_seq_args, &hdr); in nfs4_xdr_enc_get_lease_time()
3109 .minorversion = nfs4_xdr_minorversion(&args->seq_args) in nfs4_xdr_enc_reclaim_complete()
3113 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_reclaim_complete()
3127 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_getdeviceinfo()
3132 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_getdeviceinfo()
3140 rpc_prepare_reply_pages(req, args->pdev->pages, args->pdev->pgbase, in nfs4_xdr_enc_getdeviceinfo()
3141 args->pdev->pglen, replen); in nfs4_xdr_enc_getdeviceinfo()
3154 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_layoutget()
3158 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_layoutget()
3159 encode_putfh(xdr, NFS_FH(args->inode), &hdr); in nfs4_xdr_enc_layoutget()
3162 rpc_prepare_reply_pages(req, args->layout.pages, 0, in nfs4_xdr_enc_layoutget()
3163 args->layout.pglen, hdr.replen - pagepad_maxsz); in nfs4_xdr_enc_layoutget()
3178 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_layoutcommit()
3182 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_layoutcommit()
3183 encode_putfh(xdr, NFS_FH(args->inode), &hdr); in nfs4_xdr_enc_layoutcommit()
3184 encode_layoutcommit(xdr, data->args.inode, args, &hdr); in nfs4_xdr_enc_layoutcommit()
3185 encode_getfattr(xdr, args->bitmask, &hdr); in nfs4_xdr_enc_layoutcommit()
3198 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_layoutreturn()
3202 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_layoutreturn()
3203 encode_putfh(xdr, NFS_FH(args->inode), &hdr); in nfs4_xdr_enc_layoutreturn()
3217 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_secinfo_no_name()
3221 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_secinfo_no_name()
3236 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_test_stateid()
3240 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_test_stateid()
3254 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_free_stateid()
3258 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_free_stateid()
3269 return -EIO; in decode_opaque_inline()
3281 return -EIO; in decode_compound_hdr()
3282 hdr->status = tmp; in decode_compound_hdr()
3286 return -EIO; in decode_compound_hdr()
3287 hdr->taglen = ret; in decode_compound_hdr()
3288 hdr->tag = ptr; in decode_compound_hdr()
3291 return -EIO; in decode_compound_hdr()
3292 hdr->nops = tmp; in decode_compound_hdr()
3293 if (unlikely(hdr->nops < 1)) in decode_compound_hdr()
3294 return nfs4_stat_to_errno(hdr->status); in decode_compound_hdr()
3322 *nfs_retval = -EREMOTEIO; in __decode_op_hdr()
3325 *nfs_retval = -EIO; in __decode_op_hdr()
3346 return -EIO; in decode_ace()
3358 if (ret != -EMSGSIZE) in decode_bitmap4()
3359 return -EIO; in decode_bitmap4()
3376 return -EIO; in decode_attr_length()
3403 if (unlikely(bitmap[0] & (FATTR4_WORD0_TYPE - 1U))) in decode_attr_type()
3404 return -EIO; in decode_attr_type()
3408 return -EIO; in decode_attr_type()
3412 return -EIO; in decode_attr_type()
3427 if (unlikely(bitmap[0] & (FATTR4_WORD0_FH_EXPIRE_TYPE - 1U))) in decode_attr_fh_expire_type()
3428 return -EIO; in decode_attr_fh_expire_type()
3432 return -EIO; in decode_attr_fh_expire_type()
3446 if (unlikely(bitmap[0] & (FATTR4_WORD0_CHANGE - 1U))) in decode_attr_change()
3447 return -EIO; in decode_attr_change()
3451 return -EIO; in decode_attr_change()
3467 if (unlikely(bitmap[0] & (FATTR4_WORD0_SIZE - 1U))) in decode_attr_size()
3468 return -EIO; in decode_attr_size()
3472 return -EIO; in decode_attr_size()
3486 if (unlikely(bitmap[0] & (FATTR4_WORD0_LINK_SUPPORT - 1U))) in decode_attr_link_support()
3487 return -EIO; in decode_attr_link_support()
3491 return -EIO; in decode_attr_link_support()
3504 if (unlikely(bitmap[0] & (FATTR4_WORD0_SYMLINK_SUPPORT - 1U))) in decode_attr_symlink_support()
3505 return -EIO; in decode_attr_symlink_support()
3509 return -EIO; in decode_attr_symlink_support()
3522 fsid->major = 0; in decode_attr_fsid()
3523 fsid->minor = 0; in decode_attr_fsid()
3524 if (unlikely(bitmap[0] & (FATTR4_WORD0_FSID - 1U))) in decode_attr_fsid()
3525 return -EIO; in decode_attr_fsid()
3529 return -EIO; in decode_attr_fsid()
3530 p = xdr_decode_hyper(p, &fsid->major); in decode_attr_fsid()
3531 xdr_decode_hyper(p, &fsid->minor); in decode_attr_fsid()
3536 (unsigned long long)fsid->major, in decode_attr_fsid()
3537 (unsigned long long)fsid->minor); in decode_attr_fsid()
3546 if (unlikely(bitmap[0] & (FATTR4_WORD0_LEASE_TIME - 1U))) in decode_attr_lease_time()
3547 return -EIO; in decode_attr_lease_time()
3551 return -EIO; in decode_attr_lease_time()
3563 if (unlikely(bitmap[0] & (FATTR4_WORD0_RDATTR_ERROR - 1U))) in decode_attr_error()
3564 return -EIO; in decode_attr_error()
3568 return -EIO; in decode_attr_error()
3570 *res = -be32_to_cpup(p); in decode_attr_error()
3599 if (unlikely(bitmap[0] & (FATTR4_WORD0_FILEHANDLE - 1U))) in decode_attr_filehandle()
3600 return -EIO; in decode_attr_filehandle()
3604 return -EIO; in decode_attr_filehandle()
3609 return -EREMOTEIO; in decode_attr_filehandle()
3613 return -EIO; in decode_attr_filehandle()
3615 memcpy(fh->data, p, len); in decode_attr_filehandle()
3616 fh->size = len; in decode_attr_filehandle()
3628 if (unlikely(bitmap[0] & (FATTR4_WORD0_ACLSUPPORT - 1U))) in decode_attr_aclsupport()
3629 return -EIO; in decode_attr_aclsupport()
3633 return -EIO; in decode_attr_aclsupport()
3646 if (unlikely(bitmap[0] & (FATTR4_WORD0_CASE_INSENSITIVE - 1U))) in decode_attr_case_insensitive()
3647 return -EIO; in decode_attr_case_insensitive()
3651 return -EIO; in decode_attr_case_insensitive()
3664 if (unlikely(bitmap[0] & (FATTR4_WORD0_CASE_PRESERVING - 1U))) in decode_attr_case_preserving()
3665 return -EIO; in decode_attr_case_preserving()
3669 return -EIO; in decode_attr_case_preserving()
3683 if (unlikely(bitmap[0] & (FATTR4_WORD0_FILEID - 1U))) in decode_attr_fileid()
3684 return -EIO; in decode_attr_fileid()
3688 return -EIO; in decode_attr_fileid()
3703 if (unlikely(bitmap[1] & (FATTR4_WORD1_MOUNTED_ON_FILEID - 1U))) in decode_attr_mounted_on_fileid()
3704 return -EIO; in decode_attr_mounted_on_fileid()
3708 return -EIO; in decode_attr_mounted_on_fileid()
3723 if (unlikely(bitmap[0] & (FATTR4_WORD0_FILES_AVAIL - 1U))) in decode_attr_files_avail()
3724 return -EIO; in decode_attr_files_avail()
3728 return -EIO; in decode_attr_files_avail()
3742 if (unlikely(bitmap[0] & (FATTR4_WORD0_FILES_FREE - 1U))) in decode_attr_files_free()
3743 return -EIO; in decode_attr_files_free()
3747 return -EIO; in decode_attr_files_free()
3761 if (unlikely(bitmap[0] & (FATTR4_WORD0_FILES_TOTAL - 1U))) in decode_attr_files_total()
3762 return -EIO; in decode_attr_files_total()
3766 return -EIO; in decode_attr_files_total()
3782 return -EIO; in decode_pathname()
3791 for (path->ncomponents = 0; path->ncomponents < n; path->ncomponents++) { in decode_pathname()
3792 struct nfs4_string *component = &path->components[path->ncomponents]; in decode_pathname()
3793 status = decode_opaque_inline(xdr, &component->len, &component->data); in decode_pathname()
3798 (path->ncomponents != n ? "/ " : ""), in decode_pathname()
3799 component->len, component->data); in decode_pathname()
3805 path->ncomponents = 1; in decode_pathname()
3806 path->components[0].len=0; in decode_pathname()
3807 path->components[0].data=NULL; in decode_pathname()
3812 status = -EIO; in decode_pathname()
3820 int status = -EIO; in decode_attr_fs_locations()
3822 if (unlikely(bitmap[0] & (FATTR4_WORD0_FS_LOCATIONS -1U))) in decode_attr_fs_locations()
3828 status = -EIO; in decode_attr_fs_locations()
3833 status = decode_pathname(xdr, &res->fs_path); in decode_attr_fs_locations()
3840 for (res->nlocations = 0; res->nlocations < n; res->nlocations++) { in decode_attr_fs_locations()
3844 if (res->nlocations == NFS4_FS_LOCATIONS_MAXENTRIES) in decode_attr_fs_locations()
3846 loc = &res->locations[res->nlocations]; in decode_attr_fs_locations()
3853 for (loc->nservers = 0; loc->nservers < m; loc->nservers++) { in decode_attr_fs_locations()
3856 if (loc->nservers == NFS4_FS_LOCATION_MAXSERVERS) { in decode_attr_fs_locations()
3862 m, res->nlocations); in decode_attr_fs_locations()
3863 for (i = loc->nservers; i < m; i++) { in decode_attr_fs_locations()
3872 server = &loc->servers[loc->nservers]; in decode_attr_fs_locations()
3873 status = decode_opaque_inline(xdr, &server->len, &server->data); in decode_attr_fs_locations()
3876 dprintk("%s ", server->data); in decode_attr_fs_locations()
3878 status = decode_pathname(xdr, &loc->rootpath); in decode_attr_fs_locations()
3882 if (res->nlocations != 0) in decode_attr_fs_locations()
3888 status = -EIO; in decode_attr_fs_locations()
3898 if (unlikely(bitmap[0] & (FATTR4_WORD0_MAXFILESIZE - 1U))) in decode_attr_maxfilesize()
3899 return -EIO; in decode_attr_maxfilesize()
3903 return -EIO; in decode_attr_maxfilesize()
3917 if (unlikely(bitmap[0] & (FATTR4_WORD0_MAXLINK - 1U))) in decode_attr_maxlink()
3918 return -EIO; in decode_attr_maxlink()
3922 return -EIO; in decode_attr_maxlink()
3936 if (unlikely(bitmap[0] & (FATTR4_WORD0_MAXNAME - 1U))) in decode_attr_maxname()
3937 return -EIO; in decode_attr_maxname()
3941 return -EIO; in decode_attr_maxname()
3955 if (unlikely(bitmap[0] & (FATTR4_WORD0_MAXREAD - 1U))) in decode_attr_maxread()
3956 return -EIO; in decode_attr_maxread()
3961 return -EIO; in decode_attr_maxread()
3978 if (unlikely(bitmap[0] & (FATTR4_WORD0_MAXWRITE - 1U))) in decode_attr_maxwrite()
3979 return -EIO; in decode_attr_maxwrite()
3984 return -EIO; in decode_attr_maxwrite()
4002 if (unlikely(bitmap[1] & (FATTR4_WORD1_MODE - 1U))) in decode_attr_mode()
4003 return -EIO; in decode_attr_mode()
4007 return -EIO; in decode_attr_mode()
4023 if (unlikely(bitmap[1] & (FATTR4_WORD1_NUMLINKS - 1U))) in decode_attr_nlink()
4024 return -EIO; in decode_attr_nlink()
4028 return -EIO; in decode_attr_nlink()
4042 ret = xdr_stream_decode_string_dup(xdr, &name->data, in decode_nfs4_string()
4044 name->len = 0; in decode_nfs4_string()
4046 name->len = ret; in decode_nfs4_string()
4057 *uid = make_kuid(&init_user_ns, -2); in decode_attr_owner()
4058 if (unlikely(bitmap[1] & (FATTR4_WORD1_OWNER - 1U))) in decode_attr_owner()
4059 return -EIO; in decode_attr_owner()
4068 dprintk("%s: name=%s\n", __func__, owner_name->data); in decode_attr_owner()
4079 if (len == -EBADMSG) in decode_attr_owner()
4080 return -EIO; in decode_attr_owner()
4091 *gid = make_kgid(&init_user_ns, -2); in decode_attr_group()
4092 if (unlikely(bitmap[1] & (FATTR4_WORD1_OWNER_GROUP - 1U))) in decode_attr_group()
4093 return -EIO; in decode_attr_group()
4102 dprintk("%s: name=%s\n", __func__, group_name->data); in decode_attr_group()
4113 if (len == -EBADMSG) in decode_attr_group()
4114 return -EIO; in decode_attr_group()
4125 if (unlikely(bitmap[1] & (FATTR4_WORD1_RAWDEV - 1U))) in decode_attr_rdev()
4126 return -EIO; in decode_attr_rdev()
4132 return -EIO; in decode_attr_rdev()
4151 if (unlikely(bitmap[1] & (FATTR4_WORD1_SPACE_AVAIL - 1U))) in decode_attr_space_avail()
4152 return -EIO; in decode_attr_space_avail()
4156 return -EIO; in decode_attr_space_avail()
4170 if (unlikely(bitmap[1] & (FATTR4_WORD1_SPACE_FREE - 1U))) in decode_attr_space_free()
4171 return -EIO; in decode_attr_space_free()
4175 return -EIO; in decode_attr_space_free()
4189 if (unlikely(bitmap[1] & (FATTR4_WORD1_SPACE_TOTAL - 1U))) in decode_attr_space_total()
4190 return -EIO; in decode_attr_space_total()
4194 return -EIO; in decode_attr_space_total()
4208 if (unlikely(bitmap[1] & (FATTR4_WORD1_SPACE_USED - 1U))) in decode_attr_space_used()
4209 return -EIO; in decode_attr_space_used()
4213 return -EIO; in decode_attr_space_used()
4229 t-> tv_sec = sec; in xdr_decode_nfstime4()
4230 t->tv_nsec = be32_to_cpup(p++); in xdr_decode_nfstime4()
4240 return -EIO; in decode_attr_time()
4249 time->tv_sec = 0; in decode_attr_time_access()
4250 time->tv_nsec = 0; in decode_attr_time_access()
4251 if (unlikely(bitmap[1] & (FATTR4_WORD1_TIME_ACCESS - 1U))) in decode_attr_time_access()
4252 return -EIO; in decode_attr_time_access()
4259 dprintk("%s: atime=%lld\n", __func__, time->tv_sec); in decode_attr_time_access()
4267 time->tv_sec = 0; in decode_attr_time_create()
4268 time->tv_nsec = 0; in decode_attr_time_create()
4269 if (unlikely(bitmap[1] & (FATTR4_WORD1_TIME_CREATE - 1U))) in decode_attr_time_create()
4270 return -EIO; in decode_attr_time_create()
4277 dprintk("%s: btime=%lld\n", __func__, time->tv_sec); in decode_attr_time_create()
4285 time->tv_sec = 0; in decode_attr_time_metadata()
4286 time->tv_nsec = 0; in decode_attr_time_metadata()
4287 if (unlikely(bitmap[1] & (FATTR4_WORD1_TIME_METADATA - 1U))) in decode_attr_time_metadata()
4288 return -EIO; in decode_attr_time_metadata()
4295 dprintk("%s: ctime=%lld\n", __func__, time->tv_sec); in decode_attr_time_metadata()
4304 time->tv_sec = 0; in decode_attr_time_delta()
4305 time->tv_nsec = 0; in decode_attr_time_delta()
4306 if (unlikely(bitmap[1] & (FATTR4_WORD1_TIME_DELTA - 1U))) in decode_attr_time_delta()
4307 return -EIO; in decode_attr_time_delta()
4312 dprintk("%s: time_delta=%lld %ld\n", __func__, time->tv_sec, in decode_attr_time_delta()
4313 time->tv_nsec); in decode_attr_time_delta()
4326 if (unlikely(bitmap[2] & (FATTR4_WORD2_SECURITY_LABEL - 1U))) in decode_attr_security_label()
4327 return -EIO; in decode_attr_security_label()
4331 return -EIO; in decode_attr_security_label()
4335 return -EIO; in decode_attr_security_label()
4339 return -EIO; in decode_attr_security_label()
4343 return -EIO; in decode_attr_security_label()
4346 if (label && label->len) { in decode_attr_security_label()
4347 if (label->len < len) in decode_attr_security_label()
4348 return -ERANGE; in decode_attr_security_label()
4349 memcpy(label->label, p, len); in decode_attr_security_label()
4350 label->len = len; in decode_attr_security_label()
4351 label->pi = pi; in decode_attr_security_label()
4352 label->lfs = lfs; in decode_attr_security_label()
4358 if (label && label->label) in decode_attr_security_label()
4360 __func__, label->len, (char *)label->label, in decode_attr_security_label()
4361 label->len, label->pi, label->lfs); in decode_attr_security_label()
4370 time->tv_sec = 0; in decode_attr_time_modify()
4371 time->tv_nsec = 0; in decode_attr_time_modify()
4372 if (unlikely(bitmap[1] & (FATTR4_WORD1_TIME_MODIFY - 1U))) in decode_attr_time_modify()
4373 return -EIO; in decode_attr_time_modify()
4380 dprintk("%s: mtime=%lld\n", __func__, time->tv_sec); in decode_attr_time_modify()
4390 if (unlikely(bitmap[2] & (FATTR4_WORD2_XATTR_SUPPORT - 1U))) in decode_attr_xattrsupport()
4391 return -EIO; in decode_attr_xattrsupport()
4395 return -EIO; in decode_attr_xattrsupport()
4407 if (unlikely(bitmap[2] & (FATTR4_WORD2_OPEN_ARGUMENTS - 1U))) in decode_attr_open_arguments()
4408 return -EIO; in decode_attr_open_arguments()
4410 if (decode_bitmap4(xdr, res->oa_share_access, ARRAY_SIZE(res->oa_share_access)) < 0) in decode_attr_open_arguments()
4411 return -EIO; in decode_attr_open_arguments()
4412 if (decode_bitmap4(xdr, res->oa_share_deny, ARRAY_SIZE(res->oa_share_deny)) < 0) in decode_attr_open_arguments()
4413 return -EIO; in decode_attr_open_arguments()
4414 if (decode_bitmap4(xdr, res->oa_share_access_want, ARRAY_SIZE(res->oa_share_access_want)) < 0) in decode_attr_open_arguments()
4415 return -EIO; in decode_attr_open_arguments()
4416 if (decode_bitmap4(xdr, res->oa_open_claim, ARRAY_SIZE(res->oa_open_claim)) < 0) in decode_attr_open_arguments()
4417 return -EIO; in decode_attr_open_arguments()
4418 if (decode_bitmap4(xdr, res->oa_createmode, ARRAY_SIZE(res->oa_createmode)) < 0) in decode_attr_open_arguments()
4419 return -EIO; in decode_attr_open_arguments()
4428 unsigned int nwords = (xdr_stream_pos(xdr) - savep) >> 2; in verify_attr_len()
4437 return -EIO; in verify_attr_len()
4448 return -EIO; in decode_change_info()
4449 cinfo->atomic = be32_to_cpup(p++); in decode_change_info()
4450 p = xdr_decode_hyper(p, &cinfo->before); in decode_change_info()
4451 xdr_decode_hyper(p, &cinfo->after); in decode_change_info()
4466 return -EIO; in decode_access()
4481 stateid->type = NFS4_OPEN_STATEID_TYPE; in decode_open_stateid()
4487 stateid->type = NFS4_LOCK_STATEID_TYPE; in decode_lock_stateid()
4493 stateid->type = NFS4_DELEGATION_STATEID_TYPE; in decode_delegation_stateid()
4510 if (status != -EIO) in decode_close()
4511 nfs_increment_open_seqid(status, res->seqid); in decode_close()
4513 status = decode_invalid_stateid(xdr, &res->stateid); in decode_close()
4524 return decode_opaque_fixed(xdr, verifier->data, NFS4_VERIFIER_SIZE); in decode_write_verifier()
4529 struct nfs_writeverf *verf = res->verf; in decode_commit()
4534 status = decode_write_verifier(xdr, &verf->verifier); in decode_commit()
4536 verf->committed = NFS_FILE_SYNC; in decode_commit()
4553 return -EIO; in decode_create()
4558 return -EIO; in decode_create()
4573 if ((status = decode_attr_supported(xdr, bitmap, res->attr_bitmask)) != 0) in decode_server_caps()
4576 &res->fh_expire_type)) != 0) in decode_server_caps()
4578 if ((status = decode_attr_link_support(xdr, bitmap, &res->has_links)) != 0) in decode_server_caps()
4580 if ((status = decode_attr_symlink_support(xdr, bitmap, &res->has_symlinks)) != 0) in decode_server_caps()
4582 if ((status = decode_attr_aclsupport(xdr, bitmap, &res->acl_bitmask)) != 0) in decode_server_caps()
4584 if ((status = decode_attr_case_insensitive(xdr, bitmap, &res->case_insensitive)) != 0) in decode_server_caps()
4586 if ((status = decode_attr_case_preserving(xdr, bitmap, &res->case_preserving)) != 0) in decode_server_caps()
4589 res->exclcreat_bitmask)) != 0) in decode_server_caps()
4591 if ((status = decode_attr_open_arguments(xdr, bitmap, &res->open_caps)) != 0) in decode_server_caps()
4595 dprintk("%s: xdr returned %d!\n", __func__, -status); in decode_server_caps()
4612 if ((status = decode_attr_files_avail(xdr, bitmap, &fsstat->afiles)) != 0) in decode_statfs()
4614 if ((status = decode_attr_files_free(xdr, bitmap, &fsstat->ffiles)) != 0) in decode_statfs()
4616 if ((status = decode_attr_files_total(xdr, bitmap, &fsstat->tfiles)) != 0) in decode_statfs()
4619 status = -EIO; in decode_statfs()
4623 if ((status = decode_attr_space_avail(xdr, bitmap, &fsstat->abytes)) != 0) in decode_statfs()
4625 if ((status = decode_attr_space_free(xdr, bitmap, &fsstat->fbytes)) != 0) in decode_statfs()
4627 if ((status = decode_attr_space_total(xdr, bitmap, &fsstat->tbytes)) != 0) in decode_statfs()
4632 dprintk("%s: xdr returned %d!\n", __func__, -status); in decode_statfs()
4649 if ((status = decode_attr_maxlink(xdr, bitmap, &pathconf->max_link)) != 0) in decode_pathconf()
4651 if ((status = decode_attr_maxname(xdr, bitmap, &pathconf->max_namelen)) != 0) in decode_pathconf()
4656 dprintk("%s: xdr returned %d!\n", __func__, -status); in decode_pathconf()
4671 return -EIO; in decode_threshold_hint()
4688 return -EIO; in decode_first_threshold_item4()
4689 res->l_type = be32_to_cpup(p); in decode_first_threshold_item4()
4701 status = decode_threshold_hint(xdr, bitmap, &res->rd_sz, THRESHOLD_RD); in decode_first_threshold_item4()
4704 status = decode_threshold_hint(xdr, bitmap, &res->wr_sz, THRESHOLD_WR); in decode_first_threshold_item4()
4707 status = decode_threshold_hint(xdr, bitmap, &res->rd_io_sz, in decode_first_threshold_item4()
4711 status = decode_threshold_hint(xdr, bitmap, &res->wr_io_sz, in decode_first_threshold_item4()
4717 res->bm = bitmap[0]; in decode_first_threshold_item4()
4720 __func__, res->bm, res->rd_sz, res->wr_sz, res->rd_io_sz, in decode_first_threshold_item4()
4721 res->wr_io_sz); in decode_first_threshold_item4()
4728 * Thresholds on pNFS direct I/O vrs MDS I/O
4738 if (unlikely(bitmap[2] & (FATTR4_WORD2_MDSTHRESHOLD - 1U))) in decode_attr_mdsthreshold()
4739 return -EIO; in decode_attr_mdsthreshold()
4743 return -EREMOTEIO; in decode_attr_mdsthreshold()
4746 return -EIO; in decode_attr_mdsthreshold()
4773 fattr->mode = 0; in decode_getfattr_attrs()
4775 fattr->mode |= nfs_type2fmt[type]; in decode_getfattr_attrs()
4776 fattr->valid |= status; in decode_getfattr_attrs()
4779 status = decode_attr_change(xdr, bitmap, &fattr->change_attr); in decode_getfattr_attrs()
4782 fattr->valid |= status; in decode_getfattr_attrs()
4784 status = decode_attr_size(xdr, bitmap, &fattr->size); in decode_getfattr_attrs()
4787 fattr->valid |= status; in decode_getfattr_attrs()
4789 status = decode_attr_fsid(xdr, bitmap, &fattr->fsid); in decode_getfattr_attrs()
4792 fattr->valid |= status; in decode_getfattr_attrs()
4803 status = decode_attr_fileid(xdr, bitmap, &fattr->fileid); in decode_getfattr_attrs()
4806 fattr->valid |= status; in decode_getfattr_attrs()
4811 fattr->valid |= status; in decode_getfattr_attrs()
4813 status = -EIO; in decode_getfattr_attrs()
4821 fattr->mode |= fmode; in decode_getfattr_attrs()
4822 fattr->valid |= status; in decode_getfattr_attrs()
4825 status = decode_attr_nlink(xdr, bitmap, &fattr->nlink); in decode_getfattr_attrs()
4828 fattr->valid |= status; in decode_getfattr_attrs()
4830 status = decode_attr_owner(xdr, bitmap, server, &fattr->uid, fattr->owner_name); in decode_getfattr_attrs()
4833 fattr->valid |= status; in decode_getfattr_attrs()
4835 status = decode_attr_group(xdr, bitmap, server, &fattr->gid, fattr->group_name); in decode_getfattr_attrs()
4838 fattr->valid |= status; in decode_getfattr_attrs()
4840 status = decode_attr_rdev(xdr, bitmap, &fattr->rdev); in decode_getfattr_attrs()
4843 fattr->valid |= status; in decode_getfattr_attrs()
4845 status = decode_attr_space_used(xdr, bitmap, &fattr->du.nfs3.used); in decode_getfattr_attrs()
4848 fattr->valid |= status; in decode_getfattr_attrs()
4850 status = decode_attr_time_access(xdr, bitmap, &fattr->atime); in decode_getfattr_attrs()
4853 fattr->valid |= status; in decode_getfattr_attrs()
4855 status = decode_attr_time_create(xdr, bitmap, &fattr->btime); in decode_getfattr_attrs()
4858 fattr->valid |= status; in decode_getfattr_attrs()
4860 status = decode_attr_time_metadata(xdr, bitmap, &fattr->ctime); in decode_getfattr_attrs()
4863 fattr->valid |= status; in decode_getfattr_attrs()
4865 status = decode_attr_time_modify(xdr, bitmap, &fattr->mtime); in decode_getfattr_attrs()
4868 fattr->valid |= status; in decode_getfattr_attrs()
4870 status = decode_attr_mounted_on_fileid(xdr, bitmap, &fattr->mounted_on_fileid); in decode_getfattr_attrs()
4873 fattr->valid |= status; in decode_getfattr_attrs()
4875 status = -EIO; in decode_getfattr_attrs()
4879 status = decode_attr_mdsthreshold(xdr, bitmap, fattr->mdsthreshold); in decode_getfattr_attrs()
4883 status = decode_attr_security_label(xdr, bitmap, fattr->label); in decode_getfattr_attrs()
4886 fattr->valid |= status; in decode_getfattr_attrs()
4889 dprintk("%s: xdr returned %d\n", __func__, -status); in decode_getfattr_attrs()
4920 dprintk("%s: xdr returned %d\n", __func__, -status); in decode_getfattr_generic()
4941 return -EIO; in decode_pnfs_layout_types()
4942 fsinfo->nlayouttypes = be32_to_cpup(p); in decode_pnfs_layout_types()
4945 if (fsinfo->nlayouttypes == 0) in decode_pnfs_layout_types()
4948 /* Decode and set first layout type, move xdr->p past unused types */ in decode_pnfs_layout_types()
4949 p = xdr_inline_decode(xdr, fsinfo->nlayouttypes * 4); in decode_pnfs_layout_types()
4951 return -EIO; in decode_pnfs_layout_types()
4954 if (fsinfo->nlayouttypes > NFS_MAX_LAYOUT_TYPES) { in decode_pnfs_layout_types()
4956 __func__, fsinfo->nlayouttypes); in decode_pnfs_layout_types()
4957 fsinfo->nlayouttypes = NFS_MAX_LAYOUT_TYPES; in decode_pnfs_layout_types()
4960 for(i = 0; i < fsinfo->nlayouttypes; ++i) in decode_pnfs_layout_types()
4961 fsinfo->layouttype[i] = be32_to_cpup(p++); in decode_pnfs_layout_types()
4967 * Note we must ensure that layouttype is set in any non-error case.
4975 if (unlikely(bitmap[1] & (FATTR4_WORD1_FS_LAYOUT_TYPES - 1U))) in decode_attr_pnfstype()
4976 return -EIO; in decode_attr_pnfstype()
4997 return -EIO; in decode_attr_layout_blksize()
5017 return -EIO; in decode_attr_clone_blksize()
5033 return -EIO; in decode_attr_change_attr_type()
5063 fsinfo->rtmult = fsinfo->wtmult = 512; /* ??? */ in decode_fsinfo()
5065 if ((status = decode_attr_lease_time(xdr, bitmap, &fsinfo->lease_time)) != 0) in decode_fsinfo()
5067 if ((status = decode_attr_maxfilesize(xdr, bitmap, &fsinfo->maxfilesize)) != 0) in decode_fsinfo()
5069 if ((status = decode_attr_maxread(xdr, bitmap, &fsinfo->rtmax)) != 0) in decode_fsinfo()
5071 fsinfo->rtpref = fsinfo->dtpref = fsinfo->rtmax; in decode_fsinfo()
5072 if ((status = decode_attr_maxwrite(xdr, bitmap, &fsinfo->wtmax)) != 0) in decode_fsinfo()
5074 fsinfo->wtpref = fsinfo->wtmax; in decode_fsinfo()
5076 status = -EIO; in decode_fsinfo()
5080 status = decode_attr_time_delta(xdr, bitmap, &fsinfo->time_delta); in decode_fsinfo()
5087 status = -EIO; in decode_fsinfo()
5091 status = decode_attr_layout_blksize(xdr, bitmap, &fsinfo->blksize); in decode_fsinfo()
5094 status = decode_attr_clone_blksize(xdr, bitmap, &fsinfo->clone_blksize); in decode_fsinfo()
5099 &fsinfo->change_attr_type); in decode_fsinfo()
5104 &fsinfo->xattr_support); in decode_fsinfo()
5110 dprintk("%s: xdr returned %d!\n", __func__, -status); in decode_fsinfo()
5129 return -EIO; in decode_getfh()
5133 return -EREMOTEIO; in decode_getfh()
5135 fh->size = len; in decode_getfh()
5138 return -EIO; in decode_getfh()
5139 memcpy(fh->data, p, len); in decode_getfh()
5164 return -EIO; in decode_lock_denied()
5165 p = xdr_decode_hyper(p, &offset); /* read 2 8-byte long words */ in decode_lock_denied()
5169 fl->fl_start = (loff_t)offset; in decode_lock_denied()
5170 fl->fl_end = fl->fl_start + (loff_t)length - 1; in decode_lock_denied()
5172 fl->fl_end = OFFSET_MAX; in decode_lock_denied()
5173 fl->c.flc_type = F_WRLCK; in decode_lock_denied()
5175 fl->c.flc_type = F_RDLCK; in decode_lock_denied()
5176 fl->c.flc_pid = 0; in decode_lock_denied()
5182 return -EIO; in decode_lock_denied()
5183 return -NFS4ERR_DENIED; in decode_lock_denied()
5191 if (status == -EIO) in decode_lock()
5194 status = decode_lock_stateid(xdr, &res->stateid); in decode_lock()
5197 } else if (status == -NFS4ERR_DENIED) in decode_lock()
5199 if (res->open_seqid != NULL) in decode_lock()
5200 nfs_increment_open_seqid(status, res->open_seqid); in decode_lock()
5201 nfs_increment_lock_seqid(status, res->lock_seqid); in decode_lock()
5210 if (status == -NFS4ERR_DENIED) in decode_lockt()
5211 return decode_lock_denied(xdr, res->denied); in decode_lockt()
5220 if (status != -EIO) in decode_locku()
5221 nfs_increment_lock_seqid(status, res->seqid); in decode_locku()
5223 status = decode_lock_stateid(xdr, &res->stateid); in decode_locku()
5252 return -EIO; in decode_space_limit()
5274 status = decode_delegation_stateid(xdr, &res->stateid); in decode_rw_delegation()
5279 return -EIO; in decode_rw_delegation()
5280 res->do_recall = be32_to_cpup(p); in decode_rw_delegation()
5282 switch (res->open_delegation_type) { in decode_rw_delegation()
5285 res->type = FMODE_READ; in decode_rw_delegation()
5289 res->type = FMODE_WRITE|FMODE_READ; in decode_rw_delegation()
5290 if (decode_space_limit(xdr, &res->pagemod_limit) < 0) in decode_rw_delegation()
5291 return -EIO; in decode_rw_delegation()
5303 return -EIO; in decode_no_delegation()
5304 res->why_no_delegation = be32_to_cpup(p); in decode_no_delegation()
5305 switch (res->why_no_delegation) { in decode_no_delegation()
5310 return -EIO; in decode_no_delegation()
5311 res->will_notify = be32_to_cpup(p); in decode_no_delegation()
5323 return -EIO; in decode_delegation()
5324 res->open_delegation_type = be32_to_cpup(p); in decode_delegation()
5325 switch (res->open_delegation_type) { in decode_delegation()
5336 return -EIO; in decode_delegation()
5347 nfs_increment_open_seqid(status, res->seqid); in decode_open()
5350 status = decode_open_stateid(xdr, &res->stateid); in decode_open()
5354 decode_change_info(xdr, &res->cinfo); in decode_open()
5358 return -EIO; in decode_open()
5359 res->rflags = be32_to_cpup(p++); in decode_open()
5361 if (bmlen > 10) in decode_open()
5366 return -EIO; in decode_open()
5369 res->attrset[i] = be32_to_cpup(p++); in decode_open()
5371 res->attrset[i] = 0; in decode_open()
5373 return decode_delegation(xdr, &res->delegation); in decode_open()
5376 return -EIO; in decode_open()
5384 if (status != -EIO) in decode_open_confirm()
5385 nfs_increment_open_seqid(status, res->seqid); in decode_open_confirm()
5387 status = decode_open_stateid(xdr, &res->stateid); in decode_open_confirm()
5396 if (status != -EIO) in decode_open_downgrade()
5397 nfs_increment_open_seqid(status, res->seqid); in decode_open_downgrade()
5399 status = decode_open_stateid(xdr, &res->stateid); in decode_open_downgrade()
5425 return -EIO; in decode_read()
5435 res->eof = eof; in decode_read()
5436 res->count = count; in decode_read()
5447 status = decode_verifier(xdr, readdir->verifier.data); in decode_readdir()
5450 memcpy(verf, readdir->verifier.data, sizeof(verf)); in decode_readdir()
5453 return xdr_read_pages(xdr, xdr->buf->page_len); in decode_readdir()
5458 struct xdr_buf *rcvbuf = &req->rq_rcv_buf; in decode_readlink()
5470 return -EIO; in decode_readlink()
5472 if (len >= rcvbuf->page_len || len <= 0) { in decode_readlink()
5474 return -ENAMETOOLONG; in decode_readlink()
5480 return -EIO; in decode_readlink()
5485 * buffer. We just have to do overflow-checking, in decode_readlink()
5486 * and null-terminate the text (the VFS expects in decode_readlink()
5487 * null-termination). in decode_readlink()
5539 res->acl_len = 0; in decode_getacl()
5543 xdr_enter_page(xdr, xdr->buf->page_len); in decode_getacl()
5552 if (unlikely(bitmap[0] & (FATTR4_WORD0_ACL - 1U))) in decode_getacl()
5553 return -EIO; in decode_getacl()
5555 return -EOPNOTSUPP; in decode_getacl()
5558 if (unlikely(bitmap[0] || bitmap[1] & (FATTR4_WORD1_DACL - 1U))) in decode_getacl()
5559 return -EIO; in decode_getacl()
5561 return -EOPNOTSUPP; in decode_getacl()
5564 if (unlikely(bitmap[0] || bitmap[1] & (FATTR4_WORD1_SACL - 1U))) in decode_getacl()
5565 return -EIO; in decode_getacl()
5567 return -EOPNOTSUPP; in decode_getacl()
5573 res->acl_data_offset = xdr_page_pos(xdr); in decode_getacl()
5574 res->acl_len = attrlen; in decode_getacl()
5577 if (res->acl_len > xdr_stream_remaining(xdr) || in decode_getacl()
5578 res->acl_len + res->acl_data_offset > xdr->buf->page_len) { in decode_getacl()
5579 res->acl_flags |= NFS4_ACL_TRUNC; in decode_getacl()
5602 return -EIO; in decode_setattr()
5618 return -EIO; in decode_setclientid()
5623 return -EIO; in decode_setclientid()
5629 return -EIO; in decode_setclientid()
5630 p = xdr_decode_hyper(p, &res->clientid); in decode_setclientid()
5631 memcpy(res->confirm.data, p, NFS4_VERIFIER_SIZE); in decode_setclientid()
5638 return -EIO; in decode_setclientid()
5642 return -EIO; in decode_setclientid()
5647 return -EIO; in decode_setclientid()
5651 return -EIO; in decode_setclientid()
5652 return -NFSERR_CLID_INUSE; in decode_setclientid()
5675 return -EIO; in decode_write()
5676 res->count = be32_to_cpup(p++); in decode_write()
5677 res->verf->committed = be32_to_cpup(p++); in decode_write()
5678 return decode_write_verifier(xdr, &res->verf->verifier); in decode_write()
5694 return -EIO; in decode_secinfo_gss()
5697 return -EINVAL; in decode_secinfo_gss()
5701 return -EIO; in decode_secinfo_gss()
5702 memcpy(flavor->flavor_info.oid.data, p, oid_len); in decode_secinfo_gss()
5703 flavor->flavor_info.oid.len = oid_len; in decode_secinfo_gss()
5707 return -EIO; in decode_secinfo_gss()
5708 flavor->flavor_info.qop = be32_to_cpup(p++); in decode_secinfo_gss()
5709 flavor->flavor_info.service = be32_to_cpup(p); in decode_secinfo_gss()
5723 return -EIO; in decode_secinfo_common()
5725 res->flavors->num_flavors = 0; in decode_secinfo_common()
5729 sec_flavor = &res->flavors->flavors[i]; in decode_secinfo_common()
5730 if ((char *)&sec_flavor[1] - (char *)res->flavors > PAGE_SIZE) in decode_secinfo_common()
5735 return -EIO; in decode_secinfo_common()
5736 sec_flavor->flavor = be32_to_cpup(p); in decode_secinfo_common()
5738 if (sec_flavor->flavor == RPC_AUTH_GSS) { in decode_secinfo_common()
5743 res->flavors->num_flavors++; in decode_secinfo_common()
5770 if (xdr_stream_decode_uint32_array(xdr, op_map->u.words, in decode_op_map()
5771 ARRAY_SIZE(op_map->u.words)) < 0) in decode_op_map()
5772 return -EIO; in decode_op_map()
5791 return -EIO; in decode_exchange_id()
5792 xdr_decode_hyper(p, &res->clientid); in decode_exchange_id()
5795 return -EIO; in decode_exchange_id()
5796 res->seqid = be32_to_cpup(p++); in decode_exchange_id()
5797 res->flags = be32_to_cpup(p++); in decode_exchange_id()
5799 res->state_protect.how = be32_to_cpup(p); in decode_exchange_id()
5800 switch (res->state_protect.how) { in decode_exchange_id()
5804 status = decode_op_map(xdr, &res->state_protect.enforce); in decode_exchange_id()
5807 status = decode_op_map(xdr, &res->state_protect.allow); in decode_exchange_id()
5813 return -EIO; in decode_exchange_id()
5819 return -EIO; in decode_exchange_id()
5820 p = xdr_decode_hyper(p, &res->server_owner->minor_id); in decode_exchange_id()
5826 memcpy(res->server_owner->major_id, dummy_str, dummy); in decode_exchange_id()
5827 res->server_owner->major_id_sz = dummy; in decode_exchange_id()
5833 memcpy(res->server_scope->server_scope, dummy_str, dummy); in decode_exchange_id()
5834 res->server_scope->server_scope_sz = dummy; in decode_exchange_id()
5839 return -EIO; in decode_exchange_id()
5847 memcpy(res->impl_id->domain, dummy_str, dummy); in decode_exchange_id()
5853 memcpy(res->impl_id->name, dummy_str, dummy); in decode_exchange_id()
5858 return -EIO; in decode_exchange_id()
5859 p = xdr_decode_hyper(p, &res->impl_id->date.seconds); in decode_exchange_id()
5860 res->impl_id->date.nseconds = be32_to_cpup(p); in decode_exchange_id()
5875 return -EIO; in decode_chan_attrs()
5878 return -EINVAL; /* no support for header padding yet */ in decode_chan_attrs()
5879 attrs->max_rqst_sz = be32_to_cpup(p++); in decode_chan_attrs()
5880 attrs->max_resp_sz = be32_to_cpup(p++); in decode_chan_attrs()
5881 attrs->max_resp_sz_cached = be32_to_cpup(p++); in decode_chan_attrs()
5882 attrs->max_ops = be32_to_cpup(p++); in decode_chan_attrs()
5883 attrs->max_reqs = be32_to_cpup(p++); in decode_chan_attrs()
5888 return -EINVAL; in decode_chan_attrs()
5893 return -EIO; in decode_chan_attrs()
5900 return decode_opaque_fixed(xdr, sid->data, NFS4_MAX_SESSIONID_LEN); in decode_sessionid()
5911 status = decode_sessionid(xdr, &res->sessionid); in decode_bind_conn_to_session()
5918 return -EIO; in decode_bind_conn_to_session()
5920 res->dir = be32_to_cpup(p++); in decode_bind_conn_to_session()
5921 if (res->dir == 0 || res->dir > NFS4_CDFS4_BOTH) in decode_bind_conn_to_session()
5922 return -EIO; in decode_bind_conn_to_session()
5924 res->use_conn_in_rdma_mode = false; in decode_bind_conn_to_session()
5926 res->use_conn_in_rdma_mode = true; in decode_bind_conn_to_session()
5939 status = decode_sessionid(xdr, &res->sessionid); in decode_create_session()
5946 return -EIO; in decode_create_session()
5947 res->seqid = be32_to_cpup(p++); in decode_create_session()
5948 res->flags = be32_to_cpup(p); in decode_create_session()
5951 status = decode_chan_attrs(xdr, &res->fc_attrs); in decode_create_session()
5953 status = decode_chan_attrs(xdr, &res->bc_attrs); in decode_create_session()
5984 if (res->sr_slot == NULL) in decode_sequence()
5986 if (!res->sr_slot->table->session) in decode_sequence()
5999 status = -EREMOTEIO; in decode_sequence()
6000 session = res->sr_slot->table->session; in decode_sequence()
6002 if (memcmp(id.data, session->sess_id.data, in decode_sequence()
6014 if (dummy != res->sr_slot->seq_nr) { in decode_sequence()
6020 if (dummy != res->sr_slot->slot_nr) { in decode_sequence()
6025 res->sr_highest_slotid = be32_to_cpup(p++); in decode_sequence()
6027 res->sr_target_highest_slotid = be32_to_cpup(p++); in decode_sequence()
6029 res->sr_status_flags = be32_to_cpup(p); in decode_sequence()
6032 res->sr_status = status; in decode_sequence()
6035 status = -EIO; in decode_sequence()
6045 stateid->type = NFS4_LAYOUT_STATEID_TYPE; in decode_layout_stateid()
6052 struct nfs4_gdd_res *gdd_res = res->gdd_res; in decode_get_dir_delegation()
6061 if (xdr_stream_decode_u32(xdr, &gdd_res->status)) in decode_get_dir_delegation()
6062 return -EIO; in decode_get_dir_delegation()
6064 if (gdd_res->status == GDD4_UNAVAIL) in decode_get_dir_delegation()
6065 return xdr_inline_decode(xdr, 4) ? 0 : -EIO; in decode_get_dir_delegation()
6071 status = decode_delegation_stateid(xdr, &gdd_res->deleg); in decode_get_dir_delegation()
6095 struct pnfs_device *pdev = res->pdev; in decode_getdeviceinfo()
6102 if (status == -ETOOSMALL) { in decode_getdeviceinfo()
6105 return -EIO; in decode_getdeviceinfo()
6106 pdev->mincount = be32_to_cpup(p); in decode_getdeviceinfo()
6108 __func__, pdev->mincount); in decode_getdeviceinfo()
6115 return -EIO; in decode_getdeviceinfo()
6117 if (type != pdev->layout_type) { in decode_getdeviceinfo()
6119 __func__, pdev->layout_type, type); in decode_getdeviceinfo()
6120 return -EINVAL; in decode_getdeviceinfo()
6124 * the opaque device_addr4 in the xdr_buf->pages (pnfs_device->pages) in decode_getdeviceinfo()
6125 * and places the remaining xdr data in xdr_buf->tail in decode_getdeviceinfo()
6127 pdev->mincount = be32_to_cpup(p); in decode_getdeviceinfo()
6128 if (xdr_read_pages(xdr, pdev->mincount) != pdev->mincount) in decode_getdeviceinfo()
6129 return -EIO; in decode_getdeviceinfo()
6134 return -EIO; in decode_getdeviceinfo()
6141 return -EIO; in decode_getdeviceinfo()
6143 res->notification = be32_to_cpup(p++); in decode_getdeviceinfo()
6148 return -EIO; in decode_getdeviceinfo()
6169 res->return_on_close = be32_to_cpup(p); in decode_layoutget()
6170 decode_layout_stateid(xdr, &res->stateid); in decode_layoutget()
6178 status = -EINVAL; in decode_layoutget()
6185 p = xdr_decode_hyper(p, &res->range.offset); in decode_layoutget()
6186 p = xdr_decode_hyper(p, &res->range.length); in decode_layoutget()
6187 res->range.iomode = be32_to_cpup(p++); in decode_layoutget()
6188 res->type = be32_to_cpup(p++); in decode_layoutget()
6189 res->layoutp->len = be32_to_cpup(p); in decode_layoutget()
6193 (unsigned long)res->range.offset, in decode_layoutget()
6194 (unsigned long)res->range.length, in decode_layoutget()
6195 res->range.iomode, in decode_layoutget()
6196 res->type, in decode_layoutget()
6197 res->layoutp->len); in decode_layoutget()
6199 recvd = xdr_read_pages(xdr, res->layoutp->len); in decode_layoutget()
6200 if (res->layoutp->len > recvd) { in decode_layoutget()
6203 res->layoutp->len, recvd); in decode_layoutget()
6204 status = -EINVAL; in decode_layoutget()
6219 res->status = status; in decode_layoutget()
6222 status = -EIO; in decode_layoutget()
6237 return -EIO; in decode_layoutreturn()
6238 res->lrs_present = be32_to_cpup(p); in decode_layoutreturn()
6239 if (res->lrs_present) in decode_layoutreturn()
6240 status = decode_layout_stateid(xdr, &res->stateid); in decode_layoutreturn()
6242 nfs4_stateid_copy(&res->stateid, &invalid_stateid); in decode_layoutreturn()
6255 res->status = status; in decode_layoutcommit()
6261 return -EIO; in decode_layoutcommit()
6268 return -EIO; in decode_layoutcommit()
6286 return -EIO; in decode_test_stateid()
6289 return -EIO; in decode_test_stateid()
6293 return -EIO; in decode_test_stateid()
6294 res->status = be32_to_cpup(p++); in decode_test_stateid()
6302 res->status = decode_op_hdr(xdr, OP_FREE_STATEID); in decode_free_stateid()
6303 return res->status; in decode_free_stateid()
6345 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_open_downgrade()
6351 if (res->lr_res) { in nfs4_xdr_dec_open_downgrade()
6352 status = decode_layoutreturn(xdr, res->lr_res); in nfs4_xdr_dec_open_downgrade()
6353 res->lr_ret = status; in nfs4_xdr_dec_open_downgrade()
6375 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_access()
6381 status = decode_access(xdr, &res->supported, &res->access); in nfs4_xdr_dec_access()
6384 if (res->fattr) in nfs4_xdr_dec_access()
6385 decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_access()
6403 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_lookup()
6412 status = decode_getfh(xdr, res->fh); in nfs4_xdr_dec_lookup()
6415 status = decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_lookup()
6433 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_lookupp()
6442 status = decode_getfh(xdr, res->fh); in nfs4_xdr_dec_lookupp()
6445 status = decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_lookupp()
6464 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_lookup_root()
6470 status = decode_getfh(xdr, res->fh); in nfs4_xdr_dec_lookup_root()
6472 status = decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_lookup_root()
6490 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_remove()
6496 status = decode_remove(xdr, &res->cinfo); in nfs4_xdr_dec_remove()
6514 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_rename()
6526 status = decode_rename(xdr, &res->old_cinfo, &res->new_cinfo); in nfs4_xdr_dec_rename()
6544 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_link()
6556 status = decode_link(xdr, &res->cinfo); in nfs4_xdr_dec_link()
6566 decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_link()
6584 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_create()
6590 status = decode_create(xdr, &res->dir_cinfo); in nfs4_xdr_dec_create()
6593 status = decode_getfh(xdr, res->fh); in nfs4_xdr_dec_create()
6596 decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_create()
6623 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_getattr()
6629 if (res->gdd_res) { in nfs4_xdr_dec_getattr()
6634 status = decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_getattr()
6647 .minorversion = nfs4_xdr_minorversion(&args->seq_args), in nfs4_xdr_enc_setacl()
6651 encode_sequence(xdr, &args->seq_args, &hdr); in nfs4_xdr_enc_setacl()
6652 encode_putfh(xdr, args->fh, &hdr); in nfs4_xdr_enc_setacl()
6671 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_setacl()
6693 if (res->acl_scratch != NULL) in nfs4_xdr_dec_getacl()
6694 xdr_set_scratch_folio(xdr, res->acl_scratch); in nfs4_xdr_dec_getacl()
6698 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_getacl()
6704 status = decode_getacl(xdr, rqstp, res, res->acl_type); in nfs4_xdr_dec_getacl()
6723 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_close()
6729 if (res->lr_res) { in nfs4_xdr_dec_close()
6730 status = decode_layoutreturn(xdr, res->lr_res); in nfs4_xdr_dec_close()
6731 res->lr_ret = status; in nfs4_xdr_dec_close()
6735 if (res->fattr != NULL) { in nfs4_xdr_dec_close()
6736 status = decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_close()
6758 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_open()
6767 status = decode_getfh(xdr, &res->fh); in nfs4_xdr_dec_open()
6770 if (res->access_request) in nfs4_xdr_dec_open()
6771 decode_access(xdr, &res->access_supported, &res->access_result); in nfs4_xdr_dec_open()
6772 decode_getfattr(xdr, res->f_attr, res->server); in nfs4_xdr_dec_open()
6773 if (res->lg_res) in nfs4_xdr_dec_open()
6774 decode_layoutget(xdr, rqstp, res->lg_res); in nfs4_xdr_dec_open()
6815 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_open_noattr()
6824 if (res->access_request) in nfs4_xdr_dec_open_noattr()
6825 decode_access(xdr, &res->access_supported, &res->access_result); in nfs4_xdr_dec_open_noattr()
6826 decode_getfattr(xdr, res->f_attr, res->server); in nfs4_xdr_dec_open_noattr()
6827 if (res->lg_res) in nfs4_xdr_dec_open_noattr()
6828 decode_layoutget(xdr, rqstp, res->lg_res); in nfs4_xdr_dec_open_noattr()
6847 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_setattr()
6856 decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_setattr()
6874 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_lock()
6898 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_lockt()
6922 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_locku()
6959 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_readlink()
6983 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_readdir()
7005 res->op_status = hdr.status; in nfs4_xdr_dec_read()
7008 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_read()
7016 status = res->count; in nfs4_xdr_dec_read()
7032 res->op_status = hdr.status; in nfs4_xdr_dec_write()
7035 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_write()
7044 if (res->fattr) in nfs4_xdr_dec_write()
7045 decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_write()
7047 status = res->count; in nfs4_xdr_dec_write()
7063 res->op_status = hdr.status; in nfs4_xdr_dec_commit()
7066 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_commit()
7089 status = decode_sequence(xdr, &res->seq_res, req); in nfs4_xdr_dec_fsinfo()
7093 status = decode_fsinfo(xdr, res->fsinfo); in nfs4_xdr_dec_fsinfo()
7109 status = decode_sequence(xdr, &res->seq_res, req); in nfs4_xdr_dec_pathconf()
7113 status = decode_pathconf(xdr, res->pathconf); in nfs4_xdr_dec_pathconf()
7129 status = decode_sequence(xdr, &res->seq_res, req); in nfs4_xdr_dec_statfs()
7133 status = decode_statfs(xdr, res->fsstat); in nfs4_xdr_dec_statfs()
7151 status = decode_sequence(xdr, &res->seq_res, req); in nfs4_xdr_dec_server_caps()
7224 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_delegreturn()
7230 if (res->lr_res) { in nfs4_xdr_dec_delegreturn()
7231 status = decode_layoutreturn(xdr, res->lr_res); in nfs4_xdr_dec_delegreturn()
7232 res->lr_ret = status; in nfs4_xdr_dec_delegreturn()
7236 if (res->sattr_res) { in nfs4_xdr_dec_delegreturn()
7238 res->sattr_ret = status; in nfs4_xdr_dec_delegreturn()
7242 if (res->fattr) { in nfs4_xdr_dec_delegreturn()
7243 status = decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_delegreturn()
7266 status = decode_sequence(xdr, &res->seq_res, req); in nfs4_xdr_dec_fs_locations()
7272 if (res->migration) { in nfs4_xdr_dec_fs_locations()
7275 res->fs_locations->fattr, in nfs4_xdr_dec_fs_locations()
7276 NULL, res->fs_locations, in nfs4_xdr_dec_fs_locations()
7277 res->fs_locations->server); in nfs4_xdr_dec_fs_locations()
7280 if (res->renew) in nfs4_xdr_dec_fs_locations()
7288 res->fs_locations->fattr, in nfs4_xdr_dec_fs_locations()
7289 NULL, res->fs_locations, in nfs4_xdr_dec_fs_locations()
7290 res->fs_locations->server); in nfs4_xdr_dec_fs_locations()
7310 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_secinfo()
7335 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_fsid_present()
7341 status = decode_getfh(xdr, res->fh); in nfs4_xdr_dec_fsid_present()
7344 if (res->renew) in nfs4_xdr_dec_fsid_present()
7462 status = decode_sequence(xdr, &res->lr_seq_res, rqstp); in nfs4_xdr_dec_get_lease_time()
7466 status = decode_fsinfo(xdr, res->lr_fsinfo); in nfs4_xdr_dec_get_lease_time()
7485 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_reclaim_complete()
7505 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_getdeviceinfo()
7527 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_layoutget()
7552 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_layoutreturn()
7577 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_layoutcommit()
7586 decode_getfattr(xdr, res->fattr, res->server); in nfs4_xdr_dec_layoutcommit()
7605 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_secinfo_no_name()
7630 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_test_stateid()
7652 status = decode_sequence(xdr, &res->seq_res, rqstp); in nfs4_xdr_dec_free_stateid()
7662 * nfs4_decode_dirent - Decode a single NFSv4 directory entry stored in
7684 return -EAGAIN; in nfs4_decode_dirent()
7688 return -EAGAIN; in nfs4_decode_dirent()
7690 return -EAGAIN; in nfs4_decode_dirent()
7691 entry->eof = 1; in nfs4_decode_dirent()
7692 return -EBADCOOKIE; in nfs4_decode_dirent()
7697 return -EAGAIN; in nfs4_decode_dirent()
7699 entry->len = be32_to_cpup(p); in nfs4_decode_dirent()
7701 p = xdr_inline_decode(xdr, entry->len); in nfs4_decode_dirent()
7703 return -EAGAIN; in nfs4_decode_dirent()
7704 entry->name = (const char *) p; in nfs4_decode_dirent()
7711 entry->ino = 1; in nfs4_decode_dirent()
7712 entry->fattr->valid = 0; in nfs4_decode_dirent()
7715 return -EAGAIN; in nfs4_decode_dirent()
7718 return -EAGAIN; in nfs4_decode_dirent()
7720 if (decode_getfattr_attrs(xdr, bitmap, entry->fattr, entry->fh, in nfs4_decode_dirent()
7721 NULL, entry->server) < 0) in nfs4_decode_dirent()
7722 return -EAGAIN; in nfs4_decode_dirent()
7723 if (entry->fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) in nfs4_decode_dirent()
7724 entry->ino = entry->fattr->mounted_on_fileid; in nfs4_decode_dirent()
7725 else if (entry->fattr->valid & NFS_ATTR_FATTR_FILEID) in nfs4_decode_dirent()
7726 entry->ino = entry->fattr->fileid; in nfs4_decode_dirent()
7728 entry->d_type = DT_UNKNOWN; in nfs4_decode_dirent()
7729 if (entry->fattr->valid & NFS_ATTR_FATTR_TYPE) in nfs4_decode_dirent()
7730 entry->d_type = nfs_umode_to_dtype(entry->fattr->mode); in nfs4_decode_dirent()
7732 entry->cookie = new_cookie; in nfs4_decode_dirent()