提交 fbcae8e3 编写于 作者: N Namhyung Kim 提交者: Jan Kara

ext3: Add journal error check into ext3_delete_entry()

Check return value of ext3_journal_get_write_access() and
ext3_journal_dirty_metadata().
Signed-off-by: NNamhyung Kim <namhyung@gmail.com>
Signed-off-by: NJan Kara <jack@suse.cz>
上级 2b543eda
...@@ -1644,8 +1644,13 @@ static int ext3_delete_entry (handle_t *handle, ...@@ -1644,8 +1644,13 @@ static int ext3_delete_entry (handle_t *handle,
if (!ext3_check_dir_entry("ext3_delete_entry", dir, de, bh, i)) if (!ext3_check_dir_entry("ext3_delete_entry", dir, de, bh, i))
return -EIO; return -EIO;
if (de == de_del) { if (de == de_del) {
int err;
BUFFER_TRACE(bh, "get_write_access"); BUFFER_TRACE(bh, "get_write_access");
ext3_journal_get_write_access(handle, bh); err = ext3_journal_get_write_access(handle, bh);
if (err)
goto journal_error;
if (pde) if (pde)
pde->rec_len = ext3_rec_len_to_disk( pde->rec_len = ext3_rec_len_to_disk(
ext3_rec_len_from_disk(pde->rec_len) + ext3_rec_len_from_disk(pde->rec_len) +
...@@ -1654,7 +1659,12 @@ static int ext3_delete_entry (handle_t *handle, ...@@ -1654,7 +1659,12 @@ static int ext3_delete_entry (handle_t *handle,
de->inode = 0; de->inode = 0;
dir->i_version++; dir->i_version++;
BUFFER_TRACE(bh, "call ext3_journal_dirty_metadata"); BUFFER_TRACE(bh, "call ext3_journal_dirty_metadata");
ext3_journal_dirty_metadata(handle, bh); err = ext3_journal_dirty_metadata(handle, bh);
if (err) {
journal_error:
ext3_std_error(dir->i_sb, err);
return err;
}
return 0; return 0;
} }
i += ext3_rec_len_from_disk(de->rec_len); i += ext3_rec_len_from_disk(de->rec_len);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册