From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wu Fengguang Subject: [PATCH 6/7] writeback: requeue_io_wait() on blocked inode Date: Thu, 20 Oct 2011 23:22:46 +0800 Message-ID: <20111020153706.397951190@intel.com> References: <20111020152240.751936131@intel.com> Cc: Jan Kara , Dave Chinner , Christoph Hellwig , Wu Fengguang To: Return-path: cc: Andrew Morton Cc: LKML Content-Disposition: inline; filename=writeback-remove-redirty-blocked.patch Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Use requeue_io_wait() if inode is somehow blocked. CC: Jan Kara CC: Dave Chinner Signed-off-by: Wu Fengguang --- fs/fs-writeback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-next.orig/fs/fs-writeback.c 2011-10-20 22:42:25.000000000 +0800 +++ linux-next/fs/fs-writeback.c 2011-10-20 22:43:42.000000000 +0800 @@ -471,25 +471,25 @@ writeback_single_inode(struct inode *ino /* * slice used up: queue for next turn */ requeue_io(inode, wb); } else { /* * Writeback blocked by something other than * congestion. Delay the inode for some time to * avoid spinning on the CPU (100% iowait) * retrying writeback of the dirty page/inode * that cannot be performed immediately. */ - redirty_tail(inode, wb); + requeue_io_wait(inode, wb); } } else if (inode->i_state & I_DIRTY) { /* * Filesystems can dirty the inode during writeback * operations, such as delayed allocation during * submission or metadata updates after data IO * completion. * * For the latter case it is very important to give * the inode another turn on b_more_io instead of * redirtying it. Constantly moving dirtied_when * forward will prevent us from ever writing out