예제 #1
0
int
nfssvc_encode_attrstat(struct svc_rqst *rqstp, u32 *p,
					struct nfsd_attrstat *resp)
{
	p = encode_fattr(rqstp, p, resp->fh.fh_dentry->d_inode);
	return xdr_ressize_check(rqstp, p);
}
예제 #2
0
int
nfssvc_encode_attrstat(struct svc_rqst *rqstp, __be32 *p,
					struct nfsd_attrstat *resp)
{
	p = encode_fattr(rqstp, p, &resp->fh, &resp->stat);
	return xdr_ressize_check(rqstp, p);
}
예제 #3
0
int
nfssvc_encode_diropres(struct svc_rqst *rqstp, __be32 *p,
					struct nfsd_diropres *resp)
{
	p = encode_fh(p, &resp->fh);
	p = encode_fattr(rqstp, p, &resp->fh, &resp->stat);
	return xdr_ressize_check(rqstp, p);
}
예제 #4
0
int
nfssvc_encode_diropres(struct svc_rqst *rqstp, u32 *p,
					struct nfsd_diropres *resp)
{
	p = encode_fh(p, &resp->fh);
	p = encode_fattr(rqstp, p, resp->fh.fh_dentry->d_inode);
	return xdr_ressize_check(rqstp, p);
}
예제 #5
0
int
nfssvc_encode_readres(struct svc_rqst *rqstp, u32 *p,
					struct nfsd_readres *resp)
{
	p = encode_fattr(rqstp, p, resp->fh.fh_dentry->d_inode);
	*p++ = htonl(resp->count);
	p += XDR_QUADLEN(resp->count);

	return xdr_ressize_check(rqstp, p);
}
예제 #6
0
int
nfssvc_encode_readres(struct svc_rqst *rqstp, __be32 *p,
					struct nfsd_readres *resp)
{
	p = encode_fattr(rqstp, p, &resp->fh, &resp->stat);
	*p++ = htonl(resp->count);
	xdr_ressize_check(rqstp, p);

	/* now update rqstp->rq_res to reflect data as well */
	rqstp->rq_res.page_len = resp->count;
	if (resp->count & 3) {
		/* need to pad the tail */
		rqstp->rq_res.tail[0].iov_base = p;
		*p = 0;
		rqstp->rq_res.tail[0].iov_len = 4 - (resp->count&3);
	}
	return 1;
}
예제 #7
0
int
nfssvc_encode_readres(struct svc_rqst *rqstp, __be32 *p,
                      struct nfsd_readres *resp)
{
    p = encode_fattr(rqstp, p, &resp->fh, &resp->stat);
    *p++ = htonl(resp->count);
    xdr_ressize_check(rqstp, p);


    rqstp->rq_res.page_len = resp->count;
    if (resp->count & 3) {

        rqstp->rq_res.tail[0].iov_base = p;
        *p = 0;
        rqstp->rq_res.tail[0].iov_len = 4 - (resp->count&3);
    }
    return 1;
}
예제 #8
0
/* Helper function for NFSv2 ACL code */
__be32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp)
{
	struct kstat stat;
	vfs_getattr(fhp->fh_export->ex_path.mnt, fhp->fh_dentry, &stat);
	return encode_fattr(rqstp, p, fhp, &stat);
}
예제 #9
0
파일: nfsxdr.c 프로젝트: AlexShiLucky/linux
/* Helper function for NFSv2 ACL code */
__be32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp, struct kstat *stat)
{
	return encode_fattr(rqstp, p, fhp, stat);
}