summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authoredp <none@none>2006-09-12 20:10:35 -0700
committeredp <none@none>2006-09-12 20:10:35 -0700
commit6858add49406b6443e85c2ca32f5720a1db53354 (patch)
tree35fda3e61fec1565161fb511ed24be26971d36e2 /usr/src
parentacd76fe5a01cfab51c34c67df884b68562a97f3f (diff)
downloadillumos-gate-6858add49406b6443e85c2ca32f5720a1db53354.tar.gz
6426980 lx zones can't mount nfsv3 filesystems on linux servers
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/brand/lx/lx_brand/common/mount.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/usr/src/lib/brand/lx/lx_brand/common/mount.c b/usr/src/lib/brand/lx/lx_brand/common/mount.c
index bf349f4755..502ca22ff1 100644
--- a/usr/src/lib/brand/lx/lx_brand/common/mount.c
+++ b/usr/src/lib/brand/lx/lx_brand/common/mount.c
@@ -305,12 +305,6 @@ i_make_nfs_args(lx_nfs_mount_data_t *lx_nmd, struct nfs_args *nfs_args,
lx_nmd->nmd_addr.sin_family);
return (-ENOTSUP);
}
- if (lx_nmd->nmd_root.lx_fh3_length != 0x20) {
- lx_unsupported("unsupported nfs mount request, "
- "nfs file handle length: 0x%x\n",
- lx_nmd->nmd_root.lx_fh3_length);
- return (-ENOTSUP);
- }
for (i = 0; i < LX_NMD_MAXHOSTNAMELEN; i++) {
if (lx_nmd->nmd_hostname[i] == '\0')
break;
@@ -372,11 +366,19 @@ i_make_nfs_args(lx_nfs_mount_data_t *lx_nmd, struct nfs_args *nfs_args,
options, options_size)) != 0)
return (rv);
+ if (lx_nmd->nmd_root.lx_fh3_length >
+ sizeof (nfs_args_fh->fh3.fh3_u.data)) {
+ lx_unsupported("unsupported nfs mount request, "
+ "nfs file handle length: 0x%x\n",
+ lx_nmd->nmd_root.lx_fh3_length);
+ return (-ENOTSUP);
+ }
+
/* Set the v3 file handle info. */
nfs_args_fh->fh3.fh3_length = lx_nmd->nmd_root.lx_fh3_length;
bcopy(&lx_nmd->nmd_root.lx_fh3_data,
nfs_args_fh->fh3.fh3_u.data,
- sizeof (nfs_args_fh->fh3.fh3_u.data));
+ lx_nmd->nmd_root.lx_fh3_length);
} else {
/*
* Assume nfs v2. Note that this could also be a v1