Messages in this thread Patch in this message | | | Date | Thu, 20 Oct 2011 23:22:46 +0800 | From | Wu Fengguang <> | Subject | [PATCH 6/7] writeback: requeue_io_wait() on blocked inode |
| |
Use requeue_io_wait() if inode is somehow blocked.
CC: Jan Kara <jack@suse.cz> CC: Dave Chinner <david@fromorbit.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> --- 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
| |