[Ocfs2-devel] [PATCH 1/1] ocfs2/dlm: ocfs2 dlm umount skip migrating lockres

2013-09-11 Thread Tariq Saeed
umount thread could race with migrate handler thread receiving resource
migration request from other node. When this happens, migrating thread
could set this node as the master along with DLM_LOCK_RES_MIGRATING flag.
umount thread should skip migrating this newly owned lockres until
DLM_LOCK_RES_MIGRATING flag is unset by migrate handler thread. umount
thread will ultimately migrate this lockres during another pass of the
lockres hash list.

Signed-off-by: Tariq Saeed tariq.x.sa...@oracle.com
Signed-off-by: Srinivas Eeda srinivas.e...@oracle.com 
---
 fs/ocfs2/dlm/dlmmaster.c |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
index 33ecbe0..1643b58 100644
--- a/fs/ocfs2/dlm/dlmmaster.c
+++ b/fs/ocfs2/dlm/dlmmaster.c
@@ -2360,6 +2360,10 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt 
*dlm,
if (res-owner != dlm-node_num)
return 0;
 
+   if (res-state  DLM_LOCK_RES_MIGRATING) {
+   return 0;
+   }
+
 for (idx = DLM_GRANTED_LIST; idx = DLM_BLOCKED_LIST; idx++) {
queue = dlm_list_idx_to_ptr(res, idx);
list_for_each_entry(lock, queue, list) {
-- 
1.7.1


___
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel


Re: [Ocfs2-devel] [PATCH 1/1] ocfs2/dlm: ocfs2 dlm umount skip migrating lockres

2013-09-11 Thread Joseph Qi
On 2013/9/12 2:40, Tariq Saeed wrote:
 umount thread could race with migrate handler thread receiving resource
 migration request from other node. When this happens, migrating thread
 could set this node as the master along with DLM_LOCK_RES_MIGRATING flag.
 umount thread should skip migrating this newly owned lockres until
 DLM_LOCK_RES_MIGRATING flag is unset by migrate handler thread. umount
 thread will ultimately migrate this lockres during another pass of the
 lockres hash list.
 
 Signed-off-by: Tariq Saeed tariq.x.sa...@oracle.com
 Signed-off-by: Srinivas Eeda srinivas.e...@oracle.com 
 ---
  fs/ocfs2/dlm/dlmmaster.c |4 
  1 files changed, 4 insertions(+), 0 deletions(-)
 
 diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
 index 33ecbe0..1643b58 100644
 --- a/fs/ocfs2/dlm/dlmmaster.c
 +++ b/fs/ocfs2/dlm/dlmmaster.c
 @@ -2360,6 +2360,10 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt 
 *dlm,
   if (res-owner != dlm-node_num)
   return 0;
  
 + if (res-state  DLM_LOCK_RES_MIGRATING) {
 + return 0;
 + }
 +
  for (idx = DLM_GRANTED_LIST; idx = DLM_BLOCKED_LIST; idx++) {
   queue = dlm_list_idx_to_ptr(res, idx);
   list_for_each_entry(lock, queue, list) {
 

This patch was sent before by Jiufei Xue on Aug 2012, which was titled
as ocfs2: delay migration when the lockres is in migration state.
Please refer the below link for details:
https://oss.oracle.com/pipermail/ocfs2-devel/2012-August/008670.html

As I remembered, the patch was alerady acked by Sunil and Joel, and then
it was in ocfs2.git.
I am not sure why it wasn't merged to mainline.



___
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel


Re: [Ocfs2-devel] [PATCH 1/1] ocfs2/dlm: ocfs2 dlm umount skip migrating lockres

2013-09-11 Thread Srinivas Eeda
Joseph,
thanks for pointing it out.

Andrew,
can you please pull the following patch acked by Sunil and Joel

https://oss.oracle.com/pipermail/ocfs2-devel/2012-August/008670.html


Thanks,
--Srini


On 09/11/2013 07:07 PM, Joseph Qi wrote:
 On 2013/9/12 2:40, Tariq Saeed wrote:
 umount thread could race with migrate handler thread receiving resource
 migration request from other node. When this happens, migrating thread
 could set this node as the master along with DLM_LOCK_RES_MIGRATING flag.
 umount thread should skip migrating this newly owned lockres until
 DLM_LOCK_RES_MIGRATING flag is unset by migrate handler thread. umount
 thread will ultimately migrate this lockres during another pass of the
 lockres hash list.

 Signed-off-by: Tariq Saeed tariq.x.sa...@oracle.com
 Signed-off-by: Srinivas Eeda srinivas.e...@oracle.com
 ---
   fs/ocfs2/dlm/dlmmaster.c |4 
   1 files changed, 4 insertions(+), 0 deletions(-)

 diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
 index 33ecbe0..1643b58 100644
 --- a/fs/ocfs2/dlm/dlmmaster.c
 +++ b/fs/ocfs2/dlm/dlmmaster.c
 @@ -2360,6 +2360,10 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt 
 *dlm,
  if (res-owner != dlm-node_num)
  return 0;
   
 +if (res-state  DLM_LOCK_RES_MIGRATING) {
 +return 0;
 +}
 +
   for (idx = DLM_GRANTED_LIST; idx = DLM_BLOCKED_LIST; idx++) {
  queue = dlm_list_idx_to_ptr(res, idx);
  list_for_each_entry(lock, queue, list) {

 This patch was sent before by Jiufei Xue on Aug 2012, which was titled
 as ocfs2: delay migration when the lockres is in migration state.
 Please refer the below link for details:
 https://oss.oracle.com/pipermail/ocfs2-devel/2012-August/008670.html

 As I remembered, the patch was alerady acked by Sunil and Joel, and then
 it was in ocfs2.git.
 I am not sure why it wasn't merged to mainline.



 ___
 Ocfs2-devel mailing list
 Ocfs2-devel@oss.oracle.com
 https://oss.oracle.com/mailman/listinfo/ocfs2-devel


___
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel