)]}'
{
  "commit": "d8fb02abdc39f92a1066313e2b17047876afa8f9",
  "tree": "32f8126683dd185411b701b79d23900cf6c02035",
  "parents": [
    "32852a81bccd9e3d1953b894966393d1b546576d"
  ],
  "author": {
    "name": "Alex Elder",
    "email": "elder@dreamhost.com",
    "time": "Thu Jan 12 17:48:10 2012 -0800"
  },
  "committer": {
    "name": "Sage Weil",
    "email": "sage@newdream.net",
    "time": "Thu Feb 02 12:49:19 2012 -0800"
  },
  "message": "ceph: create a new session lock to avoid lock inversion\n\nLockdep was reporting a possible circular lock dependency in\ndentry_lease_is_valid().  That function needs to sample the\nsession\u0027s s_cap_gen and and s_cap_ttl fields coherently, but needs\nto do so while holding a dentry lock.  The s_cap_lock field was\nbeing used to protect the two fields, but that can\u0027t be taken while\nholding a lock on a dentry within the session.\n\nIn most cases, the s_cap_gen and s_cap_ttl fields only get operated\non separately.  But in three cases they need to be updated together.\nImplement a new lock to protect the spots updating both fields\natomically is required.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Sage Weil \u003csage@newdream.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8b53193e4f7ca67e3011c8501c8f1fee62357f9d",
      "old_mode": 33188,
      "old_path": "fs/ceph/caps.c",
      "new_id": "90d789df9ce0a559e61e1e36465494a149cf41e5",
      "new_mode": 33188,
      "new_path": "fs/ceph/caps.c"
    },
    {
      "type": "modify",
      "old_id": "98954003a8d313007386d4cfc214c5dba9296647",
      "old_mode": 33188,
      "old_path": "fs/ceph/dir.c",
      "new_id": "63c52f33361bce397cd963af7ef6ef587b4bc06e",
      "new_mode": 33188,
      "new_path": "fs/ceph/dir.c"
    },
    {
      "type": "modify",
      "old_id": "be1415fcaac82bd0bcf67f8bd6e8130fe17adb4e",
      "old_mode": 33188,
      "old_path": "fs/ceph/mds_client.c",
      "new_id": "a4fdf9397a90646f5a309a0d6bf1449dc2009493",
      "new_mode": 33188,
      "new_path": "fs/ceph/mds_client.c"
    },
    {
      "type": "modify",
      "old_id": "a50ca0e39475794018c2350570547bff4f6a7df8",
      "old_mode": 33188,
      "old_path": "fs/ceph/mds_client.h",
      "new_id": "8c7c04ebb595a1a8bd2e9c1b177890f8ba234b9a",
      "new_mode": 33188,
      "new_path": "fs/ceph/mds_client.h"
    }
  ]
}
