On 11/7/06, Alasdair G Kergon <agk redhat com> wrote:
From: Srinivasa Ds <srinivasa in ibm com> On debugging I found out that,"dmsetup suspend <device name>" calls "freeze_bdev()",which locks "bd_mount_mutex" to make sure that no new mounts happen on bdev until thaw_bdev() is called. This "thaw_bdev()" is getting called when we resume the device through "dmsetup resume <device-name>". Hence we have 2 processes,one of which locks "bd_mount_mutex"(dmsetup suspend) and another(dmsetup resume) unlocks it.
Srinivasa's description of the patch just speaks to how freeze_bdev and thaw_bdev are used by DM but completely skips justification for switching from mutex to semaphore. Why is it beneficial and/or necessary to use a semaphore instead of a mutex here? Mike