Lines Matching refs:dentry
49 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_async_unlink_done()
66 struct dentry *dentry = data->dentry; in nfs_async_unlink_release() local
67 struct super_block *sb = dentry->d_sb; in nfs_async_unlink_release()
69 up_read_non_owner(&NFS_I(d_inode(dentry->d_parent))->rmdir_sem); in nfs_async_unlink_release()
70 d_lookup_done(dentry); in nfs_async_unlink_release()
72 dput(dentry); in nfs_async_unlink_release()
79 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_unlink_prepare()
104 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_do_call_unlink()
109 NFS_PROTO(dir)->unlink_setup(&msg, data->dentry, inode); in nfs_do_call_unlink()
117 static int nfs_call_unlink(struct dentry *dentry, struct inode *inode, struct nfs_unlinkdata *data) in nfs_call_unlink() argument
119 struct inode *dir = d_inode(dentry->d_parent); in nfs_call_unlink()
120 struct dentry *alias; in nfs_call_unlink()
123 alias = d_alloc_parallel(dentry->d_parent, &data->args.name, &data->wq); in nfs_call_unlink()
156 data->dentry = alias; in nfs_call_unlink()
167 nfs_async_unlink(struct dentry *dentry, const struct qstr *name) in nfs_async_unlink() argument
186 spin_lock(&dentry->d_lock); in nfs_async_unlink()
187 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) in nfs_async_unlink()
189 dentry->d_flags |= DCACHE_NFSFS_RENAMED; in nfs_async_unlink()
190 devname_garbage = dentry->d_fsdata; in nfs_async_unlink()
191 dentry->d_fsdata = data; in nfs_async_unlink()
192 spin_unlock(&dentry->d_lock); in nfs_async_unlink()
201 spin_unlock(&dentry->d_lock); in nfs_async_unlink()
220 nfs_complete_unlink(struct dentry *dentry, struct inode *inode) in nfs_complete_unlink() argument
224 spin_lock(&dentry->d_lock); in nfs_complete_unlink()
225 dentry->d_flags &= ~DCACHE_NFSFS_RENAMED; in nfs_complete_unlink()
226 data = dentry->d_fsdata; in nfs_complete_unlink()
227 dentry->d_fsdata = NULL; in nfs_complete_unlink()
228 spin_unlock(&dentry->d_lock); in nfs_complete_unlink()
230 if (NFS_STALE(inode) || !nfs_call_unlink(dentry, inode, data)) in nfs_complete_unlink()
236 nfs_cancel_async_unlink(struct dentry *dentry) in nfs_cancel_async_unlink() argument
238 spin_lock(&dentry->d_lock); in nfs_cancel_async_unlink()
239 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) { in nfs_cancel_async_unlink()
240 struct nfs_unlinkdata *data = dentry->d_fsdata; in nfs_cancel_async_unlink()
242 dentry->d_flags &= ~DCACHE_NFSFS_RENAMED; in nfs_cancel_async_unlink()
243 dentry->d_fsdata = NULL; in nfs_cancel_async_unlink()
244 spin_unlock(&dentry->d_lock); in nfs_cancel_async_unlink()
248 spin_unlock(&dentry->d_lock); in nfs_cancel_async_unlink()
263 struct dentry *old_dentry = data->old_dentry; in nfs_async_rename_done()
334 struct dentry *old_dentry, struct dentry *new_dentry, in nfs_async_rename()
393 struct dentry *dentry = data->old_dentry; in nfs_complete_sillyrename() local
396 nfs_cancel_async_unlink(dentry); in nfs_complete_sillyrename()
431 nfs_sillyrename(struct inode *dir, struct dentry *dentry) in nfs_sillyrename() argument
436 struct dentry *sdentry; in nfs_sillyrename()
437 struct inode *inode = d_inode(dentry); in nfs_sillyrename()
442 dentry, d_count(dentry)); in nfs_sillyrename()
448 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) in nfs_sillyrename()
451 fileid = NFS_FILEID(d_inode(dentry)); in nfs_sillyrename()
464 dentry, silly); in nfs_sillyrename()
466 sdentry = lookup_one_len(silly, dentry->d_parent, slen); in nfs_sillyrename()
480 error = nfs_async_unlink(dentry, &sdentry->d_name); in nfs_sillyrename()
485 task = nfs_async_rename(dir, dir, dentry, sdentry, in nfs_sillyrename()
489 nfs_cancel_async_unlink(dentry); in nfs_sillyrename()
500 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_sillyrename()
507 d_move(dentry, sdentry); in nfs_sillyrename()
512 d_drop(dentry); in nfs_sillyrename()