mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-25 03:37:45 +03:00
2619 asynchronous destruction of ZFS file systems 2747 SPA versioning with zfs feature flags Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <gwilson@delphix.com> Reviewed by: Richard Lowe <richlowe@richlowe.net> Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com> Approved by: Eric Schrock <Eric.Schrock@delphix.com> References: illumos/illumos-gate@53089ab7c8 illumos/illumos-gate@ad135b5d64 illumos changeset: 13700:2889e2596bd6 https://www.illumos.org/issues/2619 https://www.illumos.org/issues/2747 NOTE: The grub specific changes were not ported. This change must be made to the Linux grub packages. Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
committed by
Brian Behlendorf
parent
15313c5e18
commit
9ae529ec5d
+15
-2
@@ -18,6 +18,7 @@
|
||||
*
|
||||
* CDDL HEADER END
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Portions Copyright 2011 Martin Matuska
|
||||
@@ -1107,6 +1108,8 @@ get_zfs_sb(const char *dsname, zfs_sb_t **zsbp)
|
||||
/*
|
||||
* Find a zfs_sb_t for a mounted filesystem, or create our own, in which
|
||||
* case its z_sb will be NULL, and it will be opened as the owner.
|
||||
* If 'writer' is set, the z_teardown_lock will be held for RW_WRITER,
|
||||
* which prevents all inode ops from running.
|
||||
*/
|
||||
static int
|
||||
zfs_sb_hold(const char *name, void *tag, zfs_sb_t **zsbp, boolean_t writer)
|
||||
@@ -1170,7 +1173,7 @@ zfs_ioc_pool_create(zfs_cmd_t *zc)
|
||||
|
||||
(void) nvlist_lookup_uint64(props,
|
||||
zpool_prop_to_name(ZPOOL_PROP_VERSION), &version);
|
||||
if (version < SPA_VERSION_INITIAL || version > SPA_VERSION) {
|
||||
if (!SPA_VERSION_IS_SUPPORTED(version)) {
|
||||
error = EINVAL;
|
||||
goto pool_props_bad;
|
||||
}
|
||||
@@ -1297,6 +1300,15 @@ zfs_ioc_pool_configs(zfs_cmd_t *zc)
|
||||
return (error);
|
||||
}
|
||||
|
||||
/*
|
||||
* inputs:
|
||||
* zc_name name of the pool
|
||||
*
|
||||
* outputs:
|
||||
* zc_cookie real errno
|
||||
* zc_nvlist_dst config nvlist
|
||||
* zc_nvlist_dst_size size of config nvlist
|
||||
*/
|
||||
static int
|
||||
zfs_ioc_pool_stats(zfs_cmd_t *zc)
|
||||
{
|
||||
@@ -1398,7 +1410,8 @@ zfs_ioc_pool_upgrade(zfs_cmd_t *zc)
|
||||
if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0)
|
||||
return (error);
|
||||
|
||||
if (zc->zc_cookie < spa_version(spa) || zc->zc_cookie > SPA_VERSION) {
|
||||
if (zc->zc_cookie < spa_version(spa) ||
|
||||
!SPA_VERSION_IS_SUPPORTED(zc->zc_cookie)) {
|
||||
spa_close(spa, FTAG);
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user