Lines Matching refs:dentry

45 static int nfs_copy_dname(struct dentry *dentry, struct nfs_unlinkdata *data)  in nfs_copy_dname()  argument
48 int len = dentry->d_name.len; in nfs_copy_dname()
50 str = kmemdup(dentry->d_name.name, NAME_ALLOC_LEN(len), GFP_KERNEL); in nfs_copy_dname()
117 static int nfs_do_call_unlink(struct dentry *parent, struct inode *dir, struct nfs_unlinkdata *data) in nfs_do_call_unlink()
132 struct dentry *alias; in nfs_do_call_unlink()
183 static int nfs_call_unlink(struct dentry *dentry, struct nfs_unlinkdata *data) in nfs_call_unlink() argument
185 struct dentry *parent; in nfs_call_unlink()
190 parent = dget_parent(dentry); in nfs_call_unlink()
211 void nfs_wait_on_sillyrename(struct dentry *dentry) in nfs_wait_on_sillyrename() argument
213 struct nfs_inode *nfsi = NFS_I(d_inode(dentry)); in nfs_wait_on_sillyrename()
218 void nfs_block_sillyrename(struct dentry *dentry) in nfs_block_sillyrename() argument
220 struct nfs_inode *nfsi = NFS_I(d_inode(dentry)); in nfs_block_sillyrename()
225 void nfs_unblock_sillyrename(struct dentry *dentry) in nfs_unblock_sillyrename() argument
227 struct inode *dir = d_inode(dentry); in nfs_unblock_sillyrename()
239 if (nfs_do_call_unlink(dentry, dir, data) == 0) in nfs_unblock_sillyrename()
252 nfs_async_unlink(struct inode *dir, struct dentry *dentry) in nfs_async_unlink() argument
270 spin_lock(&dentry->d_lock); in nfs_async_unlink()
271 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) in nfs_async_unlink()
273 dentry->d_flags |= DCACHE_NFSFS_RENAMED; in nfs_async_unlink()
274 devname_garbage = dentry->d_fsdata; in nfs_async_unlink()
275 dentry->d_fsdata = data; in nfs_async_unlink()
276 spin_unlock(&dentry->d_lock); in nfs_async_unlink()
285 spin_unlock(&dentry->d_lock); in nfs_async_unlink()
303 nfs_complete_unlink(struct dentry *dentry, struct inode *inode) in nfs_complete_unlink() argument
307 spin_lock(&dentry->d_lock); in nfs_complete_unlink()
308 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) { in nfs_complete_unlink()
309 dentry->d_flags &= ~DCACHE_NFSFS_RENAMED; in nfs_complete_unlink()
310 data = dentry->d_fsdata; in nfs_complete_unlink()
311 dentry->d_fsdata = NULL; in nfs_complete_unlink()
313 spin_unlock(&dentry->d_lock); in nfs_complete_unlink()
315 if (data != NULL && (NFS_STALE(inode) || !nfs_call_unlink(dentry, data))) in nfs_complete_unlink()
321 nfs_cancel_async_unlink(struct dentry *dentry) in nfs_cancel_async_unlink() argument
323 spin_lock(&dentry->d_lock); in nfs_cancel_async_unlink()
324 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) { in nfs_cancel_async_unlink()
325 struct nfs_unlinkdata *data = dentry->d_fsdata; in nfs_cancel_async_unlink()
327 dentry->d_flags &= ~DCACHE_NFSFS_RENAMED; in nfs_cancel_async_unlink()
328 dentry->d_fsdata = NULL; in nfs_cancel_async_unlink()
329 spin_unlock(&dentry->d_lock); in nfs_cancel_async_unlink()
333 spin_unlock(&dentry->d_lock); in nfs_cancel_async_unlink()
348 struct dentry *old_dentry = data->old_dentry; in nfs_async_rename_done()
405 struct dentry *old_dentry, struct dentry *new_dentry, in nfs_async_rename()
469 struct dentry *dentry = data->old_dentry; in nfs_complete_sillyrename() local
472 nfs_cancel_async_unlink(dentry); in nfs_complete_sillyrename()
480 fsnotify_nameremove(dentry, 0); in nfs_complete_sillyrename()
513 nfs_sillyrename(struct inode *dir, struct dentry *dentry) in nfs_sillyrename() argument
518 struct dentry *sdentry; in nfs_sillyrename()
523 dentry, d_count(dentry)); in nfs_sillyrename()
529 if (dentry->d_flags & DCACHE_NFSFS_RENAMED) in nfs_sillyrename()
532 fileid = NFS_FILEID(d_inode(dentry)); in nfs_sillyrename()
535 NFS_PROTO(d_inode(dentry))->return_delegation(d_inode(dentry)); in nfs_sillyrename()
548 dentry, silly); in nfs_sillyrename()
550 sdentry = lookup_one_len(silly, dentry->d_parent, slen); in nfs_sillyrename()
562 error = nfs_async_unlink(dir, dentry); in nfs_sillyrename()
568 (struct nfs_unlinkdata *)dentry->d_fsdata); in nfs_sillyrename()
570 nfs_cancel_async_unlink(dentry); in nfs_sillyrename()
575 task = nfs_async_rename(dir, dir, dentry, sdentry, in nfs_sillyrename()
579 nfs_cancel_async_unlink(dentry); in nfs_sillyrename()
590 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_sillyrename()
591 d_move(dentry, sdentry); in nfs_sillyrename()
596 d_drop(dentry); in nfs_sillyrename()