Hi, Please consider applying. Description: Use ssleep() instead of schedule_timeout() to guarantee the task delays as expected. The first two replacements use TASK_INTERRUPTIBLE but do not check for signals, so ssleep() should be appropriate. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/net/ipv4/ipvs/ip_vs_sync.c | 14 +++++--------- 1 files changed, 5 insertions(+), 9 deletions(-) diff -puN net/ipv4/ipvs/ip_vs_sync.c~ssleep-net_ipv4_ipvs_ip_vs_sync net/ipv4/ipvs/ip_vs_sync.c --- kj/net/ipv4/ipvs/ip_vs_sync.c~ssleep-net_ipv4_ipvs_ip_vs_sync 2005-01-23 00:24:32.000000000 +0100 +++ kj-domen/net/ipv4/ipvs/ip_vs_sync.c 2005-01-23 00:24:32.000000000 +0100 @@ -23,7 +23,7 @@ #include #include #include - +#include #include #include #include /* for ip_mc_join_group */ @@ -647,8 +647,7 @@ static void sync_master_loop(void) if (stop_master_sync) break; - __set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(HZ); + ssleep(1); } /* clean up the sync_buff queue */ @@ -705,8 +704,7 @@ static void sync_backup_loop(void) if (stop_backup_sync) break; - __set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(HZ); + ssleep(1); } /* release the sending multicast socket */ @@ -818,8 +816,7 @@ static int fork_sync_thread(void *startu if ((pid = kernel_thread(sync_thread, startup, 0)) < 0) { IP_VS_ERR("could not create sync_thread due to %d... " "retrying.\n", pid); - current->state = TASK_UNINTERRUPTIBLE; - schedule_timeout(HZ); + ssleep(1); goto repeat; } @@ -853,8 +850,7 @@ int start_sync_thread(int state, char *m if ((pid = kernel_thread(fork_sync_thread, &startup, 0)) < 0) { IP_VS_ERR("could not create fork_sync_thread due to %d... " "retrying.\n", pid); - current->state = TASK_UNINTERRUPTIBLE; - schedule_timeout(HZ); + ssleep(1); goto repeat; } _