# # ext3_mark_iloc_dirty brelse's the buffer even on error, # jumping to the out_brelse label causes a double decrement to occur. # --- linux-2.5.orig/fs/ext3/namei.c.orig 2004-06-02 11:46:52.903565552 -0400 +++ linux-2.5/fs/ext3/namei.c 2004-06-02 11:47:00.494411568 -0400 @@ -1963,7 +1963,7 @@ NEXT_ORPHAN(inode) = 0; err = ext3_mark_iloc_dirty(handle, inode, &iloc); if (err) - goto out_brelse; + goto out_err; out_err: ext3_std_error(inode->i_sb, err);