git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Recreate minors when renaming zvols
[zfs.git]
/
include
/
sys
/
dsl_pool.h
diff --git
a/include/sys/dsl_pool.h
b/include/sys/dsl_pool.h
index
99a131e
..
40e9610
100644
(file)
--- a/
include/sys/dsl_pool.h
+++ b/
include/sys/dsl_pool.h
@@
-65,6
+65,13
@@
typedef struct zfs_all_blkstats {
zfs_blkstat_t zab_type[DN_MAX_LEVELS + 1][DMU_OT_TOTAL + 1];
} zfs_all_blkstats_t;
zfs_blkstat_t zab_type[DN_MAX_LEVELS + 1][DMU_OT_TOTAL + 1];
} zfs_all_blkstats_t;
+typedef struct txg_history {
+ kstat_txg_t th_kstat;
+ vdev_stat_t th_vs1;
+ vdev_stat_t th_vs2;
+ kmutex_t th_lock;
+ list_node_t th_link;
+} txg_history_t;
typedef struct dsl_pool {
/* Immutable */
typedef struct dsl_pool {
/* Immutable */
@@
-76,6
+83,7
@@
typedef struct dsl_pool {
struct dsl_dataset *dp_origin_snap;
uint64_t dp_root_dir_obj;
struct taskq *dp_iput_taskq;
struct dsl_dataset *dp_origin_snap;
uint64_t dp_root_dir_obj;
struct taskq *dp_iput_taskq;
+ kstat_t *dp_txg_kstat;
/* No lock needed - sync context only */
blkptr_t dp_meta_rootbp;
/* No lock needed - sync context only */
blkptr_t dp_meta_rootbp;
@@
-92,6
+100,9
@@
typedef struct dsl_pool {
kmutex_t dp_lock;
uint64_t dp_space_towrite[TXG_SIZE];
uint64_t dp_tempreserved[TXG_SIZE];
kmutex_t dp_lock;
uint64_t dp_space_towrite[TXG_SIZE];
uint64_t dp_tempreserved[TXG_SIZE];
+ uint64_t dp_txg_history_size;
+ list_t dp_txg_history;
+
/* Has its own locking */
tx_state_t dp_tx;
/* Has its own locking */
tx_state_t dp_tx;
@@
-144,6
+155,10
@@
extern int dsl_pool_user_release(dsl_pool_t *dp, uint64_t dsobj,
extern void dsl_pool_clean_tmp_userrefs(dsl_pool_t *dp);
int dsl_pool_open_special_dir(dsl_pool_t *dp, const char *name, dsl_dir_t **);
extern void dsl_pool_clean_tmp_userrefs(dsl_pool_t *dp);
int dsl_pool_open_special_dir(dsl_pool_t *dp, const char *name, dsl_dir_t **);
+txg_history_t *dsl_pool_txg_history_add(dsl_pool_t *dp, uint64_t txg);
+txg_history_t *dsl_pool_txg_history_get(dsl_pool_t *dp, uint64_t txg);
+void dsl_pool_txg_history_put(txg_history_t *th);
+
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
}
#endif