diff options
author | Bob Peterson <rpeterso@redhat.com> | 2011-11-18 16:58:32 +0100 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2011-11-21 11:04:09 +0100 |
commit | 6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c (patch) | |
tree | 4f4ac522d34f35de3e3671996ddc35977aaa49ad /fs/gfs2/dir.c | |
parent | GFS2: O_(D)SYNC support for fallocate (diff) | |
download | linux-6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c.tar.xz linux-6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c.zip |
GFS2: move toward a generic multi-block allocator
This patch is a revision of the one I previously posted.
I tried to integrate all the suggestions Steve gave.
The purpose of the patch is to change function gfs2_alloc_block
(allocate either a dinode block or an extent of data blocks)
to a more generic gfs2_alloc_blocks function that can
allocate both a dinode _and_ an extent of data blocks in the
same call. This will ultimately help us create a multi-block
reservation scheme to reduce file fragmentation.
This patch moves more toward a generic multi-block allocator that
takes a pointer to the number of data blocks to allocate, plus whether
or not to allocate a dinode. In theory, it could be called to allocate
(1) a single dinode block, (2) a group of one or more data blocks, or
(3) a dinode plus several data blocks.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/dir.c')
-rw-r--r-- | fs/gfs2/dir.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c index ae75319b65e8..f8485da3b853 100644 --- a/fs/gfs2/dir.c +++ b/fs/gfs2/dir.c @@ -823,7 +823,7 @@ static struct gfs2_leaf *new_leaf(struct inode *inode, struct buffer_head **pbh, struct gfs2_dirent *dent; struct qstr name = { .name = "", .len = 0, .hash = 0 }; - error = gfs2_alloc_block(ip, &bn, &n, 0, NULL); + error = gfs2_alloc_blocks(ip, &bn, &n, 0, NULL); if (error) return NULL; bh = gfs2_meta_new(ip->i_gl, bn); |