diff options
author | George Wilson <George.Wilson@Sun.COM> | 2009-09-29 07:29:35 -0700 |
---|---|---|
committer | George Wilson <George.Wilson@Sun.COM> | 2009-09-29 07:29:35 -0700 |
commit | 8f18d1fadf6a0c20fac9ff7259a5368faa3c3bfb (patch) | |
tree | a4cf4175bd17bcccaad3442e7d46e3809c1eeade /usr/src/lib | |
parent | 6033a7923719b64e630b12cfb0a4fc4c3a2c9e23 (diff) | |
download | illumos-joyent-8f18d1fadf6a0c20fac9ff7259a5368faa3c3bfb.tar.gz |
6846163 ZFS continues to use faulted logzilla, bringing system to a crawl
6872547 ztest LUN expansion test fails
6873635 zdb should be able to open a pool with a failed slog
6873654 system panics when a slog device is offlined
6875236 zdb should be able to dump the spa history
Diffstat (limited to 'usr/src/lib')
-rw-r--r-- | usr/src/lib/libzfs/common/libzfs.h | 4 | ||||
-rw-r--r-- | usr/src/lib/libzfs/common/libzfs_pool.c | 45 | ||||
-rw-r--r-- | usr/src/lib/libzfs/common/mapfile-vers | 2 |
3 files changed, 50 insertions, 1 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs.h b/usr/src/lib/libzfs/common/libzfs.h index 546c8e451f..41ad44af77 100644 --- a/usr/src/lib/libzfs/common/libzfs.h +++ b/usr/src/lib/libzfs/common/libzfs.h @@ -332,10 +332,14 @@ extern nvlist_t *zpool_find_import_activeok(libzfs_handle_t *, int, char **); */ struct zfs_cmd; +extern const char *hist_event_table[LOG_END]; + extern char *zpool_vdev_name(libzfs_handle_t *, zpool_handle_t *, nvlist_t *, boolean_t verbose); extern int zpool_upgrade(zpool_handle_t *, uint64_t); extern int zpool_get_history(zpool_handle_t *, nvlist_t **); +extern int zpool_history_unpack(char *, uint64_t, uint64_t *, + nvlist_t ***, uint_t *); extern void zpool_set_history_str(const char *subcommand, int argc, char **argv, char *history_str); extern int zpool_stage_history(libzfs_handle_t *, const char *); diff --git a/usr/src/lib/libzfs/common/libzfs_pool.c b/usr/src/lib/libzfs/common/libzfs_pool.c index da19f7a780..a860c85788 100644 --- a/usr/src/lib/libzfs/common/libzfs_pool.c +++ b/usr/src/lib/libzfs/common/libzfs_pool.c @@ -42,6 +42,49 @@ #include "zfs_prop.h" #include "libzfs_impl.h" +const char *hist_event_table[LOG_END] = { + "invalid event", + "pool create", + "vdev add", + "pool remove", + "pool destroy", + "pool export", + "pool import", + "vdev attach", + "vdev replace", + "vdev detach", + "vdev online", + "vdev offline", + "vdev upgrade", + "pool clear", + "pool scrub", + "pool property set", + "create", + "clone", + "destroy", + "destroy_begin_sync", + "inherit", + "property set", + "quota set", + "permission update", + "permission remove", + "permission who remove", + "promote", + "receive", + "rename", + "reservation set", + "replay_inc_sync", + "replay_full_sync", + "rollback", + "snapshot", + "filesystem version upgrade", + "refquota set", + "refreservation set", + "pool scrub done", + "user hold", + "user release", +}; + static int read_efi_label(nvlist_t *config, diskaddr_t *sb); #if defined(__i386) || defined(__amd64) @@ -2804,7 +2847,7 @@ get_history(zpool_handle_t *zhp, char *buf, uint64_t *off, uint64_t *len) * into 'records'. 'leftover' is set to the number of bytes that weren't * processed as there wasn't a complete record. */ -static int +int zpool_history_unpack(char *buf, uint64_t bytes_read, uint64_t *leftover, nvlist_t ***records, uint_t *numrecords) { diff --git a/usr/src/lib/libzfs/common/mapfile-vers b/usr/src/lib/libzfs/common/mapfile-vers index 1877ef5391..aa04db73e0 100644 --- a/usr/src/lib/libzfs/common/mapfile-vers +++ b/usr/src/lib/libzfs/common/mapfile-vers @@ -45,6 +45,7 @@ SUNWprivate_1.1 { fletcher_4_byteswap; fletcher_4_incremental_native; fletcher_4_incremental_byteswap; + hist_event_table; libzfs_errno; libzfs_error_action; libzfs_error_description; @@ -170,6 +171,7 @@ SUNWprivate_1.1 { zpool_get_prop_int; zpool_get_state; zpool_get_status; + zpool_history_unpack; zpool_import; zpool_import_props; zpool_import_status; |