diff options
author | ek110237 <none@none> | 2007-03-20 13:38:31 -0700 |
---|---|---|
committer | ek110237 <none@none> | 2007-03-20 13:38:31 -0700 |
commit | d7306b64c847d897abb9ece8624fca9cf28d358f (patch) | |
tree | d3ec610008258452cb458a6175d0a48b42d80fc4 | |
parent | f5a18a30a06b60eec275589214da939abbaa99d9 (diff) | |
download | illumos-joyent-d7306b64c847d897abb9ece8624fca9cf28d358f.tar.gz |
6529406 zpool history needs to bump the on-disk version
-rw-r--r-- | usr/src/cmd/zpool/zpool_main.c | 1 | ||||
-rw-r--r-- | usr/src/lib/libzfs/common/libzfs_pool.c | 4 | ||||
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_ioctl.c | 10 | ||||
-rw-r--r-- | usr/src/uts/common/sys/fs/zfs.h | 6 |
4 files changed, 19 insertions, 2 deletions
diff --git a/usr/src/cmd/zpool/zpool_main.c b/usr/src/cmd/zpool/zpool_main.c index 83ae9349ec..aa4dc7487d 100644 --- a/usr/src/cmd/zpool/zpool_main.c +++ b/usr/src/cmd/zpool/zpool_main.c @@ -3180,6 +3180,7 @@ zpool_do_upgrade(int argc, char **argv) "(replicated metadata)\n")); (void) printf(gettext(" 3 Hot spares and double parity " "RAID-Z\n")); + (void) printf(gettext(" 4 zpool history\n")); (void) printf(gettext("\nFor more information on a particular " "version, including supported releases, see:\n\n")); (void) printf("http://www.opensolaris.org/os/community/zfs/" diff --git a/usr/src/lib/libzfs/common/libzfs_pool.c b/usr/src/lib/libzfs/common/libzfs_pool.c index 0e173bc019..0f76a53b57 100644 --- a/usr/src/lib/libzfs/common/libzfs_pool.c +++ b/usr/src/lib/libzfs/common/libzfs_pool.c @@ -1712,6 +1712,10 @@ get_history(zpool_handle_t *zhp, char *buf, uint64_t *off, uint64_t *len) return (zfs_error_fmt(hdl, EZFS_NOHISTORY, dgettext(TEXT_DOMAIN, "cannot get history for pool " "'%s'"), zhp->zpool_name)); + case ENOTSUP: + return (zfs_error_fmt(hdl, EZFS_BADVERSION, + dgettext(TEXT_DOMAIN, "cannot get history for pool " + "'%s', pool must be upgraded"), zhp->zpool_name)); default: return (zpool_standard_error_fmt(hdl, errno, dgettext(TEXT_DOMAIN, diff --git a/usr/src/uts/common/fs/zfs/zfs_ioctl.c b/usr/src/uts/common/fs/zfs/zfs_ioctl.c index 1178dba1eb..48c50f9d4c 100644 --- a/usr/src/uts/common/fs/zfs/zfs_ioctl.c +++ b/usr/src/uts/common/fs/zfs/zfs_ioctl.c @@ -488,6 +488,11 @@ zfs_ioc_pool_get_history(zfs_cmd_t *zc) if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) return (error); + if (spa_version(spa) < ZFS_VERSION_ZPOOL_HISTORY) { + spa_close(spa, FTAG); + return (ENOTSUP); + } + hist_buf = kmem_alloc(size, KM_SLEEP); if ((error = spa_history_get(spa, &zc->zc_history_offset, &zc->zc_history_len, hist_buf)) == 0) { @@ -515,6 +520,11 @@ zfs_ioc_pool_log_history(zfs_cmd_t *zc) if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) return (error); + if (spa_version(spa) < ZFS_VERSION_ZPOOL_HISTORY) { + spa_close(spa, FTAG); + return (ENOTSUP); + } + /* add one for the NULL delimiter */ size++; history_str = kmem_alloc(size, KM_SLEEP); diff --git a/usr/src/uts/common/sys/fs/zfs.h b/usr/src/uts/common/sys/fs/zfs.h index 276e1fd54c..f25c6efe0e 100644 --- a/usr/src/uts/common/sys/fs/zfs.h +++ b/usr/src/uts/common/sys/fs/zfs.h @@ -125,8 +125,9 @@ extern zfs_prop_t zfs_prop_iter(zfs_prop_f, void *, boolean_t); #define ZFS_VERSION_1 1ULL #define ZFS_VERSION_2 2ULL #define ZFS_VERSION_3 3ULL -#define ZFS_VERSION ZFS_VERSION_3 -#define ZFS_VERSION_STRING "3" +#define ZFS_VERSION_4 4ULL +#define ZFS_VERSION ZFS_VERSION_4 +#define ZFS_VERSION_STRING "4" /* * Symbolic names for the changes that caused a ZFS_VERSION switch. @@ -146,6 +147,7 @@ extern zfs_prop_t zfs_prop_iter(zfs_prop_f, void *, boolean_t); #define ZFS_VERSION_BPLIST_ACCOUNT ZFS_VERSION_3 #define ZFS_VERSION_RAIDZ_DEFLATE ZFS_VERSION_3 #define ZFS_VERSION_DNODE_BYTES ZFS_VERSION_3 +#define ZFS_VERSION_ZPOOL_HISTORY ZFS_VERSION_4 /* * The following are configuration names used in the nvlist describing a pool's |