diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2008-04-28 02:16:08 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-28 08:58:44 -0700 |
commit | 33575f8ffe99bf9e381161ccd76b39079c0aa92f (patch) | |
tree | d5a60b89243bf1964a2feaf80e0ea576b3a14762 /fs/ext3 | |
parent | e0e369a7dd39894465b6501a9492173e8104a19b (diff) |
ext3: check ext3_journal_get_write_access() errors
Check ext3_journal_get_write_access() errors.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ext3')
-rw-r--r-- | fs/ext3/namei.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index dec3e0d88ab1..ba55865caaaf 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c @@ -57,10 +57,15 @@ static struct buffer_head *ext3_append(handle_t *handle, *block = inode->i_size >> inode->i_sb->s_blocksize_bits; - if ((bh = ext3_bread(handle, inode, *block, 1, err))) { + bh = ext3_bread(handle, inode, *block, 1, err); + if (bh) { inode->i_size += inode->i_sb->s_blocksize; EXT3_I(inode)->i_disksize = inode->i_size; - ext3_journal_get_write_access(handle,bh); + *err = ext3_journal_get_write_access(handle, bh); + if (*err) { + brelse(bh); + bh = NULL; + } } return bh; } |