Hello, The following script stalls at the 2nd suspend. It's because bdput() isn't called for the suspended_bdev. So the inode with bd_mount_sem held is just reused in the next mapped_device device. Then dm_suspend will try to freeze_bdev and wait forever. Attached patch fixes this problem. ------------------------------------------------------------ #!/bin/sh -x map=a while true; do dmsetup create $map --notable dmsetup suspend $map dmsetup remove $map done ------------------------------------------------------------ -- Jun'ichi Nomura, NEC Solutions (America), Inc.