[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