diff options
author | Joe Thornber <ejt@redhat.com> | 2013-05-10 15:37:21 +0200 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2013-05-10 15:37:21 +0200 |
commit | ac8c3f3df65e487bbcabf274eeeb9cd222f5da1e (patch) | |
tree | e1ab6d4662834bbbf248b1ad6224c9b7c3faa15e /drivers/md/dm-thin-metadata.c | |
parent | dm persistent metadata: add space map threshold callback (diff) | |
download | linux-ac8c3f3df65e487bbcabf274eeeb9cd222f5da1e.tar.xz linux-ac8c3f3df65e487bbcabf274eeeb9cd222f5da1e.zip |
dm thin: generate event when metadata threshold passed
Generate a dm event when the amount of remaining thin pool metadata
space falls below a certain level.
The threshold is taken to be a quarter of the size of the metadata
device with a minimum threshold of 4MB.
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md/dm-thin-metadata.c')
-rw-r--r-- | drivers/md/dm-thin-metadata.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c index f553ed66603c..60bce435f4fa 100644 --- a/drivers/md/dm-thin-metadata.c +++ b/drivers/md/dm-thin-metadata.c @@ -1696,3 +1696,17 @@ void dm_pool_metadata_read_only(struct dm_pool_metadata *pmd) dm_bm_set_read_only(pmd->bm); up_write(&pmd->root_lock); } + +int dm_pool_register_metadata_threshold(struct dm_pool_metadata *pmd, + dm_block_t threshold, + dm_sm_threshold_fn fn, + void *context) +{ + int r; + + down_write(&pmd->root_lock); + r = dm_sm_register_threshold_callback(pmd->metadata_sm, threshold, fn, context); + up_write(&pmd->root_lock); + + return r; +} |