lkml.org 
[lkml]   [2002]   [Sep]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: ltp directio test causes oops on 2.4.20pre5aa2
while merging the new nfs stuff with nfs-o_direct this bit was left out:

> diff -u --recursive --new-file linux-2.4.18-pathconf/mm/filemap.c linux-2.4.18-odirect/mm/filemap.c
> --- linux-2.4.18-pathconf/mm/filemap.c Wed Feb 20 17:14:28 2002
> +++ linux-2.4.18-odirect/mm/filemap.c Wed Feb 20 17:17:19 2002
> @@ -1515,7 +1515,7 @@
594a592,606
> --- 2.4.19pre3aa1/fs/reiserfs/inode.c.~1~ Tue Mar 12 00:07:18 2002
> +++ 2.4.19pre3aa1/fs/reiserfs/inode.c Tue Mar 12 01:24:21 2002
> @@ -2161,10 +2161,11 @@
> }
> }
>
> -static int reiserfs_direct_io(int rw, struct inode *inode,
> +static int reiserfs_direct_io(int rw, struct file * filp,
> struct kiobuf *iobuf, unsigned long blocknr,
> int blocksize)
> {
> + struct inode * inode = filp->f_dentry->d_inode->i_mapping->host;
> return generic_direct_IO(rw, inode, iobuf, blocknr, blocksize,
> reiserfs_get_block_direct_io) ;
> }

Trond could you include the reiserfs part in your nfs-o_direct too?
(ext3 has o_direct in -aa only so you don't need it) I'll keep them in
separate files so they won't be forgotten again. In the meantime you
can test with this incremental fix:

--- 2.4.19pre3aa1/fs/reiserfs/inode.c.~1~ Tue Mar 12 00:07:18 2002
+++ 2.4.19pre3aa1/fs/reiserfs/inode.c Tue Mar 12 01:24:21 2002
@@ -2161,10 +2161,11 @@
}
}

-static int reiserfs_direct_io(int rw, struct inode *inode,
+static int reiserfs_direct_io(int rw, struct file * filp,
struct kiobuf *iobuf, unsigned long blocknr,
int blocksize)
{
+ struct inode * inode = filp->f_dentry->d_inode->i_mapping->host;
return generic_direct_IO(rw, inode, iobuf, blocknr, blocksize,
reiserfs_get_block_direct_io) ;
}
--- 2.4.20pre5aa2/fs/ext3/inode.c.~1~ Mon Sep 9 02:38:08 2002
+++ 2.4.20pre5aa2/fs/ext3/inode.c Tue Sep 10 05:22:18 2002
@@ -1385,9 +1385,10 @@ static int ext3_releasepage(struct page
}

static int
-ext3_direct_IO(int rw, struct inode *inode, struct kiobuf *iobuf,
+ext3_direct_IO(int rw, struct file * filp, struct kiobuf *iobuf,
unsigned long blocknr, int blocksize)
{
+ struct inode * inode = filp->f_dentry->d_inode->i_mapping->host;
struct ext3_inode_info *ei = EXT3_I(inode);
handle_t *handle = NULL;
int ret;
thanks for the as usual accurate report,

Andrea

PS. Later I'll make sure the new sched can't introduce starvation, then
I'll upload a new -aa with these few bits.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

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