Re: Problem loopmounting CD on 2.6.0

From: OGAWA Hirofumi
Date: Mon Dec 22 2003 - 09:44:02 EST


"Randy.Dunlap" <rddunlap@xxxxxxxx> writes:

> On Fri, 19 Dec 2003 14:10:44 +0100 Niels Elgaard Larsen <elgaard@xxxxxxx> wrote:
>
> | A similar (probably the same) problem have been reported for cryptoloop.
> | With a ISO9660 CD (actually Knoppix) in drive /dev/hdc, no SCSI emulation:
> |
> | amigos20:/mnt# losetup /dev/loop5 /dev/hdc
> | amigos20:/mnt# mount -r /dev/loop5 /mnt/foo
> |
> | Gives kernel output:
> |
> | ===
> | hdc: cdrom_read_intr: data underrun (2 blocks)
> | end_request: I/O error, dev hdc, sector 64
> | isofs_fill_super: bread failed, dev=loop5, iso_blknum=16, block=32
> | ===
> |
> | It works in 2.4.20
> |
> | Also
> |
> | dd if=/dev/hdc of=/tmp/foo
> | losetup /dev/loop5 /tmp/foo
> | mount -r /dev/loop5 /mnt/foo
> |
> | works
>
> I see differing sector size and block size reports by blockdev
> as follows. Is this OK/expected or does it hint at a problem?

Probably we need to set the hardsect_size of real device to loop.
At least, it seems this problem was fixed.

What do you think of the following patch?

drivers/block/loop.c | 1 +
1 files changed, 1 insertion(+)

diff -puN drivers/block/loop.c~loop-fix-hardsect_size drivers/block/loop.c
--- linux-2.6.0/drivers/block/loop.c~loop-fix-hardsect_size 2003-12-22 22:36:50.000000000 +0900
+++ linux-2.6.0-hirofumi/drivers/block/loop.c 2003-12-22 22:37:19.000000000 +0900
@@ -752,6 +752,7 @@ static int loop_set_fd(struct loop_devic
blk_queue_max_sectors(lo->lo_queue, q->max_sectors);
blk_queue_max_phys_segments(lo->lo_queue,q->max_phys_segments);
blk_queue_max_hw_segments(lo->lo_queue, q->max_hw_segments);
+ blk_queue_hardsect_size(lo->lo_queue, queue_hardsect_size(q));
blk_queue_max_segment_size(lo->lo_queue, q->max_segment_size);
blk_queue_segment_boundary(lo->lo_queue, q->seg_boundary_mask);
blk_queue_merge_bvec(lo->lo_queue, q->merge_bvec_fn);

_

--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/