]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.fixes/ocfs2-dlm-clean-up-struct-dlm_lock_name.patch
Revert "Move xen patchset to new version's subdir."
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / ocfs2-dlm-clean-up-struct-dlm_lock_name.patch
diff --git a/src/patches/suse-2.6.27.31/patches.fixes/ocfs2-dlm-clean-up-struct-dlm_lock_name.patch b/src/patches/suse-2.6.27.31/patches.fixes/ocfs2-dlm-clean-up-struct-dlm_lock_name.patch
deleted file mode 100644 (file)
index b0c73f1..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-From: Sunil Mushran <sunil.mushran@oracle.com>
-Date: Thu, 26 Feb 2009 15:00:38 -0800
-Subject: ocfs2/dlm: Clean up struct dlm_lock_name
-Patch-mainline: 2.6.30
-References: bnc#408304
-
-For master mle, the name it stored in the attached lockres in struct qstr.
-For block and migration mle, the name is stored inline in struct dlm_lock_name.
-This patch attempts to make struct dlm_lock_name look like a struct qstr. While
-we could use struct qstr, we don't because we want to avoid having to malloc
-and free the lockname string as the mle's lifetime is fairly short.
-
-Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
-Signed-off-by: Mark Fasheh <mfasheh@suse.com>
----
- fs/ocfs2/dlm/dlmcommon.h |    8 ++--
- fs/ocfs2/dlm/dlmdebug.c  |   10 +++---
- fs/ocfs2/dlm/dlmmaster.c |   79 +++++++++++++++++++++++++--------------------
- 3 files changed, 53 insertions(+), 44 deletions(-)
-
-Index: linux-2.6.27-sle11_ocfs2_update/fs/ocfs2/dlm/dlmcommon.h
-===================================================================
---- linux-2.6.27-sle11_ocfs2_update.orig/fs/ocfs2/dlm/dlmcommon.h
-+++ linux-2.6.27-sle11_ocfs2_update/fs/ocfs2/dlm/dlmcommon.h
-@@ -56,8 +56,8 @@ enum dlm_mle_type {
- };
- struct dlm_lock_name {
--      u8 len;
--      u8 name[DLM_LOCKID_NAME_MAX];
-+      unsigned int len;
-+      unsigned char name[DLM_LOCKID_NAME_MAX];
- };
- struct dlm_master_list_entry {
-@@ -79,8 +79,8 @@ struct dlm_master_list_entry {
-       struct o2hb_callback_func mle_hb_up;
-       struct o2hb_callback_func mle_hb_down;
-       union {
--              struct dlm_lock_resource *res;
--              struct dlm_lock_name name;
-+              struct dlm_lock_resource *mleres;
-+              struct dlm_lock_name mlename;
-       } u;
- };
-Index: linux-2.6.27-sle11_ocfs2_update/fs/ocfs2/dlm/dlmdebug.c
-===================================================================
---- linux-2.6.27-sle11_ocfs2_update.orig/fs/ocfs2/dlm/dlmdebug.c
-+++ linux-2.6.27-sle11_ocfs2_update/fs/ocfs2/dlm/dlmdebug.c
-@@ -288,15 +288,15 @@ static int dump_mle(struct dlm_master_li
- {
-       int out = 0;
-       unsigned int namelen;
--      const char *name;
-+      unsigned char *name;
-       char *mle_type;
-       if (mle->type != DLM_MLE_MASTER) {
--              namelen = mle->u.name.len;
--              name = mle->u.name.name;
-+              name = mle->u.mlename.name;
-+              namelen = mle->u.mlename.len;
-       } else {
--              namelen = mle->u.res->lockname.len;
--              name = mle->u.res->lockname.name;
-+              name  = (unsigned char *)mle->u.mleres->lockname.name;
-+              namelen = mle->u.mleres->lockname.len;
-       }
-       if (mle->type == DLM_MLE_BLOCK)
-Index: linux-2.6.27-sle11_ocfs2_update/fs/ocfs2/dlm/dlmmaster.c
-===================================================================
---- linux-2.6.27-sle11_ocfs2_update.orig/fs/ocfs2/dlm/dlmmaster.c
-+++ linux-2.6.27-sle11_ocfs2_update/fs/ocfs2/dlm/dlmmaster.c
-@@ -68,27 +68,38 @@ static int dlm_do_assert_master(struct d
-                               void *nodemap, u32 flags);
- static void dlm_deref_lockres_worker(struct dlm_work_item *item, void *data);
-+static inline void __dlm_mle_name(struct dlm_master_list_entry *mle,
-+                                unsigned char **name, unsigned int *namelen)
-+{
-+      BUG_ON(mle->type != DLM_MLE_BLOCK &&
-+             mle->type != DLM_MLE_MASTER &&
-+             mle->type != DLM_MLE_MIGRATION);
-+
-+      if (mle->type != DLM_MLE_MASTER) {
-+              *name = mle->u.mlename.name;
-+              *namelen = mle->u.mlename.len;
-+      } else {
-+              *name  = (unsigned char *)mle->u.mleres->lockname.name;
-+              *namelen = mle->u.mleres->lockname.len;
-+      }
-+}
-+
- static inline int dlm_mle_equal(struct dlm_ctxt *dlm,
-                               struct dlm_master_list_entry *mle,
-                               const char *name,
-                               unsigned int namelen)
- {
--      struct dlm_lock_resource *res;
-+      unsigned char *mlename;
-+      unsigned int mlelen;
-       if (dlm != mle->dlm)
-               return 0;
--      if (mle->type == DLM_MLE_BLOCK ||
--          mle->type == DLM_MLE_MIGRATION) {
--              if (namelen != mle->u.name.len ||
--                  memcmp(name, mle->u.name.name, namelen)!=0)
--                      return 0;
--      } else {
--              res = mle->u.res;
--              if (namelen != res->lockname.len ||
--                  memcmp(res->lockname.name, name, namelen) != 0)
--                      return 0;
--      }
-+      __dlm_mle_name(mle, &mlename, &mlelen);
-+
-+      if (namelen != mlelen || memcmp(name, mlename, namelen) != 0)
-+              return 0;
-+
-       return 1;
- }
-@@ -295,17 +306,17 @@ static void dlm_init_mle(struct dlm_mast
-       mle->new_master = O2NM_MAX_NODES;
-       mle->inuse = 0;
-+      BUG_ON(mle->type != DLM_MLE_BLOCK &&
-+             mle->type != DLM_MLE_MASTER &&
-+             mle->type != DLM_MLE_MIGRATION);
-+
-       if (mle->type == DLM_MLE_MASTER) {
-               BUG_ON(!res);
--              mle->u.res = res;
--      } else if (mle->type == DLM_MLE_BLOCK) {
--              BUG_ON(!name);
--              memcpy(mle->u.name.name, name, namelen);
--              mle->u.name.len = namelen;
--      } else /* DLM_MLE_MIGRATION */ {
-+              mle->u.mleres = res;
-+      } else {
-               BUG_ON(!name);
--              memcpy(mle->u.name.name, name, namelen);
--              mle->u.name.len = namelen;
-+              memcpy(mle->u.mlename.name, name, namelen);
-+              mle->u.mlename.len = namelen;
-       }
-       /* copy off the node_map and register hb callbacks on our copy */
-@@ -425,11 +436,11 @@ static void dlm_mle_release(struct kref
-       if (mle->type != DLM_MLE_MASTER) {
-               mlog(0, "calling mle_release for %.*s, type %d\n",
--                   mle->u.name.len, mle->u.name.name, mle->type);
-+                   mle->u.mlename.len, mle->u.mlename.name, mle->type);
-       } else {
-               mlog(0, "calling mle_release for %.*s, type %d\n",
--                   mle->u.res->lockname.len,
--                   mle->u.res->lockname.name, mle->type);
-+                   mle->u.mleres->lockname.len,
-+                   mle->u.mleres->lockname.name, mle->type);
-       }
-       assert_spin_locked(&dlm->spinlock);
-       assert_spin_locked(&dlm->master_lock);
-@@ -1277,7 +1288,7 @@ static int dlm_restart_lock_mastery(stru
-                                                    res->lockname.len,
-                                                    res->lockname.name);
-                                               mle->type = DLM_MLE_MASTER;
--                                              mle->u.res = res;
-+                                              mle->u.mleres = res;
-                                       }
-                               }
-                       }
-@@ -1316,20 +1327,18 @@ static int dlm_do_master_request(struct
-       struct dlm_ctxt *dlm = mle->dlm;
-       struct dlm_master_request request;
-       int ret, response=0, resend;
-+      unsigned char *mlename;
-+      unsigned int mlenamelen;
-       memset(&request, 0, sizeof(request));
-       request.node_idx = dlm->node_num;
-       BUG_ON(mle->type == DLM_MLE_MIGRATION);
--      if (mle->type != DLM_MLE_MASTER) {
--              request.namelen = mle->u.name.len;
--              memcpy(request.name, mle->u.name.name, request.namelen);
--      } else {
--              request.namelen = mle->u.res->lockname.len;
--              memcpy(request.name, mle->u.res->lockname.name,
--                      request.namelen);
--      }
-+      __dlm_mle_name(mle, &mlename, &mlenamelen);
-+
-+      request.namelen = (u8)mlenamelen;
-+      memcpy(request.name, mlename, request.namelen);
- again:
-       ret = o2net_send_message(DLM_MASTER_REQUEST_MSG, dlm->key, &request,
-@@ -3264,9 +3273,9 @@ top:
-                    mle->master, mle->new_master);
-               /* if there is a lockres associated with this
-                * mle, find it and set its owner to UNKNOWN */
--              hash = dlm_lockid_hash(mle->u.name.name, mle->u.name.len);
--              res = __dlm_lookup_lockres(dlm, mle->u.name.name,
--                                         mle->u.name.len, hash);
-+              hash = dlm_lockid_hash(mle->u.mlename.name, mle->u.mlename.len);
-+              res = __dlm_lookup_lockres(dlm, mle->u.mlename.name,
-+                                         mle->u.mlename.len, hash);
-               if (res) {
-                       /* unfortunately if we hit this rare case, our
-                        * lock ordering is messed.  we need to drop