Lines Matching refs:data

31 nfs_free_unlinkdata(struct nfs_unlinkdata *data)  in nfs_free_unlinkdata()  argument
33 iput(data->dir); in nfs_free_unlinkdata()
34 put_rpccred(data->cred); in nfs_free_unlinkdata()
35 kfree(data->args.name.name); in nfs_free_unlinkdata()
36 kfree(data); in nfs_free_unlinkdata()
45 static int nfs_copy_dname(struct dentry *dentry, struct nfs_unlinkdata *data) in nfs_copy_dname() argument
53 data->args.name.len = len; in nfs_copy_dname()
54 data->args.name.name = str; in nfs_copy_dname()
58 static void nfs_free_dname(struct nfs_unlinkdata *data) in nfs_free_dname() argument
60 kfree(data->args.name.name); in nfs_free_dname()
61 data->args.name.name = NULL; in nfs_free_dname()
62 data->args.name.len = 0; in nfs_free_dname()
80 struct nfs_unlinkdata *data = calldata; in nfs_async_unlink_done() local
81 struct inode *dir = data->dir; in nfs_async_unlink_done()
83 trace_nfs_sillyrename_unlink(data, task->tk_status); in nfs_async_unlink_done()
97 struct nfs_unlinkdata *data = calldata; in nfs_async_unlink_release() local
98 struct super_block *sb = data->dir->i_sb; in nfs_async_unlink_release()
100 nfs_dec_sillycount(data->dir); in nfs_async_unlink_release()
101 nfs_free_unlinkdata(data); in nfs_async_unlink_release()
107 struct nfs_unlinkdata *data = calldata; in nfs_unlink_prepare() local
108 NFS_PROTO(data->dir)->unlink_rpc_prepare(task, data); in nfs_unlink_prepare()
117 static int nfs_do_call_unlink(struct dentry *parent, struct inode *dir, struct nfs_unlinkdata *data) in nfs_do_call_unlink() argument
120 .rpc_argp = &data->args, in nfs_do_call_unlink()
121 .rpc_resp = &data->res, in nfs_do_call_unlink()
122 .rpc_cred = data->cred, in nfs_do_call_unlink()
127 .callback_data = data, in nfs_do_call_unlink()
134 alias = d_lookup(parent, &data->args.name); in nfs_do_call_unlink()
143 nfs_free_dname(data); in nfs_do_call_unlink()
144 ret = nfs_copy_dname(alias, data); in nfs_do_call_unlink()
149 alias->d_fsdata = data; in nfs_do_call_unlink()
165 data->dir = igrab(dir); in nfs_do_call_unlink()
166 if (!data->dir) { in nfs_do_call_unlink()
171 data->args.fh = NFS_FH(dir); in nfs_do_call_unlink()
172 nfs_fattr_init(data->res.dir_attr); in nfs_do_call_unlink()
183 static int nfs_call_unlink(struct dentry *dentry, struct nfs_unlinkdata *data) in nfs_call_unlink() argument
198 hlist_add_head(&data->list, &NFS_I(dir)->silly_list); in nfs_call_unlink()
204 ret = nfs_do_call_unlink(parent, dir, data); in nfs_call_unlink()
229 struct nfs_unlinkdata *data; in nfs_unblock_sillyrename() local
236 data = hlist_entry(nfsi->silly_list.first, struct nfs_unlinkdata, list); in nfs_unblock_sillyrename()
237 hlist_del(&data->list); in nfs_unblock_sillyrename()
239 if (nfs_do_call_unlink(dentry, dir, data) == 0) in nfs_unblock_sillyrename()
240 nfs_free_unlinkdata(data); in nfs_unblock_sillyrename()
254 struct nfs_unlinkdata *data; in nfs_async_unlink() local
258 data = kzalloc(sizeof(*data), GFP_KERNEL); in nfs_async_unlink()
259 if (data == NULL) in nfs_async_unlink()
262 data->cred = rpc_lookup_cred(); in nfs_async_unlink()
263 if (IS_ERR(data->cred)) { in nfs_async_unlink()
264 status = PTR_ERR(data->cred); in nfs_async_unlink()
267 data->res.dir_attr = &data->dir_attr; in nfs_async_unlink()
275 dentry->d_fsdata = data; in nfs_async_unlink()
286 put_rpccred(data->cred); in nfs_async_unlink()
288 kfree(data); in nfs_async_unlink()
305 struct nfs_unlinkdata *data = NULL; in nfs_complete_unlink() local
310 data = dentry->d_fsdata; in nfs_complete_unlink()
315 if (data != NULL && (NFS_STALE(inode) || !nfs_call_unlink(dentry, data))) in nfs_complete_unlink()
316 nfs_free_unlinkdata(data); in nfs_complete_unlink()
325 struct nfs_unlinkdata *data = dentry->d_fsdata; in nfs_cancel_async_unlink() local
330 nfs_free_unlinkdata(data); in nfs_cancel_async_unlink()
345 struct nfs_renamedata *data = calldata; in nfs_async_rename_done() local
346 struct inode *old_dir = data->old_dir; in nfs_async_rename_done()
347 struct inode *new_dir = data->new_dir; in nfs_async_rename_done()
348 struct dentry *old_dentry = data->old_dentry; in nfs_async_rename_done()
351 new_dir, data->new_dentry, task->tk_status); in nfs_async_rename_done()
357 if (data->complete) in nfs_async_rename_done()
358 data->complete(task, data); in nfs_async_rename_done()
367 struct nfs_renamedata *data = calldata; in nfs_async_rename_release() local
368 struct super_block *sb = data->old_dir->i_sb; in nfs_async_rename_release()
370 if (d_really_is_positive(data->old_dentry)) in nfs_async_rename_release()
371 nfs_mark_for_revalidate(d_inode(data->old_dentry)); in nfs_async_rename_release()
373 dput(data->old_dentry); in nfs_async_rename_release()
374 dput(data->new_dentry); in nfs_async_rename_release()
375 iput(data->old_dir); in nfs_async_rename_release()
376 iput(data->new_dir); in nfs_async_rename_release()
378 put_rpccred(data->cred); in nfs_async_rename_release()
379 kfree(data); in nfs_async_rename_release()
384 struct nfs_renamedata *data = calldata; in nfs_rename_prepare() local
385 NFS_PROTO(data->old_dir)->rename_rpc_prepare(task, data); in nfs_rename_prepare()
408 struct nfs_renamedata *data; in nfs_async_rename() local
418 data = kzalloc(sizeof(*data), GFP_KERNEL); in nfs_async_rename()
419 if (data == NULL) in nfs_async_rename()
421 task_setup_data.callback_data = data; in nfs_async_rename()
423 data->cred = rpc_lookup_cred(); in nfs_async_rename()
424 if (IS_ERR(data->cred)) { in nfs_async_rename()
425 struct rpc_task *task = ERR_CAST(data->cred); in nfs_async_rename()
426 kfree(data); in nfs_async_rename()
430 msg.rpc_argp = &data->args; in nfs_async_rename()
431 msg.rpc_resp = &data->res; in nfs_async_rename()
432 msg.rpc_cred = data->cred; in nfs_async_rename()
435 data->old_dir = old_dir; in nfs_async_rename()
437 data->new_dir = new_dir; in nfs_async_rename()
439 data->old_dentry = dget(old_dentry); in nfs_async_rename()
440 data->new_dentry = dget(new_dentry); in nfs_async_rename()
441 nfs_fattr_init(&data->old_fattr); in nfs_async_rename()
442 nfs_fattr_init(&data->new_fattr); in nfs_async_rename()
443 data->complete = complete; in nfs_async_rename()
446 data->args.old_dir = NFS_FH(old_dir); in nfs_async_rename()
447 data->args.old_name = &old_dentry->d_name; in nfs_async_rename()
448 data->args.new_dir = NFS_FH(new_dir); in nfs_async_rename()
449 data->args.new_name = &new_dentry->d_name; in nfs_async_rename()
452 data->res.old_fattr = &data->old_fattr; in nfs_async_rename()
453 data->res.new_fattr = &data->new_fattr; in nfs_async_rename()
457 NFS_PROTO(data->old_dir)->rename_setup(&msg, old_dir); in nfs_async_rename()
467 nfs_complete_sillyrename(struct rpc_task *task, struct nfs_renamedata *data) in nfs_complete_sillyrename() argument
469 struct dentry *dentry = data->old_dentry; in nfs_complete_sillyrename()