diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-05-05 16:59:11 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-05-05 16:59:11 -0400 |
commit | fd88de569b802c4a04aaa6ee74667775f4aed8c6 (patch) | |
tree | 1766c45303798bf289059afc8f117cf8bc784086 /fs/gfs2/recovery.c | |
parent | 5bb76af1e089ac186c15c6aa792340d22b63d4b4 (diff) |
[GFS2] Readpages support
This adds readpages support (and also corrects a small bug in
the readpage error path at the same time). Hopefully this will
improve performance by allowing GFS to submit larger lumps of
I/O at a time.
In order to simplify the setting of BH_Boundary, it currently gets
set when we hit the end of a indirect pointer block. There is
always a boundary at this point with the current allocation code.
It doesn't get all the boundaries right though, so there is still
room for improvement in this.
See comments in fs/gfs2/ops_address.c for further information about
readpages with GFS2.
Signed-off-by: Steven Whitehouse
Diffstat (limited to 'fs/gfs2/recovery.c')
-rw-r--r-- | fs/gfs2/recovery.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c index d916817fb6e3..87adebea3bc3 100644 --- a/fs/gfs2/recovery.c +++ b/fs/gfs2/recovery.c | |||
@@ -40,8 +40,7 @@ int gfs2_replay_read_block(struct gfs2_jdesc *jd, unsigned int blk, | |||
40 | uint32_t extlen; | 40 | uint32_t extlen; |
41 | int error; | 41 | int error; |
42 | 42 | ||
43 | error = gfs2_block_map(ip, blk, &new, &dblock, | 43 | error = gfs2_extent_map(ip->i_vnode, blk, &new, &dblock, &extlen); |
44 | &extlen); | ||
45 | if (error) | 44 | if (error) |
46 | return error; | 45 | return error; |
47 | if (!dblock) { | 46 | if (!dblock) { |
@@ -378,10 +377,11 @@ static int clean_journal(struct gfs2_jdesc *jd, struct gfs2_log_header *head) | |||
378 | uint32_t hash; | 377 | uint32_t hash; |
379 | struct buffer_head *bh; | 378 | struct buffer_head *bh; |
380 | int error; | 379 | int error; |
381 | 380 | int boundary; | |
381 | |||
382 | lblock = head->lh_blkno; | 382 | lblock = head->lh_blkno; |
383 | gfs2_replay_incr_blk(sdp, &lblock); | 383 | gfs2_replay_incr_blk(sdp, &lblock); |
384 | error = gfs2_block_map(ip, lblock, &new, &dblock, NULL); | 384 | error = gfs2_block_map(ip->i_vnode, lblock, &new, &dblock, &boundary); |
385 | if (error) | 385 | if (error) |
386 | return error; | 386 | return error; |
387 | if (!dblock) { | 387 | if (!dblock) { |