I am reading dm-snap.c and found that in register_snapshot(), http://lxr.linux.no/source/drivers/md/dm-snap.c?v=2.6.8.1#L159, the kmalloc is called with rwsem held. I am not sure if this is a good one since kmalloc may sleep as well. ming