)]}'
{
  "commit": "4875647a08e35f77274838d97ca8fa44158d50e2",
  "tree": "bf8a39eaf3219af5d661ed3e347545306fd84bda",
  "parents": [
    "6d40c4a708e0e996fd9c60d4093aebba5fe1f749"
  ],
  "author": {
    "name": "David Teigland",
    "email": "teigland@redhat.com",
    "time": "Thu Apr 26 15:54:29 2012 -0500"
  },
  "committer": {
    "name": "David Teigland",
    "email": "teigland@redhat.com",
    "time": "Wed May 02 14:15:27 2012 -0500"
  },
  "message": "dlm: fixes for nodir mode\n\nThe \"nodir\" mode (statically assign master nodes instead\nof using the resource directory) has always been highly\nexperimental, and never seriously used.  This commit\nfixes a number of problems, making nodir much more usable.\n\n- Major change to recovery: recover all locks and restart\n  all in-progress operations after recovery.  In some\n  cases it\u0027s not possible to know which in-progess locks\n  to recover, so recover all.  (Most require recovery\n  in nodir mode anyway since rehashing changes most\n  master nodes.)\n\n- Change the way nodir mode is enabled, from a command\n  line mount arg passed through gfs2, into a sysfs\n  file managed by dlm_controld, consistent with the\n  other config settings.\n\n- Allow recovering MSTCPY locks on an rsb that has not\n  yet been turned into a master copy.\n\n- Ignore RCOM_LOCK and RCOM_LOCK_REPLY recovery messages\n  from a previous, aborted recovery cycle.  Base this\n  on the local recovery status not being in the state\n  where any nodes should be sending LOCK messages for the\n  current recovery cycle.\n\n- Hold rsb lock around dlm_purge_mstcpy_locks() because it\n  may run concurrently with dlm_recover_master_copy().\n\n- Maintain highbast on process-copy lkb\u0027s (in addition to\n  the master as is usual), because the lkb can switch\n  back and forth between being a master and being a\n  process copy as the master node changes in recovery.\n\n- When recovering MSTCPY locks, flag rsb\u0027s that have\n  non-empty convert or waiting queues for granting\n  at the end of recovery.  (Rename flag from LOCKS_PURGED\n  to RECOVER_GRANT and similar for the recovery function,\n  because it\u0027s not only resources with purged locks\n  that need grant a grant attempt.)\n\n- Replace a couple of unnecessary assertion panics with\n  error messages.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "90e5997262ea77389902b8ea9c97e17ac7384802",
      "old_mode": 33188,
      "old_path": "fs/dlm/ast.c",
      "new_id": "63dc19c54d5a0dc567210d86b6b3a676934aa191",
      "new_mode": 33188,
      "new_path": "fs/dlm/ast.c"
    },
    {
      "type": "modify",
      "old_id": "0e74832c021b9e9ced2436c013f86cb2791998ee",
      "old_mode": 33188,
      "old_path": "fs/dlm/dlm_internal.h",
      "new_id": "bc342f7ac3afe38a37dd05e7873282d212f15c0f",
      "new_mode": 33188,
      "new_path": "fs/dlm/dlm_internal.h"
    },
    {
      "type": "modify",
      "old_id": "f3ba70301a4521b52761f8f0751ace52ff353857",
      "old_mode": 33188,
      "old_path": "fs/dlm/lock.c",
      "new_id": "bdafb65a523456f1898dcb466b24c05b5b792fa3",
      "new_mode": 33188,
      "new_path": "fs/dlm/lock.c"
    },
    {
      "type": "modify",
      "old_id": "56e2bc64656554808b49906710acc08dc7053e44",
      "old_mode": 33188,
      "old_path": "fs/dlm/lock.h",
      "new_id": "c8b226c62807a5bf0d4b9d6aebfc4e2b29aa13be",
      "new_mode": 33188,
      "new_path": "fs/dlm/lock.h"
    },
    {
      "type": "modify",
      "old_id": "a1ea25face828239a3434d6e036f7acffc9cf092",
      "old_mode": 33188,
      "old_path": "fs/dlm/lockspace.c",
      "new_id": "ca506abbdd3b88abdc990e9df6c7dc5b369367b5",
      "new_mode": 33188,
      "new_path": "fs/dlm/lockspace.c"
    },
    {
      "type": "modify",
      "old_id": "6565fd5e28eff6e3298aa4a5f781dda188ae68d2",
      "old_mode": 33188,
      "old_path": "fs/dlm/rcom.c",
      "new_id": "64d3e2b958c7874982e042472c36f00ab617f6bf",
      "new_mode": 33188,
      "new_path": "fs/dlm/rcom.c"
    },
    {
      "type": "modify",
      "old_id": "34d5adf1fce7d2022679d42e1e00673af0825dae",
      "old_mode": 33188,
      "old_path": "fs/dlm/recover.c",
      "new_id": "7554e4dac6bbbc0290ac26a1a75438a1551d5060",
      "new_mode": 33188,
      "new_path": "fs/dlm/recover.c"
    },
    {
      "type": "modify",
      "old_id": "11351b57c781a50967135389db6846980898341e",
      "old_mode": 33188,
      "old_path": "fs/dlm/recoverd.c",
      "new_id": "f1a9073c0835e0ecce2e896f5a59799e3604f857",
      "new_mode": 33188,
      "new_path": "fs/dlm/recoverd.c"
    },
    {
      "type": "modify",
      "old_id": "d3191bf03a682781ab703adb4a8d428f00cb770f",
      "old_mode": 33188,
      "old_path": "fs/dlm/requestqueue.c",
      "new_id": "1695f1b0dd456f84c0a4c989069296629b5ea37a",
      "new_mode": 33188,
      "new_path": "fs/dlm/requestqueue.c"
    },
    {
      "type": "modify",
      "old_id": "47d0bda5ac2bd19faea0561d6dcd4d7fabb7479e",
      "old_mode": 33188,
      "old_path": "fs/gfs2/incore.h",
      "new_id": "c7975bf4fd437c2900a5439a4cfe527efbecd5f5",
      "new_mode": 33188,
      "new_path": "fs/gfs2/incore.h"
    },
    {
      "type": "modify",
      "old_id": "5f5e70e047dc73440ab88f1c08adc51938d7930b",
      "old_mode": 33188,
      "old_path": "fs/gfs2/lock_dlm.c",
      "new_id": "4a38db739ca0a5e725a40fd39d9ebc4ff96ea34b",
      "new_mode": 33188,
      "new_path": "fs/gfs2/lock_dlm.c"
    },
    {
      "type": "modify",
      "old_id": "6f3a18f9e176f1bf11e3c66917a5156d76ab1548",
      "old_mode": 33188,
      "old_path": "fs/gfs2/ops_fstype.c",
      "new_id": "018b4c13db926f47ff75e08e4a53111681419f7a",
      "new_mode": 33188,
      "new_path": "fs/gfs2/ops_fstype.c"
    },
    {
      "type": "modify",
      "old_id": "6c7f6e9546c7fde54a88228ebc52144e6bd27692",
      "old_mode": 33188,
      "old_path": "include/linux/dlm.h",
      "new_id": "520152411cd111fc2c0b94dbbf04069465de206c",
      "new_mode": 33188,
      "new_path": "include/linux/dlm.h"
    }
  ]
}
