Re: another IDE cleanup: kill duplicated code

Vojtech Pavlik
2002-02-12T14:43:35Z

[-- Attachment #1: Type: text/plain, Size: 1846 bytes --]

On Tue, Feb 12, 2002 at 02:58:52PM +0100, Martin Dalecki wrote:

> Welcome the the "Write Only Variable" haters club ;-).
>
> Please note that the lvm code is playing mental with himself on the
> lv_read_ahead struct member as well.
> This member get's set saved preserved, but it's never used nowhere there:
>
> ./include/linux/lvm.h: uint lv_read_ahead;
> ./include/linux/lvm.h: uint32_t lv_read_ahead; /* HM */

The later (lv_disk_t) struct isn't used anywhere in the kernel -
probably defined for userspace only? That's weird! And also many other
structs in lvm.h are nowhere to be found used. Guess we could swipe them
out as well.

The first lv_read_ahead (in lv_t) removed. And references to it as well.

> > /* This specifies how many sectors to read ahead on the disk. */
> >
> >-int read_ahead[MAX_BLKDEV];
> >-
> >
>
> You did miss the comment by shooting above!

Second shot right on target!

> >diff -urN linux-2.5.4/include/linux/fs.h linux-2.5.4-readahead/include/linux/fs.h
> >--- linux-2.5.4/include/linux/fs.h Tue Feb 12 12:22:54 2002
> >+++ linux-2.5.4-readahead/include/linux/fs.h Tue Feb 12 14:32:32 2002
> >-#define BLKRASET _IO(0x12,98) /* Set read ahead for block device */
> >-#define BLKRAGET _IO(0x12,99) /* get current read ahead setting */
> >-#define BLKFRASET _IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */
> >-#define BLKFRAGET _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */
>
> I would rather suggest to to #if 0 ... #endif instead with a note about
> those values beeing no longer used.

Ok, makes sense.

> >- int max_readahead = get_max_readahead(inode);
> >+ int max_readahead = MAX_READAHEAD;
> >
>
> This wonders me a bit, why you didn't just propagate the constant deeper.

I was too hasty probably. Done now.

Patch v3 attached.

--
Vojtech Pavlik
SuSE Labs

[-- Attachment #2: readahead-clean-3.diff --]
[-- Type: text/plain, Size: 39285 bytes --]

diff -urN linux-2.5.4/Documentation/cdrom/sbpcd linux-2.5.4-readahead/Documentation/cdrom/sbpcd
--- linux-2.5.4/Documentation/cdrom/sbpcd Thu May 21 03:54:34 1998
+++ linux-2.5.4-readahead/Documentation/cdrom/sbpcd Tue Feb 12 14:26:50 2002
@@ -613,8 +613,8 @@
printf("READ d READ RAW w READ AUDIO A\n");
printf("MS-INFO M TOC T START S\n");
printf("SET EJECTSW X DEVICE D DEBUG Y\n");
- printf("AUDIO_BUFSIZ Z RESET R BLKRASET B\n");
- printf("SET VOLUME v GET VOLUME V\n");
+ printf("AUDIO_BUFSIZ Z RESET R SET VOLUME v\n");
+ printf("GET VOLUME V\n");
}

/*
@@ -881,12 +881,6 @@
case 'R':
rc=ioctl(drive,CDROMRESET);
if (rc<0) printf("CDROMRESET: rc=%d.\n",rc);
- break;
- case 'B': /* set the driver's (?) read ahead value */
- printf("enter read-ahead size: ? ");
- scanf("%d",&i);
- rc=ioctl(drive,BLKRASET,i);
- if (rc<0) printf("BLKRASET: rc=%d.\n",rc);
break;
#ifdef AZT_PRIVATE_IOCTLS /*not supported by every CDROM driver*/
case 'd':
diff -urN linux-2.5.4/arch/mips64/kernel/ioctl32.c linux-2.5.4-readahead/arch/mips64/kernel/ioctl32.c
--- linux-2.5.4/arch/mips64/kernel/ioctl32.c Sat Sep 1 20:01:28 2001
+++ linux-2.5.4-readahead/arch/mips64/kernel/ioctl32.c Tue Feb 12 14:32:28 2002
@@ -760,10 +760,6 @@
IOCTL32_HANDLER(BLKGETSIZE, w_long),

IOCTL32_DEFAULT(BLKFLSBUF),
- IOCTL32_DEFAULT(BLKRASET),
- IOCTL32_HANDLER(BLKRAGET, w_long),
- IOCTL32_DEFAULT(BLKFRASET),
- IOCTL32_HANDLER(BLKFRAGET, w_long),
IOCTL32_DEFAULT(BLKSECTSET),
IOCTL32_HANDLER(BLKSECTGET, w_long),
IOCTL32_DEFAULT(BLKSSZGET),
diff -urN linux-2.5.4/arch/sparc64/kernel/ioctl32.c linux-2.5.4-readahead/arch/sparc64/kernel/ioctl32.c
--- linux-2.5.4/arch/sparc64/kernel/ioctl32.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/arch/sparc64/kernel/ioctl32.c Tue Feb 12 15:31:57 2002
@@ -3997,8 +3997,6 @@
COMPATIBLE_IOCTL(BLKROGET)
COMPATIBLE_IOCTL(BLKRRPART)
COMPATIBLE_IOCTL(BLKFLSBUF)
-COMPATIBLE_IOCTL(BLKRASET)
-COMPATIBLE_IOCTL(BLKFRASET)
COMPATIBLE_IOCTL(BLKSECTSET)
COMPATIBLE_IOCTL(BLKSSZGET)
COMPATIBLE_IOCTL(BLKBSZGET)
@@ -4626,10 +4624,8 @@
HANDLE_IOCTL(SIOCRTMSG, ret_einval)
HANDLE_IOCTL(SIOCGSTAMP, do_siocgstamp)
HANDLE_IOCTL(HDIO_GETGEO, hdio_getgeo)
-HANDLE_IOCTL(BLKRAGET, w_long)
HANDLE_IOCTL(BLKGETSIZE, w_long)
HANDLE_IOCTL(0x1260, broken_blkgetsize)
-HANDLE_IOCTL(BLKFRAGET, w_long)
HANDLE_IOCTL(BLKSECTGET, w_long)
HANDLE_IOCTL(BLKPG, blkpg_ioctl_trans)
HANDLE_IOCTL(FBIOPUTCMAP32, fbiogetputcmap)
diff -urN linux-2.5.4/drivers/acorn/block/mfmhd.c linux-2.5.4-readahead/drivers/acorn/block/mfmhd.c
--- linux-2.5.4/drivers/acorn/block/mfmhd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/acorn/block/mfmhd.c Tue Feb 12 14:28:51 2002
@@ -1208,15 +1208,6 @@
return -EFAULT;
return 0;

- case BLKFRASET:
- if (!capable(CAP_SYS_ADMIN))
- return -EACCES;
- max_readahead[major][minor] = arg;
- return 0;
-
- case BLKFRAGET:
- return put_user(max_readahead[major][minor], (long *) arg);
-
case BLKSECTGET:
return put_user(max_sectors[major][minor], (long *) arg);

@@ -1230,8 +1221,6 @@
case BLKFLSBUF:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKPG:
return blk_ioctl(dev, cmd, arg);

@@ -1442,7 +1431,6 @@
hdc63463_irqpollmask = irqmask;

blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB?) read ahread */

add_gendisk(&mfm_gendisk);

diff -urN linux-2.5.4/drivers/block/DAC960.c linux-2.5.4-readahead/drivers/block/DAC960.c
--- linux-2.5.4/drivers/block/DAC960.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/block/DAC960.c Tue Feb 12 14:26:50 2002
@@ -1964,10 +1964,6 @@
Controller->GenericDiskInfo.sizes = Controller->PartitionSizes;
blksize_size[MajorNumber] = Controller->BlockSizes;
/*
- Initialize Read Ahead to 128 sectors.
- */
- read_ahead[MajorNumber] = 128;
- /*
Complete initialization of the Generic Disk Information structure.
*/
Controller->GenericDiskInfo.major = MajorNumber;
@@ -5399,8 +5395,6 @@
sizeof(DiskGeometry_T)) ? -EFAULT : 0);
case BLKGETSIZE:
case BLKGETSIZE64:
- case BLKRAGET:
- case BLKRASET:
case BLKFLSBUF:
case BLKBSZGET:
case BLKBSZSET:
diff -urN linux-2.5.4/drivers/block/acsi.c linux-2.5.4-readahead/drivers/block/acsi.c
--- linux-2.5.4/drivers/block/acsi.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/block/acsi.c Tue Feb 12 14:26:50 2002
@@ -1785,7 +1785,6 @@
STramMask = ATARIHW_PRESENT(EXTD_DMA) ? 0x00000000 : 0xff000000;

blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &acsi_lock);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read-ahead */
add_gendisk(&acsi_gendisk);

#ifdef CONFIG_ATARI_SLM
diff -urN linux-2.5.4/drivers/block/ataflop.c linux-2.5.4-readahead/drivers/block/ataflop.c
--- linux-2.5.4/drivers/block/ataflop.c Sun Dec 16 21:20:20 2001
+++ linux-2.5.4-readahead/drivers/block/ataflop.c Tue Feb 12 14:26:50 2002
@@ -1573,8 +1573,6 @@
switch (cmd) {
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
return blk_ioctl(device, cmd, param);
}
diff -urN linux-2.5.4/drivers/block/blkpg.c linux-2.5.4-readahead/drivers/block/blkpg.c
--- linux-2.5.4/drivers/block/blkpg.c Tue Feb 12 12:22:52 2002
+++ linux-2.5.4-readahead/drivers/block/blkpg.c Tue Feb 12 14:27:49 2002
@@ -29,7 +29,7 @@
*/

#include <linux/errno.h>
-#include <linux/fs.h> /* for BLKRASET, ... */
+#include <linux/fs.h> /* for BLKROSET, ... */
#include <linux/sched.h> /* for capable() */
#include <linux/blk.h> /* for set_device_ro() */
#include <linux/blkpg.h>
@@ -226,31 +226,6 @@
case BLKROGET:
intval = (is_read_only(dev) != 0);
return put_user(intval, (int *)(arg));
-
- case BLKRASET:
- if(!capable(CAP_SYS_ADMIN))
- return -EACCES;
- if(arg > 0xff)
- return -EINVAL;
- read_ahead[major(dev)] = arg;
- return 0;
- case BLKRAGET:
- if (!arg)
- return -EINVAL;
- return put_user(read_ahead[major(dev)], (long *) arg);
-
- case BLKFRASET:
- if (!capable(CAP_SYS_ADMIN))
- return -EACCES;
- if (!(iptr = max_readahead[major(dev)]))
- return -EINVAL;
- iptr[minor(dev)] = arg;
- return 0;
-
- case BLKFRAGET:
- if (!(iptr = max_readahead[major(dev)]))
- return -EINVAL;
- return put_user(iptr[minor(dev)], (long *) arg);

case BLKSECTGET:
if ((q = blk_get_queue(dev)) == NULL)
diff -urN linux-2.5.4/drivers/block/cciss.c linux-2.5.4-readahead/drivers/block/cciss.c
--- linux-2.5.4/drivers/block/cciss.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/drivers/block/cciss.c Tue Feb 12 14:26:50 2002
@@ -471,8 +471,6 @@
case BLKBSZGET:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKPG:
return blk_ioctl(inode->i_rdev, cmd, arg);
case CCISS_GETPCIINFO:
@@ -2542,7 +2540,6 @@

/* fill in the other Kernel structs */
blksize_size[MAJOR_NR+i] = hba[i]->blocksizes;
- read_ahead[MAJOR_NR+i] = READ_AHEAD;

/* Fill in the gendisk data */
hba[i]->gendisk.major = MAJOR_NR + i;
diff -urN linux-2.5.4/drivers/block/cpqarray.c linux-2.5.4-readahead/drivers/block/cpqarray.c
--- linux-2.5.4/drivers/block/cpqarray.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/block/cpqarray.c Tue Feb 12 14:26:50 2002
@@ -481,7 +481,6 @@
blk_queue_max_phys_segments(q, SG_MAX);

blksize_size[MAJOR_NR+i] = ida_blocksizes + (i*256);
- read_ahead[MAJOR_NR+i] = READ_AHEAD;

ida_gendisk[i].major = MAJOR_NR + i;
ida_gendisk[i].major_name = "ida";
@@ -1181,8 +1180,6 @@
case BLKBSZGET:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKPG:
return blk_ioctl(inode->i_rdev, cmd, arg);

diff -urN linux-2.5.4/drivers/block/floppy.c linux-2.5.4-readahead/drivers/block/floppy.c
--- linux-2.5.4/drivers/block/floppy.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/block/floppy.c Tue Feb 12 14:26:50 2002
@@ -3448,8 +3448,6 @@
switch (cmd) {
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
return blk_ioctl(device, cmd, param);
}
diff -urN linux-2.5.4/drivers/block/ll_rw_blk.c linux-2.5.4-readahead/drivers/block/ll_rw_blk.c
--- linux-2.5.4/drivers/block/ll_rw_blk.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/drivers/block/ll_rw_blk.c Tue Feb 12 15:26:23 2002
@@ -54,10 +54,6 @@
*/
DECLARE_TASK_QUEUE(tq_disk);

-/* This specifies how many sectors to read ahead on the disk. */
-
-int read_ahead[MAX_BLKDEV];
-
/* blk_dev_struct is:
* request_queue
* *queue
@@ -84,11 +80,6 @@
int * blksize_size[MAX_BLKDEV];

/*
- * The following tunes the read-ahead algorithm in mm/filemap.c
- */
-int * max_readahead[MAX_BLKDEV];
-
-/*
* How many reqeusts do we allocate per queue,
* and how many do we "batch" on freeing them?
*/
@@ -1689,7 +1680,6 @@
dev->queue = NULL;

memset(ro_bits,0,sizeof(ro_bits));
- memset(max_readahead, 0, sizeof(max_readahead));

total_ram = nr_free_pages() << (PAGE_SHIFT - 10);

diff -urN linux-2.5.4/drivers/block/paride/pcd.c linux-2.5.4-readahead/drivers/block/paride/pcd.c
--- linux-2.5.4/drivers/block/paride/pcd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/block/paride/pcd.c Tue Feb 12 14:26:50 2002
@@ -358,7 +358,6 @@
}

blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &pcd_lock);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read ahead */

for (i=0;i<PCD_UNITS;i++) pcd_blocksizes[i] = 1024;
blksize_size[MAJOR_NR] = pcd_blocksizes;
diff -urN linux-2.5.4/drivers/block/paride/pd.c linux-2.5.4-readahead/drivers/block/paride/pd.c
--- linux-2.5.4/drivers/block/paride/pd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/block/paride/pd.c Tue Feb 12 14:26:50 2002
@@ -397,7 +397,6 @@
q = BLK_DEFAULT_QUEUE(MAJOR_NR);
blk_init_queue(q, DEVICE_REQUEST, &pd_lock);
blk_queue_max_sectors(q, cluster);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read ahead */

pd_gendisk.major = major;
pd_gendisk.major_name = name;
@@ -480,8 +479,6 @@
case BLKGETSIZE64:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
case BLKPG:
return blk_ioctl(inode->i_rdev, cmd, arg);
diff -urN linux-2.5.4/drivers/block/paride/pf.c linux-2.5.4-readahead/drivers/block/paride/pf.c
--- linux-2.5.4/drivers/block/paride/pf.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/drivers/block/paride/pf.c Tue Feb 12 14:26:50 2002
@@ -363,7 +363,6 @@
blk_init_queue(q, DEVICE_REQUEST, &pf_spin_lock);
blk_queue_max_phys_segments(q, cluster);
blk_queue_max_hw_segments(q, cluster);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read ahead */

for (i=0;i<PF_UNITS;i++) pf_blocksizes[i] = 1024;
blksize_size[MAJOR_NR] = pf_blocksizes;
@@ -433,8 +432,6 @@
return put_user((u64)PF.capacity << 9,(u64 *)arg);
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
return blk_ioctl(inode->i_rdev, cmd, arg);
default:
diff -urN linux-2.5.4/drivers/block/ps2esdi.c linux-2.5.4-readahead/drivers/block/ps2esdi.c
--- linux-2.5.4/drivers/block/ps2esdi.c Tue Feb 12 12:22:52 2002
+++ linux-2.5.4-readahead/drivers/block/ps2esdi.c Tue Feb 12 14:26:50 2002
@@ -177,7 +177,6 @@
}
/* set up some global information - indicating device specific info */
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &ps2esdi_lock);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read ahead */

/* some minor housekeeping - setup the global gendisk structure */
add_gendisk(&ps2esdi_gendisk);
@@ -1108,8 +1107,6 @@
case BLKGETSIZE64:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
case BLKBSZGET:
case BLKBSZSET:
diff -urN linux-2.5.4/drivers/block/xd.c linux-2.5.4-readahead/drivers/block/xd.c
--- linux-2.5.4/drivers/block/xd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/block/xd.c Tue Feb 12 14:26:50 2002
@@ -171,7 +171,6 @@
}
devfs_handle = devfs_mk_dir (NULL, xd_gendisk.major_name, NULL);
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &xd_lock);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read ahead */
add_gendisk(&xd_gendisk);
xd_geninit();

@@ -355,8 +354,6 @@
case BLKFLSBUF:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKPG:
return blk_ioctl(inode->i_rdev, cmd, arg);

diff -urN linux-2.5.4/drivers/cdrom/aztcd.c linux-2.5.4-readahead/drivers/cdrom/aztcd.c
--- linux-2.5.4/drivers/cdrom/aztcd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/aztcd.c Tue Feb 12 14:26:50 2002
@@ -1927,7 +1927,6 @@
}
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &aztSpin);
blksize_size[MAJOR_NR] = aztcd_blocksizes;
- read_ahead[MAJOR_NR] = 4;
register_disk(NULL, mk_kdev(MAJOR_NR, 0), 1, &azt_fops, 0);

if ((azt_port == 0x1f0) || (azt_port == 0x170))
diff -urN linux-2.5.4/drivers/cdrom/cdu31a.c linux-2.5.4-readahead/drivers/cdrom/cdu31a.c
--- linux-2.5.4/drivers/cdrom/cdu31a.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/cdu31a.c Tue Feb 12 14:26:50 2002
@@ -3442,7 +3442,6 @@
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR),
DEVICE_REQUEST,
&cdu31a_lock);
- read_ahead[MAJOR_NR] = CDU31A_READAHEAD;
cdu31a_block_size = 1024; /* 1kB default block size */
/* use 'mount -o block=2048' */
blksize_size[MAJOR_NR] = &cdu31a_block_size;
diff -urN linux-2.5.4/drivers/cdrom/cm206.c linux-2.5.4-readahead/drivers/cdrom/cm206.c
--- linux-2.5.4/drivers/cdrom/cm206.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/cm206.c Tue Feb 12 14:26:50 2002
@@ -1503,7 +1503,6 @@
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST,
&cm206_lock);
blksize_size[MAJOR_NR] = cm206_blocksizes;
- read_ahead[MAJOR_NR] = 16; /* reads ahead what? */
init_bh(CM206_BH, cm206_bh);

memset(cd, 0, sizeof(*cd)); /* give'm some reasonable value */
diff -urN linux-2.5.4/drivers/cdrom/gscd.c linux-2.5.4-readahead/drivers/cdrom/gscd.c
--- linux-2.5.4/drivers/cdrom/gscd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/gscd.c Tue Feb 12 14:26:50 2002
@@ -1022,7 +1022,6 @@

blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &gscd_lock);
blksize_size[MAJOR_NR] = gscd_blocksizes;
- read_ahead[MAJOR_NR] = 4;

disk_state = 0;
gscdPresent = 1;
diff -urN linux-2.5.4/drivers/cdrom/mcd.c linux-2.5.4-readahead/drivers/cdrom/mcd.c
--- linux-2.5.4/drivers/cdrom/mcd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/mcd.c Tue Feb 12 14:26:50 2002
@@ -1075,7 +1075,6 @@
blksize_size[MAJOR_NR] = mcd_blocksizes;
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST,
&mcd_spinlock);
- read_ahead[MAJOR_NR] = 4;

/* check for card */

diff -urN linux-2.5.4/drivers/cdrom/mcdx.c linux-2.5.4-readahead/drivers/cdrom/mcdx.c
--- linux-2.5.4/drivers/cdrom/mcdx.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/mcdx.c Tue Feb 12 14:26:50 2002
@@ -1184,7 +1184,6 @@

blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST,
&mcdx_lock);
- read_ahead[MAJOR_NR] = READ_AHEAD;
blksize_size[MAJOR_NR] = mcdx_blocksizes;

xtrace(INIT, "init() subscribe irq and i/o\n");
diff -urN linux-2.5.4/drivers/cdrom/optcd.c linux-2.5.4-readahead/drivers/cdrom/optcd.c
--- linux-2.5.4/drivers/cdrom/optcd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/optcd.c Tue Feb 12 14:26:50 2002
@@ -2062,7 +2062,6 @@
blksize_size[MAJOR_NR] = &blksize;
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST,
&optcd_lock);
- read_ahead[MAJOR_NR] = 4;
request_region(optcd_port, 4, "optcd");
register_disk(NULL, mk_kdev(MAJOR_NR,0), 1, &opt_fops, 0);

diff -urN linux-2.5.4/drivers/cdrom/sbpcd.c linux-2.5.4-readahead/drivers/cdrom/sbpcd.c
--- linux-2.5.4/drivers/cdrom/sbpcd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/sbpcd.c Tue Feb 12 14:26:50 2002
@@ -4531,12 +4531,6 @@
RETURN_UP(0);
} /* end of CDROMREADAUDIO */

- case BLKRASET:
- if(!capable(CAP_SYS_ADMIN)) RETURN_UP(-EACCES);
- if(kdev_none(cdi->dev)) RETURN_UP(-EINVAL);
- if(arg > 0xff) RETURN_UP(-EINVAL);
- read_ahead[major(cdi->dev)] = arg;
- RETURN_UP(0);
default:
msg(DBG_IOC,"ioctl: unknown function request %04X\n", cmd);
RETURN_UP(-EINVAL);
diff -urN linux-2.5.4/drivers/cdrom/sjcd.c linux-2.5.4-readahead/drivers/cdrom/sjcd.c
--- linux-2.5.4/drivers/cdrom/sjcd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/sjcd.c Tue Feb 12 14:26:50 2002
@@ -1695,7 +1695,6 @@
}

blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST,&sjcd_lock);
- read_ahead[MAJOR_NR] = 4;
register_disk(NULL, mk_kdev(MAJOR_NR, 0), 1, &sjcd_fops, 0);

if (check_region(sjcd_base, 4)) {
diff -urN linux-2.5.4/drivers/cdrom/sonycd535.c linux-2.5.4-readahead/drivers/cdrom/sonycd535.c
--- linux-2.5.4/drivers/cdrom/sonycd535.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/cdrom/sonycd535.c Tue Feb 12 14:26:50 2002
@@ -1598,7 +1598,6 @@
}
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &sonycd535_lock);
blksize_size[MAJOR_NR] = &sonycd535_block_size;
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read-ahead */

sony_toc = (struct s535_sony_toc *)
kmalloc(sizeof *sony_toc, GFP_KERNEL);
diff -urN linux-2.5.4/drivers/ide/ataraid.c linux-2.5.4-readahead/drivers/ide/ataraid.c
--- linux-2.5.4/drivers/ide/ataraid.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/ide/ataraid.c Tue Feb 12 14:27:55 2002
@@ -289,7 +289,6 @@
hardsect_size[ATAMAJOR] = NULL;
blk_size[ATAMAJOR] = NULL;
blksize_size[ATAMAJOR] = NULL;
- max_readahead[ATAMAJOR] = NULL;

del_gendisk(&ataraid_gendisk);

diff -urN linux-2.5.4/drivers/ide/hd.c linux-2.5.4-readahead/drivers/ide/hd.c
--- linux-2.5.4/drivers/ide/hd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/ide/hd.c Tue Feb 12 14:26:50 2002
@@ -652,8 +652,6 @@
case BLKGETSIZE64:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
case BLKPG:
return blk_ioctl(inode->i_rdev, cmd, arg);
@@ -837,7 +835,6 @@
}
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST, &hd_lock);
blk_queue_max_sectors(BLK_DEFAULT_QUEUE(MAJOR_NR), 255);
- read_ahead[MAJOR_NR] = 8; /* 8 sector (4kB) read-ahead */
add_gendisk(&hd_gendisk);
init_timer(&device_timer);
device_timer.function = hd_times_out;
diff -urN linux-2.5.4/drivers/ide/ide-cd.c linux-2.5.4-readahead/drivers/ide/ide-cd.c
--- linux-2.5.4/drivers/ide/ide-cd.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/drivers/ide/ide-cd.c Tue Feb 12 14:26:50 2002
@@ -2659,11 +2659,6 @@

static void ide_cdrom_add_settings(ide_drive_t *drive)
{
- int major = HWIF(drive)->major;
- int minor = drive->select.b.unit << PARTN_BITS;
-
- ide_add_setting(drive, "breada_readahead", SETTING_RW, BLKRAGET, BLKRASET, TYPE_INT, 0, 255, 1, 2, &read_ahead[major], NULL);
- ide_add_setting(drive, "file_readahead", SETTING_RW, BLKFRAGET, BLKFRASET, TYPE_INTA, 0, INT_MAX, 1, 1024, &max_readahead[major][minor], NULL);
ide_add_setting(drive, "dsc_overlap", SETTING_RW, -1, -1, TYPE_BYTE, 0, 1, 1, 1, &drive->dsc_overlap, NULL);
}

diff -urN linux-2.5.4/drivers/ide/ide-disk.c linux-2.5.4-readahead/drivers/ide/ide-disk.c
--- linux-2.5.4/drivers/ide/ide-disk.c Tue Feb 12 12:22:53 2002
+++ linux-2.5.4-readahead/drivers/ide/ide-disk.c Tue Feb 12 14:26:50 2002
@@ -916,8 +916,6 @@
ide_add_setting(drive, "bswap", SETTING_READ, -1, -1, TYPE_BYTE, 0, 1, 1, 1, &drive->bswap, NULL);
ide_add_setting(drive, "multcount", id ? SETTING_RW : SETTING_READ, HDIO_GET_MULTCOUNT, HDIO_SET_MULTCOUNT, TYPE_BYTE, 0, id ? id->max_multsect : 0, 1, 1, &drive->mult_count, set_multcount);
ide_add_setting(drive, "nowerr", SETTING_RW, HDIO_GET_NOWERR, HDIO_SET_NOWERR, TYPE_BYTE, 0, 1, 1, 1, &drive->nowerr, set_nowerr);
- ide_add_setting(drive, "breada_readahead", SETTING_RW, BLKRAGET, BLKRASET, TYPE_INT, 0, 255, 1, 1, &read_ahead[major], NULL);
- ide_add_setting(drive, "file_readahead", SETTING_RW, BLKFRAGET, BLKFRASET, TYPE_INTA, 0, 4096, PAGE_SIZE, 1024, &max_readahead[major][minor], NULL);
ide_add_setting(drive, "lun", SETTING_RW, -1, -1, TYPE_INT, 0, 7, 1, 1, &drive->lun, NULL);
ide_add_setting(drive, "wcache", SETTING_RW, HDIO_GET_WCACHE, HDIO_SET_WCACHE, TYPE_BYTE, 0, 1, 1, 1, &drive->wcache, write_cache);
ide_add_setting(drive, "acoustic", SETTING_RW, HDIO_GET_ACOUSTIC, HDIO_SET_ACOUSTIC, TYPE_BYTE, 0, 254, 1, 1, &drive->acoustic, set_acoustic);
diff -urN linux-2.5.4/drivers/ide/ide-floppy.c linux-2.5.4-readahead/drivers/ide/ide-floppy.c
--- linux-2.5.4/drivers/ide/ide-floppy.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/drivers/ide/ide-floppy.c Tue Feb 12 14:26:50 2002
@@ -1968,8 +1968,6 @@
ide_add_setting(drive, "bios_cyl", SETTING_RW, -1, -1, TYPE_INT, 0, 1023, 1, 1, &drive->bios_cyl, NULL);
ide_add_setting(drive, "bios_head", SETTING_RW, -1, -1, TYPE_BYTE, 0, 255, 1, 1, &drive->bios_head, NULL);
ide_add_setting(drive, "bios_sect", SETTING_RW, -1, -1, TYPE_BYTE, 0, 63, 1, 1, &drive->bios_sect, NULL);
- ide_add_setting(drive, "breada_readahead", SETTING_RW, BLKRAGET, BLKRASET, TYPE_INT, 0, 255, 1, 2, &read_ahead[major], NULL);
- ide_add_setting(drive, "file_readahead", SETTING_RW, BLKFRAGET, BLKFRASET, TYPE_INTA, 0, INT_MAX, 1, 1024, &max_readahead[major][minor], NULL);

}

diff -urN linux-2.5.4/drivers/ide/ide-probe.c linux-2.5.4-readahead/drivers/ide/ide-probe.c
--- linux-2.5.4/drivers/ide/ide-probe.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/drivers/ide/ide-probe.c Tue Feb 12 14:26:50 2002
@@ -802,35 +802,27 @@
}
#endif

- minors = units * (1<<PARTN_BITS);
- gd = kmalloc (sizeof(struct gendisk), GFP_KERNEL);
+ minors = units * (1<<PARTN_BITS);
+
+ gd = kmalloc (sizeof(struct gendisk), GFP_KERNEL);
if (!gd)
goto err_kmalloc_gd;
gd->sizes = kmalloc (minors * sizeof(int), GFP_KERNEL);
if (!gd->sizes)
goto err_kmalloc_gd_sizes;
- gd->part = kmalloc (minors * sizeof(struct hd_struct), GFP_KERNEL);
+ gd->part = kmalloc (minors * sizeof(struct hd_struct), GFP_KERNEL);
if (!gd->part)
goto err_kmalloc_gd_part;
- bs = kmalloc (minors*sizeof(int), GFP_KERNEL);
- if (!bs)
+ blksize_size[hwif->major] = kmalloc (minors*sizeof(int), GFP_KERNEL);
+ if (!blksize_size[hwif->major])
goto err_kmalloc_bs;
- max_ra = kmalloc (minors*sizeof(int), GFP_KERNEL);
- if (!max_ra)
- goto err_kmalloc_max_ra;

memset(gd->part, 0, minors * sizeof(struct hd_struct));

- /* cdroms and msdos f/s are examples of non-1024 blocksizes */
- blksize_size[hwif->major] = bs;
- max_readahead[hwif->major] = max_ra;
- for (unit = 0; unit < minors; ++unit) {
- *bs++ = BLOCK_SIZE;
- *max_ra++ = MAX_READAHEAD;
- }
-
- for (unit = 0; unit < units; ++unit)
+ for (unit = 0; unit < minors; unit++) {
+ blksize_size[hwif->major][unit] = BLOCK_SIZE;
hwif->drives[unit].part = &gd->part[unit << PARTN_BITS];
+ }

gd->major = hwif->major; /* our major device number */
gd->major_name = IDE_MAJOR_NAME; /* treated special in genhd.c */
@@ -875,8 +867,6 @@
}
return;

-err_kmalloc_max_ra:
- kfree(bs);
err_kmalloc_bs:
kfree(gd->part);
err_kmalloc_gd_part:
@@ -937,7 +927,6 @@
init_gendisk(hwif);
blk_dev[hwif->major].data = hwif;
blk_dev[hwif->major].queue = ide_get_queue;
- read_ahead[hwif->major] = 8; /* (4kB) */
hwif->present = 1; /* success */

return hwif->present;
diff -urN linux-2.5.4/drivers/ide/ide.c linux-2.5.4-readahead/drivers/ide/ide.c
--- linux-2.5.4/drivers/ide/ide.c Tue Feb 12 12:22:53 2002
+++ linux-2.5.4-readahead/drivers/ide/ide.c Tue Feb 12 14:26:50 2002
@@ -2126,7 +2126,6 @@
*/
unregister_blkdev(hwif->major, hwif->name);
kfree(blksize_size[hwif->major]);
- kfree(max_readahead[hwif->major]);
blk_dev[hwif->major].data = NULL;
blk_dev[hwif->major].queue = NULL;
blk_clear(hwif->major);
diff -urN linux-2.5.4/drivers/md/lvm.c linux-2.5.4-readahead/drivers/md/lvm.c
--- linux-2.5.4/drivers/md/lvm.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/md/lvm.c Tue Feb 12 15:25:19 2002
@@ -226,10 +226,6 @@

#include "lvm-internal.h"

-#define LVM_CORRECT_READ_AHEAD( a) \
- if ( a < LVM_MIN_READ_AHEAD || \
- a > LVM_MAX_READ_AHEAD) a = LVM_MAX_READ_AHEAD;
-
#ifndef WRITEA
# define WRITEA WRITE
#endif
@@ -883,29 +879,6 @@
invalidate_buffers(inode->i_rdev);
break;

-
- case BLKRASET:
- /* set read ahead for block device */
- if (!capable(CAP_SYS_ADMIN)) return -EACCES;
-
- P_IOCTL("BLKRASET: %ld sectors for %s\n",
- (long) arg, kdevname(inode->i_rdev));
-
- if ((long) arg < LVM_MIN_READ_AHEAD ||
- (long) arg > LVM_MAX_READ_AHEAD)
- return -EINVAL;
- lv_ptr->lv_read_ahead = (long) arg;
- break;
-
-
- case BLKRAGET:
- /* get current read ahead setting */
- P_IOCTL("BLKRAGET %d\n", lv_ptr->lv_read_ahead);
- if (put_user(lv_ptr->lv_read_ahead, (long *)arg))
- return -EFAULT;
- break;
-
-
case HDIO_GETGEO:
/* get disk geometry */
P_IOCTL("%s -- lvm_blk_ioctl -- HDIO_GETGEO\n", lvm_name);
@@ -2035,7 +2008,6 @@
lvm_size[minor(lv_ptr->lv_dev)] = lv_ptr->lv_size >> 1;
vg_lv_map[minor(lv_ptr->lv_dev)].vg_number = vg_ptr->vg_number;
vg_lv_map[minor(lv_ptr->lv_dev)].lv_number = lv_ptr->lv_number;
- LVM_CORRECT_READ_AHEAD(lv_ptr->lv_read_ahead);
vg_ptr->lv_cur++;
lv_ptr->lv_status = lv_status_save;

diff -urN linux-2.5.4/drivers/md/md.c linux-2.5.4-readahead/drivers/md/md.c
--- linux-2.5.4/drivers/md/md.c Thu Jan 31 16:45:20 2002
+++ linux-2.5.4-readahead/drivers/md/md.c Tue Feb 12 14:28:55 2002
@@ -1737,7 +1737,6 @@
register_disk(&md_gendisk, mk_kdev(MAJOR_NR,mdidx(mddev)),
1, &md_fops, md_size[mdidx(mddev)]<<1);

- read_ahead[MD_MAJOR] = 1024;
return (0);
}

@@ -2622,8 +2621,6 @@
(u64 *) arg);
goto done;

- case BLKRAGET:
- case BLKRASET:
case BLKFLSBUF:
case BLKBSZGET:
case BLKBSZSET:
@@ -3176,13 +3173,6 @@

sz += sprintf(page+sz, "\n");

-
- sz += sprintf(page+sz, "read_ahead ");
- if (read_ahead[MD_MAJOR] == INT_MAX)
- sz += sprintf(page+sz, "not set\n");
- else
- sz += sprintf(page+sz, "%d sectors\n", read_ahead[MD_MAJOR]);
-
ITERATE_MDDEV(mddev,tmp) {
sz += sprintf(page + sz, "md%d : %sactive", mdidx(mddev),
mddev->pers ? "" : "in");
@@ -3622,7 +3612,6 @@
}
blksize_size[MAJOR_NR] = md_blocksizes;
blk_size[MAJOR_NR] = md_size;
- max_readahead[MAJOR_NR] = md_maxreadahead;

dprintk("md: sizeof(mdp_super_t) = %d\n", (int)sizeof(mdp_super_t));

@@ -3657,9 +3646,6 @@

/* forward all md request to md_make_request */
blk_queue_make_request(BLK_DEFAULT_QUEUE(MAJOR_NR), md_make_request);
-
-
- read_ahead[MAJOR_NR] = INT_MAX;

add_gendisk(&md_gendisk);

diff -urN linux-2.5.4/drivers/message/i2o/i2o_block.c linux-2.5.4-readahead/drivers/message/i2o/i2o_block.c
--- linux-2.5.4/drivers/message/i2o/i2o_block.c Tue Feb 12 12:22:53 2002
+++ linux-2.5.4-readahead/drivers/message/i2o/i2o_block.c Tue Feb 12 14:26:50 2002
@@ -1104,8 +1104,6 @@
case BLKFLSBUF:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKPG:
return blk_ioctl(inode->i_rdev, cmd, arg);

diff -urN linux-2.5.4/drivers/s390/block/dasd.c linux-2.5.4-readahead/drivers/s390/block/dasd.c
--- linux-2.5.4/drivers/s390/block/dasd.c Sun Dec 9 05:02:47 2001
+++ linux-2.5.4-readahead/drivers/s390/block/dasd.c Tue Feb 12 14:26:50 2002
@@ -2489,8 +2489,6 @@
case BLKSSZGET:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
case BLKPG:
case BLKELVGET:
diff -urN linux-2.5.4/drivers/s390/block/xpram.c linux-2.5.4-readahead/drivers/s390/block/xpram.c
--- linux-2.5.4/drivers/s390/block/xpram.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/s390/block/xpram.c Tue Feb 12 14:26:50 2002
@@ -659,26 +659,9 @@
if ( capable(CAP_SYS_ADMIN) )invalidate_buffers(inode->i_rdev);
return 0;

- case BLKRAGET: /* return the readahead value, 0x1263 */
- if (!arg) return -EINVAL;
- err = 0; /* verify_area_20(VERIFY_WRITE, (long *) arg, sizeof(long));
- * if (err) return err;
- */
- put_user(read_ahead[MAJOR(inode->i_rdev)], (long *)arg);
-
- return 0;
-
- case BLKRASET: /* set the readahead value, 0x1262 */
- if (!capable(CAP_SYS_ADMIN)) return -EACCES;
- if (arg > 0xff) return -EINVAL; /* limit it */
- read_ahead[MAJOR(inode->i_rdev)] = arg;
- atomic_eieio();
- return 0;
-
case BLKRRPART: /* re-read partition table: can't do it, 0x1259 */
return -EINVAL;

-
#if (XPRAM_VERSION == 22)
RO_IOCTLS(inode->i_rdev, arg); /* the default RO operations
* BLKROSET
@@ -1042,7 +1025,6 @@
q = BLK_DEFAULT_QUEUE (major);
blk_init_queue (q, xpram_request);
#endif /* V22/V24 */
- read_ahead[major] = xpram_rahead;

/* we want to have XPRAM_UNUSED blocks security buffer between devices */
mem_usable=xpram_mem_avail-(XPRAM_UNUSED*(xpram_devs-1));
@@ -1181,7 +1163,6 @@
kfree(xpram_hardsects);
hardsect_size[major] = NULL;
fail_malloc:
- read_ahead[major] = 0;
#if (XPRAM_VERSION == 22)
blk_dev[major].request_fn = NULL;
#endif /* V22 */
diff -urN linux-2.5.4/drivers/s390/char/tapeblock.c linux-2.5.4-readahead/drivers/s390/char/tapeblock.c
--- linux-2.5.4/drivers/s390/char/tapeblock.c Sun Dec 9 05:02:47 2001
+++ linux-2.5.4-readahead/drivers/s390/char/tapeblock.c Tue Feb 12 14:26:50 2002
@@ -101,7 +101,6 @@
}
if (tapeblock_major == 0) tapeblock_major = result; /* accept dynamic major number*/
INIT_BLK_DEV(tapeblock_major,tape_request_fn,tapeblock_getqueue,NULL);
- read_ahead[tapeblock_major]=TAPEBLOCK_READAHEAD;
PRINT_WARN(KERN_ERR " tape gets major %d for block device\n", result);
blk_size[tapeblock_major] = (int*) kmalloc (256*sizeof(int),GFP_ATOMIC);
memset(blk_size[tapeblock_major],0,256*sizeof(int));
diff -urN linux-2.5.4/drivers/scsi/sd.c linux-2.5.4-readahead/drivers/scsi/sd.c
--- linux-2.5.4/drivers/scsi/sd.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/scsi/sd.c Tue Feb 12 14:26:50 2002
@@ -228,8 +228,6 @@
case BLKGETSIZE64:
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
case BLKSSZGET:
case BLKPG:
@@ -1190,18 +1188,6 @@
rscsi_disks[i].has_part_table = 1;
}
}
- /* If our host adapter is capable of scatter-gather, then we increase
- * the read-ahead to 60 blocks (120 sectors). If not, we use
- * a two block (4 sector) read ahead. We can only respect this with the
- * granularity of every 16 disks (one device major).
- */
- for (i = 0; i < N_USED_SD_MAJORS; i++) {
- read_ahead[SD_MAJOR(i)] =
- (rscsi_disks[i * SCSI_DISKS_PER_MAJOR].device
- && rscsi_disks[i * SCSI_DISKS_PER_MAJOR].device->host->sg_tablesize)
- ? 120 /* 120 sector read-ahead */
- : 4; /* 4 sector read-ahead */
- }

return;
}
diff -urN linux-2.5.4/drivers/scsi/sr.c linux-2.5.4-readahead/drivers/scsi/sr.c
--- linux-2.5.4/drivers/scsi/sr.c Thu Jan 31 16:45:21 2002
+++ linux-2.5.4-readahead/drivers/scsi/sr.c Tue Feb 12 14:26:50 2002
@@ -785,16 +785,6 @@
&sr_bdops, NULL);
register_cdrom(&scsi_CDs[i].cdi);
}
-
-
- /* If our host adapter is capable of scatter-gather, then we increase
- * the read-ahead to 16 blocks (32 sectors). If not, we use
- * a two block (4 sector) read ahead. */
- if (scsi_CDs[0].device && scsi_CDs[0].device->host->sg_tablesize)
- read_ahead[MAJOR_NR] = 32; /* 32 sector read-ahead. Always removable. */
- else
- read_ahead[MAJOR_NR] = 4; /* 4 sector read-ahead */
-
}

static void sr_detach(Scsi_Device * SDp)
@@ -846,7 +836,6 @@
kfree(sr_blocksizes);
sr_blocksizes = NULL;
}
- read_ahead[MAJOR_NR] = 0;
blk_clear(MAJOR_NR);

sr_template.dev_max = 0;
diff -urN linux-2.5.4/drivers/scsi/sr_ioctl.c linux-2.5.4-readahead/drivers/scsi/sr_ioctl.c
--- linux-2.5.4/drivers/scsi/sr_ioctl.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/drivers/scsi/sr_ioctl.c Tue Feb 12 14:26:50 2002
@@ -550,8 +550,6 @@
return put_user((u64)scsi_CDs[target].capacity << 9, (u64 *)arg);
case BLKROSET:
case BLKROGET:
- case BLKRASET:
- case BLKRAGET:
case BLKFLSBUF:
case BLKSSZGET:
return blk_ioctl(cdi->dev, cmd, arg);
diff -urN linux-2.5.4/fs/hfs/file.c linux-2.5.4-readahead/fs/hfs/file.c
--- linux-2.5.4/fs/hfs/file.c Sun Jan 20 11:49:26 2002
+++ linux-2.5.4-readahead/fs/hfs/file.c Tue Feb 12 14:26:50 2002
@@ -163,8 +163,7 @@
if (left <= 0) {
return 0;
}
- if ((read = hfs_do_read(inode, HFS_I(inode)->fork, pos,
- buf, left, filp->f_reada != 0)) > 0) {
+ if ((read = hfs_do_read(inode, HFS_I(inode)->fork, pos, buf, left)) > 0) {
*ppos += read;
filp->f_reada = 1;
}
@@ -288,7 +287,7 @@
* It has been changed to take into account that HFS files have no holes.
*/
hfs_s32 hfs_do_read(struct inode *inode, struct hfs_fork * fork, hfs_u32 pos,
- char * buf, hfs_u32 count, int reada)
+ char * buf, hfs_u32 count)
{
kdev_t dev = inode->i_dev;
hfs_s32 size, chars, offset, block, blocks, read = 0;
@@ -309,14 +308,6 @@
blocks = (count+offset+HFS_SECTOR_SIZE-1) >> HFS_SECTOR_SIZE_BITS;

bhb = bhe = buflist;
- if (reada) {
- if (blocks < read_ahead[major(dev)] / (HFS_SECTOR_SIZE>>9)) {
- blocks = read_ahead[major(dev)] / (HFS_SECTOR_SIZE>>9);
- }
- if (block + blocks > size) {
- blocks = size - block;
- }
- }

/* We do this in a two stage process. We first try and
request as many blocks as we can, then we wait for the
diff -urN linux-2.5.4/include/linux/blkdev.h linux-2.5.4-readahead/include/linux/blkdev.h
--- linux-2.5.4/include/linux/blkdev.h Thu Jan 31 16:45:22 2002
+++ linux-2.5.4-readahead/include/linux/blkdev.h Tue Feb 12 14:30:34 2002
@@ -314,11 +314,8 @@
extern void generic_unplug_device(void *);

extern int * blk_size[MAX_BLKDEV];
-
extern int * blksize_size[MAX_BLKDEV];

-extern int * max_readahead[MAX_BLKDEV];
-
#define MAX_PHYS_SEGMENTS 128
#define MAX_HW_SEGMENTS 128
#define MAX_SECTORS 255
@@ -340,8 +337,6 @@
blk_size_in_bytes[major] = NULL;
#endif
blksize_size[major] = NULL;
- max_readahead[major] = NULL;
- read_ahead[major] = 0;
}

extern inline int get_hardsect_size(kdev_t dev)
diff -urN linux-2.5.4/include/linux/fs.h linux-2.5.4-readahead/include/linux/fs.h
--- linux-2.5.4/include/linux/fs.h Tue Feb 12 12:22:54 2002
+++ linux-2.5.4-readahead/include/linux/fs.h Tue Feb 12 15:28:03 2002
@@ -173,10 +173,12 @@
#define BLKRRPART _IO(0x12,95) /* re-read partition table */
#define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */
#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */
-#define BLKRASET _IO(0x12,98) /* Set read ahead for block device */
+#if 0 /* Obsolete, these don't do anything. */
+#define BLKRASET _IO(0x12,98) /* set read ahead for block device */
#define BLKRAGET _IO(0x12,99) /* get current read ahead setting */
#define BLKFRASET _IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */
#define BLKFRAGET _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */
+#endif
#define BLKSECTSET _IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
#define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
#define BLKSSZGET _IO(0x12,104)/* get block device sector size */
@@ -1490,8 +1492,6 @@

extern ssize_t char_read(struct file *, char *, size_t, loff_t *);
extern ssize_t block_read(struct file *, char *, size_t, loff_t *);
-extern int read_ahead[];
-
extern ssize_t char_write(struct file *, const char *, size_t, loff_t *);
extern ssize_t block_write(struct file *, const char *, size_t, loff_t *);

diff -urN linux-2.5.4/include/linux/lvm.h linux-2.5.4-readahead/include/linux/lvm.h
--- linux-2.5.4/include/linux/lvm.h Tue Nov 27 18:23:27 2001
+++ linux-2.5.4-readahead/include/linux/lvm.h Tue Feb 12 15:41:52 2002
@@ -498,7 +498,6 @@
uint lv_badblock; /* for future use */
uint lv_allocation;
uint lv_io_timeout; /* for future use */
- uint lv_read_ahead;

/* delta to version 1 starts here */
struct lv_v5 *lv_snapshot_org;
diff -urN linux-2.5.4/kernel/ksyms.c linux-2.5.4-readahead/kernel/ksyms.c
--- linux-2.5.4/kernel/ksyms.c Tue Feb 12 12:22:54 2002
+++ linux-2.5.4-readahead/kernel/ksyms.c Tue Feb 12 14:29:04 2002
@@ -321,7 +321,6 @@
EXPORT_SYMBOL(tq_disk);
EXPORT_SYMBOL(init_buffer);
EXPORT_SYMBOL(refile_buffer);
-EXPORT_SYMBOL(max_readahead);
EXPORT_SYMBOL(wipe_partitions);

/* tty routines */
@@ -521,7 +520,6 @@
EXPORT_SYMBOL(clear_inode);
EXPORT_SYMBOL(___strtok);
EXPORT_SYMBOL(init_special_inode);
-EXPORT_SYMBOL(read_ahead);
EXPORT_SYMBOL(__get_hash_table);
EXPORT_SYMBOL(new_inode);
EXPORT_SYMBOL(insert_inode_hash);
diff -urN linux-2.5.4/mm/filemap.c linux-2.5.4-readahead/mm/filemap.c
--- linux-2.5.4/mm/filemap.c Tue Feb 12 12:22:54 2002
+++ linux-2.5.4-readahead/mm/filemap.c Tue Feb 12 15:28:56 2002
@@ -1131,13 +1131,6 @@
* 64k if defined (4K page size assumed).
*/

-static inline int get_max_readahead(struct inode * inode)
-{
- if (kdev_none(inode->i_dev) || !max_readahead[major(inode->i_dev)])
- return MAX_READAHEAD;
- return max_readahead[major(inode->i_dev)][minor(inode->i_dev)];
-}
-
static void generic_file_readahead(int reada_ok,
struct file * filp, struct inode * inode,
struct page * page)
@@ -1146,7 +1139,6 @@
unsigned long index = page->index;
unsigned long max_ahead, ahead;
unsigned long raend;
- int max_readahead = get_max_readahead(inode);

end_index = inode->i_size >> PAGE_CACHE_SHIFT;

@@ -1231,8 +1223,8 @@

filp->f_ramax += filp->f_ramax;

- if (filp->f_ramax > max_readahead)
- filp->f_ramax = max_readahead;
+ if (filp->f_ramax > MAX_READAHEAD)
+ filp->f_ramax = MAX_READAHEAD;

#ifdef PROFILE_READAHEAD
profile_readahead((reada_ok == 2), filp);
@@ -1278,7 +1270,6 @@
struct page *cached_page;
int reada_ok;
int error;
- int max_readahead = get_max_readahead(inode);

cached_page = NULL;
index = *ppos >> PAGE_CACHE_SHIFT;
@@ -1318,9 +1309,9 @@
filp->f_ramax = needed;

if (reada_ok && filp->f_ramax < MIN_READAHEAD)
- filp->f_ramax = MIN_READAHEAD;
- if (filp->f_ramax > max_readahead)
- filp->f_ramax = max_readahead;
+ filp->f_ramax = MIN_READAHEAD;
+ if (filp->f_ramax > MAX_READAHEAD)
+ filp->f_ramax = MAX_READAHEAD;
}

for (;;) {
@@ -1808,7 +1799,7 @@
{
unsigned long ra_window;

- ra_window = get_max_readahead(vma->vm_file->f_dentry->d_inode);
+ ra_window = MAX_READAHEAD;
ra_window = CLUSTER_OFFSET(ra_window + CLUSTER_PAGES - 1);

/* vm_raend is zero if we haven't read ahead in this area yet. */