Mercurial > illumos > illumos-gate
diff usr/src/uts/common/fs/zfs/zfs_ioctl.c @ 4603:c7840c367d00
6494569 zfs recv -d pool/<doesn't exist> core dumps for top-level filesystem backups
6562532 typo in zfs recv output
6566874 assertion failed: newval <= spa_max_replication(osi->os_spa), file: fs/zfs/dmu_objset.c, 129
6575976 internal snapshot creation history event logs wrong dataset id
6575979 ZFS_DEBUG_DPRINTF burns too much CPU
6576508 'zfs create -o compression=gzip 'on old version pool will core dump
author | ahrens |
---|---|
date | Fri, 06 Jul 2007 09:21:26 -0700 |
parents | ed36b0e652bc |
children | 0960c3336815 |
line wrap: on
line diff
--- a/usr/src/uts/common/fs/zfs/zfs_ioctl.c Fri Jul 06 02:39:29 2007 -0700 +++ b/usr/src/uts/common/fs/zfs/zfs_ioctl.c Fri Jul 06 09:21:26 2007 -0700 @@ -130,8 +130,7 @@ zfs_log_history(zfs_cmd_t *zc) { spa_t *spa; - char poolname[MAXNAMELEN]; - char *buf, *cp; + char *buf; if (zc->zc_history == NULL) return; @@ -149,12 +148,7 @@ buf[HIS_MAX_RECORD_LEN -1] = '\0'; - (void) strlcpy(poolname, zc->zc_name, sizeof (poolname)); - cp = strpbrk(poolname, "/@"); - if (cp != NULL) - *cp = '\0'; - - if (spa_open(poolname, &spa, FTAG) != 0) { + if (spa_open(zc->zc_name, &spa, FTAG) != 0) { kmem_free(buf, HIS_MAX_RECORD_LEN); return; } @@ -1258,19 +1252,9 @@ nvpair_value_uint64(elem, &intval) == 0 && intval >= ZIO_COMPRESS_GZIP_1 && intval <= ZIO_COMPRESS_GZIP_9) { - char buf[MAXNAMELEN]; spa_t *spa; - const char *p; - if ((p = strchr(name, '/')) == NULL) { - p = name; - } else { - bcopy(name, buf, p - name); - buf[p - name] = '\0'; - p = buf; - } - - if (spa_open(p, &spa, FTAG) == 0) { + if (spa_open(name, &spa, FTAG) == 0) { if (spa_version(spa) < SPA_VERSION_GZIP_COMPRESSION) { spa_close(spa, FTAG); @@ -1281,6 +1265,21 @@ } } break; + + case ZFS_PROP_COPIES: + { + spa_t *spa; + + if (spa_open(name, &spa, FTAG) == 0) { + if (spa_version(spa) < + SPA_VERSION_DITTO_BLOCKS) { + spa_close(spa, FTAG); + return (ENOTSUP); + } + spa_close(spa, FTAG); + } + break; + } } if ((error = zfs_secpolicy_setprop(name, prop, cr)) != 0) return (error);