******* I use "dd if=/dev/zero of=/dev/vg00/lv00 bs=1K"* to make big IO on the origin LV. then I use lvcreate to create a snapshot on it (lv00). it will suspend till the 'dd' ends.
****** I read the source code and*find the 'dm_suspend' function will call "lock_fs",*then find all of them*hang at *"sync_blockdev(struct block_device *bdev)" function, because the function call *"__filemap_fdatawrite(mapping, WB_SYNC_ALL);" later.
***** I don't want the lvcreate snapshot take so long, suspend the origin lv is needed?And the WB_SYNC_ALL will cause*update dirty*pages*slower than 'dd'**write data.
******sync_blockdev will wait on any mapping it seems. can dm_suspend do not wait for it?
**** *My kernel version:2.6.29. LVM2.02.63.
dm-devel mailing list