[PATCH v2 04/11] nfs: shorten and simplify rpc_add_credentials a bit
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Fri Feb 7 16:28:06 EST 2014
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
fs/nfs.c | 26 +++++---------------------
1 file changed, 5 insertions(+), 21 deletions(-)
diff --git a/fs/nfs.c b/fs/nfs.c
index 76d8c0595db4..54dda261c0b1 100644
--- a/fs/nfs.c
+++ b/fs/nfs.c
@@ -224,34 +224,18 @@ out_overflow:
*/
static uint32_t *rpc_add_credentials(uint32_t *p)
{
- int hl;
- int hostnamelen = 0;
-
/*
- * Here's the executive summary on authentication requirements of the
- * various NFS server implementations: Linux accepts both AUTH_NONE
- * and AUTH_UNIX authentication (also accepts an empty hostname field
- * in the AUTH_UNIX scheme). *BSD refuses AUTH_NONE, but accepts
- * AUTH_UNIX (also accepts an empty hostname field in the AUTH_UNIX
- * scheme). To be safe, use AUTH_UNIX and pass the hostname if we have
- * it (if the BOOTP/DHCP reply didn't give one, just use an empty
- * hostname).
+ * *BSD refuses AUTH_NONE, so use AUTH_UNIX. An empty hostname is OK for
+ * both Linux and *BSD.
*/
- hl = (hostnamelen + 3) & ~3;
-
/* Provide an AUTH_UNIX credential. */
*p++ = htonl(1); /* AUTH_UNIX */
- *p++ = htonl(hl + 20); /* auth length */
+ *p++ = htonl(20); /* auth length: 20 + strlen(hostname) */
*p++ = htonl(0); /* stamp */
- *p++ = htonl(hostnamelen); /* hostname string */
-
- if (hostnamelen & 3)
- *(p + hostnamelen / 4) = 0; /* add zero padding */
-
- /* memcpy(p, hostname, hostnamelen); */ /* empty hostname */
+ *p++ = htonl(0); /* hostname string length */
+ /* memcpy(p, "", 0); p += 0; <- empty host name */
- p += hl / 4;
*p++ = 0; /* uid */
*p++ = 0; /* gid */
*p++ = 0; /* auxiliary gid list */
--
1.8.5.2
More information about the barebox
mailing list