fs-writeback : check sync bit earlier in inode_wait_for_writeback
PATCH 1/1 fs-writeback : check sync bit earlier in inode_wait_for_writeback
When wb_writeback() hasn't written anything it will re-acquire the inode lock before calling inode_wait_for_writeback.
This change tests the sync bit first so that is doesn't need to drop & re-acquire the lock if the inode became available while wb_writeback() was waiting to get the lock.
Signed-off-by Richard Kennedy <[email protected]>
----
patch against 2.6.34-rc4
compiled & tested on 86_64
regards
Richard
fs/fs-writeback.c +2 -2
@@ -398,11 +398,11 @@ static void inode_wait_for_writeback(struct inode *inode)wait_queue_head_t *wqh; wqh =bit_waitqueue (&inode->i_state, __I_SYNC); -do { +while (inode->i_state &I_SYNC ) {spin_unlock (&inode_lock);__wait_on_bit (wqh, &wq, inode_wait,TASK_UNINTERRUPTIBLE );spin_lock (&inode_lock); - }while (inode->i_state &I_SYNC ); + } }/*