]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.suse/dlm-add-time-stamp-of-blocking-callback.patch
Reenabled linux-xen, added patches for Xen Kernel Version 2.6.27.31,
[ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.suse / dlm-add-time-stamp-of-blocking-callback.patch
diff --git a/src/patches/suse-2.6.27.31/patches.suse/dlm-add-time-stamp-of-blocking-callback.patch b/src/patches/suse-2.6.27.31/patches.suse/dlm-add-time-stamp-of-blocking-callback.patch
new file mode 100644 (file)
index 0000000..4c6f296
--- /dev/null
@@ -0,0 +1,38 @@
+From: David Teigland <teigland@redhat.com>
+commit e3a84ad495d1fddb542e0922160f0194a1361950
+Author: David Teigland <teigland@redhat.com>
+Date:   Tue Dec 9 14:47:29 2008 -0600
+Subject: dlm: add time stamp of blocking callback
+    
+    Record the time the latest blocking callback was queued for
+    a lock.  This will be used for debugging in combination with
+    lock queue timestamp changes in the previous patch.
+    
+Signed-off-by: David Teigland <teigland@redhat.com>
+Signed-off-by: Coly Li <coly.li@suse.de>
+
+diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
+index e69135c..0c48829 100644
+--- a/fs/dlm/dlm_internal.h
++++ b/fs/dlm/dlm_internal.h
+@@ -245,6 +245,7 @@ struct dlm_lkb {
+       struct list_head        lkb_astqueue;   /* need ast to be sent */
+       struct list_head        lkb_ownqueue;   /* list of locks for a process */
+       struct list_head        lkb_time_list;
++      ktime_t                 lkb_time_bast;  /* for debugging */
+       ktime_t                 lkb_timestamp;
+       unsigned long           lkb_timeout_cs;
+diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
+index dfc57ae..6cfe65b 100644
+--- a/fs/dlm/lock.c
++++ b/fs/dlm/lock.c
+@@ -318,6 +318,8 @@ static inline void queue_cast_overlap(struct dlm_rsb *r, struct dlm_lkb *lkb)
+ static void queue_bast(struct dlm_rsb *r, struct dlm_lkb *lkb, int rqmode)
+ {
++      lkb->lkb_time_bast = ktime_get();
++
+       if (is_master_copy(lkb))
+               send_bast(r, lkb, rqmode);
+       else