• Home
  • Raw
  • Download

Lines Matching +full:vp +full:- +full:p

1 // SPDX-License-Identifier: GPL-2.0-or-later
24 fid->vid = xdr_to_u64(x->volume); in xdr_decode_YFSFid()
25 fid->vnode = xdr_to_u64(x->vnode.lo); in xdr_decode_YFSFid()
26 fid->vnode_hi = ntohl(x->vnode.hi); in xdr_decode_YFSFid()
27 fid->unique = ntohl(x->vnode.unique); in xdr_decode_YFSFid()
49 x->volume = u64_to_xdr(fid->vid); in xdr_encode_YFSFid()
50 x->vnode.lo = u64_to_xdr(fid->vnode); in xdr_encode_YFSFid()
51 x->vnode.hi = htonl(fid->vnode_hi); in xdr_encode_YFSFid()
52 x->vnode.unique = htonl(fid->unique); in xdr_encode_YFSFid()
61 static __be32 *xdr_encode_string(__be32 *bp, const char *p, unsigned int len) in xdr_encode_string() argument
64 bp = memcpy(bp, p, len); in xdr_encode_string()
66 unsigned int pad = 4 - (len & 3); in xdr_encode_string()
75 static __be32 *xdr_encode_name(__be32 *bp, const struct qstr *p) in xdr_encode_name() argument
77 return xdr_encode_string(bp, p->name, p->len); in xdr_encode_name()
83 return (u64)t->tv_sec * 10000000 + t->tv_nsec/100; in linux_to_yfs_time()
96 x->mask = htonl(mask); in xdr_encode_YFSStoreStatus()
97 x->mode = htonl(masked_mode); in xdr_encode_YFSStoreStatus()
98 x->mtime_client = u64_to_xdr(mtime); in xdr_encode_YFSStoreStatus()
99 x->owner = u64_to_xdr(0); in xdr_encode_YFSStoreStatus()
100 x->group = u64_to_xdr(0); in xdr_encode_YFSStoreStatus()
105 * Convert a signed 100ns-resolution 64-bit time into a timespec.
118 abs_t = -t; in yfs_time_to_linux()
120 ts.tv_nsec = -ts.tv_nsec; in yfs_time_to_linux()
121 ts.tv_sec = -abs_t; in yfs_time_to_linux()
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()
178 struct afs_file_status *status = &scb->status; in xdr_decode_YFSFetchStatus()
181 status->abort_code = ntohl(xdr->abort_code); in xdr_decode_YFSFetchStatus()
182 if (status->abort_code != 0) { in xdr_decode_YFSFetchStatus()
183 if (status->abort_code == VNOVNODE) in xdr_decode_YFSFetchStatus()
184 status->nlink = 0; in xdr_decode_YFSFetchStatus()
185 scb->have_error = true; in xdr_decode_YFSFetchStatus()
189 type = ntohl(xdr->type); in xdr_decode_YFSFetchStatus()
194 status->type = type; in xdr_decode_YFSFetchStatus()
200 status->nlink = ntohl(xdr->nlink); in xdr_decode_YFSFetchStatus()
201 status->author = xdr_to_u64(xdr->author); in xdr_decode_YFSFetchStatus()
202 status->owner = xdr_to_u64(xdr->owner); in xdr_decode_YFSFetchStatus()
203 status->caller_access = ntohl(xdr->caller_access); /* Ticket dependent */ in xdr_decode_YFSFetchStatus()
204 status->anon_access = ntohl(xdr->anon_access); in xdr_decode_YFSFetchStatus()
205 status->mode = ntohl(xdr->mode) & S_IALLUGO; in xdr_decode_YFSFetchStatus()
206 status->group = xdr_to_u64(xdr->group); in xdr_decode_YFSFetchStatus()
207 status->lock_count = ntohl(xdr->lock_count); in xdr_decode_YFSFetchStatus()
209 status->mtime_client = xdr_to_time(xdr->mtime_client); in xdr_decode_YFSFetchStatus()
210 status->mtime_server = xdr_to_time(xdr->mtime_server); in xdr_decode_YFSFetchStatus()
211 status->size = xdr_to_u64(xdr->size); in xdr_decode_YFSFetchStatus()
212 status->data_version = xdr_to_u64(xdr->data_version); in xdr_decode_YFSFetchStatus()
213 scb->have_status = true; in xdr_decode_YFSFetchStatus()
232 struct afs_callback *cb = &scb->callback; in xdr_decode_YFSCallBack()
235 cb_expiry = ktime_add(call->issue_time, xdr_to_u64(x->expiration_time) * 100); in xdr_decode_YFSCallBack()
236 cb->expires_at = ktime_divns(cb_expiry, NSEC_PER_SEC); in xdr_decode_YFSCallBack()
237 scb->have_cb = true; in xdr_decode_YFSCallBack()
251 creation = xdr_to_u64(x->vol_creation_date); in xdr_decode_YFSVolSync()
253 volsync->creation = creation; in xdr_decode_YFSVolSync()
269 if (attr->ia_valid & ATTR_MTIME) { in xdr_encode_YFS_StoreStatus()
271 mtime = linux_to_yfs_time(&attr->ia_mtime); in xdr_encode_YFS_StoreStatus()
274 if (attr->ia_valid & ATTR_UID) { in xdr_encode_YFS_StoreStatus()
276 owner = from_kuid(&init_user_ns, attr->ia_uid); in xdr_encode_YFS_StoreStatus()
279 if (attr->ia_valid & ATTR_GID) { in xdr_encode_YFS_StoreStatus()
281 group = from_kgid(&init_user_ns, attr->ia_gid); in xdr_encode_YFS_StoreStatus()
284 if (attr->ia_valid & ATTR_MODE) { in xdr_encode_YFS_StoreStatus()
286 mode = attr->ia_mode & S_IALLUGO; in xdr_encode_YFS_StoreStatus()
289 x->mask = htonl(mask); in xdr_encode_YFS_StoreStatus()
290 x->mode = htonl(mode); in xdr_encode_YFS_StoreStatus()
291 x->mtime_client = u64_to_xdr(mtime); in xdr_encode_YFS_StoreStatus()
292 x->owner = u64_to_xdr(owner); in xdr_encode_YFS_StoreStatus()
293 x->group = u64_to_xdr(group); in xdr_encode_YFS_StoreStatus()
306 vs->vid = xdr_to_u64(x->vid); in xdr_decode_YFSFetchVolumeStatus()
307 vs->parent_id = xdr_to_u64(x->parent_id); in xdr_decode_YFSFetchVolumeStatus()
308 flags = ntohl(x->flags); in xdr_decode_YFSFetchVolumeStatus()
309 vs->online = flags & yfs_FVSOnline; in xdr_decode_YFSFetchVolumeStatus()
310 vs->in_service = flags & yfs_FVSInservice; in xdr_decode_YFSFetchVolumeStatus()
311 vs->blessed = flags & yfs_FVSBlessed; in xdr_decode_YFSFetchVolumeStatus()
312 vs->needs_salvage = flags & yfs_FVSNeedsSalvage; in xdr_decode_YFSFetchVolumeStatus()
313 vs->type = ntohl(x->type); in xdr_decode_YFSFetchVolumeStatus()
314 vs->min_quota = 0; in xdr_decode_YFSFetchVolumeStatus()
315 vs->max_quota = xdr_to_u64(x->max_quota); in xdr_decode_YFSFetchVolumeStatus()
316 vs->blocks_in_use = xdr_to_u64(x->blocks_in_use); in xdr_decode_YFSFetchVolumeStatus()
317 vs->part_blocks_avail = xdr_to_u64(x->part_blocks_avail); in xdr_decode_YFSFetchVolumeStatus()
318 vs->part_max_blocks = xdr_to_u64(x->part_max_blocks); in xdr_decode_YFSFetchVolumeStatus()
319 vs->vol_copy_date = xdr_to_u64(x->vol_copy_date); in xdr_decode_YFSFetchVolumeStatus()
320 vs->vol_backup_date = xdr_to_u64(x->vol_backup_date); in xdr_decode_YFSFetchVolumeStatus()
330 struct afs_operation *op = call->op; in yfs_deliver_status_and_volsync()
338 bp = call->buffer; in yfs_deliver_status_and_volsync()
339 xdr_decode_YFSFetchStatus(&bp, call, &op->file[0].scb); in yfs_deliver_status_and_volsync()
340 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_status_and_volsync()
351 struct afs_operation *op = call->op; in yfs_deliver_fs_fetch_data64()
352 struct afs_vnode_param *vp = &op->file[0]; in yfs_deliver_fs_fetch_data64() local
353 struct afs_read *req = op->fetch.req; in yfs_deliver_fs_fetch_data64()
358 call->unmarshall, call->iov_len, iov_iter_count(call->iter), in yfs_deliver_fs_fetch_data64()
359 req->actual_len); in yfs_deliver_fs_fetch_data64()
361 switch (call->unmarshall) { in yfs_deliver_fs_fetch_data64()
363 req->actual_len = 0; in yfs_deliver_fs_fetch_data64()
365 call->unmarshall++; in yfs_deliver_fs_fetch_data64()
368 /* Extract the returned data length into ->actual_len. This in yfs_deliver_fs_fetch_data64()
378 req->actual_len = be64_to_cpu(call->tmp64); in yfs_deliver_fs_fetch_data64()
379 _debug("DATA length: %llu", req->actual_len); in yfs_deliver_fs_fetch_data64()
381 if (req->actual_len == 0) in yfs_deliver_fs_fetch_data64()
384 call->iter = req->iter; in yfs_deliver_fs_fetch_data64()
385 call->iov_len = min(req->actual_len, req->len); in yfs_deliver_fs_fetch_data64()
386 call->unmarshall++; in yfs_deliver_fs_fetch_data64()
392 iov_iter_count(call->iter), req->actual_len); in yfs_deliver_fs_fetch_data64()
398 call->iter = &call->def_iter; in yfs_deliver_fs_fetch_data64()
399 if (req->actual_len <= req->len) in yfs_deliver_fs_fetch_data64()
403 afs_extract_discard(call, req->actual_len - req->len); in yfs_deliver_fs_fetch_data64()
404 call->unmarshall = 3; in yfs_deliver_fs_fetch_data64()
409 iov_iter_count(call->iter), req->actual_len - req->len); in yfs_deliver_fs_fetch_data64()
416 call->unmarshall = 4; in yfs_deliver_fs_fetch_data64()
429 bp = call->buffer; in yfs_deliver_fs_fetch_data64()
430 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_data64()
431 xdr_decode_YFSCallBack(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_data64()
432 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_fetch_data64()
434 req->data_version = vp->scb.status.data_version; in yfs_deliver_fs_fetch_data64()
435 req->file_size = vp->scb.status.size; in yfs_deliver_fs_fetch_data64()
437 call->unmarshall++; in yfs_deliver_fs_fetch_data64()
463 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_fetch_data() local
464 struct afs_read *req = op->fetch.req; in yfs_fs_fetch_data()
469 key_serial(op->key), vp->fid.vid, vp->fid.vnode, in yfs_fs_fetch_data()
470 req->pos, req->len); in yfs_fs_fetch_data()
472 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchData64, in yfs_fs_fetch_data()
482 req->call_debug_id = call->debug_id; in yfs_fs_fetch_data()
485 bp = call->request; in yfs_fs_fetch_data()
488 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_fetch_data()
489 bp = xdr_encode_u64(bp, req->pos); in yfs_fs_fetch_data()
490 bp = xdr_encode_u64(bp, req->len); in yfs_fs_fetch_data()
493 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_fetch_data()
502 struct afs_operation *op = call->op; in yfs_deliver_fs_create_vnode()
503 struct afs_vnode_param *dvp = &op->file[0]; in yfs_deliver_fs_create_vnode()
504 struct afs_vnode_param *vp = &op->file[1]; in yfs_deliver_fs_create_vnode() local
508 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_create_vnode()
515 bp = call->buffer; in yfs_deliver_fs_create_vnode()
516 xdr_decode_YFSFid(&bp, &op->file[1].fid); in yfs_deliver_fs_create_vnode()
517 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_create_vnode()
518 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_create_vnode()
519 xdr_decode_YFSCallBack(&bp, call, &vp->scb); in yfs_deliver_fs_create_vnode()
520 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_create_vnode()
541 const struct qstr *name = &op->dentry->d_name; in yfs_fs_create_file()
542 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_create_file()
552 xdr_strlen(name->len) + in yfs_fs_create_file()
561 call = afs_alloc_flat_call(op->net, &afs_RXFSCreateFile, reqsz, rplsz); in yfs_fs_create_file()
566 bp = call->request; in yfs_fs_create_file()
569 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_create_file()
571 bp = xdr_encode_YFSStoreStatus(bp, &op->create.mode, &op->mtime); in yfs_fs_create_file()
575 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_create_file()
591 const struct qstr *name = &op->dentry->d_name; in yfs_fs_make_dir()
592 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_make_dir()
602 xdr_strlen(name->len) + in yfs_fs_make_dir()
610 call = afs_alloc_flat_call(op->net, &yfs_RXFSMakeDir, reqsz, rplsz); in yfs_fs_make_dir()
615 bp = call->request; in yfs_fs_make_dir()
618 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_make_dir()
620 bp = xdr_encode_YFSStoreStatus(bp, &op->create.mode, &op->mtime); in yfs_fs_make_dir()
623 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_make_dir()
632 struct afs_operation *op = call->op; in yfs_deliver_fs_remove_file2()
633 struct afs_vnode_param *dvp = &op->file[0]; in yfs_deliver_fs_remove_file2()
634 struct afs_vnode_param *vp = &op->file[1]; in yfs_deliver_fs_remove_file2() local
639 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_remove_file2()
645 bp = call->buffer; in yfs_deliver_fs_remove_file2()
646 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_remove_file2()
648 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_remove_file2()
649 /* Was deleted if vnode->status.abort_code == VNOVNODE. */ in yfs_deliver_fs_remove_file2()
651 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_remove_file2()
657 if (call->error == -ECONNABORTED && in yfs_done_fs_remove_file2()
658 (call->abort_code == RX_INVALID_OPERATION || in yfs_done_fs_remove_file2()
659 call->abort_code == RXGEN_OPCODE)) { in yfs_done_fs_remove_file2()
660 set_bit(AFS_SERVER_FL_NO_RM2, &call->op->server->flags); in yfs_done_fs_remove_file2()
661 call->op->flags |= AFS_OPERATION_DOWNGRADE; in yfs_done_fs_remove_file2()
681 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_remove_file2()
682 const struct qstr *name = &op->dentry->d_name; in yfs_fs_remove_file2()
688 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveFile2, in yfs_fs_remove_file2()
692 xdr_strlen(name->len), in yfs_fs_remove_file2()
701 bp = call->request; in yfs_fs_remove_file2()
704 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_remove_file2()
708 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_remove_file2()
717 struct afs_operation *op = call->op; in yfs_deliver_fs_remove()
718 struct afs_vnode_param *dvp = &op->file[0]; in yfs_deliver_fs_remove()
722 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_remove()
728 bp = call->buffer; in yfs_deliver_fs_remove()
729 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_remove()
730 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_remove()
749 const struct qstr *name = &op->dentry->d_name; in yfs_fs_remove_file()
750 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_remove_file()
756 if (!test_bit(AFS_SERVER_FL_NO_RM2, &op->server->flags)) in yfs_fs_remove_file()
759 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveFile, in yfs_fs_remove_file()
763 xdr_strlen(name->len), in yfs_fs_remove_file()
770 bp = call->request; in yfs_fs_remove_file()
773 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_remove_file()
777 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_remove_file()
793 const struct qstr *name = &op->dentry->d_name; in yfs_fs_remove_dir()
794 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_remove_dir()
800 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRemoveDir, in yfs_fs_remove_dir()
804 xdr_strlen(name->len), in yfs_fs_remove_dir()
811 bp = call->request; in yfs_fs_remove_dir()
814 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_remove_dir()
818 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_remove_dir()
827 struct afs_operation *op = call->op; in yfs_deliver_fs_link()
828 struct afs_vnode_param *dvp = &op->file[0]; in yfs_deliver_fs_link()
829 struct afs_vnode_param *vp = &op->file[1]; in yfs_deliver_fs_link() local
833 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_link()
839 bp = call->buffer; in yfs_deliver_fs_link()
840 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_link()
841 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_link()
842 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_link()
862 const struct qstr *name = &op->dentry->d_name; in yfs_fs_link()
863 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_link()
864 struct afs_vnode_param *vp = &op->file[1]; in yfs_fs_link() local
870 call = afs_alloc_flat_call(op->net, &yfs_RXYFSLink, in yfs_fs_link()
874 xdr_strlen(name->len) + in yfs_fs_link()
883 bp = call->request; in yfs_fs_link()
886 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_link()
888 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_link()
891 trace_afs_make_fs_call1(call, &vp->fid, name); in yfs_fs_link()
900 struct afs_operation *op = call->op; in yfs_deliver_fs_symlink()
901 struct afs_vnode_param *dvp = &op->file[0]; in yfs_deliver_fs_symlink()
902 struct afs_vnode_param *vp = &op->file[1]; in yfs_deliver_fs_symlink() local
906 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_symlink()
913 bp = call->buffer; in yfs_deliver_fs_symlink()
914 xdr_decode_YFSFid(&bp, &vp->fid); in yfs_deliver_fs_symlink()
915 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_symlink()
916 xdr_decode_YFSFetchStatus(&bp, call, &dvp->scb); in yfs_deliver_fs_symlink()
917 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_symlink()
938 const struct qstr *name = &op->dentry->d_name; in yfs_fs_symlink()
939 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_symlink()
947 contents_sz = strlen(op->create.symlink); in yfs_fs_symlink()
948 call = afs_alloc_flat_call(op->net, &yfs_RXYFSSymlink, in yfs_fs_symlink()
952 xdr_strlen(name->len) + in yfs_fs_symlink()
963 bp = call->request; in yfs_fs_symlink()
966 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_symlink()
968 bp = xdr_encode_string(bp, op->create.symlink, contents_sz); in yfs_fs_symlink()
969 bp = xdr_encode_YFSStoreStatus(bp, &mode, &op->mtime); in yfs_fs_symlink()
972 trace_afs_make_fs_call1(call, &dvp->fid, name); in yfs_fs_symlink()
981 struct afs_operation *op = call->op; in yfs_deliver_fs_rename()
982 struct afs_vnode_param *orig_dvp = &op->file[0]; in yfs_deliver_fs_rename()
983 struct afs_vnode_param *new_dvp = &op->file[1]; in yfs_deliver_fs_rename()
987 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_rename()
993 bp = call->buffer; in yfs_deliver_fs_rename()
997 xdr_decode_YFSFetchStatus(&bp, call, &orig_dvp->scb); in yfs_deliver_fs_rename()
998 xdr_decode_YFSFetchStatus(&bp, call, &new_dvp->scb); in yfs_deliver_fs_rename()
999 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_rename()
1019 struct afs_vnode_param *orig_dvp = &op->file[0]; in yfs_fs_rename()
1020 struct afs_vnode_param *new_dvp = &op->file[1]; in yfs_fs_rename()
1021 const struct qstr *orig_name = &op->dentry->d_name; in yfs_fs_rename()
1022 const struct qstr *new_name = &op->dentry_2->d_name; in yfs_fs_rename()
1028 call = afs_alloc_flat_call(op->net, &yfs_RXYFSRename, in yfs_fs_rename()
1032 xdr_strlen(orig_name->len) + in yfs_fs_rename()
1034 xdr_strlen(new_name->len), in yfs_fs_rename()
1042 bp = call->request; in yfs_fs_rename()
1045 bp = xdr_encode_YFSFid(bp, &orig_dvp->fid); in yfs_fs_rename()
1047 bp = xdr_encode_YFSFid(bp, &new_dvp->fid); in yfs_fs_rename()
1051 trace_afs_make_fs_call2(call, &orig_dvp->fid, orig_name, new_name); in yfs_fs_rename()
1070 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_store_data() local
1075 key_serial(op->key), vp->fid.vid, vp->fid.vnode); in yfs_fs_store_data()
1078 (unsigned long long)op->store.size, in yfs_fs_store_data()
1079 (unsigned long long)op->store.pos, in yfs_fs_store_data()
1080 (unsigned long long)op->store.i_size); in yfs_fs_store_data()
1082 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreData64, in yfs_fs_store_data()
1093 call->write_iter = op->store.write_iter; in yfs_fs_store_data()
1096 bp = call->request; in yfs_fs_store_data()
1099 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_store_data()
1100 bp = xdr_encode_YFSStoreStatus(bp, NULL, &op->mtime); in yfs_fs_store_data()
1101 bp = xdr_encode_u64(bp, op->store.pos); in yfs_fs_store_data()
1102 bp = xdr_encode_u64(bp, op->store.size); in yfs_fs_store_data()
1103 bp = xdr_encode_u64(bp, op->store.i_size); in yfs_fs_store_data()
1106 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_store_data()
1133 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_setattr_size() local
1135 struct iattr *attr = op->setattr.attr; in yfs_fs_setattr_size()
1139 key_serial(op->key), vp->fid.vid, vp->fid.vnode); in yfs_fs_setattr_size()
1141 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreData64_as_Status, in yfs_fs_setattr_size()
1152 bp = call->request; in yfs_fs_setattr_size()
1155 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_setattr_size()
1157 bp = xdr_encode_u64(bp, attr->ia_size); /* position of start of write */ in yfs_fs_setattr_size()
1159 bp = xdr_encode_u64(bp, attr->ia_size); /* new file length */ in yfs_fs_setattr_size()
1162 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_setattr_size()
1172 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_setattr() local
1174 struct iattr *attr = op->setattr.attr; in yfs_fs_setattr()
1177 if (attr->ia_valid & ATTR_SIZE) in yfs_fs_setattr()
1181 key_serial(op->key), vp->fid.vid, vp->fid.vnode); in yfs_fs_setattr()
1183 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreStatus, in yfs_fs_setattr()
1193 bp = call->request; in yfs_fs_setattr()
1196 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_setattr()
1200 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_setattr()
1209 struct afs_operation *op = call->op; in yfs_deliver_fs_get_volume_status()
1211 char *p; in yfs_deliver_fs_get_volume_status() local
1215 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_get_volume_status()
1217 switch (call->unmarshall) { in yfs_deliver_fs_get_volume_status()
1219 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1230 bp = call->buffer; in yfs_deliver_fs_get_volume_status()
1231 xdr_decode_YFSFetchVolumeStatus(&bp, &op->volstatus.vs); in yfs_deliver_fs_get_volume_status()
1232 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1242 call->count = ntohl(call->tmp); in yfs_deliver_fs_get_volume_status()
1243 _debug("volname length: %u", call->count); in yfs_deliver_fs_get_volume_status()
1244 if (call->count >= AFSNAMEMAX) in yfs_deliver_fs_get_volume_status()
1246 size = (call->count + 3) & ~3; /* It's padded */ in yfs_deliver_fs_get_volume_status()
1248 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1258 p = call->buffer; in yfs_deliver_fs_get_volume_status()
1259 p[call->count] = 0; in yfs_deliver_fs_get_volume_status()
1260 _debug("volname '%s'", p); in yfs_deliver_fs_get_volume_status()
1262 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1271 call->count = ntohl(call->tmp); in yfs_deliver_fs_get_volume_status()
1272 _debug("offline msg length: %u", call->count); in yfs_deliver_fs_get_volume_status()
1273 if (call->count >= AFSNAMEMAX) in yfs_deliver_fs_get_volume_status()
1275 size = (call->count + 3) & ~3; /* It's padded */ in yfs_deliver_fs_get_volume_status()
1277 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1287 p = call->buffer; in yfs_deliver_fs_get_volume_status()
1288 p[call->count] = 0; in yfs_deliver_fs_get_volume_status()
1289 _debug("offline '%s'", p); in yfs_deliver_fs_get_volume_status()
1292 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1301 call->count = ntohl(call->tmp); in yfs_deliver_fs_get_volume_status()
1302 _debug("motd length: %u", call->count); in yfs_deliver_fs_get_volume_status()
1303 if (call->count >= AFSNAMEMAX) in yfs_deliver_fs_get_volume_status()
1305 size = (call->count + 3) & ~3; /* It's padded */ in yfs_deliver_fs_get_volume_status()
1307 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1317 p = call->buffer; in yfs_deliver_fs_get_volume_status()
1318 p[call->count] = 0; in yfs_deliver_fs_get_volume_status()
1319 _debug("motd '%s'", p); in yfs_deliver_fs_get_volume_status()
1321 call->unmarshall++; in yfs_deliver_fs_get_volume_status()
1347 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_get_volume_status() local
1353 call = afs_alloc_flat_call(op->net, &yfs_RXYFSGetVolumeStatus, in yfs_fs_get_volume_status()
1364 bp = call->request; in yfs_fs_get_volume_status()
1367 bp = xdr_encode_u64(bp, vp->fid.vid); in yfs_fs_get_volume_status()
1370 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_get_volume_status()
1411 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_set_lock() local
1417 call = afs_alloc_flat_call(op->net, &yfs_RXYFSSetLock, in yfs_fs_set_lock()
1427 bp = call->request; in yfs_fs_set_lock()
1430 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_set_lock()
1431 bp = xdr_encode_u32(bp, op->lock.type); in yfs_fs_set_lock()
1434 trace_afs_make_fs_calli(call, &vp->fid, op->lock.type); in yfs_fs_set_lock()
1443 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_extend_lock() local
1449 call = afs_alloc_flat_call(op->net, &yfs_RXYFSExtendLock, in yfs_fs_extend_lock()
1458 bp = call->request; in yfs_fs_extend_lock()
1461 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_extend_lock()
1464 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_extend_lock()
1473 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_release_lock() local
1479 call = afs_alloc_flat_call(op->net, &yfs_RXYFSReleaseLock, in yfs_fs_release_lock()
1488 bp = call->request; in yfs_fs_release_lock()
1491 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_release_lock()
1494 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_release_lock()
1503 struct afs_operation *op = call->op; in yfs_deliver_fs_fetch_status()
1504 struct afs_vnode_param *vp = &op->file[op->fetch_status.which]; in yfs_deliver_fs_fetch_status() local
1513 bp = call->buffer; in yfs_deliver_fs_fetch_status()
1514 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_status()
1515 xdr_decode_YFSCallBack(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_status()
1516 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_fetch_status()
1537 struct afs_vnode_param *vp = &op->file[op->fetch_status.which]; in yfs_fs_fetch_status() local
1542 key_serial(op->key), vp->fid.vid, vp->fid.vnode); in yfs_fs_fetch_status()
1544 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchStatus, in yfs_fs_fetch_status()
1554 bp = call->request; in yfs_fs_fetch_status()
1557 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_fetch_status()
1560 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_fetch_status()
1569 struct afs_operation *op = call->op; in yfs_deliver_fs_inline_bulk_status()
1575 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_inline_bulk_status()
1577 switch (call->unmarshall) { in yfs_deliver_fs_inline_bulk_status()
1580 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1590 tmp = ntohl(call->tmp); in yfs_deliver_fs_inline_bulk_status()
1591 _debug("status count: %u/%u", tmp, op->nr_files); in yfs_deliver_fs_inline_bulk_status()
1592 if (tmp != op->nr_files) in yfs_deliver_fs_inline_bulk_status()
1595 call->count = 0; in yfs_deliver_fs_inline_bulk_status()
1596 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1602 _debug("extract status array %u", call->count); in yfs_deliver_fs_inline_bulk_status()
1607 switch (call->count) { in yfs_deliver_fs_inline_bulk_status()
1609 scb = &op->file[0].scb; in yfs_deliver_fs_inline_bulk_status()
1612 scb = &op->file[1].scb; in yfs_deliver_fs_inline_bulk_status()
1615 scb = &op->more_files[call->count - 2].scb; in yfs_deliver_fs_inline_bulk_status()
1619 bp = call->buffer; in yfs_deliver_fs_inline_bulk_status()
1622 call->count++; in yfs_deliver_fs_inline_bulk_status()
1623 if (call->count < op->nr_files) in yfs_deliver_fs_inline_bulk_status()
1626 call->count = 0; in yfs_deliver_fs_inline_bulk_status()
1627 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1638 tmp = ntohl(call->tmp); in yfs_deliver_fs_inline_bulk_status()
1640 if (tmp != op->nr_files) in yfs_deliver_fs_inline_bulk_status()
1642 call->count = 0; in yfs_deliver_fs_inline_bulk_status()
1643 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1655 switch (call->count) { in yfs_deliver_fs_inline_bulk_status()
1657 scb = &op->file[0].scb; in yfs_deliver_fs_inline_bulk_status()
1660 scb = &op->file[1].scb; in yfs_deliver_fs_inline_bulk_status()
1663 scb = &op->more_files[call->count - 2].scb; in yfs_deliver_fs_inline_bulk_status()
1667 bp = call->buffer; in yfs_deliver_fs_inline_bulk_status()
1669 call->count++; in yfs_deliver_fs_inline_bulk_status()
1670 if (call->count < op->nr_files) in yfs_deliver_fs_inline_bulk_status()
1674 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1682 bp = call->buffer; in yfs_deliver_fs_inline_bulk_status()
1683 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_inline_bulk_status()
1685 call->unmarshall++; in yfs_deliver_fs_inline_bulk_status()
1711 struct afs_vnode_param *dvp = &op->file[0]; in yfs_fs_inline_bulk_status()
1712 struct afs_vnode_param *vp = &op->file[1]; in yfs_fs_inline_bulk_status() local
1718 key_serial(op->key), vp->fid.vid, vp->fid.vnode, op->nr_files); in yfs_fs_inline_bulk_status()
1720 call = afs_alloc_flat_call(op->net, &yfs_RXYFSInlineBulkStatus, in yfs_fs_inline_bulk_status()
1724 sizeof(struct yfs_xdr_YFSFid) * op->nr_files, in yfs_fs_inline_bulk_status()
1730 bp = call->request; in yfs_fs_inline_bulk_status()
1733 bp = xdr_encode_u32(bp, op->nr_files); in yfs_fs_inline_bulk_status()
1734 bp = xdr_encode_YFSFid(bp, &dvp->fid); in yfs_fs_inline_bulk_status()
1735 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_inline_bulk_status()
1736 for (i = 0; i < op->nr_files - 2; i++) in yfs_fs_inline_bulk_status()
1737 bp = xdr_encode_YFSFid(bp, &op->more_files[i].fid); in yfs_fs_inline_bulk_status()
1740 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_inline_bulk_status()
1749 struct afs_operation *op = call->op; in yfs_deliver_fs_fetch_opaque_acl()
1750 struct afs_vnode_param *vp = &op->file[0]; in yfs_deliver_fs_fetch_opaque_acl() local
1751 struct yfs_acl *yacl = op->yacl; in yfs_deliver_fs_fetch_opaque_acl()
1757 _enter("{%u}", call->unmarshall); in yfs_deliver_fs_fetch_opaque_acl()
1759 switch (call->unmarshall) { in yfs_deliver_fs_fetch_opaque_acl()
1762 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1771 size = call->count2 = ntohl(call->tmp); in yfs_deliver_fs_fetch_opaque_acl()
1774 if (yacl->flags & YFS_ACL_WANT_ACL) { in yfs_deliver_fs_fetch_opaque_acl()
1777 return -ENOMEM; in yfs_deliver_fs_fetch_opaque_acl()
1778 yacl->acl = acl; in yfs_deliver_fs_fetch_opaque_acl()
1779 acl->size = call->count2; in yfs_deliver_fs_fetch_opaque_acl()
1780 afs_extract_begin(call, acl->data, size); in yfs_deliver_fs_fetch_opaque_acl()
1784 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1794 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1803 size = call->count2 = ntohl(call->tmp); in yfs_deliver_fs_fetch_opaque_acl()
1806 if (yacl->flags & YFS_ACL_WANT_VOL_ACL) { in yfs_deliver_fs_fetch_opaque_acl()
1809 return -ENOMEM; in yfs_deliver_fs_fetch_opaque_acl()
1810 yacl->vol_acl = acl; in yfs_deliver_fs_fetch_opaque_acl()
1811 acl->size = call->count2; in yfs_deliver_fs_fetch_opaque_acl()
1812 afs_extract_begin(call, acl->data, size); in yfs_deliver_fs_fetch_opaque_acl()
1816 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1829 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1838 bp = call->buffer; in yfs_deliver_fs_fetch_opaque_acl()
1839 yacl->inherit_flag = ntohl(*bp++); in yfs_deliver_fs_fetch_opaque_acl()
1840 yacl->num_cleaned = ntohl(*bp++); in yfs_deliver_fs_fetch_opaque_acl()
1841 xdr_decode_YFSFetchStatus(&bp, call, &vp->scb); in yfs_deliver_fs_fetch_opaque_acl()
1842 xdr_decode_YFSVolSync(&bp, &op->volsync); in yfs_deliver_fs_fetch_opaque_acl()
1844 call->unmarshall++; in yfs_deliver_fs_fetch_opaque_acl()
1858 kfree(yacl->acl); in yfs_free_opaque_acl()
1859 kfree(yacl->vol_acl); in yfs_free_opaque_acl()
1879 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_fetch_opaque_acl() local
1884 key_serial(op->key), vp->fid.vid, vp->fid.vnode); in yfs_fs_fetch_opaque_acl()
1886 call = afs_alloc_flat_call(op->net, &yfs_RXYFSFetchOpaqueACL, in yfs_fs_fetch_opaque_acl()
1896 bp = call->request; in yfs_fs_fetch_opaque_acl()
1899 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_fetch_opaque_acl()
1902 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_fetch_opaque_acl()
1921 struct afs_vnode_param *vp = &op->file[0]; in yfs_fs_store_opaque_acl2() local
1923 struct afs_acl *acl = op->acl; in yfs_fs_store_opaque_acl2()
1928 key_serial(op->key), vp->fid.vid, vp->fid.vnode); in yfs_fs_store_opaque_acl2()
1930 size = round_up(acl->size, 4); in yfs_fs_store_opaque_acl2()
1931 call = afs_alloc_flat_call(op->net, &yfs_RXYFSStoreOpaqueACL2, in yfs_fs_store_opaque_acl2()
1941 bp = call->request; in yfs_fs_store_opaque_acl2()
1944 bp = xdr_encode_YFSFid(bp, &vp->fid); in yfs_fs_store_opaque_acl2()
1945 bp = xdr_encode_u32(bp, acl->size); in yfs_fs_store_opaque_acl2()
1946 memcpy(bp, acl->data, acl->size); in yfs_fs_store_opaque_acl2()
1947 if (acl->size != size) in yfs_fs_store_opaque_acl2()
1948 memset((void *)bp + acl->size, 0, size - acl->size); in yfs_fs_store_opaque_acl2()
1952 trace_afs_make_fs_call(call, &vp->fid); in yfs_fs_store_opaque_acl2()