diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2009-05-24 19:46:12 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2009-05-24 19:46:12 +0000 |
commit | 60701108210c5e00058fafcdae7619c72a6f01e0 (patch) | |
tree | 26bd4f3c7cc6d7160e718135947b63cb108ddc5e /sys/fs/nfs/nfs_commonkrpc.c | |
parent | 65e538f91c24b2aa809442ae16fcbabef86e8f16 (diff) | |
download | FreeBSD-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.c | 7 |
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; |