summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbenno <benno@FreeBSD.org>2008-05-16 06:27:03 +0000
committerbenno <benno@FreeBSD.org>2008-05-16 06:27:03 +0000
commitdbb9a92bd177a115615097a5828750342df66802 (patch)
tree354e844d56b37819297bbcd4fc46a226d6d555f1
parent8c26df34b04f11740dfc1af81d2d67824894893f (diff)
downloadFreeBSD-src-dbb9a92bd177a115615097a5828750342df66802.zip
FreeBSD-src-dbb9a92bd177a115615097a5828750342df66802.tar.gz
Allow the block size used when booting over NFS to be overridden. It defaults
to 8192 bytes which is the size currently used.
-rw-r--r--sys/conf/options1
-rw-r--r--sys/nfsclient/bootp_subr.c9
2 files changed, 8 insertions, 2 deletions
diff --git a/sys/conf/options b/sys/conf/options
index 6ebfa92..bed05e2 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -351,6 +351,7 @@ ALTQ_PRIQ opt_altq.h
ALTQ_NOPCC opt_altq.h
ALTQ_DEBUG opt_altq.h
BOOTP opt_bootp.h
+BOOTP_BLOCKSIZE opt_bootp.h
BOOTP_COMPAT opt_bootp.h
BOOTP_NFSROOT opt_bootp.h
BOOTP_NFSV3 opt_bootp.h
diff --git a/sys/nfsclient/bootp_subr.c b/sys/nfsclient/bootp_subr.c
index a2c09c5..77c7739 100644
--- a/sys/nfsclient/bootp_subr.c
+++ b/sys/nfsclient/bootp_subr.c
@@ -209,6 +209,11 @@ struct bootpc_globalcontext {
#define DHCP_REQUEST 3
#define DHCP_ACK 5
+/* NFS read/write block size */
+#ifndef BOOTP_BLOCKSIZE
+#define BOOTP_BLOCKSIZE 8192
+#endif
+
static char bootp_cookie[128];
SYSCTL_STRING(_kern, OID_AUTO, bootp_cookie, CTLFLAG_RD,
bootp_cookie, 0, "Cookie (T134) supplied by bootp server");
@@ -1234,8 +1239,8 @@ static void
mountopts(struct nfs_args *args, char *p)
{
args->version = NFS_ARGSVERSION;
- args->rsize = 8192;
- args->wsize = 8192;
+ args->rsize = BOOTP_BLOCKSIZE;
+ args->wsize = BOOTP_BLOCKSIZE;
args->flags = NFSMNT_RSIZE | NFSMNT_WSIZE | NFSMNT_RESVPORT;
args->sotype = SOCK_DGRAM;
if (p != NULL)
OpenPOWER on IntegriCloud