[PATCH 0/8 v3] Make wake_up_{bit,var} less fragile

NeilBrown posted 8 patches 2 months ago
There is a newer version of this series
[PATCH 0/8 v3] Make wake_up_{bit,var} less fragile
Posted by NeilBrown 2 months ago
Hi,

 this is a revised set of patches for cleaning up wake_up_bit and
 wake_up_var and related.  They are result of more proof reading, and of
 trying to make use of the new interfaces anywhere in the kernel where
 these interfaces are used.

 This should apply after -rc1, or at least after the block tree is merged.

 Note that on current master the cause a build error in bcachefs as it
 hasn't been updated with the new i_state bit management.

 Apart from proof-reading fixes this series adds to the previous series:

 - adds wait_var_event_any_lock() which can be used with any lock for
   which there are foo_lock and foo_unlock functions.  This is useful to
   deal with places that want to call filemap_invalidate_unlock/lock
   while waiting for a var

 - adds wait_var_event_io() for io_schedule waits - xfs can use this.

 - as a bonus, softirq gets some improvements to waiting.

Thanks,
NeilBrown


 [PATCH 1/8] block: change wait on bd_claiming to use a var_waitqueue,
 [PATCH 2/8] sched: change wake_up_bit() and related function to
 [PATCH 3/8] sched: Improve documentation for wake_up_bit/wait_on_bit
 [PATCH 4/8] sched: Document wait_var_event() family of functions and
 [PATCH 5/8] sched: Add test_and_clear_wake_up_bit() and
 [PATCH 6/8] sched: Add wait/wake interface for variable updated under
 [PATCH 7/8] sched: add wait_var_event_io()
 [PATCH 8/8] softirq: use bit waits instead of var waits.