]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ocfs2: o2hb: fix hb hung time
authorJunxiao Bi <junxiao.bi@oracle.com>
Fri, 27 Nov 2015 14:16:54 +0000 (22:16 +0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 5 May 2016 21:07:37 +0000 (14:07 -0700)
hr_last_timeout_start should be set as the last time where hb is still OK.
When hb write timeout, hung time will be (jiffies - hr_last_timeout_start).

Oracle-bug: 21862940

Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Ryan Ding <ryan.ding@oracle.com>
fs/ocfs2/cluster/heartbeat.c

index d5c19d9b27ea7439fff9dbba511298d8e0fa9dca..212b825aa46021033fae4b290ebd9a44bf4f435f 100644 (file)
@@ -356,7 +356,6 @@ static void o2hb_arm_timeout(struct o2hb_region *reg)
                spin_unlock(&o2hb_live_lock);
        }
        cancel_delayed_work(&reg->hr_write_timeout_work);
-       reg->hr_last_timeout_start = jiffies;
        schedule_delayed_work(&reg->hr_write_timeout_work,
                              msecs_to_jiffies(O2HB_MAX_WRITE_TIMEOUT_MS));
 
@@ -1174,6 +1173,7 @@ static int o2hb_do_disk_heartbeat(struct o2hb_region *reg)
        if (own_slot_ok) {
                o2hb_set_quorum_device(reg);
                o2hb_arm_timeout(reg);
+               reg->hr_last_timeout_start = jiffies;
        }
 
 bail: