)]}'
{
  "commit": "2c02dfe7fe3fba97a5665d329d039d2415ea5607",
  "tree": "7f50644bbfcc119cb85e21642a76eabfaf77b8ad",
  "parents": [
    "ad8456361fa19068cf49b50a4f98e41b73c08e76"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Mon May 31 12:19:37 2010 -0700"
  },
  "committer": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Sat Jun 05 11:17:35 2010 +0930"
  },
  "message": "module: Make the \u0027usage\u0027 lists be two-way\n\nWhen adding a module that depends on another one, we used to create a\none-way list of \"modules_which_use_me\", so that module unloading could\nsee who needs a module.\n\nIt\u0027s actually quite simple to make that list go both ways: so that we\nnot only can see \"who uses me\", but also see a list of modules that are\n\"used by me\".\n\nIn fact, we always wanted that list in \"module_unload_free()\": when we\nunload a module, we want to also release all the other modules that are\nused by that module.  But because we didn\u0027t have that list, we used to\nfirst iterate over all modules, and then iterate over each \"used by me\"\nlist of that module.\n\nBy making the list two-way, we simplify module_unload_free(), and it\nallows for some trivial fixes later too.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (cleaned \u0026 rebased)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6914fcad46733974df83c76c5d7e2d96008793be",
      "old_mode": 33188,
      "old_path": "include/linux/module.h",
      "new_id": "680db9e2ac365e4758abf45733493db3ac35044d",
      "new_mode": 33188,
      "new_path": "include/linux/module.h"
    },
    {
      "type": "modify",
      "old_id": "0129769301e3106eb505576fbb495a64f289160c",
      "old_mode": 33188,
      "old_path": "kernel/module.c",
      "new_id": "be18c3e34684860e7fd394ed4c015fe67ddac7e8",
      "new_mode": 33188,
      "new_path": "kernel/module.c"
    }
  ]
}
