GFS2: Get a block reservation before resizing a file

commit d2b47cfb26 upstream.

This patch allocates a block reservation structure before growing
or shrinking a file. Without this structure, the grow or shink code
can reference the bad pointer.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Bob Peterson 2013-02-01 12:03:02 -05:00 committed by Greg Kroah-Hartman
parent a56de15779
commit 496064cd2a

View File

@ -1240,6 +1240,10 @@ int gfs2_setattr_size(struct inode *inode, u64 newsize)
inode_dio_wait(inode);
ret = gfs2_rs_alloc(GFS2_I(inode));
if (ret)
return ret;
oldsize = inode->i_size;
if (newsize >= oldsize)
return do_grow(inode, newsize);