mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
cache: simplier signal handling
Use just single sigint_allow()/restore() within flushing loop and void one extra signal manipulation.
This commit is contained in:
parent
de17c273de
commit
0881ba9e9f
@ -425,7 +425,7 @@ int lv_cache_wait_for_clean(struct logical_volume *cache_lv, int *is_clean)
|
||||
const struct logical_volume *lock_lv = lv_lock_holder(cache_lv);
|
||||
struct lv_segment *cache_seg = first_seg(cache_lv);
|
||||
struct lv_status_cache *status;
|
||||
int cleaner_policy, writeback;
|
||||
int cleaner_policy = 0, writeback;
|
||||
uint64_t dirty_blocks;
|
||||
|
||||
*is_clean = 0;
|
||||
@ -433,6 +433,9 @@ int lv_cache_wait_for_clean(struct logical_volume *cache_lv, int *is_clean)
|
||||
//FIXME: use polling to do this...
|
||||
for (;;) {
|
||||
sigint_allow();
|
||||
if (cleaner_policy)
|
||||
/* TODO: Use centralized place */
|
||||
usleep(500000);
|
||||
sigint_restore();
|
||||
if (sigint_caught()) {
|
||||
sigint_clear();
|
||||
@ -468,13 +471,8 @@ int lv_cache_wait_for_clean(struct logical_volume *cache_lv, int *is_clean)
|
||||
log_print_unless_silent("Flushing " FMTu64 " blocks for cache %s.",
|
||||
dirty_blocks, display_lvname(cache_lv));
|
||||
|
||||
if (cleaner_policy) {
|
||||
/* TODO: Use centralized place */
|
||||
sigint_allow();
|
||||
usleep(500000);
|
||||
sigint_restore();
|
||||
if (cleaner_policy)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!(cache_lv->status & LVM_WRITE)) {
|
||||
log_warn("WARNING: Dirty blocks found on read-only cache volume %s.",
|
||||
|
Loading…
Reference in New Issue
Block a user