hfs on scsi device

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


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:

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

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

> int dev_blocksize;
< 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/