This patch adds missing calls to journal_end on error handling code paths. fs/reiserfs/inode.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN fs/reiserfs/inode.c~reiserfs-add-missing-journal_end fs/reiserfs/inode.c --- linux-2.6.11.10/fs/reiserfs/inode.c~reiserfs-add-missing-journal_end 2005-07-27 18:03:06.197544430 +0400 +++ linux-2.6.11.10-vs/fs/reiserfs/inode.c 2005-07-27 18:04:07.363047159 +0400 @@ -46,6 +46,7 @@ void reiserfs_delete_inode (struct inode reiserfs_update_inode_transaction(inode) ; if (reiserfs_delete_object (&th, inode)) { + journal_end(&th, inode->i_sb, jbegin_count); up (&inode->i_sem); goto out; } @@ -2015,8 +2016,10 @@ int reiserfs_truncate_file(struct inode either appears truncated properly or not truncated at all */ add_save_link (&th, p_s_inode, 1); error = reiserfs_do_truncate (&th, p_s_inode, page, update_timestamps) ; - if (error) + if (error) { + journal_end (&th, p_s_inode->i_sb, JOURNAL_PER_BALANCE_CNT * 2 + 1); goto out; + } error = journal_end (&th, p_s_inode->i_sb, JOURNAL_PER_BALANCE_CNT * 2 + 1); if (error) goto out; _