Lines Matching refs:call

138 static void yfs_check_req(struct afs_call *call, __be32 *bp)
140 size_t len = (void *)bp - call->request;
142 if (len > call->request_size)
144 call->type->name, len, call->request_size);
145 else if (len < call->request_size)
147 call->type->name, len, call->request_size);
174 struct afs_call *call,
220 afs_protocol_error(call, afs_eproto_bad_status);
228 struct afs_call *call,
235 cb_expiry = ktime_add(call->issue_time, xdr_to_u64(x->expiration_time) * 100);
331 static int yfs_deliver_status_and_volsync(struct afs_call *call)
333 struct afs_operation *op = call->op;
337 ret = afs_transfer_reply(call);
341 bp = call->buffer;
342 xdr_decode_YFSFetchStatus(&bp, call, &op->file[0].scb);
352 static int yfs_deliver_fs_fetch_data64(struct afs_call *call)
354 struct afs_operation *op = call->op;
361 call->unmarshall, call->iov_len, iov_iter_count(call->iter),
364 switch (call->unmarshall) {
367 afs_extract_to_tmp64(call);
368 call->unmarshall++;
377 ret = afs_extract_data(call, true);
381 req->actual_len = be64_to_cpu(call->tmp64);
387 call->iter = req->iter;
388 call->iov_len = min(req->actual_len, req->len);
389 call->unmarshall++;
395 iov_iter_count(call->iter), req->actual_len);
397 ret = afs_extract_data(call, true);
401 call->iter = &call->def_iter;
406 afs_extract_discard(call, req->actual_len - req->len);
407 call->unmarshall = 3;
412 iov_iter_count(call->iter), req->actual_len - req->len);
414 ret = afs_extract_data(call, true);
419 call->unmarshall = 4;
420 afs_extract_to_buf(call,
428 ret = afs_extract_data(call, false);
432 bp = call->buffer;
433 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb);
434 xdr_decode_YFSCallBack(&bp, call, &vp->scb);
440 call->unmarshall++;
468 struct afs_call *call;
475 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchData64,
482 if (!call)
485 req->call_debug_id = call->debug_id;
488 bp = call->request;
494 yfs_check_req(call, bp);
496 call->fid = vp->fid;
497 trace_afs_make_fs_call(call, &vp->fid);
498 afs_make_op_call(op, call, GFP_NOFS);
504 static int yfs_deliver_fs_create_vnode(struct afs_call *call)
506 struct afs_operation *op = call->op;
512 _enter("{%u}", call->unmarshall);
514 ret = afs_transfer_reply(call);
519 bp = call->buffer;
521 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb);
522 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb);
523 xdr_decode_YFSCallBack(&bp, call, &vp->scb);
547 struct afs_call *call;
565 call = afs_alloc_flat_call(op->net, &afs_RXFSCreateFile, reqsz, rplsz);
566 if (!call)
570 bp = call->request;
577 yfs_check_req(call, bp);
579 call->fid = dvp->fid;
580 trace_afs_make_fs_call1(call, &dvp->fid, name);
581 afs_make_op_call(op, call, GFP_NOFS);
598 struct afs_call *call;
615 call = afs_alloc_flat_call(op->net, &yfs_RXFSMakeDir, reqsz, rplsz);
616 if (!call)
620 bp = call->request;
626 yfs_check_req(call, bp);
628 call->fid = dvp->fid;
629 trace_afs_make_fs_call1(call, &dvp->fid, name);
630 afs_make_op_call(op, call, GFP_NOFS);
636 static int yfs_deliver_fs_remove_file2(struct afs_call *call)
638 struct afs_operation *op = call->op;
645 _enter("{%u}", call->unmarshall);
647 ret = afs_transfer_reply(call);
651 bp = call->buffer;
652 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb);
654 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb);
661 static void yfs_done_fs_remove_file2(struct afs_call *call)
663 if (call->error == -ECONNABORTED &&
664 call->abort_code == RX_INVALID_OPERATION) {
665 set_bit(AFS_SERVER_FL_NO_RM2, &call->server->flags);
666 call->op->flags |= AFS_OPERATION_DOWNGRADE;
688 struct afs_call *call;
693 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveFile2,
702 if (!call)
706 bp = call->request;
711 yfs_check_req(call, bp);
713 call->fid = dvp->fid;
714 trace_afs_make_fs_call1(call, &dvp->fid, name);
715 afs_make_op_call(op, call, GFP_NOFS);
721 static int yfs_deliver_fs_remove(struct afs_call *call)
723 struct afs_operation *op = call->op;
728 _enter("{%u}", call->unmarshall);
730 ret = afs_transfer_reply(call);
734 bp = call->buffer;
735 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb);
757 struct afs_call *call;
765 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveFile,
772 if (!call)
776 bp = call->request;
781 yfs_check_req(call, bp);
783 call->fid = dvp->fid;
784 trace_afs_make_fs_call1(call, &dvp->fid, name);
785 afs_make_op_call(op, call, GFP_NOFS);
802 struct afs_call *call;
807 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveDir,
814 if (!call)
818 bp = call->request;
823 yfs_check_req(call, bp);
825 call->fid = dvp->fid;
826 trace_afs_make_fs_call1(call, &dvp->fid, name);
827 afs_make_op_call(op, call, GFP_NOFS);
833 static int yfs_deliver_fs_link(struct afs_call *call)
835 struct afs_operation *op = call->op;
841 _enter("{%u}", call->unmarshall);
843 ret = afs_transfer_reply(call);
847 bp = call->buffer;
848 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb);
849 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb);
873 struct afs_call *call;
878 call = afs_alloc_flat_call(op->net, &yfs_RXYFSLink,
887 if (!call)
891 bp = call->request;
897 yfs_check_req(call, bp);
899 call->fid = vp->fid;
900 trace_afs_make_fs_call1(call, &vp->fid, name);
901 afs_make_op_call(op, call, GFP_NOFS);
907 static int yfs_deliver_fs_symlink(struct afs_call *call)
909 struct afs_operation *op = call->op;
915 _enter("{%u}", call->unmarshall);
917 ret = afs_transfer_reply(call);
922 bp = call->buffer;
924 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb);
925 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb);
949 struct afs_call *call;
957 call = afs_alloc_flat_call(op->net, &yfs_RXYFSSymlink,
968 if (!call)
972 bp = call->request;
979 yfs_check_req(call, bp);
981 call->fid = dvp->fid;
982 trace_afs_make_fs_call1(call, &dvp->fid, name);
983 afs_make_op_call(op, call, GFP_NOFS);
989 static int yfs_deliver_fs_rename(struct afs_call *call)
991 struct afs_operation *op = call->op;
997 _enter("{%u}", call->unmarshall);
999 ret = afs_transfer_reply(call);
1003 bp = call->buffer;
1007 xdr_decode_YFSFetchStatus(&bp, call, &orig_dvp->scb);
1008 xdr_decode_YFSFetchStatus(&bp, call, &new_dvp->scb);
1033 struct afs_call *call;
1038 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRename,
1048 if (!call)
1052 bp = call->request;
1059 yfs_check_req(call, bp);
1061 call->fid = orig_dvp->fid;
1062 trace_afs_make_fs_call2(call, &orig_dvp->fid, orig_name, new_name);
1063 afs_make_op_call(op, call, GFP_NOFS);
1082 struct afs_call *call;
1093 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreData64,
1101 if (!call)
1104 call->write_iter = op->store.write_iter;
1107 bp = call->request;
1115 yfs_check_req(call, bp);
1117 call->fid = vp->fid;
1118 trace_afs_make_fs_call(call, &vp->fid);
1119 afs_make_op_call(op, call, GFP_NOFS);
1146 struct afs_call *call;
1153 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreData64_as_Status,
1160 if (!call)
1164 bp = call->request;
1172 yfs_check_req(call, bp);
1174 call->fid = vp->fid;
1175 trace_afs_make_fs_call(call, &vp->fid);
1176 afs_make_op_call(op, call, GFP_NOFS);
1186 struct afs_call *call;
1196 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreStatus,
1202 if (!call)
1206 bp = call->request;
1211 yfs_check_req(call, bp);
1213 call->fid = vp->fid;
1214 trace_afs_make_fs_call(call, &vp->fid);
1215 afs_make_op_call(op, call, GFP_NOFS);
1221 static int yfs_deliver_fs_get_volume_status(struct afs_call *call)
1223 struct afs_operation *op = call->op;
1229 _enter("{%u}", call->unmarshall);
1231 switch (call->unmarshall) {
1233 call->unmarshall++;
1234 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchVolumeStatus));
1240 ret = afs_extract_data(call, true);
1244 bp = call->buffer;
1246 call->unmarshall++;
1247 afs_extract_to_tmp(call);
1252 ret = afs_extract_data(call, true);
1256 call->count = ntohl(call->tmp);
1257 _debug("volname length: %u", call->count);
1258 if (call->count >= AFSNAMEMAX)
1259 return afs_protocol_error(call, afs_eproto_volname_len);
1260 size = (call->count + 3) & ~3; /* It's padded */
1261 afs_extract_to_buf(call, size);
1262 call->unmarshall++;
1268 ret = afs_extract_data(call, true);
1272 p = call->buffer;
1273 p[call->count] = 0;
1275 afs_extract_to_tmp(call);
1276 call->unmarshall++;
1281 ret = afs_extract_data(call, true);
1285 call->count = ntohl(call->tmp);
1286 _debug("offline msg length: %u", call->count);
1287 if (call->count >= AFSNAMEMAX)
1288 return afs_protocol_error(call, afs_eproto_offline_msg_len);
1289 size = (call->count + 3) & ~3; /* It's padded */
1290 afs_extract_to_buf(call, size);
1291 call->unmarshall++;
1297 ret = afs_extract_data(call, true);
1301 p = call->buffer;
1302 p[call->count] = 0;
1305 afs_extract_to_tmp(call);
1306 call->unmarshall++;
1311 ret = afs_extract_data(call, true);
1315 call->count = ntohl(call->tmp);
1316 _debug("motd length: %u", call->count);
1317 if (call->count >= AFSNAMEMAX)
1318 return afs_protocol_error(call, afs_eproto_motd_len);
1319 size = (call->count + 3) & ~3; /* It's padded */
1320 afs_extract_to_buf(call, size);
1321 call->unmarshall++;
1327 ret = afs_extract_data(call, false);
1331 p = call->buffer;
1332 p[call->count] = 0;
1335 call->unmarshall++;
1362 struct afs_call *call;
1367 call = afs_alloc_flat_call(op->net, &yfs_RXYFSGetVolumeStatus,
1374 if (!call)
1378 bp = call->request;
1382 yfs_check_req(call, bp);
1384 call->fid = vp->fid;
1385 trace_afs_make_fs_call(call, &vp->fid);
1386 afs_make_op_call(op, call, GFP_NOFS);
1427 struct afs_call *call;
1432 call = afs_alloc_flat_call(op->net, &yfs_RXYFSSetLock,
1438 if (!call)
1442 bp = call->request;
1447 yfs_check_req(call, bp);
1449 call->fid = vp->fid;
1450 trace_afs_make_fs_calli(call, &vp->fid, op->lock.type);
1451 afs_make_op_call(op, call, GFP_NOFS);
1460 struct afs_call *call;
1465 call = afs_alloc_flat_call(op->net, &yfs_RXYFSExtendLock,
1470 if (!call)
1474 bp = call->request;
1478 yfs_check_req(call, bp);
1480 call->fid = vp->fid;
1481 trace_afs_make_fs_call(call, &vp->fid);
1482 afs_make_op_call(op, call, GFP_NOFS);
1491 struct afs_call *call;
1496 call = afs_alloc_flat_call(op->net, &yfs_RXYFSReleaseLock,
1501 if (!call)
1505 bp = call->request;
1509 yfs_check_req(call, bp);
1511 call->fid = vp->fid;
1512 trace_afs_make_fs_call(call, &vp->fid);
1513 afs_make_op_call(op, call, GFP_NOFS);
1519 static int yfs_deliver_fs_fetch_status(struct afs_call *call)
1521 struct afs_operation *op = call->op;
1526 ret = afs_transfer_reply(call);
1531 bp = call->buffer;
1532 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb);
1533 xdr_decode_YFSCallBack(&bp, call, &vp->scb);
1556 struct afs_call *call;
1562 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchStatus,
1568 if (!call)
1572 bp = call->request;
1576 yfs_check_req(call, bp);
1578 call->fid = vp->fid;
1579 trace_afs_make_fs_call(call, &vp->fid);
1580 afs_make_op_call(op, call, GFP_NOFS);
1584 * Deliver reply data to an YFS.InlineBulkStatus call
1586 static int yfs_deliver_fs_inline_bulk_status(struct afs_call *call)
1588 struct afs_operation *op = call->op;
1594 _enter("{%u}", call->unmarshall);
1596 switch (call->unmarshall) {
1598 afs_extract_to_tmp(call);
1599 call->unmarshall++;
1605 ret = afs_extract_data(call, true);
1609 tmp = ntohl(call->tmp);
1612 return afs_protocol_error(call, afs_eproto_ibulkst_count);
1614 call->count = 0;
1615 call->unmarshall++;
1617 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchStatus));
1621 _debug("extract status array %u", call->count);
1622 ret = afs_extract_data(call, true);
1626 switch (call->count) {
1634 scb = &op->more_files[call->count - 2].scb;
1638 bp = call->buffer;
1639 xdr_decode_YFSFetchStatus(&bp, call, scb);
1641 call->count++;
1642 if (call->count < op->nr_files)
1645 call->count = 0;
1646 call->unmarshall++;
1647 afs_extract_to_tmp(call);
1653 ret = afs_extract_data(call, true);
1657 tmp = ntohl(call->tmp);
1660 return afs_protocol_error(call, afs_eproto_ibulkst_cb_count);
1661 call->count = 0;
1662 call->unmarshall++;
1664 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSCallBack));
1669 ret = afs_extract_data(call, true);
1674 switch (call->count) {
1682 scb = &op->more_files[call->count - 2].scb;
1686 bp = call->buffer;
1687 xdr_decode_YFSCallBack(&bp, call, scb);
1688 call->count++;
1689 if (call->count < op->nr_files)
1692 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSVolSync));
1693 call->unmarshall++;
1697 ret = afs_extract_data(call, false);
1701 bp = call->buffer;
1704 call->unmarshall++;
1732 struct afs_call *call;
1739 call = afs_alloc_flat_call(op->net, &yfs_RXYFSInlineBulkStatus,
1745 if (!call)
1749 bp = call->request;
1757 yfs_check_req(call, bp);
1759 call->fid = vp->fid;
1760 trace_afs_make_fs_call(call, &vp->fid);
1761 afs_make_op_call(op, call, GFP_NOFS);
1767 static int yfs_deliver_fs_fetch_opaque_acl(struct afs_call *call)
1769 struct afs_operation *op = call->op;
1777 _enter("{%u}", call->unmarshall);
1779 switch (call->unmarshall) {
1781 afs_extract_to_tmp(call);
1782 call->unmarshall++;
1787 ret = afs_extract_data(call, true);
1791 size = call->count2 = ntohl(call->tmp);
1799 acl->size = call->count2;
1800 afs_extract_begin(call, acl->data, size);
1802 afs_extract_discard(call, size);
1804 call->unmarshall++;
1809 ret = afs_extract_data(call, true);
1813 afs_extract_to_tmp(call);
1814 call->unmarshall++;
1819 ret = afs_extract_data(call, true);
1823 size = call->count2 = ntohl(call->tmp);
1831 acl->size = call->count2;
1832 afs_extract_begin(call, acl->data, size);
1834 afs_extract_discard(call, size);
1836 call->unmarshall++;
1841 ret = afs_extract_data(call, true);
1845 afs_extract_to_buf(call,
1849 call->unmarshall++;
1854 ret = afs_extract_data(call, false);
1858 bp = call->buffer;
1861 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb);
1864 call->unmarshall++;
1900 struct afs_call *call;
1906 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchOpaqueACL,
1912 if (!call)
1916 bp = call->request;
1920 yfs_check_req(call, bp);
1922 call->fid = vp->fid;
1923 trace_afs_make_fs_call(call, &vp->fid);
1924 afs_make_op_call(op, call, GFP_KERNEL);
1943 struct afs_call *call;
1952 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreOpaqueACL2,
1958 if (!call)
1962 bp = call->request;
1971 yfs_check_req(call, bp);
1973 call->fid = vp->fid;
1974 trace_afs_make_fs_call(call, &vp->fid);
1975 afs_make_op_call(op, call, GFP_KERNEL);