Lines Matching full: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()
310 call->unmarshall, call->iov_len, iov_iter_count(call->iter), in afs_deliver_fs_fetch_data()
313 switch (call->unmarshall) { in afs_deliver_fs_fetch_data()
316 call->unmarshall++; in afs_deliver_fs_fetch_data()
317 if (call->operation_ID == FSFETCHDATA64) { in afs_deliver_fs_fetch_data()
318 afs_extract_to_tmp64(call); in afs_deliver_fs_fetch_data()
320 call->tmp_u = htonl(0); in afs_deliver_fs_fetch_data()
321 afs_extract_to_tmp(call); in afs_deliver_fs_fetch_data()
331 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_data()
335 req->actual_len = be64_to_cpu(call->tmp64); in afs_deliver_fs_fetch_data()
341 call->iter = req->iter; in afs_deliver_fs_fetch_data()
342 call->iov_len = min(req->actual_len, req->len); in afs_deliver_fs_fetch_data()
343 call->unmarshall++; in afs_deliver_fs_fetch_data()
349 iov_iter_count(call->iter), req->actual_len); in afs_deliver_fs_fetch_data()
351 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_data()
355 call->iter = &call->def_iter; in afs_deliver_fs_fetch_data()
360 afs_extract_discard(call, req->actual_len - req->len); in afs_deliver_fs_fetch_data()
361 call->unmarshall = 3; in afs_deliver_fs_fetch_data()
366 iov_iter_count(call->iter), req->actual_len - req->len); in afs_deliver_fs_fetch_data()
368 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_data()
373 call->unmarshall = 4; in afs_deliver_fs_fetch_data()
374 afs_extract_to_buf(call, (21 + 3 + 6) * 4); in afs_deliver_fs_fetch_data()
379 ret = afs_extract_data(call, false); in afs_deliver_fs_fetch_data()
383 bp = call->buffer; in afs_deliver_fs_fetch_data()
384 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_fetch_data()
385 xdr_decode_AFSCallBack(&bp, call, &vp->scb); in afs_deliver_fs_fetch_data()
391 call->unmarshall++; in afs_deliver_fs_fetch_data()
426 struct afs_call *call; in afs_fs_fetch_data64() local
431 call = afs_alloc_flat_call(op->net, &afs_RXFSFetchData64, 32, (21 + 3 + 6) * 4); in afs_fs_fetch_data64()
432 if (!call) in afs_fs_fetch_data64()
436 bp = call->request; in afs_fs_fetch_data64()
446 call->fid = vp->fid; in afs_fs_fetch_data64()
447 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_fetch_data64()
448 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_fetch_data64()
457 struct afs_call *call; in afs_fs_fetch_data() local
466 call = afs_alloc_flat_call(op->net, &afs_RXFSFetchData, 24, (21 + 3 + 6) * 4); in afs_fs_fetch_data()
467 if (!call) in afs_fs_fetch_data()
470 req->call_debug_id = call->debug_id; in afs_fs_fetch_data()
473 bp = call->request; in afs_fs_fetch_data()
481 call->fid = vp->fid; in afs_fs_fetch_data()
482 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_fetch_data()
483 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_fetch_data()
489 static int afs_deliver_fs_create_vnode(struct afs_call *call) in afs_deliver_fs_create_vnode() argument
491 struct afs_operation *op = call->op; in afs_deliver_fs_create_vnode()
497 ret = afs_transfer_reply(call); in afs_deliver_fs_create_vnode()
502 bp = call->buffer; in afs_deliver_fs_create_vnode()
504 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_create_vnode()
505 xdr_decode_AFSFetchStatus(&bp, call, &dvp->scb); in afs_deliver_fs_create_vnode()
506 xdr_decode_AFSCallBack(&bp, call, &vp->scb); in afs_deliver_fs_create_vnode()
530 struct afs_call *call; in afs_fs_create_file() local
540 call = afs_alloc_flat_call(op->net, &afs_RXFSCreateFile, in afs_fs_create_file()
542 if (!call) in afs_fs_create_file()
546 bp = call->request; in afs_fs_create_file()
565 call->fid = dvp->fid; in afs_fs_create_file()
566 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_create_file()
567 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_create_file()
584 struct afs_call *call; in afs_fs_make_dir() local
594 call = afs_alloc_flat_call(op->net, &afs_RXFSMakeDir, in afs_fs_make_dir()
596 if (!call) in afs_fs_make_dir()
600 bp = call->request; in afs_fs_make_dir()
619 call->fid = dvp->fid; in afs_fs_make_dir()
620 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_make_dir()
621 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_make_dir()
627 static int afs_deliver_fs_file_status_and_vol(struct afs_call *call) in afs_deliver_fs_file_status_and_vol() argument
629 struct afs_operation *op = call->op; in afs_deliver_fs_file_status_and_vol()
634 ret = afs_transfer_reply(call); in afs_deliver_fs_file_status_and_vol()
639 bp = call->buffer; in afs_deliver_fs_file_status_and_vol()
640 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_file_status_and_vol()
664 struct afs_call *call; in afs_fs_remove_file() local
674 call = afs_alloc_flat_call(op->net, &afs_RXFSRemoveFile, in afs_fs_remove_file()
676 if (!call) in afs_fs_remove_file()
680 bp = call->request; in afs_fs_remove_file()
693 call->fid = dvp->fid; in afs_fs_remove_file()
694 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_remove_file()
695 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_remove_file()
712 struct afs_call *call; in afs_fs_remove_dir() local
722 call = afs_alloc_flat_call(op->net, &afs_RXFSRemoveDir, in afs_fs_remove_dir()
724 if (!call) in afs_fs_remove_dir()
728 bp = call->request; in afs_fs_remove_dir()
741 call->fid = dvp->fid; in afs_fs_remove_dir()
742 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_remove_dir()
743 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_remove_dir()
749 static int afs_deliver_fs_link(struct afs_call *call) in afs_deliver_fs_link() argument
751 struct afs_operation *op = call->op; in afs_deliver_fs_link()
757 _enter("{%u}", call->unmarshall); in afs_deliver_fs_link()
759 ret = afs_transfer_reply(call); in afs_deliver_fs_link()
764 bp = call->buffer; in afs_deliver_fs_link()
765 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_link()
766 xdr_decode_AFSFetchStatus(&bp, call, &dvp->scb); in afs_deliver_fs_link()
791 struct afs_call *call; in afs_fs_link() local
801 call = afs_alloc_flat_call(op->net, &afs_RXFSLink, reqsz, (21 + 21 + 6) * 4); in afs_fs_link()
802 if (!call) in afs_fs_link()
806 bp = call->request; in afs_fs_link()
822 call->fid = vp->fid; in afs_fs_link()
823 trace_afs_make_fs_call1(call, &vp->fid, name); in afs_fs_link()
824 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_link()
830 static int afs_deliver_fs_symlink(struct afs_call *call) in afs_deliver_fs_symlink() argument
832 struct afs_operation *op = call->op; in afs_deliver_fs_symlink()
838 _enter("{%u}", call->unmarshall); in afs_deliver_fs_symlink()
840 ret = afs_transfer_reply(call); in afs_deliver_fs_symlink()
845 bp = call->buffer; in afs_deliver_fs_symlink()
847 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_symlink()
848 xdr_decode_AFSFetchStatus(&bp, call, &dvp->scb); in afs_deliver_fs_symlink()
872 struct afs_call *call; in afs_fs_symlink() local
886 call = afs_alloc_flat_call(op->net, &afs_RXFSSymlink, reqsz, in afs_fs_symlink()
888 if (!call) in afs_fs_symlink()
892 bp = call->request; in afs_fs_symlink()
918 call->fid = dvp->fid; in afs_fs_symlink()
919 trace_afs_make_fs_call1(call, &dvp->fid, name); in afs_fs_symlink()
920 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_symlink()
926 static int afs_deliver_fs_rename(struct afs_call *call) in afs_deliver_fs_rename() argument
928 struct afs_operation *op = call->op; in afs_deliver_fs_rename()
934 ret = afs_transfer_reply(call); in afs_deliver_fs_rename()
938 bp = call->buffer; in afs_deliver_fs_rename()
942 xdr_decode_AFSFetchStatus(&bp, call, &orig_dvp->scb); in afs_deliver_fs_rename()
943 xdr_decode_AFSFetchStatus(&bp, call, &new_dvp->scb); in afs_deliver_fs_rename()
969 struct afs_call *call; in afs_fs_rename() local
986 call = afs_alloc_flat_call(op->net, &afs_RXFSRename, reqsz, (21 + 21 + 6) * 4); in afs_fs_rename()
987 if (!call) in afs_fs_rename()
991 bp = call->request; in afs_fs_rename()
1015 call->fid = orig_dvp->fid; in afs_fs_rename()
1016 trace_afs_make_fs_call2(call, &orig_dvp->fid, orig_name, new_name); in afs_fs_rename()
1017 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_rename()
1023 static int afs_deliver_fs_store_data(struct afs_call *call) in afs_deliver_fs_store_data() argument
1025 struct afs_operation *op = call->op; in afs_deliver_fs_store_data()
1032 ret = afs_transfer_reply(call); in afs_deliver_fs_store_data()
1037 bp = call->buffer; in afs_deliver_fs_store_data()
1038 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_store_data()
1068 struct afs_call *call; in afs_fs_store_data64() local
1074 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData64, in afs_fs_store_data64()
1077 if (!call) in afs_fs_store_data64()
1080 call->write_iter = op->store.write_iter; in afs_fs_store_data64()
1083 bp = call->request; in afs_fs_store_data64()
1103 call->fid = vp->fid; in afs_fs_store_data64()
1104 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_store_data64()
1105 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_store_data64()
1114 struct afs_call *call; in afs_fs_store_data() local
1128 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData, in afs_fs_store_data()
1131 if (!call) in afs_fs_store_data()
1134 call->write_iter = op->store.write_iter; in afs_fs_store_data()
1137 bp = call->request; in afs_fs_store_data()
1154 call->fid = vp->fid; in afs_fs_store_data()
1155 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_store_data()
1156 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_store_data()
1190 struct afs_call *call; in afs_fs_setattr_size64() local
1199 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData64_as_Status, in afs_fs_setattr_size64()
1202 if (!call) in afs_fs_setattr_size64()
1206 bp = call->request; in afs_fs_setattr_size64()
1221 call->fid = vp->fid; in afs_fs_setattr_size64()
1222 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_setattr_size64()
1223 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_setattr_size64()
1233 struct afs_call *call; in afs_fs_setattr_size() local
1244 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreData_as_Status, in afs_fs_setattr_size()
1247 if (!call) in afs_fs_setattr_size()
1251 bp = call->request; in afs_fs_setattr_size()
1263 call->fid = vp->fid; in afs_fs_setattr_size()
1264 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_setattr_size()
1265 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_setattr_size()
1275 struct afs_call *call; in afs_fs_setattr() local
1285 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreStatus, in afs_fs_setattr()
1288 if (!call) in afs_fs_setattr()
1292 bp = call->request; in afs_fs_setattr()
1300 call->fid = vp->fid; in afs_fs_setattr()
1301 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_setattr()
1302 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_setattr()
1308 static int afs_deliver_fs_get_volume_status(struct afs_call *call) in afs_deliver_fs_get_volume_status() argument
1310 struct afs_operation *op = call->op; in afs_deliver_fs_get_volume_status()
1316 _enter("{%u}", call->unmarshall); in afs_deliver_fs_get_volume_status()
1318 switch (call->unmarshall) { in afs_deliver_fs_get_volume_status()
1320 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1321 afs_extract_to_buf(call, 12 * 4); in afs_deliver_fs_get_volume_status()
1327 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1331 bp = call->buffer; in afs_deliver_fs_get_volume_status()
1333 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1334 afs_extract_to_tmp(call); in afs_deliver_fs_get_volume_status()
1339 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1343 call->count = ntohl(call->tmp); in afs_deliver_fs_get_volume_status()
1344 _debug("volname length: %u", call->count); in afs_deliver_fs_get_volume_status()
1345 if (call->count >= AFSNAMEMAX) in afs_deliver_fs_get_volume_status()
1346 return afs_protocol_error(call, afs_eproto_volname_len); in afs_deliver_fs_get_volume_status()
1347 size = (call->count + 3) & ~3; /* It's padded */ in afs_deliver_fs_get_volume_status()
1348 afs_extract_to_buf(call, size); in afs_deliver_fs_get_volume_status()
1349 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1355 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1359 p = call->buffer; in afs_deliver_fs_get_volume_status()
1360 p[call->count] = 0; in afs_deliver_fs_get_volume_status()
1362 afs_extract_to_tmp(call); in afs_deliver_fs_get_volume_status()
1363 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1368 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1372 call->count = ntohl(call->tmp); in afs_deliver_fs_get_volume_status()
1373 _debug("offline msg length: %u", call->count); in afs_deliver_fs_get_volume_status()
1374 if (call->count >= AFSNAMEMAX) in afs_deliver_fs_get_volume_status()
1375 return afs_protocol_error(call, afs_eproto_offline_msg_len); in afs_deliver_fs_get_volume_status()
1376 size = (call->count + 3) & ~3; /* It's padded */ in afs_deliver_fs_get_volume_status()
1377 afs_extract_to_buf(call, size); in afs_deliver_fs_get_volume_status()
1378 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1384 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1388 p = call->buffer; in afs_deliver_fs_get_volume_status()
1389 p[call->count] = 0; in afs_deliver_fs_get_volume_status()
1392 afs_extract_to_tmp(call); in afs_deliver_fs_get_volume_status()
1393 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1398 ret = afs_extract_data(call, true); in afs_deliver_fs_get_volume_status()
1402 call->count = ntohl(call->tmp); in afs_deliver_fs_get_volume_status()
1403 _debug("motd length: %u", call->count); in afs_deliver_fs_get_volume_status()
1404 if (call->count >= AFSNAMEMAX) in afs_deliver_fs_get_volume_status()
1405 return afs_protocol_error(call, afs_eproto_motd_len); in afs_deliver_fs_get_volume_status()
1406 size = (call->count + 3) & ~3; /* It's padded */ in afs_deliver_fs_get_volume_status()
1407 afs_extract_to_buf(call, size); in afs_deliver_fs_get_volume_status()
1408 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1414 ret = afs_extract_data(call, false); in afs_deliver_fs_get_volume_status()
1418 p = call->buffer; in afs_deliver_fs_get_volume_status()
1419 p[call->count] = 0; in afs_deliver_fs_get_volume_status()
1422 call->unmarshall++; in afs_deliver_fs_get_volume_status()
1449 struct afs_call *call; in afs_fs_get_volume_status() local
1454 call = afs_alloc_flat_call(op->net, &afs_RXFSGetVolumeStatus, 2 * 4, in afs_fs_get_volume_status()
1456 if (!call) in afs_fs_get_volume_status()
1460 bp = call->request; in afs_fs_get_volume_status()
1464 call->fid = vp->fid; in afs_fs_get_volume_status()
1465 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_get_volume_status()
1466 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_get_volume_status()
1472 static int afs_deliver_fs_xxxx_lock(struct afs_call *call) in afs_deliver_fs_xxxx_lock() argument
1474 struct afs_operation *op = call->op; in afs_deliver_fs_xxxx_lock()
1478 _enter("{%u}", call->unmarshall); in afs_deliver_fs_xxxx_lock()
1480 ret = afs_transfer_reply(call); in afs_deliver_fs_xxxx_lock()
1485 bp = call->buffer; in afs_deliver_fs_xxxx_lock()
1530 struct afs_call *call; in afs_fs_set_lock() local
1535 call = afs_alloc_flat_call(op->net, &afs_RXFSSetLock, 5 * 4, 6 * 4); in afs_fs_set_lock()
1536 if (!call) in afs_fs_set_lock()
1540 bp = call->request; in afs_fs_set_lock()
1547 call->fid = vp->fid; in afs_fs_set_lock()
1548 trace_afs_make_fs_calli(call, &vp->fid, op->lock.type); in afs_fs_set_lock()
1549 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_set_lock()
1558 struct afs_call *call; in afs_fs_extend_lock() local
1563 call = afs_alloc_flat_call(op->net, &afs_RXFSExtendLock, 4 * 4, 6 * 4); in afs_fs_extend_lock()
1564 if (!call) in afs_fs_extend_lock()
1568 bp = call->request; in afs_fs_extend_lock()
1574 call->fid = vp->fid; in afs_fs_extend_lock()
1575 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_extend_lock()
1576 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_extend_lock()
1585 struct afs_call *call; in afs_fs_release_lock() local
1590 call = afs_alloc_flat_call(op->net, &afs_RXFSReleaseLock, 4 * 4, 6 * 4); in afs_fs_release_lock()
1591 if (!call) in afs_fs_release_lock()
1595 bp = call->request; in afs_fs_release_lock()
1601 call->fid = vp->fid; in afs_fs_release_lock()
1602 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_release_lock()
1603 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_release_lock()
1609 static int afs_deliver_fs_give_up_all_callbacks(struct afs_call *call) in afs_deliver_fs_give_up_all_callbacks() argument
1611 return afs_transfer_reply(call); in afs_deliver_fs_give_up_all_callbacks()
1630 struct afs_call *call; in afs_fs_give_up_all_callbacks() local
1636 call = afs_alloc_flat_call(net, &afs_RXFSGiveUpAllCallBacks, 1 * 4, 0); in afs_fs_give_up_all_callbacks()
1637 if (!call) in afs_fs_give_up_all_callbacks()
1640 call->key = key; in afs_fs_give_up_all_callbacks()
1641 call->peer = rxrpc_kernel_get_peer(addr->peer); in afs_fs_give_up_all_callbacks()
1642 call->service_id = server->service_id; in afs_fs_give_up_all_callbacks()
1645 bp = call->request; in afs_fs_give_up_all_callbacks()
1648 call->server = afs_use_server(server, afs_server_trace_give_up_cb); in afs_fs_give_up_all_callbacks()
1649 afs_make_call(call, GFP_NOFS); in afs_fs_give_up_all_callbacks()
1650 afs_wait_for_call_to_complete(call); in afs_fs_give_up_all_callbacks()
1651 ret = call->error; in afs_fs_give_up_all_callbacks()
1652 if (call->responded) in afs_fs_give_up_all_callbacks()
1654 afs_put_call(call); in afs_fs_give_up_all_callbacks()
1661 static int afs_deliver_fs_get_capabilities(struct afs_call *call) in afs_deliver_fs_get_capabilities() argument
1666 _enter("{%u,%zu}", call->unmarshall, iov_iter_count(call->iter)); in afs_deliver_fs_get_capabilities()
1668 switch (call->unmarshall) { in afs_deliver_fs_get_capabilities()
1670 afs_extract_to_tmp(call); in afs_deliver_fs_get_capabilities()
1671 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1676 ret = afs_extract_data(call, true); in afs_deliver_fs_get_capabilities()
1680 count = ntohl(call->tmp); in afs_deliver_fs_get_capabilities()
1681 call->count = count; in afs_deliver_fs_get_capabilities()
1682 call->count2 = count; in afs_deliver_fs_get_capabilities()
1684 call->unmarshall = 4; in afs_deliver_fs_get_capabilities()
1685 call->tmp = 0; in afs_deliver_fs_get_capabilities()
1689 /* Extract the first word of the capabilities to call->tmp */ in afs_deliver_fs_get_capabilities()
1690 afs_extract_to_tmp(call); in afs_deliver_fs_get_capabilities()
1691 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1695 ret = afs_extract_data(call, false); in afs_deliver_fs_get_capabilities()
1699 afs_extract_discard(call, (count - 1) * sizeof(__be32)); in afs_deliver_fs_get_capabilities()
1700 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1705 ret = afs_extract_data(call, false); in afs_deliver_fs_get_capabilities()
1709 call->unmarshall++; in afs_deliver_fs_get_capabilities()
1717 static void afs_fs_get_capabilities_destructor(struct afs_call *call) in afs_fs_get_capabilities_destructor() argument
1719 afs_put_endpoint_state(call->probe, afs_estate_trace_put_getcaps); in afs_fs_get_capabilities_destructor()
1720 afs_flat_call_destructor(call); in afs_fs_get_capabilities_destructor()
1737 * to allocate a call, true is returned the result is delivered through the
1744 struct afs_call *call; in afs_fs_get_capabilities() local
1749 call = afs_alloc_flat_call(net, &afs_RXFSGetCapabilities, 1 * 4, 16 * 4); in afs_fs_get_capabilities()
1750 if (!call) in afs_fs_get_capabilities()
1753 call->key = key; in afs_fs_get_capabilities()
1754 call->server = afs_use_server(server, afs_server_trace_get_caps); in afs_fs_get_capabilities()
1755 call->peer = rxrpc_kernel_get_peer(estate->addresses->addrs[addr_index].peer); in afs_fs_get_capabilities()
1756 call->probe = afs_get_endpoint_state(estate, afs_estate_trace_get_getcaps); in afs_fs_get_capabilities()
1757 call->probe_index = addr_index; in afs_fs_get_capabilities()
1758 call->service_id = server->service_id; in afs_fs_get_capabilities()
1759 call->upgrade = true; in afs_fs_get_capabilities()
1760 call->async = true; in afs_fs_get_capabilities()
1761 call->max_lifespan = AFS_PROBE_MAX_LIFESPAN; in afs_fs_get_capabilities()
1764 bp = call->request; in afs_fs_get_capabilities()
1767 trace_afs_make_fs_call(call, NULL); in afs_fs_get_capabilities()
1768 afs_make_call(call, GFP_NOFS); in afs_fs_get_capabilities()
1769 afs_put_call(call); in afs_fs_get_capabilities()
1774 * Deliver reply data to an FS.InlineBulkStatus call
1776 static int afs_deliver_fs_inline_bulk_status(struct afs_call *call) in afs_deliver_fs_inline_bulk_status() argument
1778 struct afs_operation *op = call->op; in afs_deliver_fs_inline_bulk_status()
1784 _enter("{%u}", call->unmarshall); in afs_deliver_fs_inline_bulk_status()
1786 switch (call->unmarshall) { in afs_deliver_fs_inline_bulk_status()
1788 afs_extract_to_tmp(call); in afs_deliver_fs_inline_bulk_status()
1789 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1795 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1799 tmp = ntohl(call->tmp); in afs_deliver_fs_inline_bulk_status()
1802 return afs_protocol_error(call, afs_eproto_ibulkst_count); in afs_deliver_fs_inline_bulk_status()
1804 call->count = 0; in afs_deliver_fs_inline_bulk_status()
1805 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1807 afs_extract_to_buf(call, 21 * sizeof(__be32)); in afs_deliver_fs_inline_bulk_status()
1811 _debug("extract status array %u", call->count); in afs_deliver_fs_inline_bulk_status()
1812 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1816 switch (call->count) { in afs_deliver_fs_inline_bulk_status()
1824 scb = &op->more_files[call->count - 2].scb; in afs_deliver_fs_inline_bulk_status()
1828 bp = call->buffer; in afs_deliver_fs_inline_bulk_status()
1829 xdr_decode_AFSFetchStatus(&bp, call, scb); in afs_deliver_fs_inline_bulk_status()
1831 call->count++; in afs_deliver_fs_inline_bulk_status()
1832 if (call->count < op->nr_files) in afs_deliver_fs_inline_bulk_status()
1835 call->count = 0; in afs_deliver_fs_inline_bulk_status()
1836 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1837 afs_extract_to_tmp(call); in afs_deliver_fs_inline_bulk_status()
1843 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1847 tmp = ntohl(call->tmp); in afs_deliver_fs_inline_bulk_status()
1850 return afs_protocol_error(call, afs_eproto_ibulkst_cb_count); in afs_deliver_fs_inline_bulk_status()
1851 call->count = 0; in afs_deliver_fs_inline_bulk_status()
1852 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1854 afs_extract_to_buf(call, 3 * sizeof(__be32)); in afs_deliver_fs_inline_bulk_status()
1859 ret = afs_extract_data(call, true); in afs_deliver_fs_inline_bulk_status()
1864 switch (call->count) { in afs_deliver_fs_inline_bulk_status()
1872 scb = &op->more_files[call->count - 2].scb; in afs_deliver_fs_inline_bulk_status()
1876 bp = call->buffer; in afs_deliver_fs_inline_bulk_status()
1877 xdr_decode_AFSCallBack(&bp, call, scb); in afs_deliver_fs_inline_bulk_status()
1878 call->count++; in afs_deliver_fs_inline_bulk_status()
1879 if (call->count < op->nr_files) in afs_deliver_fs_inline_bulk_status()
1882 afs_extract_to_buf(call, 6 * sizeof(__be32)); in afs_deliver_fs_inline_bulk_status()
1883 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1887 ret = afs_extract_data(call, false); in afs_deliver_fs_inline_bulk_status()
1891 bp = call->buffer; in afs_deliver_fs_inline_bulk_status()
1897 call->unmarshall++; in afs_deliver_fs_inline_bulk_status()
1908 static void afs_done_fs_inline_bulk_status(struct afs_call *call) in afs_done_fs_inline_bulk_status() argument
1910 if (call->error == -ECONNABORTED && in afs_done_fs_inline_bulk_status()
1911 call->abort_code == RX_INVALID_OPERATION) { in afs_done_fs_inline_bulk_status()
1912 set_bit(AFS_SERVER_FL_NO_IBULK, &call->server->flags); in afs_done_fs_inline_bulk_status()
1913 if (call->op) in afs_done_fs_inline_bulk_status()
1914 set_bit(AFS_VOLUME_MAYBE_NO_IBULK, &call->op->volume->flags); in afs_done_fs_inline_bulk_status()
1936 struct afs_call *call; in afs_fs_inline_bulk_status() local
1948 call = afs_alloc_flat_call(op->net, &afs_RXFSInlineBulkStatus, in afs_fs_inline_bulk_status()
1951 if (!call) in afs_fs_inline_bulk_status()
1955 bp = call->request; in afs_fs_inline_bulk_status()
1970 call->fid = vp->fid; in afs_fs_inline_bulk_status()
1971 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_inline_bulk_status()
1972 afs_make_op_call(op, call, GFP_NOFS); in afs_fs_inline_bulk_status()
1978 static int afs_deliver_fs_fetch_acl(struct afs_call *call) in afs_deliver_fs_fetch_acl() argument
1980 struct afs_operation *op = call->op; in afs_deliver_fs_fetch_acl()
1987 _enter("{%u}", call->unmarshall); in afs_deliver_fs_fetch_acl()
1989 switch (call->unmarshall) { in afs_deliver_fs_fetch_acl()
1991 afs_extract_to_tmp(call); in afs_deliver_fs_fetch_acl()
1992 call->unmarshall++; in afs_deliver_fs_fetch_acl()
1997 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_acl()
2001 size = call->count2 = ntohl(call->tmp); in afs_deliver_fs_fetch_acl()
2008 acl->size = call->count2; in afs_deliver_fs_fetch_acl()
2009 afs_extract_begin(call, acl->data, size); in afs_deliver_fs_fetch_acl()
2010 call->unmarshall++; in afs_deliver_fs_fetch_acl()
2015 ret = afs_extract_data(call, true); in afs_deliver_fs_fetch_acl()
2019 afs_extract_to_buf(call, (21 + 6) * 4); in afs_deliver_fs_fetch_acl()
2020 call->unmarshall++; in afs_deliver_fs_fetch_acl()
2025 ret = afs_extract_data(call, false); in afs_deliver_fs_fetch_acl()
2029 bp = call->buffer; in afs_deliver_fs_fetch_acl()
2030 xdr_decode_AFSFetchStatus(&bp, call, &vp->scb); in afs_deliver_fs_fetch_acl()
2033 call->unmarshall++; in afs_deliver_fs_fetch_acl()
2059 struct afs_call *call; in afs_fs_fetch_acl() local
2065 call = afs_alloc_flat_call(op->net, &afs_RXFSFetchACL, 16, (21 + 6) * 4); in afs_fs_fetch_acl()
2066 if (!call) in afs_fs_fetch_acl()
2070 bp = call->request; in afs_fs_fetch_acl()
2076 call->fid = vp->fid; in afs_fs_fetch_acl()
2077 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_fetch_acl()
2078 afs_make_op_call(op, call, GFP_KERNEL); in afs_fs_fetch_acl()
2097 struct afs_call *call; in afs_fs_store_acl() local
2106 call = afs_alloc_flat_call(op->net, &afs_RXFSStoreACL, in afs_fs_store_acl()
2108 if (!call) in afs_fs_store_acl()
2112 bp = call->request; in afs_fs_store_acl()
2122 call->fid = vp->fid; in afs_fs_store_acl()
2123 trace_afs_make_fs_call(call, &vp->fid); in afs_fs_store_acl()
2124 afs_make_op_call(op, call, GFP_KERNEL); in afs_fs_store_acl()