Christopher Smith wrote:
>
> So, I finally decided to try using the 2.3.x branch of the kernel
> series, and of course, I wasn't going to do it without my trust
> KAIO. ;-)
>
> Unfortunately, I'm running in to a compile time error in mm/filemap.c
> inside the function 'do_kaio_generic_read'. I tracked it down and was
> surprised to discover that the 'readpage' function had been removed
> from the inode_operations struct. Indeed, all the "page" related
> functions appear to be gone. They're now up in an
> "address_space_operations" structure.
>
> So, I'm not enough of a kernel hacker actual figure out what should be
> done here, but I thought I'd make everyone aware of the problem so
> that those who DO know enough can fix it.
>
> The patch that I going to experimented with is to change the line 2113
> in filemap.c from:
>
> if ((ret = inode->i_op->readpage(filp->f_dentry, page)))
>
> to:
>
> if ((ret = inode->i_mapping->a_ops->readpage(filp->f_dentry,
> page)))
>
For a person who claims to be a non-kernel hacker, you
are doing well! The address space ops are a recent
change to the 2.3 series, and I don't have a patch
with those changes yet. But, your change seems to
be correct. Note, however, that I haven't looked
into the locking model yet. So not sure whether
the above change will lead to a dead lock (or a
double trip), but I'd say go ahead with the change ...
regards,
ananth.
|