2002-07-29 14:58:10

by Adam J. Richter

[permalink] [raw]
Subject: PATCH: linux-2.5.29/drivers/block/rd.c did not work with new do_open()

Hi Linus,

linux-2.5.28/drivers/block_dev.c has a new do_open that broke
initial ramdisk support, because it now requires devices that "manually"
set bdev->bd_openers to set bdev->bd_inode->i_size as well. The
following single line patch, suggested by Russell King, fixes the
problem.

There does not appear to be anyone acting as maintainer for
rd.c, so I posted to lkml yesterday to ask if anyone objected to my
submitting the patch to you, and I also emailed the message to Russell
King and Al Viro. Nobody has complained. I have been running the
patch for almost a day without problems.

Please apply. Thanks in advance.

Adam J. Richter __ ______________ 575 Oroville Road
[email protected] \ / Milpitas, California 95035
+1 408 309-6081 | g g d r a s i l United States of America
"Free Software For The Rest Of Us."


--- linux-2.5.29/drivers/block/rd.c 2002-07-26 19:58:39.000000000 -0700
+++ linux/drivers/block/rd.c 2002-07-28 16:59:05.000000000 -0700
@@ -379,6 +404,7 @@
rd_bdev[unit]->bd_openers++;
rd_bdev[unit]->bd_block_size = rd_blocksize;
rd_bdev[unit]->bd_inode->i_mapping->a_ops = &ramdisk_aops;
+ rd_bdev[unit]->bd_inode->i_size = rd_length[unit];
rd_bdev[unit]->bd_queue = &blk_dev[MAJOR_NR].request_queue;
}