aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2007-12-11 20:29:17 -0500
committerSteven Whitehouse <swhiteho@redhat.com>2008-01-25 03:14:33 -0500
commit15c7cee7995a9013f1b2f31a15b70e1d2e8ae501 (patch)
tree22646442ffd942d77fc34f168d270e7bd2668643 /fs/gfs2
parentb0d5fd307463405fe1f57494fbb37f810715ed6d (diff)
[GFS2] Function meta_read optimization
This patch optimizes function gfs2_meta_read. Basically, gfs2_meta_wait was being called regardless of whether a disk read was requested. This just pulls that wait into the if that triggers the read. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r--fs/gfs2/meta_io.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index 4b1aced9023d..3144d35a6261 100644
--- a/fs/gfs2/meta_io.c
+++ b/fs/gfs2/meta_io.c
@@ -222,13 +222,14 @@ int gfs2_meta_read(struct gfs2_glock *gl, u64 blkno, int flags,
222 struct buffer_head **bhp) 222 struct buffer_head **bhp)
223{ 223{
224 *bhp = getbuf(gl, blkno, CREATE); 224 *bhp = getbuf(gl, blkno, CREATE);
225 if (!buffer_uptodate(*bhp)) 225 if (!buffer_uptodate(*bhp)) {
226 ll_rw_block(READ_META, 1, bhp); 226 ll_rw_block(READ_META, 1, bhp);
227 if (flags & DIO_WAIT) { 227 if (flags & DIO_WAIT) {
228 int error = gfs2_meta_wait(gl->gl_sbd, *bhp); 228 int error = gfs2_meta_wait(gl->gl_sbd, *bhp);
229 if (error) { 229 if (error) {
230 brelse(*bhp); 230 brelse(*bhp);
231 return error; 231 return error;
232 }
232 } 233 }
233 } 234 }
234 235