Hello, the attached patch fixes the bug in dm-raid1.c that the region returned by __rh_alloc() may be freed while it's in use. __rh_alloc() write-unlocks the hash_lock after inserting the new region. Though it read-locks the hash-lock just after that, it's possible that the region was reclaimed by rh_update_states() as the region was clean at the time. CPU0 CPU1 ----------------------------------------------------------------------- __rh_alloc() write_lock(hash_lock) write_unlock(hash_lock) rh_update_states() write_lock(hash_lock) write_unlock(hash_lock) read_lock(hash_lock) Signed-off-by: Jun'ichi Nomura