diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2008-02-27 14:50:09 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-02-27 14:50:09 -0500 |
commit | 114cdb5c7ff1e67c9dae8f878527318d524d0353 (patch) | |
tree | ebbc7b7089abebbd76d36a57c37ecfa2a1ef5101 /fs | |
parent | 7e9ca14c8af646d9dccc5ccde35357785948f43c (diff) |
ext4: check ext4_journal_get_write_access() errors
Check ext4_journal_get_write_access() errors.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: adilger@clusterfs.com
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mingming Cao <cmm@us.ibm.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext4/namei.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 28aa2ed4297e..da942bce6108 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -57,10 +57,15 @@ static struct buffer_head *ext4_append(handle_t *handle, *block = inode->i_size >> inode->i_sb->s_blocksize_bits; - if ((bh = ext4_bread(handle, inode, *block, 1, err))) { + bh = ext4_bread(handle, inode, *block, 1, err); + if (bh) { inode->i_size += inode->i_sb->s_blocksize; EXT4_I(inode)->i_disksize = inode->i_size; - ext4_journal_get_write_access(handle,bh); + *err = ext4_journal_get_write_access(handle, bh); + if (*err) { + brelse(bh); + bh = NULL; + } } return bh; } |