hfs on scsi device

From: Masatake YAMATO
Date: Tue Dec 02 2003 - 08:28:49 EST


Hi,

2.4.23 kernel shows oops when I've tried to mount hfs file system
on a CDROM in scsi CDROM drive. (Strictly speaking I'm using ide-scsi
kernel parameter.) I inspect this issue.

This issue was reported and discussed this April:
http://www.ussg.iu.edu/hypermail/linux/kernel/0304.0/0365.html
http://marc.theaimsgroup.com/?l=linux-kernel&m=102890250915062&w=2


The symptom of oops is appeared in dmesg:

kernel BUG at buffer.c:2518!
...

The line is in grow_buffers() function:

/* Size must be multiple of hard sectorsize */
if (size & (get_hardsect_size(dev)-1))
BUG();

It seems that setting the block size is failed before the control reaches
this line.

With the following patch for linux-2.4.23/fs/hfs/super.c, you can avoid
the oops. The patch just checks the return value from set_blocksize.
If set_blocksize is failed, just return from the function(hfs_read_super).

Masatake YAMATO
jet@xxxxxxxx

397a398
> int dev_blocksize;
409c410,415
< set_blocksize(dev, HFS_SECTOR_SIZE);
---
> if (set_blocksize(dev, HFS_SECTOR_SIZE) < 0) {
> dev_blocksize = get_hardsect_size(dev);
> hfs_warn("hfs_fs: unsupported device block size: %d\n",
> dev_blocksize);
> goto bail3;
> }

-
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/