Mercurial > illumos > illumos-gate
changeset 3863:d56571426115
6529406 zpool history needs to bump the on-disk version
author | ek110237 |
---|---|
date | Tue, 20 Mar 2007 13:38:31 -0700 |
parents | 86869f5c0e35 |
children | 2ae506652d11 |
files | usr/src/cmd/zpool/zpool_main.c usr/src/lib/libzfs/common/libzfs_pool.c usr/src/uts/common/fs/zfs/zfs_ioctl.c usr/src/uts/common/sys/fs/zfs.h |
diffstat | 4 files changed, 19 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/zpool/zpool_main.c Tue Mar 20 11:43:55 2007 -0700 +++ b/usr/src/cmd/zpool/zpool_main.c Tue Mar 20 13:38:31 2007 -0700 @@ -3180,6 +3180,7 @@ "(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/"
--- a/usr/src/lib/libzfs/common/libzfs_pool.c Tue Mar 20 11:43:55 2007 -0700 +++ b/usr/src/lib/libzfs/common/libzfs_pool.c Tue Mar 20 13:38:31 2007 -0700 @@ -1712,6 +1712,10 @@ 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,
--- a/usr/src/uts/common/fs/zfs/zfs_ioctl.c Tue Mar 20 11:43:55 2007 -0700 +++ b/usr/src/uts/common/fs/zfs/zfs_ioctl.c Tue Mar 20 13:38:31 2007 -0700 @@ -488,6 +488,11 @@ 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 @@ 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);
--- a/usr/src/uts/common/sys/fs/zfs.h Tue Mar 20 11:43:55 2007 -0700 +++ b/usr/src/uts/common/sys/fs/zfs.h Tue Mar 20 13:38:31 2007 -0700 @@ -125,8 +125,9 @@ #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 @@ #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