diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2011-11-22 07:18:51 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2011-11-22 07:18:51 -0500 |
commit | 6a8099ed5677ac1bb2c74b74a31fecb8282f56c2 (patch) | |
tree | a6baa1fa5a8a9f140b76210fb5f8eb3fb68906c5 /fs/gfs2/inode.c | |
parent | 564e12b1157215171e7f3af5b70611ec7154327c (diff) |
GFS2: Fix multi-block allocation
Clean up gfs2_alloc_blocks so that it takes the full extent length
rather than just the number of non-inode blocks as an argument. That
will only make a difference in the inode allocation case for now.
Also, this fixes the extent length handling around gfs2_alloc_extent() so
that multi block allocations will work again.
The rd_last_alloc block is set to the final block in the allocated
extent (as per the update to i_goal, but referenced to a different
start point).
This also removes the dinode argument to rgblk_search() which is no
longer used.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r-- | fs/gfs2/inode.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index ab8c429880a5..e0ada046b345 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c | |||
@@ -389,7 +389,7 @@ static int alloc_dinode(struct gfs2_inode *dip, u64 *no_addr, u64 *generation) | |||
389 | { | 389 | { |
390 | struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode); | 390 | struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode); |
391 | int error; | 391 | int error; |
392 | int dblocks = 0; | 392 | int dblocks = 1; |
393 | 393 | ||
394 | error = gfs2_rindex_update(sdp); | 394 | error = gfs2_rindex_update(sdp); |
395 | if (error) | 395 | if (error) |