From: NeilBrown <neilb@cse.unsw.edu.au> Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> --- 25-akpm/fs/nfsd/vfs.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN fs/nfsd/vfs.c~replace-schedule_timeout-with-msleep fs/nfsd/vfs.c --- 25/fs/nfsd/vfs.c~replace-schedule_timeout-with-msleep 2005-03-08 00:10:05.000000000 -0800 +++ 25-akpm/fs/nfsd/vfs.c 2005-03-08 00:10:05.000000000 -0800 @@ -36,6 +36,7 @@ #include <linux/module.h> #include <linux/namei.h> #include <linux/vfs.h> +#include <linux/delay.h> #include <linux/sunrpc/svc.h> #include <linux/nfsd/nfsd.h> #ifdef CONFIG_NFSD_V3 @@ -946,8 +947,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, s if (atomic_read(&inode->i_writecount) > 1 || (last_ino == inode->i_ino && last_dev == inode->i_sb->s_dev)) { dprintk("nfsd: write defer %d\n", current->pid); - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout((HZ+99)/100); + msleep(10); dprintk("nfsd: write resume %d\n", current->pid); } _