Lines Matching refs:fhp

153 static __be32 nfsd_set_fh_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp)  in nfsd_set_fh_dentry()  argument
155 struct knfsd_fh *fh = &fhp->fh_handle; in nfsd_set_fh_dentry()
214 trace_nfsd_set_fh_dentry_badexport(rqstp, fhp, PTR_ERR(exp)); in nfsd_set_fh_dentry()
275 trace_nfsd_set_fh_dentry_badhandle(rqstp, fhp, in nfsd_set_fh_dentry()
292 fhp->fh_dentry = dentry; in nfsd_set_fh_dentry()
293 fhp->fh_export = exp; in nfsd_set_fh_dentry()
328 fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, umode_t type, int access) in fh_verify() argument
334 dprintk("nfsd: fh_verify(%s)\n", SVCFH_fmt(fhp)); in fh_verify()
336 if (!fhp->fh_dentry) { in fh_verify()
337 error = nfsd_set_fh_dentry(rqstp, fhp); in fh_verify()
341 dentry = fhp->fh_dentry; in fh_verify()
342 exp = fhp->fh_export; in fh_verify()
415 static void _fh_update(struct svc_fh *fhp, struct svc_export *exp, in _fh_update() argument
420 (fhp->fh_handle.fh_fsid + fhp->fh_handle.fh_size/4 - 1); in _fh_update()
421 int maxsize = (fhp->fh_maxsize - fhp->fh_handle.fh_size)/4; in _fh_update()
424 fhp->fh_handle.fh_fileid_type = in _fh_update()
426 fhp->fh_handle.fh_size += maxsize * 4; in _fh_update()
428 fhp->fh_handle.fh_fileid_type = FILEID_ROOT; in _fh_update()
481 static void set_version_and_fsid_type(struct svc_fh *fhp, struct svc_export *exp, struct svc_fh *re… in set_version_and_fsid_type() argument
514 if (fhp->fh_maxsize >= 64) { in set_version_and_fsid_type()
530 fhp->fh_handle.fh_version = version; in set_version_and_fsid_type()
532 fhp->fh_handle.fh_fsid_type = fsid_type; in set_version_and_fsid_type()
536 fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, in fh_compose() argument
560 set_version_and_fsid_type(fhp, exp, ref_fh); in fh_compose()
562 if (ref_fh == fhp) in fh_compose()
565 if (fhp->fh_locked || fhp->fh_dentry) { in fh_compose()
569 if (fhp->fh_maxsize < NFS_FHSIZE) in fh_compose()
571 fhp->fh_maxsize, in fh_compose()
574 fhp->fh_dentry = dget(dentry); /* our internal copy */ in fh_compose()
575 fhp->fh_export = exp_get(exp); in fh_compose()
577 if (fhp->fh_handle.fh_version == 0xca) { in fh_compose()
579 memset(&fhp->fh_handle.fh_base, 0, NFS_FHSIZE); in fh_compose()
580 fhp->fh_handle.fh_size = NFS_FHSIZE; in fh_compose()
581 fhp->fh_handle.ofh_dcookie = 0xfeebbaca; in fh_compose()
582 fhp->fh_handle.ofh_dev = old_encode_dev(ex_dev); in fh_compose()
583 fhp->fh_handle.ofh_xdev = fhp->fh_handle.ofh_dev; in fh_compose()
584 fhp->fh_handle.ofh_xino = 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()
590 fhp->fh_handle.fh_size = in fh_compose()
591 key_len(fhp->fh_handle.fh_fsid_type) + 4; in fh_compose()
592 fhp->fh_handle.fh_auth_type = 0; in fh_compose()
594 mk_fsid(fhp->fh_handle.fh_fsid_type, in fh_compose()
595 fhp->fh_handle.fh_fsid, in fh_compose()
601 _fh_update(fhp, exp, dentry); in fh_compose()
602 if (fhp->fh_handle.fh_fileid_type == FILEID_INVALID) { in fh_compose()
603 fh_put(fhp); in fh_compose()
616 fh_update(struct svc_fh *fhp) in fh_update() argument
620 if (!fhp->fh_dentry) in fh_update()
623 dentry = fhp->fh_dentry; in fh_update()
626 if (fhp->fh_handle.fh_version != 1) { in fh_update()
627 _fh_update_old(dentry, fhp->fh_export, &fhp->fh_handle); in fh_update()
629 if (fhp->fh_handle.fh_fileid_type != FILEID_ROOT) in fh_update()
632 _fh_update(fhp, fhp->fh_export, dentry); in fh_update()
633 if (fhp->fh_handle.fh_fileid_type == FILEID_INVALID) in fh_update()
650 fh_put(struct svc_fh *fhp) in fh_put() argument
652 struct dentry * dentry = fhp->fh_dentry; in fh_put()
653 struct svc_export * exp = fhp->fh_export; in fh_put()
655 fh_unlock(fhp); in fh_put()
656 fhp->fh_dentry = NULL; in fh_put()
658 fh_clear_wcc(fhp); in fh_put()
660 fh_drop_write(fhp); in fh_put()
663 fhp->fh_export = NULL; in fh_put()
671 char * SVCFH_fmt(struct svc_fh *fhp) in SVCFH_fmt() argument
673 struct knfsd_fh *fh = &fhp->fh_handle; in SVCFH_fmt()
687 enum fsid_source fsid_source(struct svc_fh *fhp) in fsid_source() argument
689 if (fhp->fh_handle.fh_version != 1) in fsid_source()
691 switch(fhp->fh_handle.fh_fsid_type) { in fsid_source()
695 if (exp_sb(fhp->fh_export)->s_type->fs_flags & FS_REQUIRES_DEV) in fsid_source()
699 if (fhp->fh_export->ex_flags & NFSEXP_FSID) in fsid_source()
708 if (fhp->fh_export->ex_flags & NFSEXP_FSID) in fsid_source()
710 if (fhp->fh_export->ex_uuid) in fsid_source()