[Ocfs2-devel] [Patch] fix long delay for first mount after reboot

Ling, Xiaofeng xiaofeng.ling at intel.com
Tue Jun 29 14:13:44 CDT 2004


By print the jiffies in ocfs_volumn_thread() at first mount after
reboot, it is negative.(such as -253239)
so time_after(jiffies, 0) return false.  (because  ((long)(b) -
(long)(a) < 0) is true)
so first time, it goto finally.

-               if (!time_after (jiffies, (unsigned long) (osb->hbt)))
-                       goto finally;
then osb->hbt - j = 0 - jiffies = 0 - (-253239) = 253239
-  schedule_timeout (osb->hbt - j) will sleep about 253 seconds. 


The follows is a simple fix instead of fixing time_after.

Index: nm.c
===================================================================
--- nm.c    (revision 1217)
+++ nm.c    (working copy)
@@ -279,6 +279,7 @@

    osb->dlm_task = current;

+   osb->hbt = OCFS_HEARTBEAT_JIFFIES + jiffies;
    /* The delay changes based on multiplier */
    while (!(OcfsGlobalCtxt.flags & OCFS_FLAG_SHUTDOWN_VOL_THREAD) &&
           !(osb->osb_flags & OCFS_OSB_FLAGS_BEING_DISMOUNTED)) {


More information about the Ocfs2-devel mailing list