Messages in this thread | | | Date | Sun, 22 Apr 2001 01:37:38 +0200 | Subject | Re: MO-Drive under 2.4.3 | From | Daniel Kobras <> |
| |
On Sat, Apr 14, 2001 at 03:29:45PM +0100, Alan Cox wrote: > > > This is a bug in the scsi layer. linux-scsi@vger.kernel.org, not that any of > > > the scsi maintainers seem to care about it right now. > > > > Err..., now I'm confused. Last time this issue popped up, it was my > > understanding that it's generic_file_{read,write}'s limitation to filesystems > > with logical_blksize >= hw_blksize that makes MOs fail with VFAT. Now, is > > this all moot, or is the SCSI thing just an additional problem? > > generic_file_* doesnt handle metadata issues - its too high up
As much as SCSI is too low down, so I still don't see why this should be a SCSI issue. Assuming requests are no smaller than hw_blksize looks rather sane for a low-level driver. It's still enforced in ll_rw_blk(). I'd rather blame the callers when they bypass the check via submit_bh().
More to the topic, FAT in 2.2 contained lots of special code to deal with bigblocks. In 2.4, this code got removed in favour of the generic functions in fs/buffer.c, to the effect that operations that happen to not deref a NULL pointer now request 2k blocks using 512 byte-calculated block numbers. I see two options:
a) Put in lots of bigblock special case code in FAT; b) teach submit_bh() or generic_make_request() to transparently reblock bhs < hw_blksize and remove most special cases from FAT. Specifically, it ought to stop pretending in sb->s_blocksize to use 2k blocks when the fs is really tied to 512 byte blocks.
I tend to favour b), but which one is more likely to be accepted?
Regards,
Daniel.
-- GNU/Linux Audio Mechanics - http://www.glame.de Cutting Edge Office - http://www.c10a02.de GPG Key ID 89BF7E2B - http://www.keyserver.net - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |