diff options
| author | Mikael Pettersson <mikpe@csd.uu.se> | 2002-05-22 00:31:36 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-05-22 00:31:36 -0700 |
| commit | d0f0cde199764cb083b3617c3739f45b1a73052d (patch) | |
| tree | 62bffa26a5e1588b0fc48a348d814ea383a445d7 /fs/block_dev.c | |
| parent | c14217358773b5954e4406e0bd63c75f8f66803f (diff) | |
[PATCH] possible fix for broken floppy driver, take 2
Here is an updated patch for the floppy driver which got broken in
2.5.13. "read block 0 on ->revalidate()" is now implemented through
the bio interface, following a suggestion by Christoph Hellwig.
I still cannot explain why block_dev.c's ->bd_block_size change
caused data corruption, but removing that code fixes the floppy
driver and doesn't seem to cause any problems on my test box.
Diffstat (limited to 'fs/block_dev.c')
| -rw-r--r-- | fs/block_dev.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index 654d98a256b0..27fd276f1a36 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -606,16 +606,7 @@ static int do_open(struct block_device *bdev, struct inode *inode, struct file * goto out2; } bdev->bd_inode->i_size = blkdev_size(dev); - if (!bdev->bd_openers) { - unsigned bsize = bdev_hardsect_size(bdev); - while (bsize < PAGE_CACHE_SIZE) { - if (bdev->bd_inode->i_size & bsize) - break; - bsize <<= 1; - } - bdev->bd_block_size = bsize; - bdev->bd_inode->i_blkbits = blksize_bits(bsize); - } + bdev->bd_inode->i_blkbits = blksize_bits(block_size(bdev)); bdev->bd_openers++; unlock_kernel(); up(&bdev->bd_sem); |
