summaryrefslogtreecommitdiffstats
path: root/net/9p/protocol.c
diff options
context:
space:
mode:
authorVenkateswararao Jujjuri (JV)2011-01-28 23:11:13 +0100
committerEric Van Hensbergen2011-03-15 15:57:34 +0100
commit022cae36551ba805bf82084047945b2901d75f36 (patch)
tree5d8a8ff0eb2102d0449f58ddfcb8907bd3625682 /net/9p/protocol.c
parent[fs/9p] Make access=client default in 9p2000.L protocol (diff)
downloadkernel-qcow2-linux-022cae36551ba805bf82084047945b2901d75f36.tar.gz
kernel-qcow2-linux-022cae36551ba805bf82084047945b2901d75f36.tar.xz
kernel-qcow2-linux-022cae36551ba805bf82084047945b2901d75f36.zip
[net/9p] Preparation and helper functions for zero copy
This patch prepares p9_fcall structure for zero copy. Added fields send the payload buffer information to the transport layer. In addition it adds a 'private' field for the transport layer to store mapped/pinned page information so that it can be freed/unpinned during req_done. This patch also creates trans_common.[ch] to house helper functions. It adds the following helper functions. p9_release_req_pages - Release pages after the transaction. p9_nr_pages - Return number of pages needed to accomodate the payload. payload_gup - Translates user buffer into kernel pages. Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'net/9p/protocol.c')
-rw-r--r--net/9p/protocol.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/9p/protocol.c b/net/9p/protocol.c
index 1e308f210928..d888847db56e 100644
--- a/net/9p/protocol.c
+++ b/net/9p/protocol.c
@@ -606,6 +606,10 @@ void p9pdu_reset(struct p9_fcall *pdu)
{
pdu->offset = 0;
pdu->size = 0;
+ pdu->private = NULL;
+ pdu->pubuf = NULL;
+ pdu->pkbuf = NULL;
+ pdu->pbuf_size = 0;
}
int p9dirent_read(char *buf, int len, struct p9_dirent *dirent,