All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever@oracle.com>
To: trond.myklebust@netapp.com
Cc: linux-nfs@vger.kernel.org
Subject: [PATCH 12/17] NFS: Update xdr_encode_foo() functions that we're keeping
Date: Wed, 17 Nov 2010 12:45:34 -0500	[thread overview]
Message-ID: <20101117174534.29177.72207.stgit@matisse.1015granger.net> (raw)
In-Reply-To: <20101117174112.29177.69734.stgit@matisse.1015granger.net>

Clean up.  Move the timestamp and the sattr encoder to match the
placement convention of the other helpers, update their coding style,
and refresh their documenting comments.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: J. Bruce Fields <bfields@redhat.com>
---

 fs/nfs/nfs3xdr.c |  111 +++++++++++++++++++++++++++---------------------------
 1 files changed, 55 insertions(+), 56 deletions(-)

diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c
index 831a987..1a7e25e 100644
--- a/fs/nfs/nfs3xdr.c
+++ b/fs/nfs/nfs3xdr.c
@@ -167,14 +167,6 @@ out_overflow:
  * Encode/decode time.
  */
 static inline __be32 *
-xdr_encode_time3(__be32 *p, const struct timespec *timep)
-{
-	*p++ = htonl(timep->tv_sec);
-	*p++ = htonl(timep->tv_nsec);
-	return p;
-}
-
-static inline __be32 *
 xdr_decode_time3(__be32 *p, struct timespec *timep)
 {
 	timep->tv_sec = ntohl(*p++);
@@ -219,52 +211,6 @@ xdr_decode_fattr(__be32 *p, struct nfs_fattr *fattr)
 }
 
 static inline __be32 *
-xdr_encode_sattr(__be32 *p, const struct iattr *attr)
-{
-	if (attr->ia_valid & ATTR_MODE) {
-		*p++ = xdr_one;
-		*p++ = htonl(attr->ia_mode & S_IALLUGO);
-	} else {
-		*p++ = xdr_zero;
-	}
-	if (attr->ia_valid & ATTR_UID) {
-		*p++ = xdr_one;
-		*p++ = htonl(attr->ia_uid);
-	} else {
-		*p++ = xdr_zero;
-	}
-	if (attr->ia_valid & ATTR_GID) {
-		*p++ = xdr_one;
-		*p++ = htonl(attr->ia_gid);
-	} else {
-		*p++ = xdr_zero;
-	}
-	if (attr->ia_valid & ATTR_SIZE) {
-		*p++ = xdr_one;
-		p = xdr_encode_hyper(p, (__u64) attr->ia_size);
-	} else {
-		*p++ = xdr_zero;
-	}
-	if (attr->ia_valid & ATTR_ATIME_SET) {
-		*p++ = xdr_two;
-		p = xdr_encode_time3(p, &attr->ia_atime);
-	} else if (attr->ia_valid & ATTR_ATIME) {
-		*p++ = xdr_one;
-	} else {
-		*p++ = xdr_zero;
-	}
-	if (attr->ia_valid & ATTR_MTIME_SET) {
-		*p++ = xdr_two;
-		p = xdr_encode_time3(p, &attr->ia_mtime);
-	} else if (attr->ia_valid & ATTR_MTIME) {
-		*p++ = xdr_one;
-	} else {
-		*p++ = xdr_zero;
-	}
-	return p;
-}
-
-static inline __be32 *
 xdr_decode_wcc_attr(__be32 *p, struct nfs_fattr *fattr)
 {
 	p = xdr_decode_hyper(p, &fattr->pre_size);
@@ -453,6 +399,21 @@ static void encode_nfs_fh3(struct xdr_stream *xdr, const struct nfs_fh *fh)
 }
 
 /*
+ * nfstime3
+ *
+ *	struct nfstime3 {
+ *		uint32	seconds;
+ *		uint32	nseconds;
+ *	};
+ */
+static __be32 *xdr_encode_nfstime3(__be32 *p, const struct timespec *timep)
+{
+	*p++ = cpu_to_be32(timep->tv_sec);
+	*p++ = cpu_to_be32(timep->tv_nsec);
+	return p;
+}
+
+/*
  * sattr3
  *
  *	enum time_how {
@@ -538,7 +499,45 @@ static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr)
 		nbytes += 8;
 	p = xdr_reserve_space(xdr, nbytes);
 
-	xdr_encode_sattr(p, attr);
+	if (attr->ia_valid & ATTR_MODE) {
+		*p++ = xdr_one;
+		*p++ = cpu_to_be32(attr->ia_mode & S_IALLUGO);
+	} else
+		*p++ = xdr_zero;
+
+	if (attr->ia_valid & ATTR_UID) {
+		*p++ = xdr_one;
+		*p++ = cpu_to_be32(attr->ia_uid);
+	} else
+		*p++ = xdr_zero;
+
+	if (attr->ia_valid & ATTR_GID) {
+		*p++ = xdr_one;
+		*p++ = cpu_to_be32(attr->ia_gid);
+	} else
+		*p++ = xdr_zero;
+
+	if (attr->ia_valid & ATTR_SIZE) {
+		*p++ = xdr_one;
+		p = xdr_encode_hyper(p, (u64)attr->ia_size);
+	} else
+		*p++ = xdr_zero;
+
+	if (attr->ia_valid & ATTR_ATIME_SET) {
+		*p++ = xdr_two;
+		p = xdr_encode_nfstime3(p, &attr->ia_atime);
+	} else if (attr->ia_valid & ATTR_ATIME) {
+		*p++ = xdr_one;
+	} else
+		*p++ = xdr_zero;
+
+	if (attr->ia_valid & ATTR_MTIME_SET) {
+		*p++ = xdr_two;
+		xdr_encode_nfstime3(p, &attr->ia_mtime);
+	} else if (attr->ia_valid & ATTR_MTIME) {
+		*p = xdr_one;
+	} else
+		*p = xdr_zero;
 }
 
 /*
@@ -605,7 +604,7 @@ static void encode_sattrguard3(struct xdr_stream *xdr,
 	if (args->guard) {
 		p = xdr_reserve_space(xdr, 4 + 8);
 		*p++ = xdr_one;
-		xdr_encode_time3(p, &args->guardtime);
+		xdr_encode_nfstime3(p, &args->guardtime);
 	} else {
 		p = xdr_reserve_space(xdr, 4);
 		*p = xdr_zero;


  parent reply	other threads:[~2010-11-17 17:45 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-17 17:43 [PATCH 00/17] Update XDR functions for legacy NFS versions Chuck Lever
     [not found] ` <20101117174112.29177.69734.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
2010-11-17 17:43   ` [PATCH 01/17] NFS: Introduce new-style XDR encoding functions for NFSv2 Chuck Lever
2010-11-18 12:50     ` Boaz Harrosh
2010-11-18 15:24       ` Chuck Lever
2010-11-18 15:28         ` Boaz Harrosh
2010-11-17 17:43   ` [PATCH 02/17] NFS: Remove old NFSv2 encoder functions Chuck Lever
2010-11-17 17:44 ` [PATCH 03/17] NFS: Update xdr_encode_foo() functions that we're keeping Chuck Lever
2010-11-17 17:44 ` [PATCH 04/17] NFS: Use the "nfs_stat" enum for nfs_stat_to_errno()'s argument Chuck Lever
2010-11-17 17:44 ` [PATCH 05/17] NFS: Introduce new-style XDR decoding functions for NFSv2 Chuck Lever
2010-11-17 17:44 ` [PATCH 06/17] NFS: Replace old NFSv2 decoder functions with xdr_stream-based ones Chuck Lever
2010-11-17 17:44 ` [PATCH 07/17] NFS: Move and update xdr_decode_foo() functions that we're keeping Chuck Lever
2010-11-17 17:44 ` [PATCH 08/17] lockd: Introduce new-style XDR functions for NLMv3 Chuck Lever
2010-11-17 17:45 ` [PATCH 09/17] NFS: Introduce new-style XDR encoding functions for NFSv3 Chuck Lever
2010-11-17 17:45 ` [PATCH 10/17] NFS: Replace old NFSv3 encoder functions with xdr_stream-based ones Chuck Lever
2010-11-17 17:45 ` [PATCH 11/17] NFS: Remove unused old NFSv3 encoder functions Chuck Lever
2010-11-17 17:45 ` Chuck Lever [this message]
2010-11-17 17:45 ` [PATCH 13/17] NFS: Introduce new-style XDR decoding functions for NFSv2 Chuck Lever
2010-11-17 17:45 ` [PATCH 14/17] NFS: Switch in new NFSv3 decoder functions Chuck Lever
2010-11-17 17:46 ` [PATCH 15/17] NFS: Remove unused old " Chuck Lever
2010-11-17 17:46 ` [PATCH 16/17] NFS: Move and update xdr_decode_foo() functions that we're keeping Chuck Lever
2010-11-17 17:46 ` [PATCH 17/17] lockd: Introduce new-style XDR functions for NLMv4 Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101117174534.29177.72207.stgit@matisse.1015granger.net \
    --to=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@netapp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.