/* Called when we need the filehandle for the root of the pseudofs, for a given NFSv4 client. The root is defined to be the export point with fsid==0  */
__be32 exp_pseudoroot(struct svc_rqst *rqstp, struct svc_fh *fhp)
/* Called when we need the filehandle for the root of the pseudofs, for a given NFSv4 client. The root is defined to be the export point with fsid==0  */
__be32 exp_pseudoroot(struct svc_rqst *rqstp, struct svc_fh *fhp)
{
	struct svc_export *exp;
	__be32 rv;
	exp = find_fsidzero_export(rqstp);
	if (IS_ERR(exp))
		return nfserrno(PTR_ERR(exp));
	rv = fh_compose(fhp, exp, exp->ex_path.dentry, NULL);
	if (rv)
		goto out;
	rv = check_nfsd_access(exp, rqstp);
	if (rv)
		fh_put(fhp);
out:
	exp_put(exp);
	return rv;
}