aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-06-21 17:14:46 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-06-28 17:20:44 -0400
commit4517d526c8aa31b5c14165ef180cc19518ff0a35 (patch)
tree51201ff494ab5615034046a093e242795af794bb /net/sunrpc
parentNFS: Let xdr_read_pages() check for buffer overflows (diff)
downloadlinux-dev-4517d526c8aa31b5c14165ef180cc19518ff0a35.tar.xz
linux-dev-4517d526c8aa31b5c14165ef180cc19518ff0a35.zip
SUNRPC: Add the helper xdr_stream_pos
Add a helper to report the current offset from the start of the xdr_stream. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/xdr.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c
index 80d518644cf8..95980a5cd0a8 100644
--- a/net/sunrpc/xdr.c
+++ b/net/sunrpc/xdr.c
@@ -455,6 +455,16 @@ xdr_shift_buf(struct xdr_buf *buf, size_t len)
EXPORT_SYMBOL_GPL(xdr_shift_buf);
/**
+ * xdr_stream_pos - Return the current offset from the start of the xdr_stream
+ * @xdr: pointer to struct xdr_stream
+ */
+unsigned int xdr_stream_pos(const struct xdr_stream *xdr)
+{
+ return (unsigned int)(XDR_QUADLEN(xdr->buf->len) - xdr->nwords) << 2;
+}
+EXPORT_SYMBOL_GPL(xdr_stream_pos);
+
+/**
* xdr_init_encode - Initialize a struct xdr_stream for sending data.
* @xdr: pointer to xdr_stream struct
* @buf: pointer to XDR buffer in which to encode data