diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-11-17 19:14:11 -0500 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-11-18 20:04:33 -0500 |
commit | 8cdcb71322ec21aaee90117b0c01d576851a8faa (patch) | |
tree | 2d9649029d56739ad82ca1c1db9ef51ceffa203e /fs/f2fs | |
parent | 6d20aff83c24e9a7f15fffe4be36ed33d24465da (diff) |
f2fs: put the inode page when error was occurred
We should put the inode page when error was occurred.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/data.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 8f164432408e..12dd58aa569a 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c | |||
@@ -963,22 +963,22 @@ repeat: | |||
963 | } else if (page->index == 0) { | 963 | } else if (page->index == 0) { |
964 | err = f2fs_convert_inline_page(&dn, page); | 964 | err = f2fs_convert_inline_page(&dn, page); |
965 | if (err) | 965 | if (err) |
966 | goto unlock_fail; | 966 | goto put_fail; |
967 | } else { | 967 | } else { |
968 | struct page *p = grab_cache_page(inode->i_mapping, 0); | 968 | struct page *p = grab_cache_page(inode->i_mapping, 0); |
969 | if (!p) { | 969 | if (!p) { |
970 | err = -ENOMEM; | 970 | err = -ENOMEM; |
971 | goto unlock_fail; | 971 | goto put_fail; |
972 | } | 972 | } |
973 | err = f2fs_convert_inline_page(&dn, p); | 973 | err = f2fs_convert_inline_page(&dn, p); |
974 | f2fs_put_page(p, 1); | 974 | f2fs_put_page(p, 1); |
975 | if (err) | 975 | if (err) |
976 | goto unlock_fail; | 976 | goto put_fail; |
977 | } | 977 | } |
978 | } | 978 | } |
979 | err = f2fs_reserve_block(&dn, index); | 979 | err = f2fs_reserve_block(&dn, index); |
980 | if (err) | 980 | if (err) |
981 | goto unlock_fail; | 981 | goto put_fail; |
982 | put_next: | 982 | put_next: |
983 | f2fs_put_dnode(&dn); | 983 | f2fs_put_dnode(&dn); |
984 | f2fs_unlock_op(sbi); | 984 | f2fs_unlock_op(sbi); |
@@ -1021,6 +1021,8 @@ out: | |||
1021 | clear_cold_data(page); | 1021 | clear_cold_data(page); |
1022 | return 0; | 1022 | return 0; |
1023 | 1023 | ||
1024 | put_fail: | ||
1025 | f2fs_put_dnode(&dn); | ||
1024 | unlock_fail: | 1026 | unlock_fail: |
1025 | f2fs_unlock_op(sbi); | 1027 | f2fs_unlock_op(sbi); |
1026 | f2fs_put_page(page, 1); | 1028 | f2fs_put_page(page, 1); |