summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/inode.c
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2011-11-22 12:18:51 +0000
committerSteven Whitehouse <swhiteho@redhat.com>2011-11-22 12:18:51 +0000
commit6a8099ed5677ac1bb2c74b74a31fecb8282f56c2 (patch)
treea6baa1fa5a8a9f140b76210fb5f8eb3fb68906c5 /fs/gfs2/inode.c
parent564e12b1157215171e7f3af5b70611ec7154327c (diff)
downloadlinux-6a8099ed5677ac1bb2c74b74a31fecb8282f56c2.tar.gz
linux-6a8099ed5677ac1bb2c74b74a31fecb8282f56c2.tar.bz2
linux-6a8099ed5677ac1bb2c74b74a31fecb8282f56c2.zip
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.c2
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)
{
struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode);
int error;
- int dblocks = 0;
+ int dblocks = 1;
error = gfs2_rindex_update(sdp);
if (error)