#include <linux/nfs.h>
#include <linux/nfs3.h>
#include <linux/nfs_fs.h>
+#include <linux/vserver/xid.h>
#define NFSDBG_FACILITY NFSDBG_XDR
} else {
*p++ = xdr_zero;
}
- if (attr->ia_valid & ATTR_UID) {
+ if (attr->ia_valid & ATTR_UID || attr->ia_valid & ATTR_XID) {
*p++ = xdr_one;
- *p++ = htonl(attr->ia_uid);
+ *p++ = htonl(XIDINO_UID(attr->ia_uid, attr->ia_xid));
} else {
*p++ = xdr_zero;
}
- if (attr->ia_valid & ATTR_GID) {
+ if (attr->ia_valid & ATTR_GID || attr->ia_valid & ATTR_XID) {
*p++ = xdr_one;
- *p++ = htonl(attr->ia_gid);
+ *p++ = htonl(XIDINO_GID(attr->ia_gid, attr->ia_xid));
} else {
*p++ = xdr_zero;
}
nfs3_xdr_readdirres(struct rpc_rqst *req, u32 *p, struct nfs3_readdirres *res)
{
struct xdr_buf *rcvbuf = &req->rq_rcv_buf;
- struct kvec *iov = rcvbuf->head;
+ struct iovec *iov = rcvbuf->head;
struct page **page;
int hdrlen, recvd;
int status, nr;
nfs3_xdr_readlinkres(struct rpc_rqst *req, u32 *p, struct nfs_fattr *fattr)
{
struct xdr_buf *rcvbuf = &req->rq_rcv_buf;
- struct kvec *iov = rcvbuf->head;
+ struct iovec *iov = rcvbuf->head;
unsigned int hdrlen;
u32 *strlen, len;
char *string;
static int
nfs3_xdr_readres(struct rpc_rqst *req, u32 *p, struct nfs_readres *res)
{
- struct kvec *iov = req->rq_rcv_buf.head;
+ struct iovec *iov = req->rq_rcv_buf.head;
int status, count, ocount, recvd, hdrlen;
status = ntohl(*p++);