From e7cbe64f7a72dae5cb44f100db60ca88f3313c65 Mon Sep 17 00:00:00 2001 From: gw25295 Date: Fri, 11 Apr 2008 18:36:28 -0700 Subject: 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 --- usr/src/cmd/dumpadm/dconf.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'usr/src/cmd/dumpadm/dconf.c') 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 #include #include +#include #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; -- cgit v1.2.3