)]}'
{
  "commit": "6b6f302ceda7a052dab545d6c69abf5f0d4a6cab",
  "tree": "8464850fd94dba0dfa34c75c46dfb3fcf4c3c381",
  "parents": [
    "b5e2c150ac914f28a28833b57397bec0b0a2bd5f"
  ],
  "author": {
    "name": "Thomas Graf",
    "email": "tgraf@suug.ch",
    "time": "Tue Mar 24 14:18:20 2015 +0100"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue Mar 24 17:48:40 2015 -0400"
  },
  "message": "rhashtable: Add rhashtable_free_and_destroy()\n\nrhashtable_destroy() variant which stops rehashes, iterates over\nthe table and calls a callback to release resources.\n\nAvoids need for nft_hash to embed rhashtable internals and allows to\nget rid of the being_destroyed flag. It also saves a 2nd mutex\nlock upon destruction.\n\nAlso fixes an RCU lockdep splash on nft set destruction due to\ncalling rht_for_each_entry_safe() without holding bucket locks.\nOpen code this loop as we need know that no mutations may occur in\nparallel.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ae26c494e2302f9d3c3fe6b04be713d2d53e2a16",
      "old_mode": 33188,
      "old_path": "include/linux/rhashtable.h",
      "new_id": "99f2e49a8a07889b7e4ef0321c779dfaba7c9b13",
      "new_mode": 33188,
      "new_path": "include/linux/rhashtable.h"
    },
    {
      "type": "modify",
      "old_id": "50374d181148ed2979f551097ae0953dd02e75c4",
      "old_mode": 33188,
      "old_path": "lib/rhashtable.c",
      "new_id": "4b7b7e672b934842e9252726d9d1fef6b75f0214",
      "new_mode": 33188,
      "new_path": "lib/rhashtable.c"
    },
    {
      "type": "modify",
      "old_id": "8577a37af18b214a668e111e55a6360a709e4d37",
      "old_mode": 33188,
      "old_path": "net/netfilter/nft_hash.c",
      "new_id": "f9ce2195fd63e30e725fd96088e55cd2d8743160",
      "new_mode": 33188,
      "new_path": "net/netfilter/nft_hash.c"
    }
  ]
}
