summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfs/nfs_commonkrpc.c
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2009-05-24 19:46:12 +0000
committerrmacklem <rmacklem@FreeBSD.org>2009-05-24 19:46:12 +0000
commit60701108210c5e00058fafcdae7619c72a6f01e0 (patch)
tree26bd4f3c7cc6d7160e718135947b63cb108ddc5e /sys/fs/nfs/nfs_commonkrpc.c
parent65e538f91c24b2aa809442ae16fcbabef86e8f16 (diff)
downloadFreeBSD-src-60701108210c5e00058fafcdae7619c72a6f01e0.zip
FreeBSD-src-60701108210c5e00058fafcdae7619c72a6f01e0.tar.gz
Crib the realign function out of nfs_krpc.c and add a call
to it for the client side reply. Hopefully this fixes the problem with using the new krpc for arm for the experimental nfs client. Approved by: kib (mentor)
Diffstat (limited to 'sys/fs/nfs/nfs_commonkrpc.c')
-rw-r--r--sys/fs/nfs/nfs_commonkrpc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/fs/nfs/nfs_commonkrpc.c b/sys/fs/nfs/nfs_commonkrpc.c
index d487703..1f0cb55 100644
--- a/sys/fs/nfs/nfs_commonkrpc.c
+++ b/sys/fs/nfs/nfs_commonkrpc.c
@@ -603,6 +603,13 @@ tryagain:
KASSERT(nd->nd_mrep != NULL, ("mrep shouldn't be NULL if no error\n"));
+ /*
+ * Search for any mbufs that are not a multiple of 4 bytes long
+ * or with m_data not longword aligned.
+ * These could cause pointer alignment problems, so copy them to
+ * well aligned mbufs.
+ */
+ newnfs_realign(&nd->nd_mrep);
nd->nd_md = nd->nd_mrep;
nd->nd_dpos = NFSMTOD(nd->nd_md, caddr_t);
nd->nd_repstat = 0;
OpenPOWER on IntegriCloud