Lines Matching refs:data
32 nfs_free_unlinkdata(struct nfs_unlinkdata *data) in nfs_free_unlinkdata() argument
34 put_cred(data->cred); in nfs_free_unlinkdata()
35 kfree(data->args.name.name); in nfs_free_unlinkdata()
36 kfree(data); in nfs_free_unlinkdata()
48 struct nfs_unlinkdata *data = calldata; in nfs_async_unlink_done() local
49 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_async_unlink_done()
51 trace_nfs_sillyrename_unlink(data, task->tk_status); in nfs_async_unlink_done()
65 struct nfs_unlinkdata *data = calldata; in nfs_async_unlink_release() local
66 struct dentry *dentry = data->dentry; in nfs_async_unlink_release()
71 nfs_free_unlinkdata(data); in nfs_async_unlink_release()
78 struct nfs_unlinkdata *data = calldata; in nfs_unlink_prepare() local
79 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_unlink_prepare()
80 NFS_PROTO(dir)->unlink_rpc_prepare(task, data); in nfs_unlink_prepare()
89 static void nfs_do_call_unlink(struct inode *inode, struct nfs_unlinkdata *data) in nfs_do_call_unlink() argument
92 .rpc_argp = &data->args, in nfs_do_call_unlink()
93 .rpc_resp = &data->res, in nfs_do_call_unlink()
94 .rpc_cred = data->cred, in nfs_do_call_unlink()
99 .callback_data = data, in nfs_do_call_unlink()
104 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_do_call_unlink()
110 data->args.fh = NFS_FH(dir); in nfs_do_call_unlink()
111 nfs_fattr_init(data->res.dir_attr); in nfs_do_call_unlink()
113 NFS_PROTO(dir)->unlink_setup(&msg, data->dentry, inode); in nfs_do_call_unlink()
121 static int nfs_call_unlink(struct dentry *dentry, struct inode *inode, struct nfs_unlinkdata *data) in nfs_call_unlink() argument
127 alias = d_alloc_parallel(dentry->d_parent, &data->args.name, &data->wq); in nfs_call_unlink()
144 alias->d_fsdata = data; in nfs_call_unlink()
160 data->dentry = alias; in nfs_call_unlink()
161 nfs_do_call_unlink(inode, data); in nfs_call_unlink()
173 struct nfs_unlinkdata *data; in nfs_async_unlink() local
177 data = kzalloc(sizeof(*data), GFP_KERNEL); in nfs_async_unlink()
178 if (data == NULL) in nfs_async_unlink()
180 data->args.name.name = kstrdup(name->name, GFP_KERNEL); in nfs_async_unlink()
181 if (!data->args.name.name) in nfs_async_unlink()
183 data->args.name.len = name->len; in nfs_async_unlink()
185 data->cred = get_current_cred(); in nfs_async_unlink()
186 data->res.dir_attr = &data->dir_attr; in nfs_async_unlink()
187 init_waitqueue_head(&data->wq); in nfs_async_unlink()
195 dentry->d_fsdata = data; in nfs_async_unlink()
206 put_cred(data->cred); in nfs_async_unlink()
207 kfree(data->args.name.name); in nfs_async_unlink()
209 kfree(data); in nfs_async_unlink()
226 struct nfs_unlinkdata *data; in nfs_complete_unlink() local
230 data = dentry->d_fsdata; in nfs_complete_unlink()
234 if (NFS_STALE(inode) || !nfs_call_unlink(dentry, inode, data)) in nfs_complete_unlink()
235 nfs_free_unlinkdata(data); in nfs_complete_unlink()
244 struct nfs_unlinkdata *data = dentry->d_fsdata; in nfs_cancel_async_unlink() local
249 nfs_free_unlinkdata(data); in nfs_cancel_async_unlink()
264 struct nfs_renamedata *data = calldata; in nfs_async_rename_done() local
265 struct inode *old_dir = data->old_dir; in nfs_async_rename_done()
266 struct inode *new_dir = data->new_dir; in nfs_async_rename_done()
267 struct dentry *old_dentry = data->old_dentry; in nfs_async_rename_done()
270 new_dir, data->new_dentry, task->tk_status); in nfs_async_rename_done()
276 if (data->complete) in nfs_async_rename_done()
277 data->complete(task, data); in nfs_async_rename_done()
286 struct nfs_renamedata *data = calldata; in nfs_async_rename_release() local
287 struct super_block *sb = data->old_dir->i_sb; in nfs_async_rename_release()
289 if (d_really_is_positive(data->old_dentry)) in nfs_async_rename_release()
290 nfs_mark_for_revalidate(d_inode(data->old_dentry)); in nfs_async_rename_release()
294 if (data->cancelled) { in nfs_async_rename_release()
295 spin_lock(&data->old_dir->i_lock); in nfs_async_rename_release()
296 nfs_force_lookup_revalidate(data->old_dir); in nfs_async_rename_release()
297 spin_unlock(&data->old_dir->i_lock); in nfs_async_rename_release()
298 if (data->new_dir != data->old_dir) { in nfs_async_rename_release()
299 spin_lock(&data->new_dir->i_lock); in nfs_async_rename_release()
300 nfs_force_lookup_revalidate(data->new_dir); in nfs_async_rename_release()
301 spin_unlock(&data->new_dir->i_lock); in nfs_async_rename_release()
305 dput(data->old_dentry); in nfs_async_rename_release()
306 dput(data->new_dentry); in nfs_async_rename_release()
307 iput(data->old_dir); in nfs_async_rename_release()
308 iput(data->new_dir); in nfs_async_rename_release()
310 put_cred(data->cred); in nfs_async_rename_release()
311 kfree(data); in nfs_async_rename_release()
316 struct nfs_renamedata *data = calldata; in nfs_rename_prepare() local
317 NFS_PROTO(data->old_dir)->rename_rpc_prepare(task, data); in nfs_rename_prepare()
341 struct nfs_renamedata *data; in nfs_async_rename() local
355 data = kzalloc(sizeof(*data), GFP_KERNEL); in nfs_async_rename()
356 if (data == NULL) in nfs_async_rename()
358 task_setup_data.callback_data = data; in nfs_async_rename()
360 data->cred = get_current_cred(); in nfs_async_rename()
362 msg.rpc_argp = &data->args; in nfs_async_rename()
363 msg.rpc_resp = &data->res; in nfs_async_rename()
364 msg.rpc_cred = data->cred; in nfs_async_rename()
367 data->old_dir = old_dir; in nfs_async_rename()
369 data->new_dir = new_dir; in nfs_async_rename()
371 data->old_dentry = dget(old_dentry); in nfs_async_rename()
372 data->new_dentry = dget(new_dentry); in nfs_async_rename()
373 nfs_fattr_init(&data->old_fattr); in nfs_async_rename()
374 nfs_fattr_init(&data->new_fattr); in nfs_async_rename()
375 data->complete = complete; in nfs_async_rename()
378 data->args.old_dir = NFS_FH(old_dir); in nfs_async_rename()
379 data->args.old_name = &old_dentry->d_name; in nfs_async_rename()
380 data->args.new_dir = NFS_FH(new_dir); in nfs_async_rename()
381 data->args.new_name = &new_dentry->d_name; in nfs_async_rename()
384 data->res.old_fattr = &data->old_fattr; in nfs_async_rename()
385 data->res.new_fattr = &data->new_fattr; in nfs_async_rename()
389 NFS_PROTO(data->old_dir)->rename_setup(&msg, old_dentry, new_dentry); in nfs_async_rename()
399 nfs_complete_sillyrename(struct rpc_task *task, struct nfs_renamedata *data) in nfs_complete_sillyrename() argument
401 struct dentry *dentry = data->old_dentry; in nfs_complete_sillyrename()