Looks like domap() in multipath/main.c is not resuming a mapped device before removing the device in the event of an error returned from dm_addmap(). This results in leaving the kernel block_device structure for the mapped device remaining "frozen", so that subsequent attempts to reload corrected configuration data hang on the bd_mount_sem of the block_device since the instance of the mapped device structure holding the DMF_FS_LOCKED flag bit had been destroyed.