--- 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 {