Messages in this thread Patch in this message | | | Date | Tue, 25 Oct 2005 17:06:06 +0400 | From | "Vladimir V. Saveliev" <> | Subject | fix-nr_unused-accounting-and-avoid-recursing-in-iput-with-i_will_free-set.patch |
| |
Hello
The patch mentioned in the subject checks I_WILL_FREE bit in inode->i_flags, while generic_forget_inode sets it in inode->i_state. Is it really supposed to be so? If not, does the attached patch look correct?
generic_forget_inode sets I_WILL_FREE bit in inode->i_state. __writeback_single_inode checks that bit in inode->i_flags. This patch changes __writeback_single_inode to check inode->i_state.
fs/fs-writeback.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff -puN fs/fs-writeback.c~writeback_single_inode-warn-fix fs/fs-writeback.c --- linux-2.6.14-rc5-mm1/fs/fs-writeback.c~writeback_single_inode-warn-fix 2005-10-25 15:52:13.857616000 +0400 +++ linux-2.6.14-rc5-mm1-root/fs/fs-writeback.c 2005-10-25 15:52:37.051065500 +0400 @@ -248,9 +248,9 @@ __writeback_single_inode(struct inode *i wait_queue_head_t *wqh; if (!atomic_read(&inode->i_count)) - WARN_ON(!(inode->i_flags & I_WILL_FREE)); + WARN_ON(!(inode->i_state & I_WILL_FREE)); else - WARN_ON(inode->i_flags & I_WILL_FREE); + WARN_ON(inode->i_state & I_WILL_FREE); if ((wbc->sync_mode != WB_SYNC_ALL) && (inode->i_state & I_LOCK)) { list_move(&inode->i_list, &inode->i_sb->s_dirty); _
| |