Skip to content

Commit 0342ea9

Browse files
author
Paul Dagnelie
committed
New spa_misc functions for anyraid
Sponsored-by: Eshtek, creators of HexOS Sponsored-by: Klara, Inc.
1 parent 4002a28 commit 0342ea9

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

include/sys/spa.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,9 +1079,12 @@ extern uint64_t spa_last_synced_txg(spa_t *spa);
10791079
extern uint64_t spa_first_txg(spa_t *spa);
10801080
extern uint64_t spa_syncing_txg(spa_t *spa);
10811081
extern uint64_t spa_final_dirty_txg(spa_t *spa);
1082+
extern uint64_t spa_load_max_txg(spa_t *spa);
1083+
extern uint64_t spa_current_txg(spa_t *spa);
10821084
extern uint64_t spa_version(spa_t *spa);
10831085
extern pool_state_t spa_state(spa_t *spa);
10841086
extern spa_load_state_t spa_load_state(spa_t *spa);
1087+
extern uint64_t spa_load_txg(spa_t *spa);
10851088
extern uint64_t spa_freeze_txg(spa_t *spa);
10861089
extern uint64_t spa_get_worst_case_asize(spa_t *spa, uint64_t lsize);
10871090
extern uint64_t spa_get_dspace(spa_t *spa);
@@ -1155,7 +1158,9 @@ extern boolean_t spa_has_pending_synctask(spa_t *spa);
11551158
extern int spa_maxblocksize(spa_t *spa);
11561159
extern int spa_maxdnodesize(spa_t *spa);
11571160
extern boolean_t spa_has_checkpoint(spa_t *spa);
1161+
extern uint64_t spa_checkpoint_txg(spa_t *spa);
11581162
extern boolean_t spa_importing_readonly_checkpoint(spa_t *spa);
1163+
extern boolean_t spa_importing_checkpoint(spa_t *spa);
11591164
extern boolean_t spa_suspend_async_destroy(spa_t *spa);
11601165
extern uint64_t spa_min_claim_txg(spa_t *spa);
11611166
extern boolean_t zfs_dva_valid(spa_t *spa, const dva_t *dva,

module/zfs/spa_misc.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1821,6 +1821,18 @@ spa_syncing_txg(spa_t *spa)
18211821
return (spa->spa_syncing_txg);
18221822
}
18231823

1824+
uint64_t
1825+
spa_load_max_txg(spa_t *spa)
1826+
{
1827+
return (spa->spa_load_max_txg);
1828+
}
1829+
1830+
uint64_t
1831+
spa_current_txg(spa_t *spa)
1832+
{
1833+
return (spa->spa_uberblock.ub_txg);
1834+
}
1835+
18241836
/*
18251837
* Return the last txg where data can be dirtied. The final txgs
18261838
* will be used to just clear out any deferred frees that remain.
@@ -2256,6 +2268,12 @@ spa_dirty_data(spa_t *spa)
22562268
return (spa->spa_dsl_pool->dp_dirty_total);
22572269
}
22582270

2271+
uint64_t
2272+
spa_load_txg(spa_t *spa)
2273+
{
2274+
return (spa->spa_load_txg);
2275+
}
2276+
22592277
/*
22602278
* ==========================================================================
22612279
* SPA Import Progress Routines
@@ -2975,13 +2993,26 @@ spa_has_checkpoint(spa_t *spa)
29752993
return (spa->spa_checkpoint_txg != 0);
29762994
}
29772995

2996+
uint64_t
2997+
spa_checkpoint_txg(spa_t *spa)
2998+
{
2999+
return (spa->spa_checkpoint_txg);
3000+
}
3001+
29783002
boolean_t
29793003
spa_importing_readonly_checkpoint(spa_t *spa)
29803004
{
29813005
return ((spa->spa_import_flags & ZFS_IMPORT_CHECKPOINT) &&
29823006
spa->spa_mode == SPA_MODE_READ);
29833007
}
29843008

3009+
boolean_t
3010+
spa_importing_checkpoint(spa_t *spa)
3011+
{
3012+
return ((spa->spa_import_flags & ZFS_IMPORT_CHECKPOINT) &&
3013+
spa->spa_uberblock.ub_checkpoint_txg != 0);
3014+
}
3015+
29853016
uint64_t
29863017
spa_min_claim_txg(spa_t *spa)
29873018
{
@@ -3081,9 +3112,12 @@ EXPORT_SYMBOL(spa_guid);
30813112
EXPORT_SYMBOL(spa_last_synced_txg);
30823113
EXPORT_SYMBOL(spa_first_txg);
30833114
EXPORT_SYMBOL(spa_syncing_txg);
3115+
EXPORT_SYMBOL(spa_load_max_txg);
3116+
EXPORT_SYMBOL(spa_current_txg);
30843117
EXPORT_SYMBOL(spa_version);
30853118
EXPORT_SYMBOL(spa_state);
30863119
EXPORT_SYMBOL(spa_load_state);
3120+
EXPORT_SYMBOL(spa_load_txg);
30873121
EXPORT_SYMBOL(spa_freeze_txg);
30883122
EXPORT_SYMBOL(spa_get_dspace);
30893123
EXPORT_SYMBOL(spa_update_dspace);
@@ -3126,8 +3160,10 @@ EXPORT_SYMBOL(spa_missing_tvds_allowed);
31263160
EXPORT_SYMBOL(spa_set_missing_tvds);
31273161
EXPORT_SYMBOL(spa_state_to_name);
31283162
EXPORT_SYMBOL(spa_importing_readonly_checkpoint);
3163+
EXPORT_SYMBOL(spa_importing_checkpoint);
31293164
EXPORT_SYMBOL(spa_min_claim_txg);
31303165
EXPORT_SYMBOL(spa_suspend_async_destroy);
3166+
EXPORT_SYMBOL(spa_checkpoint_txg);
31313167
EXPORT_SYMBOL(spa_has_checkpoint);
31323168
EXPORT_SYMBOL(spa_top_vdevs_spacemap_addressable);
31333169

0 commit comments

Comments
 (0)