Lines Matching refs:pdentry
268 struct dentry *tdentry, *pdentry; in nfsd_findparent() local
277 pdentry = child->d_inode->i_op->lookup(child->d_inode, tdentry); in nfsd_findparent()
280 if (!pdentry && tdentry->d_inode == NULL) { in nfsd_findparent()
282 pdentry = ERR_PTR(-EINVAL); in nfsd_findparent()
284 if (!pdentry) { in nfsd_findparent()
295 pdentry = list_entry(aliases->next, struct dentry, d_alias); in nfsd_findparent()
296 if (pdentry == tdentry) in nfsd_findparent()
297 pdentry = list_entry(aliases->prev, struct dentry, d_alias); in nfsd_findparent()
298 if (pdentry == tdentry) in nfsd_findparent()
299 pdentry = NULL; in nfsd_findparent()
300 if (pdentry) dget_locked(pdentry); in nfsd_findparent()
303 if (pdentry == NULL) { in nfsd_findparent()
304 pdentry = d_alloc_root(tdentry->d_inode); in nfsd_findparent()
305 if (pdentry) { in nfsd_findparent()
307 pdentry->d_flags |= DCACHE_NFSD_DISCONNECTED; in nfsd_findparent()
308 pdentry->d_op = child->d_op; in nfsd_findparent()
311 if (pdentry == NULL) in nfsd_findparent()
312 pdentry = ERR_PTR(-ENOMEM); in nfsd_findparent()
315 return pdentry; in nfsd_findparent()
464 struct dentry *pdentry; in find_fh_dentry() local
467 pdentry = nfsd_findparent(dentry); in find_fh_dentry()
468 err = PTR_ERR(pdentry); in find_fh_dentry()
469 if (IS_ERR(pdentry)) in find_fh_dentry()
471 parent = pdentry->d_inode; in find_fh_dentry()
474 dput(pdentry); in find_fh_dentry()
478 tmp = splice(dentry, pdentry); in find_fh_dentry()
489 dput(pdentry); in find_fh_dentry()
495 dput(pdentry); in find_fh_dentry()
503 dentry = pdentry; in find_fh_dentry()