Lines Matching refs:call
55 struct afs_call *call, in xdr_decode_AFSFetchStatus() argument
60 bool inline_error = (call->operation_ID == afs_FS_InlineBulkStatus); in xdr_decode_AFSFetchStatus()
128 afs_protocol_error(call, afs_eproto_bad_status); in xdr_decode_AFSFetchStatus()
132 static time64_t xdr_decode_expiry(struct afs_call *call, u32 expiry) in xdr_decode_expiry() argument
134 return ktime_divns(call->issue_time, NSEC_PER_SEC) + expiry; in xdr_decode_expiry()
138 struct afs_call *call, in xdr_decode_AFSCallBack() argument
145 cb->expires_at = xdr_decode_expiry(call, ntohl(*bp++)); in xdr_decode_AFSCallBack()
238 static int afs_deliver_fs_fetch_status(struct afs_call *call) in afs_deliver_fs_fetch_status() argument
240 struct afs_operation *op = call->op; in afs_deliver_fs_fetch_status()
245 ret = afs_transfer_reply(call); in afs_deliver_fs_fetch_status()
250 bp = call->buffer; in afs_deliver_fs_fetch_status()
251 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_fetch_status()
252 xdr_decode_AFSCallBack(&bp, call, &vp->scb); in afs_deliver_fs_fetch_status()
275 struct afs_call *call; in afs_fs_fetch_status() local
281 call = afs_alloc_flat_call(op->net, &afs_RXFSFetchStatus, in afs_fs_fetch_status()
283 if (!call) in afs_fs_fetch_status()
287 bp = call->request; in afs_fs_fetch_status()
293 call->fid = vp->fid; in afs_fs_fetch_status()
294 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_fetch_status()
295 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_fetch_status()
301 static int afs_deliver_fs_fetch_data(struct afs_call *call) in afs_deliver_fs_fetch_data() argument
303 struct afs_operation *op = call->op; in afs_deliver_fs_fetch_data()
311 call->unmarshall, call->iov_len, iov_iter_count(call->iter), in afs_deliver_fs_fetch_data()
314 switch (call->unmarshall) { in afs_deliver_fs_fetch_data()
317 call->unmarshall++; in afs_deliver_fs_fetch_data()
318 if (call->operation_ID == FSFETCHDATA64) { in afs_deliver_fs_fetch_data()
319 afs_extract_to_tmp64(call); in afs_deliver_fs_fetch_data()
321 call->tmp_u = htonl(0); in afs_deliver_fs_fetch_data()
322 afs_extract_to_tmp(call); in afs_deliver_fs_fetch_data()
332 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_data()
336 req->actual_len = be64_to_cpu(call->tmp64); in afs_deliver_fs_fetch_data()
342 call->iter = req->iter; in afs_deliver_fs_fetch_data()
343 call->iov_len = min(req->actual_len, req->len); in afs_deliver_fs_fetch_data()
344 call->unmarshall++; in afs_deliver_fs_fetch_data()
349 count_before = call->iov_len; in afs_deliver_fs_fetch_data()
352 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_data()
354 req->subreq->transferred += count_before - call->iov_len; in afs_deliver_fs_fetch_data()
360 call->iter = &call->def_iter; in afs_deliver_fs_fetch_data()
365 afs_extract_discard(call, req->actual_len - req->len); in afs_deliver_fs_fetch_data()
366 call->unmarshall = 3; in afs_deliver_fs_fetch_data()
371 iov_iter_count(call->iter), req->actual_len - req->len); in afs_deliver_fs_fetch_data()
373 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_data()
378 call->unmarshall = 4; in afs_deliver_fs_fetch_data()
379 afs_extract_to_buf(call, (21 + 3 + 6) * 4); in afs_deliver_fs_fetch_data()
384 ret = afs_extract_data(call, false); in afs_deliver_fs_fetch_data()
388 bp = call->buffer; in afs_deliver_fs_fetch_data()
389 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_fetch_data()
390 xdr_decode_AFSCallBack(&bp, call, &vp->scb); in afs_deliver_fs_fetch_data()
396 call->unmarshall++; in afs_deliver_fs_fetch_data()
431 struct afs_call *call; in afs_fs_fetch_data64() local
436 call = afs_alloc_flat_call(op->net, &afs_RXFSFetchData64, 32, (21 + 3 + 6) * 4); in afs_fs_fetch_data64()
437 if (!call) in afs_fs_fetch_data64()
441 bp = call->request; in afs_fs_fetch_data64()
451 call->fid = vp->fid; in afs_fs_fetch_data64()
452 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_fetch_data64()
453 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_fetch_data64()
462 struct afs_call *call; in afs_fs_fetch_data() local
471 call = afs_alloc_flat_call(op->net, &afs_RXFSFetchData, 24, (21 + 3 + 6) * 4); in afs_fs_fetch_data()
472 if (!call) in afs_fs_fetch_data()
475 req->call_debug_id = call->debug_id; in afs_fs_fetch_data()
478 bp = call->request; in afs_fs_fetch_data()
486 call->fid = vp->fid; in afs_fs_fetch_data()
487 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_fetch_data()
488 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_fetch_data()
494 static int afs_deliver_fs_create_vnode(struct afs_call *call) in afs_deliver_fs_create_vnode() argument
496 struct afs_operation *op = call->op; in afs_deliver_fs_create_vnode()
502 ret = afs_transfer_reply(call); in afs_deliver_fs_create_vnode()
507 bp = call->buffer; in afs_deliver_fs_create_vnode()
509 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_create_vnode()
510 xdr_decode_AFSFetchStatus(&bp, call, &dvp->scb); in afs_deliver_fs_create_vnode()
511 xdr_decode_AFSCallBack(&bp, call, &vp->scb); in afs_deliver_fs_create_vnode()
535 struct afs_call *call; in afs_fs_create_file() local
545 call = afs_alloc_flat_call(op->net, &afs_RXFSCreateFile, in afs_fs_create_file()
547 if (!call) in afs_fs_create_file()
551 bp = call->request; in afs_fs_create_file()
570 call->fid = dvp->fid; in afs_fs_create_file()
571 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_create_file()
572 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_create_file()
589 struct afs_call *call; in afs_fs_make_dir() local
599 call = afs_alloc_flat_call(op->net, &afs_RXFSMakeDir, in afs_fs_make_dir()
601 if (!call) in afs_fs_make_dir()
605 bp = call->request; in afs_fs_make_dir()
624 call->fid = dvp->fid; in afs_fs_make_dir()
625 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_make_dir()
626 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_make_dir()
632 static int afs_deliver_fs_file_status_and_vol(struct afs_call *call) in afs_deliver_fs_file_status_and_vol() argument
634 struct afs_operation *op = call->op; in afs_deliver_fs_file_status_and_vol()
639 ret = afs_transfer_reply(call); in afs_deliver_fs_file_status_and_vol()
644 bp = call->buffer; in afs_deliver_fs_file_status_and_vol()
645 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_file_status_and_vol()
669 struct afs_call *call; in afs_fs_remove_file() local
679 call = afs_alloc_flat_call(op->net, &afs_RXFSRemoveFile, in afs_fs_remove_file()
681 if (!call) in afs_fs_remove_file()
685 bp = call->request; in afs_fs_remove_file()
698 call->fid = dvp->fid; in afs_fs_remove_file()
699 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_remove_file()
700 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_remove_file()
717 struct afs_call *call; in afs_fs_remove_dir() local
727 call = afs_alloc_flat_call(op->net, &afs_RXFSRemoveDir, in afs_fs_remove_dir()
729 if (!call) in afs_fs_remove_dir()
733 bp = call->request; in afs_fs_remove_dir()
746 call->fid = dvp->fid; in afs_fs_remove_dir()
747 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_remove_dir()
748 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_remove_dir()
754 static int afs_deliver_fs_link(struct afs_call *call) in afs_deliver_fs_link() argument
756 struct afs_operation *op = call->op; in afs_deliver_fs_link()
762 _enter("{%u}", call->unmarshall); in afs_deliver_fs_link()
764 ret = afs_transfer_reply(call); in afs_deliver_fs_link()
769 bp = call->buffer; in afs_deliver_fs_link()
770 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_link()
771 xdr_decode_AFSFetchStatus(&bp, call, &dvp->scb); in afs_deliver_fs_link()
796 struct afs_call *call; in afs_fs_link() local
806 call = afs_alloc_flat_call(op->net, &afs_RXFSLink, reqsz, (21 + 21 + 6) * 4); in afs_fs_link()
807 if (!call) in afs_fs_link()
811 bp = call->request; in afs_fs_link()
827 call->fid = vp->fid; in afs_fs_link()
828 trace_afs_make_fs_call1(call, &vp->fid, name); in afs_fs_link()
829 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_link()
835 static int afs_deliver_fs_symlink(struct afs_call *call) in afs_deliver_fs_symlink() argument
837 struct afs_operation *op = call->op; in afs_deliver_fs_symlink()
843 _enter("{%u}", call->unmarshall); in afs_deliver_fs_symlink()
845 ret = afs_transfer_reply(call); in afs_deliver_fs_symlink()
850 bp = call->buffer; in afs_deliver_fs_symlink()
852 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_symlink()
853 xdr_decode_AFSFetchStatus(&bp, call, &dvp->scb); in afs_deliver_fs_symlink()
877 struct afs_call *call; in afs_fs_symlink() local
891 call = afs_alloc_flat_call(op->net, &afs_RXFSSymlink, reqsz, in afs_fs_symlink()
893 if (!call) in afs_fs_symlink()
897 bp = call->request; in afs_fs_symlink()
923 call->fid = dvp->fid; in afs_fs_symlink()
924 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_symlink()
925 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_symlink()
931 static int afs_deliver_fs_rename(struct afs_call *call) in afs_deliver_fs_rename() argument
933 struct afs_operation *op = call->op; in afs_deliver_fs_rename()
939 ret = afs_transfer_reply(call); in afs_deliver_fs_rename()
943 bp = call->buffer; in afs_deliver_fs_rename()
947 xdr_decode_AFSFetchStatus(&bp, call, &orig_dvp->scb); in afs_deliver_fs_rename()
948 xdr_decode_AFSFetchStatus(&bp, call, &new_dvp->scb); in afs_deliver_fs_rename()
974 struct afs_call *call; in afs_fs_rename() local
991 call = afs_alloc_flat_call(op->net, &afs_RXFSRename, reqsz, (21 + 21 + 6) * 4); in afs_fs_rename()
992 if (!call) in afs_fs_rename()
996 bp = call->request; in afs_fs_rename()
1020 call->fid = orig_dvp->fid; in afs_fs_rename()
1021 trace_afs_make_fs_call2(call, &orig_dvp->fid, orig_name, new_name); in afs_fs_rename()
1022 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_rename()
1028 static int afs_deliver_fs_store_data(struct afs_call *call) in afs_deliver_fs_store_data() argument
1030 struct afs_operation *op = call->op; in afs_deliver_fs_store_data()
1037 ret = afs_transfer_reply(call); in afs_deliver_fs_store_data()
1042 bp = call->buffer; in afs_deliver_fs_store_data()
1043 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_store_data()
1073 struct afs_call *call; in afs_fs_store_data64() local
1079 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData64, in afs_fs_store_data64()
1082 if (!call) in afs_fs_store_data64()
1085 call->write_iter = op->store.write_iter; in afs_fs_store_data64()
1088 bp = call->request; in afs_fs_store_data64()
1108 call->fid = vp->fid; in afs_fs_store_data64()
1109 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_store_data64()
1110 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_store_data64()
1119 struct afs_call *call; in afs_fs_store_data() local
1133 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData, in afs_fs_store_data()
1136 if (!call) in afs_fs_store_data()
1139 call->write_iter = op->store.write_iter; in afs_fs_store_data()
1142 bp = call->request; in afs_fs_store_data()
1159 call->fid = vp->fid; in afs_fs_store_data()
1160 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_store_data()
1161 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_store_data()
1195 struct afs_call *call; in afs_fs_setattr_size64() local
1204 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData64_as_Status, in afs_fs_setattr_size64()
1207 if (!call) in afs_fs_setattr_size64()
1211 bp = call->request; in afs_fs_setattr_size64()
1226 call->fid = vp->fid; in afs_fs_setattr_size64()
1227 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_setattr_size64()
1228 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_setattr_size64()
1238 struct afs_call *call; in afs_fs_setattr_size() local
1249 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData_as_Status, in afs_fs_setattr_size()
1252 if (!call) in afs_fs_setattr_size()
1256 bp = call->request; in afs_fs_setattr_size()
1268 call->fid = vp->fid; in afs_fs_setattr_size()
1269 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_setattr_size()
1270 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_setattr_size()
1280 struct afs_call *call; in afs_fs_setattr() local
1290 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreStatus, in afs_fs_setattr()
1293 if (!call) in afs_fs_setattr()
1297 bp = call->request; in afs_fs_setattr()
1305 call->fid = vp->fid; in afs_fs_setattr()
1306 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_setattr()
1307 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_setattr()
1313 static int afs_deliver_fs_get_volume_status(struct afs_call *call) in afs_deliver_fs_get_volume_status() argument
1315 struct afs_operation *op = call->op; in afs_deliver_fs_get_volume_status()
1321 _enter("{%u}", call->unmarshall); in afs_deliver_fs_get_volume_status()
1323 switch (call->unmarshall) { in afs_deliver_fs_get_volume_status()
1325 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1326 afs_extract_to_buf(call, 12 * 4); in afs_deliver_fs_get_volume_status()
1332 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1336 bp = call->buffer; in afs_deliver_fs_get_volume_status()
1338 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1339 afs_extract_to_tmp(call); in afs_deliver_fs_get_volume_status()
1344 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1348 call->count = ntohl(call->tmp); in afs_deliver_fs_get_volume_status()
1349 _debug("volname length: %u", call->count); in afs_deliver_fs_get_volume_status()
1350 if (call->count >= AFSNAMEMAX) in afs_deliver_fs_get_volume_status()
1351 return afs_protocol_error(call, afs_eproto_volname_len); in afs_deliver_fs_get_volume_status()
1352 size = (call->count + 3) & ~3; /* It's padded */ in afs_deliver_fs_get_volume_status()
1353 afs_extract_to_buf(call, size); in afs_deliver_fs_get_volume_status()
1354 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1360 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1364 p = call->buffer; in afs_deliver_fs_get_volume_status()
1365 p[call->count] = 0; in afs_deliver_fs_get_volume_status()
1367 afs_extract_to_tmp(call); in afs_deliver_fs_get_volume_status()
1368 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1373 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1377 call->count = ntohl(call->tmp); in afs_deliver_fs_get_volume_status()
1378 _debug("offline msg length: %u", call->count); in afs_deliver_fs_get_volume_status()
1379 if (call->count >= AFSNAMEMAX) in afs_deliver_fs_get_volume_status()
1380 return afs_protocol_error(call, afs_eproto_offline_msg_len); in afs_deliver_fs_get_volume_status()
1381 size = (call->count + 3) & ~3; /* It's padded */ in afs_deliver_fs_get_volume_status()
1382 afs_extract_to_buf(call, size); in afs_deliver_fs_get_volume_status()
1383 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1389 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1393 p = call->buffer; in afs_deliver_fs_get_volume_status()
1394 p[call->count] = 0; in afs_deliver_fs_get_volume_status()
1397 afs_extract_to_tmp(call); in afs_deliver_fs_get_volume_status()
1398 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1403 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1407 call->count = ntohl(call->tmp); in afs_deliver_fs_get_volume_status()
1408 _debug("motd length: %u", call->count); in afs_deliver_fs_get_volume_status()
1409 if (call->count >= AFSNAMEMAX) in afs_deliver_fs_get_volume_status()
1410 return afs_protocol_error(call, afs_eproto_motd_len); in afs_deliver_fs_get_volume_status()
1411 size = (call->count + 3) & ~3; /* It's padded */ in afs_deliver_fs_get_volume_status()
1412 afs_extract_to_buf(call, size); in afs_deliver_fs_get_volume_status()
1413 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1419 ret = afs_extract_data(call, false); in afs_deliver_fs_get_volume_status()
1423 p = call->buffer; in afs_deliver_fs_get_volume_status()
1424 p[call->count] = 0; in afs_deliver_fs_get_volume_status()
1427 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1454 struct afs_call *call; in afs_fs_get_volume_status() local
1459 call = afs_alloc_flat_call(op->net, &afs_RXFSGetVolumeStatus, 2 * 4, in afs_fs_get_volume_status()
1461 if (!call) in afs_fs_get_volume_status()
1465 bp = call->request; in afs_fs_get_volume_status()
1469 call->fid = vp->fid; in afs_fs_get_volume_status()
1470 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_get_volume_status()
1471 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_get_volume_status()
1477 static int afs_deliver_fs_xxxx_lock(struct afs_call *call) in afs_deliver_fs_xxxx_lock() argument
1479 struct afs_operation *op = call->op; in afs_deliver_fs_xxxx_lock()
1483 _enter("{%u}", call->unmarshall); in afs_deliver_fs_xxxx_lock()
1485 ret = afs_transfer_reply(call); in afs_deliver_fs_xxxx_lock()
1490 bp = call->buffer; in afs_deliver_fs_xxxx_lock()
1535 struct afs_call *call; in afs_fs_set_lock() local
1540 call = afs_alloc_flat_call(op->net, &afs_RXFSSetLock, 5 * 4, 6 * 4); in afs_fs_set_lock()
1541 if (!call) in afs_fs_set_lock()
1545 bp = call->request; in afs_fs_set_lock()
1552 call->fid = vp->fid; in afs_fs_set_lock()
1553 trace_afs_make_fs_calli(call, &vp->fid, op->lock.type); in afs_fs_set_lock()
1554 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_set_lock()
1563 struct afs_call *call; in afs_fs_extend_lock() local
1568 call = afs_alloc_flat_call(op->net, &afs_RXFSExtendLock, 4 * 4, 6 * 4); in afs_fs_extend_lock()
1569 if (!call) in afs_fs_extend_lock()
1573 bp = call->request; in afs_fs_extend_lock()
1579 call->fid = vp->fid; in afs_fs_extend_lock()
1580 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_extend_lock()
1581 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_extend_lock()
1590 struct afs_call *call; in afs_fs_release_lock() local
1595 call = afs_alloc_flat_call(op->net, &afs_RXFSReleaseLock, 4 * 4, 6 * 4); in afs_fs_release_lock()
1596 if (!call) in afs_fs_release_lock()
1600 bp = call->request; in afs_fs_release_lock()
1606 call->fid = vp->fid; in afs_fs_release_lock()
1607 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_release_lock()
1608 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_release_lock()
1614 static int afs_deliver_fs_give_up_all_callbacks(struct afs_call *call) in afs_deliver_fs_give_up_all_callbacks() argument
1616 return afs_transfer_reply(call); in afs_deliver_fs_give_up_all_callbacks()
1635 struct afs_call *call; in afs_fs_give_up_all_callbacks() local
1641 call = afs_alloc_flat_call(net, &afs_RXFSGiveUpAllCallBacks, 1 * 4, 0); in afs_fs_give_up_all_callbacks()
1642 if (!call) in afs_fs_give_up_all_callbacks()
1645 call->key = key; in afs_fs_give_up_all_callbacks()
1646 call->peer = rxrpc_kernel_get_peer(addr->peer); in afs_fs_give_up_all_callbacks()
1647 call->service_id = server->service_id; in afs_fs_give_up_all_callbacks()
1650 bp = call->request; in afs_fs_give_up_all_callbacks()
1653 call->server = afs_use_server(server, afs_server_trace_give_up_cb); in afs_fs_give_up_all_callbacks()
1654 afs_make_call(call, GFP_NOFS); in afs_fs_give_up_all_callbacks()
1655 afs_wait_for_call_to_complete(call); in afs_fs_give_up_all_callbacks()
1656 ret = call->error; in afs_fs_give_up_all_callbacks()
1657 if (call->responded) in afs_fs_give_up_all_callbacks()
1659 afs_put_call(call); in afs_fs_give_up_all_callbacks()
1666 static int afs_deliver_fs_get_capabilities(struct afs_call *call) in afs_deliver_fs_get_capabilities() argument
1671 _enter("{%u,%zu}", call->unmarshall, iov_iter_count(call->iter)); in afs_deliver_fs_get_capabilities()
1673 switch (call->unmarshall) { in afs_deliver_fs_get_capabilities()
1675 afs_extract_to_tmp(call); in afs_deliver_fs_get_capabilities()
1676 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1681 ret = afs_extract_data(call, true); in afs_deliver_fs_get_capabilities()
1685 count = ntohl(call->tmp); in afs_deliver_fs_get_capabilities()
1686 call->count = count; in afs_deliver_fs_get_capabilities()
1687 call->count2 = count; in afs_deliver_fs_get_capabilities()
1689 call->unmarshall = 4; in afs_deliver_fs_get_capabilities()
1690 call->tmp = 0; in afs_deliver_fs_get_capabilities()
1695 afs_extract_to_tmp(call); in afs_deliver_fs_get_capabilities()
1696 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1700 ret = afs_extract_data(call, false); in afs_deliver_fs_get_capabilities()
1704 afs_extract_discard(call, (count - 1) * sizeof(__be32)); in afs_deliver_fs_get_capabilities()
1705 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1710 ret = afs_extract_data(call, false); in afs_deliver_fs_get_capabilities()
1714 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1722 static void afs_fs_get_capabilities_destructor(struct afs_call *call) in afs_fs_get_capabilities_destructor() argument
1724 afs_put_endpoint_state(call->probe, afs_estate_trace_put_getcaps); in afs_fs_get_capabilities_destructor()
1725 afs_flat_call_destructor(call); in afs_fs_get_capabilities_destructor()
1749 struct afs_call *call; in afs_fs_get_capabilities() local
1754 call = afs_alloc_flat_call(net, &afs_RXFSGetCapabilities, 1 * 4, 16 * 4); in afs_fs_get_capabilities()
1755 if (!call) in afs_fs_get_capabilities()
1758 call->key = key; in afs_fs_get_capabilities()
1759 call->server = afs_use_server(server, afs_server_trace_get_caps); in afs_fs_get_capabilities()
1760 call->peer = rxrpc_kernel_get_peer(estate->addresses->addrs[addr_index].peer); in afs_fs_get_capabilities()
1761 call->probe = afs_get_endpoint_state(estate, afs_estate_trace_get_getcaps); in afs_fs_get_capabilities()
1762 call->probe_index = addr_index; in afs_fs_get_capabilities()
1763 call->service_id = server->service_id; in afs_fs_get_capabilities()
1764 call->upgrade = true; in afs_fs_get_capabilities()
1765 call->async = true; in afs_fs_get_capabilities()
1766 call->max_lifespan = AFS_PROBE_MAX_LIFESPAN; in afs_fs_get_capabilities()
1769 bp = call->request; in afs_fs_get_capabilities()
1772 trace_afs_make_fs_call(call, NULL); in afs_fs_get_capabilities()
1773 afs_make_call(call, GFP_NOFS); in afs_fs_get_capabilities()
1774 afs_put_call(call); in afs_fs_get_capabilities()
1781 static int afs_deliver_fs_inline_bulk_status(struct afs_call *call) in afs_deliver_fs_inline_bulk_status() argument
1783 struct afs_operation *op = call->op; in afs_deliver_fs_inline_bulk_status()
1789 _enter("{%u}", call->unmarshall); in afs_deliver_fs_inline_bulk_status()
1791 switch (call->unmarshall) { in afs_deliver_fs_inline_bulk_status()
1793 afs_extract_to_tmp(call); in afs_deliver_fs_inline_bulk_status()
1794 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1800 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1804 tmp = ntohl(call->tmp); in afs_deliver_fs_inline_bulk_status()
1807 return afs_protocol_error(call, afs_eproto_ibulkst_count); in afs_deliver_fs_inline_bulk_status()
1809 call->count = 0; in afs_deliver_fs_inline_bulk_status()
1810 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1812 afs_extract_to_buf(call, 21 * sizeof(__be32)); in afs_deliver_fs_inline_bulk_status()
1816 _debug("extract status array %u", call->count); in afs_deliver_fs_inline_bulk_status()
1817 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1821 switch (call->count) { in afs_deliver_fs_inline_bulk_status()
1829 scb = &op->more_files[call->count - 2].scb; in afs_deliver_fs_inline_bulk_status()
1833 bp = call->buffer; in afs_deliver_fs_inline_bulk_status()
1834 xdr_decode_AFSFetchStatus(&bp, call, scb); in afs_deliver_fs_inline_bulk_status()
1836 call->count++; in afs_deliver_fs_inline_bulk_status()
1837 if (call->count < op->nr_files) in afs_deliver_fs_inline_bulk_status()
1840 call->count = 0; in afs_deliver_fs_inline_bulk_status()
1841 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1842 afs_extract_to_tmp(call); in afs_deliver_fs_inline_bulk_status()
1848 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1852 tmp = ntohl(call->tmp); in afs_deliver_fs_inline_bulk_status()
1855 return afs_protocol_error(call, afs_eproto_ibulkst_cb_count); in afs_deliver_fs_inline_bulk_status()
1856 call->count = 0; in afs_deliver_fs_inline_bulk_status()
1857 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1859 afs_extract_to_buf(call, 3 * sizeof(__be32)); in afs_deliver_fs_inline_bulk_status()
1864 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1869 switch (call->count) { in afs_deliver_fs_inline_bulk_status()
1877 scb = &op->more_files[call->count - 2].scb; in afs_deliver_fs_inline_bulk_status()
1881 bp = call->buffer; in afs_deliver_fs_inline_bulk_status()
1882 xdr_decode_AFSCallBack(&bp, call, scb); in afs_deliver_fs_inline_bulk_status()
1883 call->count++; in afs_deliver_fs_inline_bulk_status()
1884 if (call->count < op->nr_files) in afs_deliver_fs_inline_bulk_status()
1887 afs_extract_to_buf(call, 6 * sizeof(__be32)); in afs_deliver_fs_inline_bulk_status()
1888 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1892 ret = afs_extract_data(call, false); in afs_deliver_fs_inline_bulk_status()
1896 bp = call->buffer; in afs_deliver_fs_inline_bulk_status()
1902 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1913 static void afs_done_fs_inline_bulk_status(struct afs_call *call) in afs_done_fs_inline_bulk_status() argument
1915 if (call->error == -ECONNABORTED && in afs_done_fs_inline_bulk_status()
1916 call->abort_code == RX_INVALID_OPERATION) { in afs_done_fs_inline_bulk_status()
1917 set_bit(AFS_SERVER_FL_NO_IBULK, &call->server->flags); in afs_done_fs_inline_bulk_status()
1918 if (call->op) in afs_done_fs_inline_bulk_status()
1919 set_bit(AFS_VOLUME_MAYBE_NO_IBULK, &call->op->volume->flags); in afs_done_fs_inline_bulk_status()
1941 struct afs_call *call; in afs_fs_inline_bulk_status() local
1953 call = afs_alloc_flat_call(op->net, &afs_RXFSInlineBulkStatus, in afs_fs_inline_bulk_status()
1956 if (!call) in afs_fs_inline_bulk_status()
1960 bp = call->request; in afs_fs_inline_bulk_status()
1975 call->fid = vp->fid; in afs_fs_inline_bulk_status()
1976 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_inline_bulk_status()
1977 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_inline_bulk_status()
1983 static int afs_deliver_fs_fetch_acl(struct afs_call *call) in afs_deliver_fs_fetch_acl() argument
1985 struct afs_operation *op = call->op; in afs_deliver_fs_fetch_acl()
1992 _enter("{%u}", call->unmarshall); in afs_deliver_fs_fetch_acl()
1994 switch (call->unmarshall) { in afs_deliver_fs_fetch_acl()
1996 afs_extract_to_tmp(call); in afs_deliver_fs_fetch_acl()
1997 call->unmarshall++; in afs_deliver_fs_fetch_acl()
2002 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_acl()
2006 size = call->count2 = ntohl(call->tmp); in afs_deliver_fs_fetch_acl()
2013 acl->size = call->count2; in afs_deliver_fs_fetch_acl()
2014 afs_extract_begin(call, acl->data, size); in afs_deliver_fs_fetch_acl()
2015 call->unmarshall++; in afs_deliver_fs_fetch_acl()
2020 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_acl()
2024 afs_extract_to_buf(call, (21 + 6) * 4); in afs_deliver_fs_fetch_acl()
2025 call->unmarshall++; in afs_deliver_fs_fetch_acl()
2030 ret = afs_extract_data(call, false); in afs_deliver_fs_fetch_acl()
2034 bp = call->buffer; in afs_deliver_fs_fetch_acl()
2035 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_fetch_acl()
2038 call->unmarshall++; in afs_deliver_fs_fetch_acl()
2064 struct afs_call *call; in afs_fs_fetch_acl() local
2070 call = afs_alloc_flat_call(op->net, &afs_RXFSFetchACL, 16, (21 + 6) * 4); in afs_fs_fetch_acl()
2071 if (!call) in afs_fs_fetch_acl()
2075 bp = call->request; in afs_fs_fetch_acl()
2081 call->fid = vp->fid; in afs_fs_fetch_acl()
2082 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_fetch_acl()
2083 afs_make_op_call(op, call, GFP_KERNEL); in afs_fs_fetch_acl()
2102 struct afs_call *call; in afs_fs_store_acl() local
2111 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreACL, in afs_fs_store_acl()
2113 if (!call) in afs_fs_store_acl()
2117 bp = call->request; in afs_fs_store_acl()
2127 call->fid = vp->fid; in afs_fs_store_acl()
2128 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_store_acl()
2129 afs_make_op_call(op, call, GFP_KERNEL); in afs_fs_store_acl()