Print this page
2882 implement libzfs_core
2883 changing "canmount" property to "on" should not always remount dataset
2900 "zfs snapshot" should be able to create multiple, arbitrary snapshots at once
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Chris Siden <christopher.siden@delphix.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Bill Pijewski <wdp@joyent.com>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>

*** 50,59 **** --- 50,60 ---- typedef struct zilog zilog_t; typedef struct spa_aux_vdev spa_aux_vdev_t; typedef struct ddt ddt_t; typedef struct ddt_entry ddt_entry_t; struct dsl_pool; + struct dsl_dataset; /* * General-purpose 32-bit and 64-bit bitfield encodings. */ #define BF32_DECODE(x, low, len) P2PHASE((x) >> (low), 1U << (len))
*** 416,426 **** extern int spa_open_rewind(const char *pool, spa_t **, void *tag, nvlist_t *policy, nvlist_t **config); extern int spa_get_stats(const char *pool, nvlist_t **config, char *altroot, size_t buflen); extern int spa_create(const char *pool, nvlist_t *config, nvlist_t *props, ! const char *history_str, nvlist_t *zplprops); extern int spa_import_rootpool(char *devpath, char *devid); extern int spa_import(const char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags); extern nvlist_t *spa_tryimport(nvlist_t *tryconfig); extern int spa_destroy(char *pool); --- 417,427 ---- extern int spa_open_rewind(const char *pool, spa_t **, void *tag, nvlist_t *policy, nvlist_t **config); extern int spa_get_stats(const char *pool, nvlist_t **config, char *altroot, size_t buflen); extern int spa_create(const char *pool, nvlist_t *config, nvlist_t *props, ! nvlist_t *zplprops); extern int spa_import_rootpool(char *devpath, char *devid); extern int spa_import(const char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags); extern nvlist_t *spa_tryimport(nvlist_t *tryconfig); extern int spa_destroy(char *pool);
*** 630,664 **** extern boolean_t spa_writeable(spa_t *spa); extern int spa_mode(spa_t *spa); extern uint64_t strtonum(const char *str, char **nptr); - /* history logging */ - typedef enum history_log_type { - LOG_CMD_POOL_CREATE, - LOG_CMD_NORMAL, - LOG_INTERNAL - } history_log_type_t; - - typedef struct history_arg { - char *ha_history_str; - history_log_type_t ha_log_type; - history_internal_events_t ha_event; - char *ha_zone; - uid_t ha_uid; - } history_arg_t; - extern char *spa_his_ievent_table[]; extern void spa_history_create_obj(spa_t *spa, dmu_tx_t *tx); extern int spa_history_get(spa_t *spa, uint64_t *offset, uint64_t *len_read, char *his_buf); ! extern int spa_history_log(spa_t *spa, const char *his_buf, ! history_log_type_t what); ! extern void spa_history_log_internal(history_internal_events_t event, ! spa_t *spa, dmu_tx_t *tx, const char *fmt, ...); ! extern void spa_history_log_version(spa_t *spa, history_internal_events_t evt); /* error handling */ struct zbookmark; extern void spa_log_error(spa_t *spa, zio_t *zio); extern void zfs_ereport_post(const char *class, spa_t *spa, vdev_t *vd, --- 631,654 ---- extern boolean_t spa_writeable(spa_t *spa); extern int spa_mode(spa_t *spa); extern uint64_t strtonum(const char *str, char **nptr); extern char *spa_his_ievent_table[]; extern void spa_history_create_obj(spa_t *spa, dmu_tx_t *tx); extern int spa_history_get(spa_t *spa, uint64_t *offset, uint64_t *len_read, char *his_buf); ! extern int spa_history_log(spa_t *spa, const char *his_buf); ! extern int spa_history_log_nvl(spa_t *spa, nvlist_t *nvl); ! extern void spa_history_log_version(spa_t *spa, const char *operation); ! extern void spa_history_log_internal(spa_t *spa, const char *operation, ! dmu_tx_t *tx, const char *fmt, ...); ! extern void spa_history_log_internal_ds(struct dsl_dataset *ds, const char *op, ! dmu_tx_t *tx, const char *fmt, ...); ! extern void spa_history_log_internal_dd(dsl_dir_t *dd, const char *operation, ! dmu_tx_t *tx, const char *fmt, ...); /* error handling */ struct zbookmark; extern void spa_log_error(spa_t *spa, zio_t *zio); extern void zfs_ereport_post(const char *class, spa_t *spa, vdev_t *vd,