summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2010-01-09 15:31:27 +0000
committermarius <marius@FreeBSD.org>2010-01-09 15:31:27 +0000
commit5acbf107b335c72f1fbcb36706de6430d591b953 (patch)
treef336f529a01951b70a320148298ddfb3e50bf4a5 /sys/nfsserver
parent76fddb4bf27ab6ec9ab22bf2640b3b9ee3d0ea7e (diff)
downloadFreeBSD-src-5acbf107b335c72f1fbcb36706de6430d591b953.zip
FreeBSD-src-5acbf107b335c72f1fbcb36706de6430d591b953.tar.gz
Exclude options COMPAT_FREEBSD4 now that the MD freebsd4_sigreturn()
is gone since r201396 and which is also in line with the fact that FreeBSD 4 didn't supported sparc64. PR: 142102 (second part) MFC after: 1 week
Diffstat (limited to 'sys/nfsserver')
-rw-r--r--sys/nfsserver/nfs.h1
-rw-r--r--sys/nfsserver/nfs_fha.c8
-rw-r--r--sys/nfsserver/nfs_srvkrpc.c2
3 files changed, 8 insertions, 3 deletions
diff --git a/sys/nfsserver/nfs.h b/sys/nfsserver/nfs.h
index b907a06..49ed0d3 100644
--- a/sys/nfsserver/nfs.h
+++ b/sys/nfsserver/nfs.h
@@ -240,6 +240,7 @@ extern int nfs_debug;
#endif
+void nfs_realign(struct mbuf **);
struct mbuf *nfs_rephead(int, struct nfsrv_descript *, int, struct mbuf **,
caddr_t *);
void nfsm_srvfattr(struct nfsrv_descript *, struct vattr *,
diff --git a/sys/nfsserver/nfs_fha.c b/sys/nfsserver/nfs_fha.c
index 0469e4a..67bf9da 100644
--- a/sys/nfsserver/nfs_fha.c
+++ b/sys/nfsserver/nfs_fha.c
@@ -158,9 +158,9 @@ SYSUNINIT(nfs_fha, SI_SUB_ROOT_CONF, SI_ORDER_ANY, nfs_fha_uninit, NULL);
static void
fha_extract_info(struct svc_req *req, struct fha_info *i)
{
- struct mbuf *md = req->rq_args;
+ struct mbuf *md;
nfsfh_t fh;
- caddr_t dpos = mtod(md, caddr_t);
+ caddr_t dpos;
static u_int64_t random_fh = 0;
int error;
int v3 = (req->rq_vers == 3);
@@ -201,6 +201,10 @@ fha_extract_info(struct svc_req *req, struct fha_info *i)
procnum == NFSPROC_NULL)
goto out;
+ nfs_realign(&req->rq_args);
+ md = req->rq_args;
+ dpos = mtod(md, caddr_t);
+
/* Grab the filehandle. */
error = nfsm_srvmtofh_xx(&fh.fh_generic, v3, &md, &dpos);
if (error)
diff --git a/sys/nfsserver/nfs_srvkrpc.c b/sys/nfsserver/nfs_srvkrpc.c
index 54b1c4a..b7b3d4c 100644
--- a/sys/nfsserver/nfs_srvkrpc.c
+++ b/sys/nfsserver/nfs_srvkrpc.c
@@ -266,7 +266,7 @@ nfs_rephead(int siz, struct nfsrv_descript *nd, int err,
* not occur with NFS/UDP and is supposed to only occassionally occur
* with TCP. Use vfs.nfs.realign_count and realign_test to check this.
*/
-static void
+void
nfs_realign(struct mbuf **pm) /* XXX COMMON */
{
struct mbuf *m;
OpenPOWER on IntegriCloud