From mboxrd@z Thu Jan 1 00:00:00 1970
From: Pat LaVarre
Subject: Re: 2 KiB/block loopback found where
Date: 06 Oct 2003 18:51:04 -0600
Sender: linux-scsi-owner@vger.kernel.org
Message-ID: <1065487864.4521.52.camel@patehci2>
References: <1064271322.4797.9.camel@patehci2>
<1064847281.24854.2.camel@patehci2> <1064850600.25057.7.camel@patehci2>
<20030929164654.GS15415@suse.de> <1064855570.3184.3.camel@patehci2>
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Return-path:
Received: from email-out1.iomega.com ([147.178.1.82]:15755 "EHLO
email.iomega.com") by vger.kernel.org with ESMTP id S261771AbTJGAvL
(ORCPT );
Mon, 6 Oct 2003 20:51:11 -0400
In-Reply-To: <1064855570.3184.3.camel@patehci2>
List-Id: linux-scsi@vger.kernel.org
To: axboe@suse.de
Cc: linux-scsi@vger.kernel.org
Can I easily fix my --getss too?
$ sudo losetup /dev/loop0 dd.bin
$
$ dmesg | tail -2
loop: loaded (max 8 devices)
loop:to x800 from lo_blocksize = 0x1000
$
$ sudo blockdev --getss /dev/loop0
512
$ sudo blockdev --getbsz /dev/loop0
4096
$
$ sudo blockdev --getss /dev/scd0
2048
$ sudo blockdev --getbsz /dev/scd0
4096
$
I'm pleased to report, patching drivers/block/loop.c as suggested,
specifically via the patch quoted below, did confuse udf.ko as well with
a loop device as does my real 2 KiB/block device.
Certainly I could and did then relay details to
linux_udf@hpesjro.fc.hp.com in a thread titled "balloc free bit already
set and byte minus one". But I'd of course like to make my loop device
as perfect a simulation of my real device as practical. So I ask:
Can I easily fix my --getss too?
Pat LaVarre
diff -Nur linux-2.6.0-test6/drivers/block/loop.c linux/drivers/block/loop.c
--- linux-2.6.0-test6/drivers/block/loop.c 2003-09-27 18:50:29.000000000 -0600
+++ linux/drivers/block/loop.c 2003-10-06 18:06:20.447708984 -0600
@@ -732,7 +732,13 @@
mapping_set_gfp_mask(inode->i_mapping,
lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
+#if 0
set_blocksize(bdev, lo_blocksize);
+#else
+ printk(KERN_INFO "loop:"
+ "to x800 from lo_blocksize = 0x%X\n", lo_blocksize);
+ set_blocksize(bdev, 0x800);
+#endif
lo->lo_bio = lo->lo_biotail = NULL;