• Home
  • Raw
  • Download

Lines Matching refs:dentry

28 static int nfsd_acceptable(void *expv, struct dentry *dentry)  in nfsd_acceptable()  argument
32 struct dentry *tdentry; in nfsd_acceptable()
33 struct dentry *parent; in nfsd_acceptable()
38 tdentry = dget(dentry); in nfsd_acceptable()
39 while (tdentry != exp->ex_path.dentry && !IS_ROOT(tdentry)) { in nfsd_acceptable()
51 if (tdentry != exp->ex_path.dentry) in nfsd_acceptable()
53 rv = (tdentry == exp->ex_path.dentry); in nfsd_acceptable()
64 nfsd_mode_check(struct svc_rqst *rqstp, struct dentry *dentry, in nfsd_mode_check() argument
67 umode_t mode = d_inode(dentry)->i_mode & S_IFMT; in nfsd_mode_check()
72 if (mode == S_IFDIR && !d_can_lookup(dentry)) { in nfsd_mode_check()
119 struct dentry *dentry, struct svc_export *exp) in check_pseudo_root() argument
135 if (unlikely(!d_is_dir(dentry) && in check_pseudo_root()
136 !d_is_symlink(dentry))) in check_pseudo_root()
143 if (unlikely(dentry != exp->ex_path.dentry)) in check_pseudo_root()
158 struct dentry *dentry; in nfsd_set_fh_dentry() local
269 dentry = dget(exp->ex_path.dentry); in nfsd_set_fh_dentry()
271 dentry = exportfs_decode_fh(exp->ex_path.mnt, fid, in nfsd_set_fh_dentry()
274 if (IS_ERR_OR_NULL(dentry)) in nfsd_set_fh_dentry()
276 dentry ? PTR_ERR(dentry) : -ESTALE); in nfsd_set_fh_dentry()
278 if (dentry == NULL) in nfsd_set_fh_dentry()
280 if (IS_ERR(dentry)) { in nfsd_set_fh_dentry()
281 if (PTR_ERR(dentry) != -EINVAL) in nfsd_set_fh_dentry()
282 error = nfserrno(PTR_ERR(dentry)); in nfsd_set_fh_dentry()
286 if (d_is_dir(dentry) && in nfsd_set_fh_dentry()
287 (dentry->d_flags & DCACHE_DISCONNECTED)) { in nfsd_set_fh_dentry()
289 dentry); in nfsd_set_fh_dentry()
292 fhp->fh_dentry = dentry; in nfsd_set_fh_dentry()
331 struct dentry *dentry; in fh_verify() local
341 dentry = fhp->fh_dentry; in fh_verify()
359 error = check_pseudo_root(rqstp, dentry, exp); in fh_verify()
367 error = nfsd_mode_check(rqstp, dentry, type); in fh_verify()
384 && exp->ex_path.dentry == dentry) in fh_verify()
393 error = nfsd_permission(rqstp, exp, dentry, access); in fh_verify()
398 dentry, in fh_verify()
416 struct dentry *dentry) in _fh_update() argument
418 if (dentry != exp->ex_path.dentry) { in _fh_update()
425 exportfs_encode_fh(dentry, fid, &maxsize, subtreecheck); in _fh_update()
435 static inline void _fh_update_old(struct dentry *dentry, in _fh_update_old() argument
439 fh->ofh_ino = ino_t_to_u32(d_inode(dentry)->i_ino); in _fh_update_old()
440 fh->ofh_generation = d_inode(dentry)->i_generation; in _fh_update_old()
441 if (d_is_dir(dentry) || in _fh_update_old()
448 return exp->ex_path.dentry == exp->ex_path.dentry->d_sb->s_root; in is_root_export()
453 return exp->ex_path.dentry->d_sb; in exp_sb()
536 fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, in fh_compose() argument
547 struct inode * inode = d_inode(dentry); in fh_compose()
552 (long) d_inode(exp->ex_path.dentry)->i_ino, in fh_compose()
553 dentry, in fh_compose()
567 dentry); in fh_compose()
572 dentry); in fh_compose()
574 fhp->fh_dentry = dget(dentry); /* our internal copy */ in fh_compose()
585 ino_t_to_u32(d_inode(exp->ex_path.dentry)->i_ino); in fh_compose()
586 fhp->fh_handle.ofh_dirino = ino_t_to_u32(parent_ino(dentry)); in fh_compose()
588 _fh_update_old(dentry, exp, &fhp->fh_handle); in fh_compose()
597 d_inode(exp->ex_path.dentry)->i_ino, in fh_compose()
601 _fh_update(fhp, exp, dentry); in fh_compose()
618 struct dentry *dentry; in fh_update() local
623 dentry = fhp->fh_dentry; in fh_update()
624 if (d_really_is_negative(dentry)) in fh_update()
627 _fh_update_old(dentry, fhp->fh_export, &fhp->fh_handle); in fh_update()
632 _fh_update(fhp, fhp->fh_export, dentry); in fh_update()
642 dentry); in fh_update()
652 struct dentry * dentry = fhp->fh_dentry; in fh_put() local
654 if (dentry) { in fh_put()
657 dput(dentry); in fh_put()