• Home
  • Raw
  • Download

Lines Matching refs:data

63 static int _nfs4_proc_open(struct nfs4_opendata *data);
355 u32 *s = (u32 *) p->o_arg.u.verifier.data; in nfs4_opendata_alloc()
451 memcpy(state->stateid.data, stateid->data, sizeof(state->stateid.data)); in nfs_set_open_stateid_locked()
452 memcpy(state->open_stateid.data, stateid->data, sizeof(state->open_stateid.data)); in nfs_set_open_stateid_locked()
480 memcpy(state->stateid.data, deleg_stateid->data, sizeof(state->stateid.data)); in __update_open_stateid()
511 else if (memcmp(deleg_cur->stateid.data, delegation->data, NFS4_STATEID_SIZE) != 0) in update_open_stateid()
573 memcpy(stateid.data, delegation->stateid.data, sizeof(stateid.data)); in nfs4_try_open_cached()
591 static struct nfs4_state *nfs4_opendata_to_nfs4_state(struct nfs4_opendata *data) in nfs4_opendata_to_nfs4_state() argument
598 if (!data->rpc_done) { in nfs4_opendata_to_nfs4_state()
599 state = nfs4_try_open_cached(data); in nfs4_opendata_to_nfs4_state()
604 if (!(data->f_attr.valid & NFS_ATTR_FATTR)) in nfs4_opendata_to_nfs4_state()
606 inode = nfs_fhget(data->dir->d_sb, &data->o_res.fh, &data->f_attr); in nfs4_opendata_to_nfs4_state()
611 state = nfs4_get_open_state(inode, data->owner); in nfs4_opendata_to_nfs4_state()
614 if (data->o_res.delegation_type != 0) { in nfs4_opendata_to_nfs4_state()
624 data->owner->so_cred, in nfs4_opendata_to_nfs4_state()
625 &data->o_res); in nfs4_opendata_to_nfs4_state()
628 data->owner->so_cred, in nfs4_opendata_to_nfs4_state()
629 &data->o_res); in nfs4_opendata_to_nfs4_state()
632 update_open_stateid(state, &data->o_res.stateid, NULL, in nfs4_opendata_to_nfs4_state()
633 data->o_arg.fmode); in nfs4_opendata_to_nfs4_state()
727 memcmp(state->stateid.data, state->open_stateid.data, sizeof(state->stateid.data)) != 0) { in nfs4_open_recover()
730 memcpy(state->stateid.data, state->open_stateid.data, sizeof(state->stateid.data)); in nfs4_open_recover()
799 memcpy(opendata->o_arg.u.delegation.data, stateid->data, in _nfs4_open_delegation_recall()
800 sizeof(opendata->o_arg.u.delegation.data)); in _nfs4_open_delegation_recall()
830 struct nfs4_opendata *data = calldata; in nfs4_open_confirm_done() local
832 data->rpc_status = task->tk_status; in nfs4_open_confirm_done()
835 if (data->rpc_status == 0) { in nfs4_open_confirm_done()
836 memcpy(data->o_res.stateid.data, data->c_res.stateid.data, in nfs4_open_confirm_done()
837 sizeof(data->o_res.stateid.data)); in nfs4_open_confirm_done()
838 nfs_confirm_seqid(&data->owner->so_seqid, 0); in nfs4_open_confirm_done()
839 renew_lease(data->o_res.server, data->timestamp); in nfs4_open_confirm_done()
840 data->rpc_done = 1; in nfs4_open_confirm_done()
846 struct nfs4_opendata *data = calldata; in nfs4_open_confirm_release() local
850 if (data->cancelled == 0) in nfs4_open_confirm_release()
853 if (!data->rpc_done) in nfs4_open_confirm_release()
855 state = nfs4_opendata_to_nfs4_state(data); in nfs4_open_confirm_release()
857 nfs4_close_state(&data->path, state, data->o_arg.fmode); in nfs4_open_confirm_release()
859 nfs4_opendata_put(data); in nfs4_open_confirm_release()
870 static int _nfs4_proc_open_confirm(struct nfs4_opendata *data) in _nfs4_proc_open_confirm() argument
872 struct nfs_server *server = NFS_SERVER(data->dir->d_inode); in _nfs4_proc_open_confirm()
876 .rpc_argp = &data->c_arg, in _nfs4_proc_open_confirm()
877 .rpc_resp = &data->c_res, in _nfs4_proc_open_confirm()
878 .rpc_cred = data->owner->so_cred, in _nfs4_proc_open_confirm()
884 .callback_data = data, in _nfs4_proc_open_confirm()
890 kref_get(&data->kref); in _nfs4_proc_open_confirm()
891 data->rpc_done = 0; in _nfs4_proc_open_confirm()
892 data->rpc_status = 0; in _nfs4_proc_open_confirm()
893 data->timestamp = jiffies; in _nfs4_proc_open_confirm()
899 data->cancelled = 1; in _nfs4_proc_open_confirm()
902 status = data->rpc_status; in _nfs4_proc_open_confirm()
909 struct nfs4_opendata *data = calldata; in nfs4_open_prepare() local
910 struct nfs4_state_owner *sp = data->owner; in nfs4_open_prepare()
912 if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) in nfs4_open_prepare()
918 if (data->state != NULL) { in nfs4_open_prepare()
921 if (can_open_cached(data->state, data->o_arg.fmode, data->o_arg.open_flags)) in nfs4_open_prepare()
924 delegation = rcu_dereference(NFS_I(data->state->inode)->delegation); in nfs4_open_prepare()
933 data->o_arg.id = sp->so_owner_id.id; in nfs4_open_prepare()
934 data->o_arg.clientid = sp->so_client->cl_clientid; in nfs4_open_prepare()
935 if (data->o_arg.claim == NFS4_OPEN_CLAIM_PREVIOUS) { in nfs4_open_prepare()
937 nfs_copy_fh(&data->o_res.fh, data->o_arg.fh); in nfs4_open_prepare()
939 data->timestamp = jiffies; in nfs4_open_prepare()
949 struct nfs4_opendata *data = calldata; in nfs4_open_done() local
951 data->rpc_status = task->tk_status; in nfs4_open_done()
955 switch (data->o_res.f_attr->mode & S_IFMT) { in nfs4_open_done()
959 data->rpc_status = -ELOOP; in nfs4_open_done()
962 data->rpc_status = -EISDIR; in nfs4_open_done()
965 data->rpc_status = -ENOTDIR; in nfs4_open_done()
967 renew_lease(data->o_res.server, data->timestamp); in nfs4_open_done()
968 if (!(data->o_res.rflags & NFS4_OPEN_RESULT_CONFIRM)) in nfs4_open_done()
969 nfs_confirm_seqid(&data->owner->so_seqid, 0); in nfs4_open_done()
971 data->rpc_done = 1; in nfs4_open_done()
976 struct nfs4_opendata *data = calldata; in nfs4_open_release() local
980 if (data->cancelled == 0) in nfs4_open_release()
983 if (data->rpc_status != 0 || !data->rpc_done) in nfs4_open_release()
986 if (data->o_res.rflags & NFS4_OPEN_RESULT_CONFIRM) in nfs4_open_release()
988 state = nfs4_opendata_to_nfs4_state(data); in nfs4_open_release()
990 nfs4_close_state(&data->path, state, data->o_arg.fmode); in nfs4_open_release()
992 nfs4_opendata_put(data); in nfs4_open_release()
1004 static int _nfs4_proc_open(struct nfs4_opendata *data) in _nfs4_proc_open() argument
1006 struct inode *dir = data->dir->d_inode; in _nfs4_proc_open()
1008 struct nfs_openargs *o_arg = &data->o_arg; in _nfs4_proc_open()
1009 struct nfs_openres *o_res = &data->o_res; in _nfs4_proc_open()
1015 .rpc_cred = data->owner->so_cred, in _nfs4_proc_open()
1021 .callback_data = data, in _nfs4_proc_open()
1027 kref_get(&data->kref); in _nfs4_proc_open()
1028 data->rpc_done = 0; in _nfs4_proc_open()
1029 data->rpc_status = 0; in _nfs4_proc_open()
1030 data->cancelled = 0; in _nfs4_proc_open()
1036 data->cancelled = 1; in _nfs4_proc_open()
1039 status = data->rpc_status; in _nfs4_proc_open()
1041 if (status != 0 || !data->rpc_done) in _nfs4_proc_open()
1053 status = _nfs4_proc_open_confirm(data); in _nfs4_proc_open()
1311 static void nfs4_free_closedata(void *data) in nfs4_free_closedata() argument
1313 struct nfs4_closedata *calldata = data; in nfs4_free_closedata()
1323 static void nfs4_close_done(struct rpc_task *task, void *data) in nfs4_close_done() argument
1325 struct nfs4_closedata *calldata = data; in nfs4_close_done()
1354 static void nfs4_close_prepare(struct rpc_task *task, void *data) in nfs4_close_prepare() argument
1356 struct nfs4_closedata *calldata = data; in nfs4_close_prepare()
2207 struct nfs4_createdata *data; in nfs4_alloc_createdata() local
2209 data = kzalloc(sizeof(*data), GFP_KERNEL); in nfs4_alloc_createdata()
2210 if (data != NULL) { in nfs4_alloc_createdata()
2213 data->msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CREATE]; in nfs4_alloc_createdata()
2214 data->msg.rpc_argp = &data->arg; in nfs4_alloc_createdata()
2215 data->msg.rpc_resp = &data->res; in nfs4_alloc_createdata()
2216 data->arg.dir_fh = NFS_FH(dir); in nfs4_alloc_createdata()
2217 data->arg.server = server; in nfs4_alloc_createdata()
2218 data->arg.name = name; in nfs4_alloc_createdata()
2219 data->arg.attrs = sattr; in nfs4_alloc_createdata()
2220 data->arg.ftype = ftype; in nfs4_alloc_createdata()
2221 data->arg.bitmask = server->attr_bitmask; in nfs4_alloc_createdata()
2222 data->res.server = server; in nfs4_alloc_createdata()
2223 data->res.fh = &data->fh; in nfs4_alloc_createdata()
2224 data->res.fattr = &data->fattr; in nfs4_alloc_createdata()
2225 data->res.dir_fattr = &data->dir_fattr; in nfs4_alloc_createdata()
2226 nfs_fattr_init(data->res.fattr); in nfs4_alloc_createdata()
2227 nfs_fattr_init(data->res.dir_fattr); in nfs4_alloc_createdata()
2229 return data; in nfs4_alloc_createdata()
2232 static int nfs4_do_create(struct inode *dir, struct dentry *dentry, struct nfs4_createdata *data) in nfs4_do_create() argument
2234 int status = rpc_call_sync(NFS_CLIENT(dir), &data->msg, 0); in nfs4_do_create()
2236 update_changeattr(dir, &data->res.dir_cinfo); in nfs4_do_create()
2237 nfs_post_op_update_inode(dir, data->res.dir_fattr); in nfs4_do_create()
2238 status = nfs_instantiate(dentry, data->res.fh, data->res.fattr); in nfs4_do_create()
2243 static void nfs4_free_createdata(struct nfs4_createdata *data) in nfs4_free_createdata() argument
2245 kfree(data); in nfs4_free_createdata()
2251 struct nfs4_createdata *data; in _nfs4_proc_symlink() local
2258 data = nfs4_alloc_createdata(dir, &dentry->d_name, sattr, NF4LNK); in _nfs4_proc_symlink()
2259 if (data == NULL) in _nfs4_proc_symlink()
2262 data->msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_SYMLINK]; in _nfs4_proc_symlink()
2263 data->arg.u.symlink.pages = &page; in _nfs4_proc_symlink()
2264 data->arg.u.symlink.len = len; in _nfs4_proc_symlink()
2266 status = nfs4_do_create(dir, dentry, data); in _nfs4_proc_symlink()
2268 nfs4_free_createdata(data); in _nfs4_proc_symlink()
2290 struct nfs4_createdata *data; in _nfs4_proc_mkdir() local
2293 data = nfs4_alloc_createdata(dir, &dentry->d_name, sattr, NF4DIR); in _nfs4_proc_mkdir()
2294 if (data == NULL) in _nfs4_proc_mkdir()
2297 status = nfs4_do_create(dir, dentry, data); in _nfs4_proc_mkdir()
2299 nfs4_free_createdata(data); in _nfs4_proc_mkdir()
2345 memcpy(NFS_COOKIEVERF(dir), res.verifier.data, NFS4_VERIFIER_SIZE); in _nfs4_proc_readdir()
2370 struct nfs4_createdata *data; in _nfs4_proc_mknod() local
2377 data = nfs4_alloc_createdata(dir, &dentry->d_name, sattr, NF4SOCK); in _nfs4_proc_mknod()
2378 if (data == NULL) in _nfs4_proc_mknod()
2382 data->arg.ftype = NF4FIFO; in _nfs4_proc_mknod()
2384 data->arg.ftype = NF4BLK; in _nfs4_proc_mknod()
2385 data->arg.u.device.specdata1 = MAJOR(rdev); in _nfs4_proc_mknod()
2386 data->arg.u.device.specdata2 = MINOR(rdev); in _nfs4_proc_mknod()
2389 data->arg.ftype = NF4CHR; in _nfs4_proc_mknod()
2390 data->arg.u.device.specdata1 = MAJOR(rdev); in _nfs4_proc_mknod()
2391 data->arg.u.device.specdata2 = MINOR(rdev); in _nfs4_proc_mknod()
2394 status = nfs4_do_create(dir, dentry, data); in _nfs4_proc_mknod()
2396 nfs4_free_createdata(data); in _nfs4_proc_mknod()
2515 static int nfs4_read_done(struct rpc_task *task, struct nfs_read_data *data) in nfs4_read_done() argument
2517 struct nfs_server *server = NFS_SERVER(data->inode); in nfs4_read_done()
2519 if (nfs4_async_handle_error(task, server, data->args.context->state) == -EAGAIN) { in nfs4_read_done()
2524 nfs_invalidate_atime(data->inode); in nfs4_read_done()
2526 renew_lease(server, data->timestamp); in nfs4_read_done()
2530 static void nfs4_proc_read_setup(struct nfs_read_data *data, struct rpc_message *msg) in nfs4_proc_read_setup() argument
2532 data->timestamp = jiffies; in nfs4_proc_read_setup()
2536 static int nfs4_write_done(struct rpc_task *task, struct nfs_write_data *data) in nfs4_write_done() argument
2538 struct inode *inode = data->inode; in nfs4_write_done()
2540 if (nfs4_async_handle_error(task, NFS_SERVER(inode), data->args.context->state) == -EAGAIN) { in nfs4_write_done()
2545 renew_lease(NFS_SERVER(inode), data->timestamp); in nfs4_write_done()
2546 nfs_post_op_update_inode_force_wcc(inode, data->res.fattr); in nfs4_write_done()
2551 static void nfs4_proc_write_setup(struct nfs_write_data *data, struct rpc_message *msg) in nfs4_proc_write_setup() argument
2553 struct nfs_server *server = NFS_SERVER(data->inode); in nfs4_proc_write_setup()
2555 data->args.bitmask = server->attr_bitmask; in nfs4_proc_write_setup()
2556 data->res.server = server; in nfs4_proc_write_setup()
2557 data->timestamp = jiffies; in nfs4_proc_write_setup()
2562 static int nfs4_commit_done(struct rpc_task *task, struct nfs_write_data *data) in nfs4_commit_done() argument
2564 struct inode *inode = data->inode; in nfs4_commit_done()
2570 nfs_refresh_inode(inode, data->res.fattr); in nfs4_commit_done()
2574 static void nfs4_proc_commit_setup(struct nfs_write_data *data, struct rpc_message *msg) in nfs4_proc_commit_setup() argument
2576 struct nfs_server *server = NFS_SERVER(data->inode); in nfs4_proc_commit_setup()
2578 data->args.bitmask = server->attr_bitmask; in nfs4_proc_commit_setup()
2579 data->res.server = server; in nfs4_proc_commit_setup()
2587 static void nfs4_renew_done(struct rpc_task *task, void *data) in nfs4_renew_done() argument
2590 unsigned long timestamp = (unsigned long)data; in nfs4_renew_done()
2672 char data[0]; member
2707 memcpy(buf, acl->data, acl->len); in nfs4_read_cached_acl()
2724 memcpy(acl->data, buf, acl_len); in nfs4_write_cached_acl()
2912 p = (__be32*)sc_verifier.data; in nfs4_proc_setclientid()
3001 struct nfs4_delegreturndata *data = calldata; in nfs4_delegreturn_done() local
3002 data->rpc_status = task->tk_status; in nfs4_delegreturn_done()
3003 if (data->rpc_status == 0) in nfs4_delegreturn_done()
3004 renew_lease(data->res.server, data->timestamp); in nfs4_delegreturn_done()
3019 struct nfs4_delegreturndata *data; in _nfs4_proc_delegreturn() local
3034 data = kmalloc(sizeof(*data), GFP_KERNEL); in _nfs4_proc_delegreturn()
3035 if (data == NULL) in _nfs4_proc_delegreturn()
3037 data->args.fhandle = &data->fh; in _nfs4_proc_delegreturn()
3038 data->args.stateid = &data->stateid; in _nfs4_proc_delegreturn()
3039 data->args.bitmask = server->attr_bitmask; in _nfs4_proc_delegreturn()
3040 nfs_copy_fh(&data->fh, NFS_FH(inode)); in _nfs4_proc_delegreturn()
3041 memcpy(&data->stateid, stateid, sizeof(data->stateid)); in _nfs4_proc_delegreturn()
3042 data->res.fattr = &data->fattr; in _nfs4_proc_delegreturn()
3043 data->res.server = server; in _nfs4_proc_delegreturn()
3044 nfs_fattr_init(data->res.fattr); in _nfs4_proc_delegreturn()
3045 data->timestamp = jiffies; in _nfs4_proc_delegreturn()
3046 data->rpc_status = 0; in _nfs4_proc_delegreturn()
3048 task_setup_data.callback_data = data; in _nfs4_proc_delegreturn()
3049 msg.rpc_argp = &data->args, in _nfs4_proc_delegreturn()
3050 msg.rpc_resp = &data->res, in _nfs4_proc_delegreturn()
3059 status = data->rpc_status; in _nfs4_proc_delegreturn()
3062 nfs_refresh_inode(inode, &data->fattr); in _nfs4_proc_delegreturn()
3206 static void nfs4_locku_release_calldata(void *data) in nfs4_locku_release_calldata() argument
3208 struct nfs4_unlockdata *calldata = data; in nfs4_locku_release_calldata()
3215 static void nfs4_locku_done(struct rpc_task *task, void *data) in nfs4_locku_done() argument
3217 struct nfs4_unlockdata *calldata = data; in nfs4_locku_done()
3223 memcpy(calldata->lsp->ls_stateid.data, in nfs4_locku_done()
3224 calldata->res.stateid.data, in nfs4_locku_done()
3225 sizeof(calldata->lsp->ls_stateid.data)); in nfs4_locku_done()
3239 static void nfs4_locku_prepare(struct rpc_task *task, void *data) in nfs4_locku_prepare() argument
3241 struct nfs4_unlockdata *calldata = data; in nfs4_locku_prepare()
3265 struct nfs4_unlockdata *data; in nfs4_do_unlck() local
3283 data = nfs4_alloc_unlockdata(fl, ctx, lsp, seqid); in nfs4_do_unlck()
3284 if (data == NULL) { in nfs4_do_unlck()
3289 msg.rpc_argp = &data->arg, in nfs4_do_unlck()
3290 msg.rpc_resp = &data->res, in nfs4_do_unlck()
3291 task_setup_data.callback_data = data; in nfs4_do_unlck()
3382 struct nfs4_lockdata *data = calldata; in nfs4_lock_prepare() local
3383 struct nfs4_state *state = data->lsp->ls_state; in nfs4_lock_prepare()
3386 if (nfs_wait_on_sequence(data->arg.lock_seqid, task) != 0) in nfs4_lock_prepare()
3389 if (!(data->arg.lock_seqid->sequence->flags & NFS_SEQID_CONFIRMED)) { in nfs4_lock_prepare()
3390 if (nfs_wait_on_sequence(data->arg.open_seqid, task) != 0) in nfs4_lock_prepare()
3392 data->arg.open_stateid = &state->stateid; in nfs4_lock_prepare()
3393 data->arg.new_lock_owner = 1; in nfs4_lock_prepare()
3394 data->res.open_seqid = data->arg.open_seqid; in nfs4_lock_prepare()
3396 data->arg.new_lock_owner = 0; in nfs4_lock_prepare()
3397 data->timestamp = jiffies; in nfs4_lock_prepare()
3399 dprintk("%s: done!, ret = %d\n", __func__, data->rpc_status); in nfs4_lock_prepare()
3404 struct nfs4_lockdata *data = calldata; in nfs4_lock_done() local
3408 data->rpc_status = task->tk_status; in nfs4_lock_done()
3411 if (data->arg.new_lock_owner != 0) { in nfs4_lock_done()
3412 if (data->rpc_status == 0) in nfs4_lock_done()
3413 nfs_confirm_seqid(&data->lsp->ls_seqid, 0); in nfs4_lock_done()
3417 if (data->rpc_status == 0) { in nfs4_lock_done()
3418 memcpy(data->lsp->ls_stateid.data, data->res.stateid.data, in nfs4_lock_done()
3419 sizeof(data->lsp->ls_stateid.data)); in nfs4_lock_done()
3420 data->lsp->ls_flags |= NFS_LOCK_INITIALIZED; in nfs4_lock_done()
3421 renew_lease(NFS_SERVER(data->ctx->path.dentry->d_inode), data->timestamp); in nfs4_lock_done()
3424 dprintk("%s: done, ret = %d!\n", __func__, data->rpc_status); in nfs4_lock_done()
3429 struct nfs4_lockdata *data = calldata; in nfs4_lock_release() local
3432 nfs_free_seqid(data->arg.open_seqid); in nfs4_lock_release()
3433 if (data->cancelled != 0) { in nfs4_lock_release()
3435 task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, in nfs4_lock_release()
3436 data->arg.lock_seqid); in nfs4_lock_release()
3441 nfs_free_seqid(data->arg.lock_seqid); in nfs4_lock_release()
3442 nfs4_put_lock_state(data->lsp); in nfs4_lock_release()
3443 put_nfs_open_context(data->ctx); in nfs4_lock_release()
3444 kfree(data); in nfs4_lock_release()
3456 struct nfs4_lockdata *data; in _nfs4_do_setlk() local
3472 data = nfs4_alloc_lockdata(fl, nfs_file_open_context(fl->fl_file), in _nfs4_do_setlk()
3474 if (data == NULL) in _nfs4_do_setlk()
3477 data->arg.block = 1; in _nfs4_do_setlk()
3479 data->arg.reclaim = 1; in _nfs4_do_setlk()
3480 msg.rpc_argp = &data->arg, in _nfs4_do_setlk()
3481 msg.rpc_resp = &data->res, in _nfs4_do_setlk()
3482 task_setup_data.callback_data = data; in _nfs4_do_setlk()
3488 ret = data->rpc_status; in _nfs4_do_setlk()
3492 data->cancelled = 1; in _nfs4_do_setlk()