@@ -640,12 +640,16 @@ static void dm_exception_table_lock_init(struct dm_snapshot *s, chunk_t chunk,
}
static void dm_exception_table_lock(struct dm_exception_table_lock *lock)
+ __acquires(lock->complete_slot)
+ __acquires(lock->pending_slot)
{
hlist_bl_lock(lock->complete_slot);
hlist_bl_lock(lock->pending_slot);
}
static void dm_exception_table_unlock(struct dm_exception_table_lock *lock)
+ __releases(lock->pending_slot)
+ __releases(lock->complete_slot)
{
hlist_bl_unlock(lock->pending_slot);
hlist_bl_unlock(lock->complete_slot);
Sparse reports warnings at dm_exception_table_lock() and dm_exception_table_unlock() warning: context imbalance in dm_exception_table_lock() - wrong count at exit warning: context imbalance in dm_exception_table_unlock() - unexpected unlock The root cause is the missing annotation at dm_exception_table_lock() and dm_exception_table_unlock() Add the missing __acquires(lock->complete_slot) annotation Add the missing __acquires(lock->pending_slot) annotation Add the missing __releases(lock->pending_slot) annotation Add the missing __releases(lock->complete_slot) annotation Signed-off-by: Jules Irenge <jbi.octave@gmail.com> --- drivers/md/dm-snap.c | 4 ++++ 1 file changed, 4 insertions(+)