summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2017-04-13 14:33:04 -0700
committerMatthew Ahrens <mahrens@delphix.com>2017-04-13 20:50:37 -0700
commitb127fe3c059af7adf772735498680b4f2e1405ef (patch)
treef35ce53bd445ba1791d201649886287230f4af4d
parent53d6c69268ad98d311e74fb98d7514711585c1fa (diff)
downloadillumos-gate-b127fe3c059af7adf772735498680b4f2e1405ef.tar.gz
6101 attempt to lzc_create() a filesystem under a volume results in a panic
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com>
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_ioctl.c3
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_vfsops.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/zfs/zfs_ioctl.c b/usr/src/uts/common/fs/zfs/zfs_ioctl.c
index ae47e8d48d..da22cb6c81 100644
--- a/usr/src/uts/common/fs/zfs/zfs_ioctl.c
+++ b/usr/src/uts/common/fs/zfs/zfs_ioctl.c
@@ -3035,6 +3035,9 @@ zfs_fill_zplprops_impl(objset_t *os, uint64_t zplver,
ASSERT(zplprops != NULL);
+ if (os != NULL && os->os_phys->os_type != DMU_OST_ZFS)
+ return (SET_ERROR(EINVAL));
+
/*
* Pull out creator prop choices, if any.
*/
diff --git a/usr/src/uts/common/fs/zfs/zfs_vfsops.c b/usr/src/uts/common/fs/zfs/zfs_vfsops.c
index 38f3de67ac..213a30b6e6 100644
--- a/usr/src/uts/common/fs/zfs/zfs_vfsops.c
+++ b/usr/src/uts/common/fs/zfs/zfs_vfsops.c
@@ -2243,8 +2243,10 @@ zfs_get_zplprop(objset_t *os, zfs_prop_t prop, uint64_t *value)
else
pname = zfs_prop_to_name(prop);
- if (os != NULL)
+ if (os != NULL) {
+ ASSERT3U(os->os_phys->os_type, ==, DMU_OST_ZFS);
error = zap_lookup(os, MASTER_NODE_OBJ, pname, 8, 1, value);
+ }
if (error == ENOENT) {
/* No value set, use the default value */