--- a/fs/inode.c +++ i/fs/inode.c @@ -2378,7 +2378,7 @@ static void __inode_dio_wait(struct inod do { prepare_to_wait(wq, &q.wq_entry, TASK_UNINTERRUPTIBLE); if (atomic_read(&inode->i_dio_count)) - schedule(); + schedule_timeout(30 * HZ); } while (atomic_read(&inode->i_dio_count)); finish_wait(wq, &q.wq_entry); }