aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/quota.c
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2006-05-05 16:59:11 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2006-05-05 16:59:11 -0400
commitfd88de569b802c4a04aaa6ee74667775f4aed8c6 (patch)
tree1766c45303798bf289059afc8f117cf8bc784086 /fs/gfs2/quota.c
parent5bb76af1e089ac186c15c6aa792340d22b63d4b4 (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/quota.c')
-rw-r--r--fs/gfs2/quota.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 942c4c8b9f56..d49ff43b3a86 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -255,6 +255,7 @@ static int bh_get(struct gfs2_quota_data *qd)
255 int new = 0; 255 int new = 0;
256 struct buffer_head *bh; 256 struct buffer_head *bh;
257 int error; 257 int error;
258 int boundary;
258 259
259 mutex_lock(&sdp->sd_quota_mutex); 260 mutex_lock(&sdp->sd_quota_mutex);
260 261
@@ -266,7 +267,7 @@ static int bh_get(struct gfs2_quota_data *qd)
266 block = qd->qd_slot / sdp->sd_qc_per_block; 267 block = qd->qd_slot / sdp->sd_qc_per_block;
267 offset = qd->qd_slot % sdp->sd_qc_per_block;; 268 offset = qd->qd_slot % sdp->sd_qc_per_block;;
268 269
269 error = gfs2_block_map(ip, block, &new, &dblock, NULL); 270 error = gfs2_block_map(ip->i_vnode, block, &new, &dblock, &boundary);
270 if (error) 271 if (error)
271 goto fail; 272 goto fail;
272 error = gfs2_meta_read(ip->i_gl, dblock, DIO_START | DIO_WAIT, &bh); 273 error = gfs2_meta_read(ip->i_gl, dblock, DIO_START | DIO_WAIT, &bh);
@@ -1162,7 +1163,7 @@ int gfs2_quota_init(struct gfs2_sbd *sdp)
1162 1163
1163 if (!extlen) { 1164 if (!extlen) {
1164 int new = 0; 1165 int new = 0;
1165 error = gfs2_block_map(ip, x, &new, &dblock, &extlen); 1166 error = gfs2_extent_map(ip->i_vnode, x, &new, &dblock, &extlen);
1166 if (error) 1167 if (error)
1167 goto fail; 1168 goto fail;
1168 } 1169 }