diff options
| author | gw25295 <none@none> | 2008-04-11 18:36:28 -0700 |
|---|---|---|
| committer | gw25295 <none@none> | 2008-04-11 18:36:28 -0700 |
| commit | e7cbe64f7a72dae5cb44f100db60ca88f3313c65 (patch) | |
| tree | 778467a6522111f338e4644cc2cb895dcecacee4 /usr/src/cmd/swap | |
| parent | f635d46a9872dc5a02bbbd736f2bf18685c2c221 (diff) | |
| download | illumos-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/swap')
| -rw-r--r-- | usr/src/cmd/swap/swap.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/usr/src/cmd/swap/swap.c b/usr/src/cmd/swap/swap.c index a38897f70c..91cecd5cb4 100644 --- a/usr/src/cmd/swap/swap.c +++ b/usr/src/cmd/swap/swap.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -63,6 +63,7 @@ #include <locale.h> #include <libintl.h> #include <libdiskmgt.h> +#include <sys/fs/zfs.h> #define LFLAG 0x01 /* swap -l (list swap devices) */ #define DFLAG 0x02 /* swap -d (delete swap device) */ @@ -645,6 +646,19 @@ add(char *path, off_t offset, off_t cnt, int flags) (void) close(fd); + /* + * zvols cannot act as both a swap device and dump device. + */ + if (strncmp(dumpdev, ZVOL_FULL_DEV_DIR, + strlen(ZVOL_FULL_DEV_DIR)) == 0) { + if (strcmp(dumpdev, path) == 0) { + (void) fprintf(stderr, gettext("%s: zvol " + "cannot be used as a swap device and a " + "dump device\n"), path); + return (2); + } + } + } else if (!(flags & P1FLAG)) dumpadm_err(gettext("Warning: failed to open /dev/dump")); |
