<div>Hi All,</div>
<div> 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.</div>
<div> 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, <font color="#ff0000">WB_SYNC_ALL</font>);" later.</div>
<div> I don't want the lvcreate snapshot take so long, suspend the origin lv is needed?And the <font color="#ff0000">WB_SYNC_ALL </font><font color="#000000">will cause update dirty pages slower than 'dd' write data.</font></div>
<div> sync_blockdev will wait on any mapping it seems. can dm_suspend do not wait for it?</div>
<div> My kernel version:2.6.29. LVM2.02.63.</div>
<div> Thanks.</div>
<div> </div>
<div>Best regards,</div>
<div>Busby</div>
<div> </div>