Lines Matching full:call
138 static void yfs_check_req(struct afs_call *call, __be32 *bp) in yfs_check_req() argument
140 size_t len = (void *)bp - call->request; in yfs_check_req()
142 if (len > call->request_size) in yfs_check_req()
144 call->type->name, len, call->request_size); in yfs_check_req()
145 else if (len < call->request_size) in yfs_check_req()
147 call->type->name, len, call->request_size); in yfs_check_req()
174 struct afs_call *call, in xdr_decode_YFSFetchStatus() argument
220 afs_protocol_error(call, afs_eproto_bad_status); in xdr_decode_YFSFetchStatus()
228 struct afs_call *call, in xdr_decode_YFSCallBack() argument
235 cb_expiry = ktime_add(call->issue_time, xdr_to_u64(x->expiration_time) * 100); in xdr_decode_YFSCallBack()
331 static int yfs_deliver_status_and_volsync(struct afs_call *call) in yfs_deliver_status_and_volsync() argument
333 struct afs_operation *op = call->op; in yfs_deliver_status_and_volsync()
337 ret = afs_transfer_reply(call); in yfs_deliver_status_and_volsync()
341 bp = call->buffer; in yfs_deliver_status_and_volsync()
342 xdr_decode_YFSFetchStatus(&bp, call, &op->file[0].scb); in yfs_deliver_status_and_volsync()
352 static int yfs_deliver_fs_fetch_data64(struct afs_call *call) in yfs_deliver_fs_fetch_data64() argument
354 struct afs_operation *op = call->op; in yfs_deliver_fs_fetch_data64()
362 call->unmarshall, call->iov_len, iov_iter_count(call->iter), in yfs_deliver_fs_fetch_data64()
363 call->remaining); in yfs_deliver_fs_fetch_data64()
365 switch (call->unmarshall) { in yfs_deliver_fs_fetch_data64()
367 call->remaining = 0; in yfs_deliver_fs_fetch_data64()
368 afs_extract_to_tmp64(call); in yfs_deliver_fs_fetch_data64()
369 call->unmarshall++; in yfs_deliver_fs_fetch_data64()
378 ret = afs_extract_data(call, true); in yfs_deliver_fs_fetch_data64()
382 call->remaining = be64_to_cpu(call->tmp64); in yfs_deliver_fs_fetch_data64()
383 _debug("DATA length: %llu", call->remaining); in yfs_deliver_fs_fetch_data64()
385 if (call->remaining == 0) in yfs_deliver_fs_fetch_data64()
388 call->iter = &subreq->io_iter; in yfs_deliver_fs_fetch_data64()
389 call->iov_len = min(call->remaining, subreq->len - subreq->transferred); in yfs_deliver_fs_fetch_data64()
390 call->unmarshall++; in yfs_deliver_fs_fetch_data64()
395 count_before = call->iov_len; in yfs_deliver_fs_fetch_data64()
396 _debug("extract data %zu/%llu", count_before, call->remaining); in yfs_deliver_fs_fetch_data64()
398 ret = afs_extract_data(call, true); in yfs_deliver_fs_fetch_data64()
399 subreq->transferred += count_before - call->iov_len; in yfs_deliver_fs_fetch_data64()
403 call->iter = &call->def_iter; in yfs_deliver_fs_fetch_data64()
404 if (call->remaining) in yfs_deliver_fs_fetch_data64()
408 afs_extract_discard(call, call->remaining); in yfs_deliver_fs_fetch_data64()
409 call->unmarshall = 3; in yfs_deliver_fs_fetch_data64()
414 iov_iter_count(call->iter), call->remaining); in yfs_deliver_fs_fetch_data64()
416 ret = afs_extract_data(call, true); in yfs_deliver_fs_fetch_data64()
421 call->unmarshall = 4; in yfs_deliver_fs_fetch_data64()
422 afs_extract_to_buf(call, in yfs_deliver_fs_fetch_data64()
430 ret = afs_extract_data(call, false); in yfs_deliver_fs_fetch_data64()
434 bp = call->buffer; in yfs_deliver_fs_fetch_data64()
435 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_data64()
436 xdr_decode_YFSCallBack(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_data64()
442 call->unmarshall++; in yfs_deliver_fs_fetch_data64()
472 struct afs_call *call; in yfs_fs_fetch_data() local
480 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchData64, in yfs_fs_fetch_data()
487 if (!call) in yfs_fs_fetch_data()
491 call->async = true; in yfs_fs_fetch_data()
494 bp = call->request; in yfs_fs_fetch_data()
500 yfs_check_req(call, bp); in yfs_fs_fetch_data()
502 call->fid = vp->fid; in yfs_fs_fetch_data()
503 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_fetch_data()
504 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_fetch_data()
510 static int yfs_deliver_fs_create_vnode(struct afs_call *call) in yfs_deliver_fs_create_vnode() argument
512 struct afs_operation *op = call->op; in yfs_deliver_fs_create_vnode()
518 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_create_vnode()
520 ret = afs_transfer_reply(call); in yfs_deliver_fs_create_vnode()
525 bp = call->buffer; in yfs_deliver_fs_create_vnode()
527 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_create_vnode()
528 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_create_vnode()
529 xdr_decode_YFSCallBack(&bp, call, &vp->scb); in yfs_deliver_fs_create_vnode()
553 struct afs_call *call; in yfs_fs_create_file() local
571 call = afs_alloc_flat_call(op->net, &afs_RXFSCreateFile, reqsz, rplsz); in yfs_fs_create_file()
572 if (!call) in yfs_fs_create_file()
576 bp = call->request; in yfs_fs_create_file()
583 yfs_check_req(call, bp); in yfs_fs_create_file()
585 call->fid = dvp->fid; in yfs_fs_create_file()
586 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_create_file()
587 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_create_file()
604 struct afs_call *call; in yfs_fs_make_dir() local
621 call = afs_alloc_flat_call(op->net, &yfs_RXFSMakeDir, reqsz, rplsz); in yfs_fs_make_dir()
622 if (!call) in yfs_fs_make_dir()
626 bp = call->request; in yfs_fs_make_dir()
632 yfs_check_req(call, bp); in yfs_fs_make_dir()
634 call->fid = dvp->fid; in yfs_fs_make_dir()
635 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_make_dir()
636 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_make_dir()
642 static int yfs_deliver_fs_remove_file2(struct afs_call *call) in yfs_deliver_fs_remove_file2() argument
644 struct afs_operation *op = call->op; in yfs_deliver_fs_remove_file2()
651 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_remove_file2()
653 ret = afs_transfer_reply(call); in yfs_deliver_fs_remove_file2()
657 bp = call->buffer; in yfs_deliver_fs_remove_file2()
658 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_remove_file2()
660 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_remove_file2()
667 static void yfs_done_fs_remove_file2(struct afs_call *call) in yfs_done_fs_remove_file2() argument
669 if (call->error == -ECONNABORTED && in yfs_done_fs_remove_file2()
670 (call->abort_code == RX_INVALID_OPERATION || in yfs_done_fs_remove_file2()
671 call->abort_code == RXGEN_OPCODE)) { in yfs_done_fs_remove_file2()
672 set_bit(AFS_SERVER_FL_NO_RM2, &call->op->server->flags); in yfs_done_fs_remove_file2()
673 call->op->flags |= AFS_OPERATION_DOWNGRADE; in yfs_done_fs_remove_file2()
695 struct afs_call *call; in yfs_fs_remove_file2() local
700 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveFile2, in yfs_fs_remove_file2()
709 if (!call) in yfs_fs_remove_file2()
713 bp = call->request; in yfs_fs_remove_file2()
718 yfs_check_req(call, bp); in yfs_fs_remove_file2()
720 call->fid = dvp->fid; in yfs_fs_remove_file2()
721 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_remove_file2()
722 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_remove_file2()
728 static int yfs_deliver_fs_remove(struct afs_call *call) in yfs_deliver_fs_remove() argument
730 struct afs_operation *op = call->op; in yfs_deliver_fs_remove()
735 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_remove()
737 ret = afs_transfer_reply(call); in yfs_deliver_fs_remove()
741 bp = call->buffer; in yfs_deliver_fs_remove()
742 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_remove()
764 struct afs_call *call; in yfs_fs_remove_file() local
772 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveFile, in yfs_fs_remove_file()
779 if (!call) in yfs_fs_remove_file()
783 bp = call->request; in yfs_fs_remove_file()
788 yfs_check_req(call, bp); in yfs_fs_remove_file()
790 call->fid = dvp->fid; in yfs_fs_remove_file()
791 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_remove_file()
792 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_remove_file()
809 struct afs_call *call; in yfs_fs_remove_dir() local
814 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveDir, in yfs_fs_remove_dir()
821 if (!call) in yfs_fs_remove_dir()
825 bp = call->request; in yfs_fs_remove_dir()
830 yfs_check_req(call, bp); in yfs_fs_remove_dir()
832 call->fid = dvp->fid; in yfs_fs_remove_dir()
833 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_remove_dir()
834 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_remove_dir()
840 static int yfs_deliver_fs_link(struct afs_call *call) in yfs_deliver_fs_link() argument
842 struct afs_operation *op = call->op; in yfs_deliver_fs_link()
848 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_link()
850 ret = afs_transfer_reply(call); in yfs_deliver_fs_link()
854 bp = call->buffer; in yfs_deliver_fs_link()
855 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_link()
856 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_link()
880 struct afs_call *call; in yfs_fs_link() local
885 call = afs_alloc_flat_call(op->net, &yfs_RXYFSLink, in yfs_fs_link()
894 if (!call) in yfs_fs_link()
898 bp = call->request; in yfs_fs_link()
904 yfs_check_req(call, bp); in yfs_fs_link()
906 call->fid = vp->fid; in yfs_fs_link()
907 trace_afs_make_fs_call1(call, &vp->fid, name); in yfs_fs_link()
908 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_link()
914 static int yfs_deliver_fs_symlink(struct afs_call *call) in yfs_deliver_fs_symlink() argument
916 struct afs_operation *op = call->op; in yfs_deliver_fs_symlink()
922 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_symlink()
924 ret = afs_transfer_reply(call); in yfs_deliver_fs_symlink()
929 bp = call->buffer; in yfs_deliver_fs_symlink()
931 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_symlink()
932 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_symlink()
956 struct afs_call *call; in yfs_fs_symlink() local
964 call = afs_alloc_flat_call(op->net, &yfs_RXYFSSymlink, in yfs_fs_symlink()
975 if (!call) in yfs_fs_symlink()
979 bp = call->request; in yfs_fs_symlink()
986 yfs_check_req(call, bp); in yfs_fs_symlink()
988 call->fid = dvp->fid; in yfs_fs_symlink()
989 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_symlink()
990 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_symlink()
996 static int yfs_deliver_fs_rename(struct afs_call *call) in yfs_deliver_fs_rename() argument
998 struct afs_operation *op = call->op; in yfs_deliver_fs_rename()
1004 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_rename()
1006 ret = afs_transfer_reply(call); in yfs_deliver_fs_rename()
1010 bp = call->buffer; in yfs_deliver_fs_rename()
1014 xdr_decode_YFSFetchStatus(&bp, call, &orig_dvp->scb); in yfs_deliver_fs_rename()
1015 xdr_decode_YFSFetchStatus(&bp, call, &new_dvp->scb); in yfs_deliver_fs_rename()
1040 struct afs_call *call; in yfs_fs_rename() local
1045 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRename, in yfs_fs_rename()
1055 if (!call) in yfs_fs_rename()
1059 bp = call->request; in yfs_fs_rename()
1066 yfs_check_req(call, bp); in yfs_fs_rename()
1068 call->fid = orig_dvp->fid; in yfs_fs_rename()
1069 trace_afs_make_fs_call2(call, &orig_dvp->fid, orig_name, new_name); in yfs_fs_rename()
1070 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_rename()
1089 struct afs_call *call; in yfs_fs_store_data() local
1100 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreData64, in yfs_fs_store_data()
1108 if (!call) in yfs_fs_store_data()
1111 call->write_iter = op->store.write_iter; in yfs_fs_store_data()
1114 bp = call->request; in yfs_fs_store_data()
1122 yfs_check_req(call, bp); in yfs_fs_store_data()
1124 call->fid = vp->fid; in yfs_fs_store_data()
1125 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_store_data()
1126 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_store_data()
1153 struct afs_call *call; in yfs_fs_setattr_size() local
1160 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreData64_as_Status, in yfs_fs_setattr_size()
1167 if (!call) in yfs_fs_setattr_size()
1171 bp = call->request; in yfs_fs_setattr_size()
1179 yfs_check_req(call, bp); in yfs_fs_setattr_size()
1181 call->fid = vp->fid; in yfs_fs_setattr_size()
1182 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_setattr_size()
1183 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_setattr_size()
1193 struct afs_call *call; in yfs_fs_setattr() local
1203 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreStatus, in yfs_fs_setattr()
1209 if (!call) in yfs_fs_setattr()
1213 bp = call->request; in yfs_fs_setattr()
1218 yfs_check_req(call, bp); in yfs_fs_setattr()
1220 call->fid = vp->fid; in yfs_fs_setattr()
1221 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_setattr()
1222 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_setattr()
1228 static int yfs_deliver_fs_get_volume_status(struct afs_call *call) in yfs_deliver_fs_get_volume_status() argument
1230 struct afs_operation *op = call->op; in yfs_deliver_fs_get_volume_status()
1236 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_get_volume_status()
1238 switch (call->unmarshall) { in yfs_deliver_fs_get_volume_status()
1240 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1241 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchVolumeStatus)); in yfs_deliver_fs_get_volume_status()
1247 ret = afs_extract_data(call, true); in yfs_deliver_fs_get_volume_status()
1251 bp = call->buffer; in yfs_deliver_fs_get_volume_status()
1253 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1254 afs_extract_to_tmp(call); in yfs_deliver_fs_get_volume_status()
1259 ret = afs_extract_data(call, true); in yfs_deliver_fs_get_volume_status()
1263 call->count = ntohl(call->tmp); in yfs_deliver_fs_get_volume_status()
1264 _debug("volname length: %u", call->count); in yfs_deliver_fs_get_volume_status()
1265 if (call->count >= AFSNAMEMAX) in yfs_deliver_fs_get_volume_status()
1266 return afs_protocol_error(call, afs_eproto_volname_len); in yfs_deliver_fs_get_volume_status()
1267 size = (call->count + 3) & ~3; /* It's padded */ in yfs_deliver_fs_get_volume_status()
1268 afs_extract_to_buf(call, size); in yfs_deliver_fs_get_volume_status()
1269 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1275 ret = afs_extract_data(call, true); in yfs_deliver_fs_get_volume_status()
1279 p = call->buffer; in yfs_deliver_fs_get_volume_status()
1280 p[call->count] = 0; in yfs_deliver_fs_get_volume_status()
1282 afs_extract_to_tmp(call); in yfs_deliver_fs_get_volume_status()
1283 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1288 ret = afs_extract_data(call, true); in yfs_deliver_fs_get_volume_status()
1292 call->count = ntohl(call->tmp); in yfs_deliver_fs_get_volume_status()
1293 _debug("offline msg length: %u", call->count); in yfs_deliver_fs_get_volume_status()
1294 if (call->count >= AFSNAMEMAX) in yfs_deliver_fs_get_volume_status()
1295 return afs_protocol_error(call, afs_eproto_offline_msg_len); in yfs_deliver_fs_get_volume_status()
1296 size = (call->count + 3) & ~3; /* It's padded */ in yfs_deliver_fs_get_volume_status()
1297 afs_extract_to_buf(call, size); in yfs_deliver_fs_get_volume_status()
1298 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1304 ret = afs_extract_data(call, true); in yfs_deliver_fs_get_volume_status()
1308 p = call->buffer; in yfs_deliver_fs_get_volume_status()
1309 p[call->count] = 0; in yfs_deliver_fs_get_volume_status()
1312 afs_extract_to_tmp(call); in yfs_deliver_fs_get_volume_status()
1313 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1318 ret = afs_extract_data(call, true); in yfs_deliver_fs_get_volume_status()
1322 call->count = ntohl(call->tmp); in yfs_deliver_fs_get_volume_status()
1323 _debug("motd length: %u", call->count); in yfs_deliver_fs_get_volume_status()
1324 if (call->count >= AFSNAMEMAX) in yfs_deliver_fs_get_volume_status()
1325 return afs_protocol_error(call, afs_eproto_motd_len); in yfs_deliver_fs_get_volume_status()
1326 size = (call->count + 3) & ~3; /* It's padded */ in yfs_deliver_fs_get_volume_status()
1327 afs_extract_to_buf(call, size); in yfs_deliver_fs_get_volume_status()
1328 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1334 ret = afs_extract_data(call, false); in yfs_deliver_fs_get_volume_status()
1338 p = call->buffer; in yfs_deliver_fs_get_volume_status()
1339 p[call->count] = 0; in yfs_deliver_fs_get_volume_status()
1342 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1369 struct afs_call *call; in yfs_fs_get_volume_status() local
1374 call = afs_alloc_flat_call(op->net, &yfs_RXYFSGetVolumeStatus, in yfs_fs_get_volume_status()
1381 if (!call) in yfs_fs_get_volume_status()
1385 bp = call->request; in yfs_fs_get_volume_status()
1389 yfs_check_req(call, bp); in yfs_fs_get_volume_status()
1391 call->fid = vp->fid; in yfs_fs_get_volume_status()
1392 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_get_volume_status()
1393 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_get_volume_status()
1434 struct afs_call *call; in yfs_fs_set_lock() local
1439 call = afs_alloc_flat_call(op->net, &yfs_RXYFSSetLock, in yfs_fs_set_lock()
1445 if (!call) in yfs_fs_set_lock()
1449 bp = call->request; in yfs_fs_set_lock()
1454 yfs_check_req(call, bp); in yfs_fs_set_lock()
1456 call->fid = vp->fid; in yfs_fs_set_lock()
1457 trace_afs_make_fs_calli(call, &vp->fid, op->lock.type); in yfs_fs_set_lock()
1458 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_set_lock()
1467 struct afs_call *call; in yfs_fs_extend_lock() local
1472 call = afs_alloc_flat_call(op->net, &yfs_RXYFSExtendLock, in yfs_fs_extend_lock()
1477 if (!call) in yfs_fs_extend_lock()
1481 bp = call->request; in yfs_fs_extend_lock()
1485 yfs_check_req(call, bp); in yfs_fs_extend_lock()
1487 call->fid = vp->fid; in yfs_fs_extend_lock()
1488 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_extend_lock()
1489 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_extend_lock()
1498 struct afs_call *call; in yfs_fs_release_lock() local
1503 call = afs_alloc_flat_call(op->net, &yfs_RXYFSReleaseLock, in yfs_fs_release_lock()
1508 if (!call) in yfs_fs_release_lock()
1512 bp = call->request; in yfs_fs_release_lock()
1516 yfs_check_req(call, bp); in yfs_fs_release_lock()
1518 call->fid = vp->fid; in yfs_fs_release_lock()
1519 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_release_lock()
1520 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_release_lock()
1526 static int yfs_deliver_fs_fetch_status(struct afs_call *call) in yfs_deliver_fs_fetch_status() argument
1528 struct afs_operation *op = call->op; in yfs_deliver_fs_fetch_status()
1533 ret = afs_transfer_reply(call); in yfs_deliver_fs_fetch_status()
1538 bp = call->buffer; in yfs_deliver_fs_fetch_status()
1539 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_status()
1540 xdr_decode_YFSCallBack(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_status()
1563 struct afs_call *call; in yfs_fs_fetch_status() local
1569 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchStatus, in yfs_fs_fetch_status()
1575 if (!call) in yfs_fs_fetch_status()
1579 bp = call->request; in yfs_fs_fetch_status()
1583 yfs_check_req(call, bp); in yfs_fs_fetch_status()
1585 call->fid = vp->fid; in yfs_fs_fetch_status()
1586 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_fetch_status()
1587 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_fetch_status()
1591 * Deliver reply data to an YFS.InlineBulkStatus call
1593 static int yfs_deliver_fs_inline_bulk_status(struct afs_call *call) in yfs_deliver_fs_inline_bulk_status() argument
1595 struct afs_operation *op = call->op; in yfs_deliver_fs_inline_bulk_status()
1601 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_inline_bulk_status()
1603 switch (call->unmarshall) { in yfs_deliver_fs_inline_bulk_status()
1605 afs_extract_to_tmp(call); in yfs_deliver_fs_inline_bulk_status()
1606 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1612 ret = afs_extract_data(call, true); in yfs_deliver_fs_inline_bulk_status()
1616 tmp = ntohl(call->tmp); in yfs_deliver_fs_inline_bulk_status()
1619 return afs_protocol_error(call, afs_eproto_ibulkst_count); in yfs_deliver_fs_inline_bulk_status()
1621 call->count = 0; in yfs_deliver_fs_inline_bulk_status()
1622 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1624 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchStatus)); in yfs_deliver_fs_inline_bulk_status()
1628 _debug("extract status array %u", call->count); in yfs_deliver_fs_inline_bulk_status()
1629 ret = afs_extract_data(call, true); in yfs_deliver_fs_inline_bulk_status()
1633 switch (call->count) { in yfs_deliver_fs_inline_bulk_status()
1641 scb = &op->more_files[call->count - 2].scb; in yfs_deliver_fs_inline_bulk_status()
1645 bp = call->buffer; in yfs_deliver_fs_inline_bulk_status()
1646 xdr_decode_YFSFetchStatus(&bp, call, scb); in yfs_deliver_fs_inline_bulk_status()
1648 call->count++; in yfs_deliver_fs_inline_bulk_status()
1649 if (call->count < op->nr_files) in yfs_deliver_fs_inline_bulk_status()
1652 call->count = 0; in yfs_deliver_fs_inline_bulk_status()
1653 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1654 afs_extract_to_tmp(call); in yfs_deliver_fs_inline_bulk_status()
1660 ret = afs_extract_data(call, true); in yfs_deliver_fs_inline_bulk_status()
1664 tmp = ntohl(call->tmp); in yfs_deliver_fs_inline_bulk_status()
1667 return afs_protocol_error(call, afs_eproto_ibulkst_cb_count); in yfs_deliver_fs_inline_bulk_status()
1668 call->count = 0; in yfs_deliver_fs_inline_bulk_status()
1669 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1671 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSCallBack)); in yfs_deliver_fs_inline_bulk_status()
1676 ret = afs_extract_data(call, true); in yfs_deliver_fs_inline_bulk_status()
1681 switch (call->count) { in yfs_deliver_fs_inline_bulk_status()
1689 scb = &op->more_files[call->count - 2].scb; in yfs_deliver_fs_inline_bulk_status()
1693 bp = call->buffer; in yfs_deliver_fs_inline_bulk_status()
1694 xdr_decode_YFSCallBack(&bp, call, scb); in yfs_deliver_fs_inline_bulk_status()
1695 call->count++; in yfs_deliver_fs_inline_bulk_status()
1696 if (call->count < op->nr_files) in yfs_deliver_fs_inline_bulk_status()
1699 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSVolSync)); in yfs_deliver_fs_inline_bulk_status()
1700 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1704 ret = afs_extract_data(call, false); in yfs_deliver_fs_inline_bulk_status()
1708 bp = call->buffer; in yfs_deliver_fs_inline_bulk_status()
1711 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1739 struct afs_call *call; in yfs_fs_inline_bulk_status() local
1746 call = afs_alloc_flat_call(op->net, &yfs_RXYFSInlineBulkStatus, in yfs_fs_inline_bulk_status()
1752 if (!call) in yfs_fs_inline_bulk_status()
1756 bp = call->request; in yfs_fs_inline_bulk_status()
1764 yfs_check_req(call, bp); in yfs_fs_inline_bulk_status()
1766 call->fid = vp->fid; in yfs_fs_inline_bulk_status()
1767 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_inline_bulk_status()
1768 afs_make_op_call(op, call, GFP_NOFS); in yfs_fs_inline_bulk_status()
1774 static int yfs_deliver_fs_fetch_opaque_acl(struct afs_call *call) in yfs_deliver_fs_fetch_opaque_acl() argument
1776 struct afs_operation *op = call->op; in yfs_deliver_fs_fetch_opaque_acl()
1784 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_fetch_opaque_acl()
1786 switch (call->unmarshall) { in yfs_deliver_fs_fetch_opaque_acl()
1788 afs_extract_to_tmp(call); in yfs_deliver_fs_fetch_opaque_acl()
1789 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1794 ret = afs_extract_data(call, true); in yfs_deliver_fs_fetch_opaque_acl()
1798 size = call->count2 = ntohl(call->tmp); in yfs_deliver_fs_fetch_opaque_acl()
1806 acl->size = call->count2; in yfs_deliver_fs_fetch_opaque_acl()
1807 afs_extract_begin(call, acl->data, size); in yfs_deliver_fs_fetch_opaque_acl()
1809 afs_extract_discard(call, size); in yfs_deliver_fs_fetch_opaque_acl()
1811 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1816 ret = afs_extract_data(call, true); in yfs_deliver_fs_fetch_opaque_acl()
1820 afs_extract_to_tmp(call); in yfs_deliver_fs_fetch_opaque_acl()
1821 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1826 ret = afs_extract_data(call, true); in yfs_deliver_fs_fetch_opaque_acl()
1830 size = call->count2 = ntohl(call->tmp); in yfs_deliver_fs_fetch_opaque_acl()
1838 acl->size = call->count2; in yfs_deliver_fs_fetch_opaque_acl()
1839 afs_extract_begin(call, acl->data, size); in yfs_deliver_fs_fetch_opaque_acl()
1841 afs_extract_discard(call, size); in yfs_deliver_fs_fetch_opaque_acl()
1843 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1848 ret = afs_extract_data(call, true); in yfs_deliver_fs_fetch_opaque_acl()
1852 afs_extract_to_buf(call, in yfs_deliver_fs_fetch_opaque_acl()
1856 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1861 ret = afs_extract_data(call, false); in yfs_deliver_fs_fetch_opaque_acl()
1865 bp = call->buffer; in yfs_deliver_fs_fetch_opaque_acl()
1868 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_opaque_acl()
1871 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1907 struct afs_call *call; in yfs_fs_fetch_opaque_acl() local
1913 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchOpaqueACL, in yfs_fs_fetch_opaque_acl()
1919 if (!call) in yfs_fs_fetch_opaque_acl()
1923 bp = call->request; in yfs_fs_fetch_opaque_acl()
1927 yfs_check_req(call, bp); in yfs_fs_fetch_opaque_acl()
1929 call->fid = vp->fid; in yfs_fs_fetch_opaque_acl()
1930 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_fetch_opaque_acl()
1931 afs_make_op_call(op, call, GFP_KERNEL); in yfs_fs_fetch_opaque_acl()
1950 struct afs_call *call; in yfs_fs_store_opaque_acl2() local
1959 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreOpaqueACL2, in yfs_fs_store_opaque_acl2()
1965 if (!call) in yfs_fs_store_opaque_acl2()
1969 bp = call->request; in yfs_fs_store_opaque_acl2()
1978 yfs_check_req(call, bp); in yfs_fs_store_opaque_acl2()
1980 call->fid = vp->fid; in yfs_fs_store_opaque_acl2()
1981 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_store_opaque_acl2()
1982 afs_make_op_call(op, call, GFP_KERNEL); in yfs_fs_store_opaque_acl2()