lkml.org 
[lkml]   [2000]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[FIX] Re: [Oops] proftpd/sys_sendfile in 2.3.43 final


On Thu, 10 Feb 2000, Simon Kirby wrote:

> 2.3.43 final Oopses when proftpd starts at bootup on my system. pre8 did
> not do this. Oops as follows:

[snip]
> I'm guessing this is probably a result of or related to the following
> change in the diff between pre8 and 2.3.37:
>
> @@ -1233,7 +1235,7 @@
> in_inode = in_file->f_dentry->d_inode;
> if (!in_inode)
> goto fput_in;
> - if (!in_inode->i_op || !in_inode->i_op->readpage)
> + if (!in_inode->i_mapping->a_ops->readpage)
> goto fput_in;
> retval = locks_verify_area(FLOCK_VERIFY_READ, in_inode, in_file, in_file->f_pos, count);
> if (retval)
>
>
> Not sure how to fix it, but it's probably something silly/simple.

Partially, yes/yes.
Fix follows: (piece of patch lost when porting to 2.3.41)
@@ -464,6 +464,7 @@
*/
static void clean_inode(struct inode *inode)
{
+ static struct address_space_operations empty_aops = {};
memset(&inode->u, 0, sizeof(inode->u));
inode->i_sock = 0;
inode->i_op = NULL;
@@ -475,6 +476,7 @@
inode->i_pipe = NULL;
inode->i_bdev = NULL;
inode->i_mapping = &inode->i_data;
+ inode->i_mapping->a_ops = &empty_aops;
inode->i_mapping->host = (void*)inode;
}

IOW, for inodes _not_ on the regular filesystems attempt to use the
methods (could happen only from sendfile() and FIBMAP/bmap() - the last
pair if you are trying to use LILO on a procfs file/swapon on it/loopback
mount from it ;-) gave an OOPS. Sorry about that...
Linus, could you apply this one? It's quite obvious and in fact was always
supposed to be there - and in the old patches it was ;-<
Al


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:56    [W:0.029 / U:0.384 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site