--- /dev/null
+--- linux-2.4.24-l32/mm/filemap.c.inode_ramax 2004-03-14 13:16:21.000000000 -0800
++++ linux-2.4.24-l32/mm/filemap.c 2004-03-16 10:57:14.000000000 -0800
+@@ -1226,6 +1226,8 @@
+
+ static inline int get_max_readahead(struct inode * inode)
+ {
++ if (inode->i_mapping->a_ops->max_readahead)
++ return inode->i_mapping->a_ops->max_readahead(inode);
+ if (!inode->i_dev || !max_readahead[MAJOR(inode->i_dev)])
+ return vm_max_readahead;
+ return max_readahead[MAJOR(inode->i_dev)][MINOR(inode->i_dev)];
+--- linux-2.4.24-l32/include/linux/fs.h.inode_ramax 2004-03-14 13:15:49.000000000 -0800
++++ linux-2.4.24-l32/include/linux/fs.h 2004-03-15 11:56:56.000000000 -0800
+@@ -410,6 +410,8 @@
+ #define KERNEL_HAS_DIRECT_FILEIO /* Unfortunate kludge due to lack of foresight */
+ int (*direct_fileIO)(int, struct file *, struct kiobuf *, unsigned long, int);
+ void (*removepage)(struct page *); /* called when page gets removed from the inode */
++#define KERNEL_HAS_AS_MAX_READAHEAD
++ int (*max_readahead)(struct inode *);
+ };
+
+ struct address_space {