Messages in this thread Patch in this message | | | Date | Thu, 10 Feb 2000 21:00:39 -0500 (EST) | From | Alexander Viro <> | 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/
| |