Re: Test12 ll_rw_block error.

From: Chris Mason (mason@suse.com)
Date: Sat Dec 16 2000 - 12:13:51 EST


On Fri, 15 Dec 2000, Linus Torvalds wrote:

[ writepage for anon buffers ]

>
> It might be 10 lines of change, and obviously correct.
>
I'll give this a try, it will be interesting regardless of if it is simple
enough for kernel inclusion.

On a related note, I hit a snag porting reiserfs into test12, where
block_read_full_page assumes the buffer it gets back from get_block won't
be up to date. When reiserfs reads a packed tail directly into the page,
reading the newly mapped buffer isn't required, and is actually a bad
idea, since the packed tails have a block number of 0 when copied into
the page cache.

In other words, after calling reiserfs_get_block, the buffer might be
mapped and uptodate, with no i/o required in block_read_full_page

The following patch to block_read_full_page fixes things for me, and seems
like a good idea in general. It might be better to apply something
similar to submit_bh instead...comments?

-chris

--- linux-test12/fs/buffer.c Mon Dec 18 11:37:42 2000
+++ linux/fs/buffer.c Mon Dec 18 11:38:36 2000
@@ -1706,8 +1706,10 @@
                         }
                 }
 
- arr[nr] = bh;
- nr++;
+ if (!buffer_uptodate(bh)) {
+ arr[nr] = bh;
+ nr++;
+ }
         } while (i++, iblock++, (bh = bh->b_this_page) != head);
 
         if (!nr) {

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



This archive was generated by hypermail 2b29 : Sat Dec 23 2000 - 21:00:16 EST