On 02/14/2011 11:30 AM, Tejun Heo wrote: > Umm... This was reported some time ago and patches were already > posted. Milan, can you test whether the following two patches fix the > problems you're seeing? Jens, what's the status of these patches? > > http://thread.gmane.org/gmane.linux.kernel/1090211/focus=1090666 > With patch below (loop cannot be built as module) it fixes the loop problem. But it doesn't fix the read-only snapshot issue and I guess there will be the same problem with read-only MD code too. (so the 2) issue here https://lkml.org/lkml/2011/2/12/209). If the call is changed intentionally, we have to fix unconditional blkdev open calls with read-write flag in this code. Before doing that I would like to know if it was intentional change or not... You can simple try this reproducer (works on older kernel, second readonly snapshot create fails now with permission denied) + dmsetup create x --readonly --table '0 131072 snapshot /dev/loop0 /dev/loop1 p 8' device-mapper: reload ioctl failed: Permission denied #!/bin/bash -x modprobe loop dd if=/dev/zero of=/x.img bs=1M count=64 dd if=/dev/zero of=/xs.img bs=1M count=64 losetup /dev/loop0 /x.img losetup /dev/loop1 /xs.img sync dmsetup create x --table "0 131072 snapshot /dev/loop0 /dev/loop1 p 8" udevadm settle dmsetup remove x losetup -d /dev/loop0 losetup -d /dev/loop1 losetup -r /dev/loop0 /x.img losetup -r /dev/loop1 /xs.img dmsetup create x --readonly --table "0 131072 snapshot /dev/loop0 /dev/loop1 p 8" dmsetup table dmsetup remove x losetup -d /dev/loop0 losetup -d /dev/loop1 Milan -- Export bdgrap to allow loop module build Signed-off-by: Milan Broz <mbroz@xxxxxxxxxx> diff --git a/fs/block_dev.c b/fs/block_dev.c index 333a7bb..c9cf9f7 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -574,6 +574,7 @@ struct block_device *bdgrab(struct block_device *bdev) ihold(bdev->bd_inode); return bdev; } +EXPORT_SYMBOL(bdgrab); long nr_blockdev_pages(void) { -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel