summaryrefslogtreecommitdiff
path: root/usr/src/cmd/dumpadm/dconf.c
diff options
context:
space:
mode:
authorgw25295 <none@none>2008-04-11 18:36:28 -0700
committergw25295 <none@none>2008-04-11 18:36:28 -0700
commite7cbe64f7a72dae5cb44f100db60ca88f3313c65 (patch)
tree778467a6522111f338e4644cc2cb895dcecacee4 /usr/src/cmd/dumpadm/dconf.c
parentf635d46a9872dc5a02bbbd736f2bf18685c2c221 (diff)
downloadillumos-joyent-e7cbe64f7a72dae5cb44f100db60ca88f3313c65.tar.gz
PSARC 2006/370 ZFS Boot Support
5008936 ZFS and/or zvol should support dumps 5070124 dumpadm -d /dev/... does not enforce block device requirement for savecore 6521468 ZFS Boot support Phase 2 6553503 bfu can't find 'rootdev' from /etc/vfstab on a zfs root filesystem 6574993 zfs_mountroot() may need to call clkset() to set the boot_time kstat 6633197 zvol should not permit newfs or createpool while it's in use by swap or dump 6661127 zfs_name_valid() does not support ZFS_TYPE_POOL 6684121 The changes to smf scripts for supporting canmount=noauto will cause a boot failure. --HG-- rename : usr/src/psm/stand/bootblks/zfs/common/debug-zfs.fth => deleted_files/usr/src/psm/stand/bootblks/zfs/common/debug-zfs.fth rename : usr/src/psm/stand/bootblks/zfs/common/big-zfs.fth => usr/src/psm/stand/bootblks/zfs/common/fs-zfs.fth
Diffstat (limited to 'usr/src/cmd/dumpadm/dconf.c')
-rw-r--r--usr/src/cmd/dumpadm/dconf.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/cmd/dumpadm/dconf.c b/usr/src/cmd/dumpadm/dconf.c
index 1fb9216765..3cd5b725da 100644
--- a/usr/src/cmd/dumpadm/dconf.c
+++ b/usr/src/cmd/dumpadm/dconf.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -38,6 +38,7 @@
#include <fcntl.h>
#include <errno.h>
#include <libdiskmgt.h>
+#include <libzfs.h>
#include "dconf.h"
#include "minfree.h"
@@ -343,6 +344,11 @@ dconf_dev_ioctl(dumpconf_t *dcp, int cmd)
case EBUSY:
warn(gettext("device %s is already in use\n"), dcp->dc_device);
break;
+ case EBADR:
+ /* ZFS pool is too fragmented to support a dump device */
+ warn(gettext("device %s is too fragmented to be used as "
+ "a dump device\n"), dcp->dc_device);
+ break;
default:
/*
* NOTE: The stmsboot(1M) command's boot-up script parses this
@@ -447,6 +453,9 @@ dconf_update(dumpconf_t *dcp, int checkinuse)
goto err;
}
+ if ((error = zvol_check_dump_config(
+ dcp->dc_device)) > 0)
+ goto err;
if (ioctl(dcp->dc_dump_fd, DIOCGETDUMPSIZE, &d) == -1) {
warn(gettext("failed to get kernel dump size"));
goto err;