]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/zfs/zfs_ioctl.c
Illumos #1948: zpool list should show more detailed pool info
[mirror_zfs.git] / module / zfs / zfs_ioctl.c
index a382de78028b490155d29790ff0bab99bea8baa3..7a27f70bbc4f7e1a051d1bf557bf73e50d64381a 100644 (file)
@@ -24,7 +24,7 @@
  * Portions Copyright 2012 Pawel Jakub Dawidek <pawel@dawidek.net>
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
- * Copyright (c) 2011 by Delphix. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
  */
 
 #include <sys/types.h>
@@ -4037,6 +4037,22 @@ zfs_ioc_clear(zfs_cmd_t *zc)
        return (error);
 }
 
+static int
+zfs_ioc_pool_reopen(zfs_cmd_t *zc)
+{
+       spa_t *spa;
+       int error;
+
+       error = spa_open(zc->zc_name, &spa, FTAG);
+       if (error)
+               return (error);
+
+       spa_vdev_state_enter(spa, SCL_NONE);
+       vdev_reopen(spa->spa_root_vdev);
+       (void) spa_vdev_state_exit(spa, NULL, 0);
+       spa_close(spa, FTAG);
+       return (0);
+}
 /*
  * inputs:
  * zc_name     name of filesystem
@@ -4831,6 +4847,8 @@ static zfs_ioc_vec_t zfs_ioc_vec[] = {
            POOL_CHECK_SUSPENDED },
        { zfs_ioc_space_snaps, zfs_secpolicy_read, DATASET_NAME, B_FALSE,
            POOL_CHECK_SUSPENDED },
+       { zfs_ioc_pool_reopen, zfs_secpolicy_config, POOL_NAME, B_TRUE,
+           POOL_CHECK_SUSPENDED },
 };
 
 int