Lines Matching refs:data
32 nfs_free_unlinkdata(struct nfs_unlinkdata *data) in nfs_free_unlinkdata() argument
34 iput(data->dir); in nfs_free_unlinkdata()
35 put_rpccred(data->cred); in nfs_free_unlinkdata()
36 kfree(data->args.name.name); in nfs_free_unlinkdata()
37 kfree(data); in nfs_free_unlinkdata()
46 static int nfs_copy_dname(struct dentry *dentry, struct nfs_unlinkdata *data) in nfs_copy_dname() argument
54 data->args.name.len = len; in nfs_copy_dname()
55 data->args.name.name = str; in nfs_copy_dname()
59 static void nfs_free_dname(struct nfs_unlinkdata *data) in nfs_free_dname() argument
61 kfree(data->args.name.name); in nfs_free_dname()
62 data->args.name.name = NULL; in nfs_free_dname()
63 data->args.name.len = 0; in nfs_free_dname()
81 struct nfs_unlinkdata *data = calldata; in nfs_async_unlink_done() local
82 struct inode *dir = data->dir; 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()
110 static int nfs_do_call_unlink(struct dentry *parent, struct inode *dir, struct nfs_unlinkdata *data) in nfs_do_call_unlink() argument
113 .rpc_argp = &data->args, in nfs_do_call_unlink()
114 .rpc_resp = &data->res, in nfs_do_call_unlink()
115 .rpc_cred = data->cred, in nfs_do_call_unlink()
120 .callback_data = data, in nfs_do_call_unlink()
127 alias = d_lookup(parent, &data->args.name); in nfs_do_call_unlink()
135 nfs_free_dname(data); in nfs_do_call_unlink()
139 alias->d_fsdata = data; in nfs_do_call_unlink()
148 data->dir = igrab(dir); in nfs_do_call_unlink()
149 if (!data->dir) { in nfs_do_call_unlink()
154 data->args.fh = NFS_FH(dir); in nfs_do_call_unlink()
155 nfs_fattr_init(&data->res.dir_attr); in nfs_do_call_unlink()
166 static int nfs_call_unlink(struct dentry *dentry, struct nfs_unlinkdata *data) in nfs_call_unlink() argument
177 if (nfs_copy_dname(dentry, data) != 0) in nfs_call_unlink()
183 hlist_add_head(&data->list, &NFS_I(dir)->silly_list); in nfs_call_unlink()
189 ret = nfs_do_call_unlink(parent, dir, data); in nfs_call_unlink()
207 struct nfs_unlinkdata *data; in nfs_unblock_sillyrename() local
214 data = hlist_entry(nfsi->silly_list.first, struct nfs_unlinkdata, list); in nfs_unblock_sillyrename()
215 hlist_del(&data->list); in nfs_unblock_sillyrename()
217 if (nfs_do_call_unlink(dentry, dir, data) == 0) in nfs_unblock_sillyrename()
218 nfs_free_unlinkdata(data); in nfs_unblock_sillyrename()
232 struct nfs_unlinkdata *data; in nfs_async_unlink() local
235 data = kzalloc(sizeof(*data), GFP_KERNEL); in nfs_async_unlink()
236 if (data == NULL) in nfs_async_unlink()
239 data->cred = rpc_lookup_cred(); in nfs_async_unlink()
240 if (IS_ERR(data->cred)) { in nfs_async_unlink()
241 status = PTR_ERR(data->cred); in nfs_async_unlink()
250 dentry->d_fsdata = data; in nfs_async_unlink()
255 put_rpccred(data->cred); in nfs_async_unlink()
257 kfree(data); in nfs_async_unlink()
274 struct nfs_unlinkdata *data = NULL; in nfs_complete_unlink() local
279 data = dentry->d_fsdata; in nfs_complete_unlink()
283 if (data != NULL && (NFS_STALE(inode) || !nfs_call_unlink(dentry, data))) in nfs_complete_unlink()
284 nfs_free_unlinkdata(data); in nfs_complete_unlink()