diff options
author | Eric Sandeen <sandeen@redhat.com> | 2008-08-02 18:51:06 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-08-02 18:51:06 -0400 |
commit | d5a0d4f732af3438e592efab4cb80076d1dd81b5 (patch) | |
tree | f156408767d8f59ecf991b3f71b51531c04d8f06 | |
parent | e9e34f4e8f42177c66754fec1edfd35e70c18f99 (diff) |
ext4: fix ext4_da_write_begin error path
ext4_da_write_begin needs to call journal_stop before returning,
if the page allocation fails.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Acked-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r-- | fs/ext4/inode.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index efe8caa3811c..37f834bc7cd6 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -2280,8 +2280,11 @@ retry: | |||
2280 | } | 2280 | } |
2281 | 2281 | ||
2282 | page = __grab_cache_page(mapping, index); | 2282 | page = __grab_cache_page(mapping, index); |
2283 | if (!page) | 2283 | if (!page) { |
2284 | return -ENOMEM; | 2284 | ext4_journal_stop(handle); |
2285 | ret = -ENOMEM; | ||
2286 | goto out; | ||
2287 | } | ||
2285 | *pagep = page; | 2288 | *pagep = page; |
2286 | 2289 | ||
2287 | ret = block_write_begin(file, mapping, pos, len, flags, pagep, fsdata, | 2290 | ret = block_write_begin(file, mapping, pos, len, flags, pagep, fsdata, |