)]}'
{
  "commit": "5160ee6fc891a9ca114be0e90fa6655647bb64b2",
  "tree": "35d3740a777935582af1b78238f20d2c2971ed55",
  "parents": [
    "21b6bf143d05d77c350d9c6764ae090a877b66ea"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "dada1@cosmosbay.com",
    "time": "Sun Jan 08 01:03:32 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sun Jan 08 20:13:58 2006 -0800"
  },
  "message": "[PATCH] shrink dentry struct\n\nSome long time ago, dentry struct was carefully tuned so that on 32 bits\nUP, sizeof(struct dentry) was exactly 128, ie a power of 2, and a multiple\nof memory cache lines.\n\nThen RCU was added and dentry struct enlarged by two pointers, with nice\nresults for SMP, but not so good on UP, because breaking the above tuning\n(128 + 8 \u003d 136 bytes)\n\nThis patch reverts this unwanted side effect, by using an union (d_u),\nwhere d_rcu and d_child are placed so that these two fields can share their\nmemory needs.\n\nAt the time d_free() is called (and d_rcu is really used), d_child is known\nto be empty and not touched by the dentry freeing.\n\nLockless lookups only access d_name, d_parent, d_lock, d_op, d_flags (so\nthe previous content of d_child is not needed if said dentry was unhashed\nbut still accessed by a CPU because of RCU constraints)\n\nAs dentry cache easily contains millions of entries, a size reduction is\nworth the extra complexity of the ugly C union.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@epoch.ncsc.mil\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c44bbedec817df655b7b61e12b0433818e7abdc4",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/inode.c",
      "new_id": "4ddc453023a264362f8681d9ec050678da877dba",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/inode.c"
    },
    {
      "type": "modify",
      "old_id": "fca83e28edcf678cb8de5bb6838c7ec654c2455f",
      "old_mode": 33188,
      "old_path": "fs/autofs4/autofs_i.h",
      "new_id": "385bed09b0d84005674acc1bba64ad816ced5e6c",
      "new_mode": 33188,
      "new_path": "fs/autofs4/autofs_i.h"
    },
    {
      "type": "modify",
      "old_id": "feb6ac427d058b8a1c02b420bbe6ad81ffd581aa",
      "old_mode": 33188,
      "old_path": "fs/autofs4/expire.c",
      "new_id": "dc39589df165a049a465208949f9d22c760ce0c2",
      "new_mode": 33188,
      "new_path": "fs/autofs4/expire.c"
    },
    {
      "type": "modify",
      "old_id": "818b37be5153f3d7508ac00c215c2f523f01999f",
      "old_mode": 33188,
      "old_path": "fs/autofs4/inode.c",
      "new_id": "2d3082854a292dec3fc1ad749b81b9c700a4addb",
      "new_mode": 33188,
      "new_path": "fs/autofs4/inode.c"
    },
    {
      "type": "modify",
      "old_id": "2a771ec66956f92615de35694dc512f0144aedba",
      "old_mode": 33188,
      "old_path": "fs/autofs4/root.c",
      "new_id": "2241405ffc413a49035cad0085be9c481c325165",
      "new_mode": 33188,
      "new_path": "fs/autofs4/root.c"
    },
    {
      "type": "modify",
      "old_id": "80072fd9b7faf6a6c21747d65ffc6bb2c65e8cbd",
      "old_mode": 33188,
      "old_path": "fs/coda/cache.c",
      "new_id": "c607d923350a4ee1bb46259ddd39d9761301bb72",
      "new_mode": 33188,
      "new_path": "fs/coda/cache.c"
    },
    {
      "type": "modify",
      "old_id": "17e4391386818d405ca0203123b9738f8b886cc8",
      "old_mode": 33188,
      "old_path": "fs/dcache.c",
      "new_id": "1536f15c4d4c785a1ad2d49a78d03c5c4bd0067c",
      "new_mode": 33188,
      "new_path": "fs/dcache.c"
    },
    {
      "type": "modify",
      "old_id": "58101dff2c66de94fc4fa82bf13696e9d9b8d665",
      "old_mode": 33188,
      "old_path": "fs/libfs.c",
      "new_id": "9c50523382e7eced4a45a44ce64e07ebaca5d9c5",
      "new_mode": 33188,
      "new_path": "fs/libfs.c"
    },
    {
      "type": "modify",
      "old_id": "a9f7a8ab1d595d30fcb656eea4a1349a7f324d43",
      "old_mode": 33188,
      "old_path": "fs/ncpfs/dir.c",
      "new_id": "cfd76f431dc0ecba78d8e8bb96c668c402979cc5",
      "new_mode": 33188,
      "new_path": "fs/ncpfs/dir.c"
    },
    {
      "type": "modify",
      "old_id": "9e4dc30c2435c207ddce4d2c67311db24429d457",
      "old_mode": 33188,
      "old_path": "fs/ncpfs/ncplib_kernel.h",
      "new_id": "799e5c2bec55bf7d1f401e2b207d2c1e96e5d312",
      "new_mode": 33188,
      "new_path": "fs/ncpfs/ncplib_kernel.h"
    },
    {
      "type": "modify",
      "old_id": "f3e6b81288abf4b407daa02debcb45b10f35be2a",
      "old_mode": 33188,
      "old_path": "fs/smbfs/cache.c",
      "new_id": "74b86d9725a63cce6a65ad53514cecc3d9437a82",
      "new_mode": 33188,
      "new_path": "fs/smbfs/cache.c"
    },
    {
      "type": "modify",
      "old_id": "46a2ba6175954880fcdfa89bc9a9a063f4e76443",
      "old_mode": 33188,
      "old_path": "include/linux/dcache.h",
      "new_id": "a3ed5e059d479eb2ff7ee712f6adff5170c2a4be",
      "new_mode": 33188,
      "new_path": "include/linux/dcache.h"
    },
    {
      "type": "modify",
      "old_id": "e04c2da9dadbdd24b636ebd8f91884d03669d374",
      "old_mode": 33188,
      "old_path": "kernel/cpuset.c",
      "new_id": "eab64e23bcae82a2e729e135d73c140ee21e8ef0",
      "new_mode": 33188,
      "new_path": "kernel/cpuset.c"
    },
    {
      "type": "modify",
      "old_id": "24cc23af9b95d7d0ca1950ce7bcaf5ac098bdc6f",
      "old_mode": 33188,
      "old_path": "net/sunrpc/rpc_pipe.c",
      "new_id": "e14c1cae74600d5035b571a50414a65f7429ac8a",
      "new_mode": 33188,
      "new_path": "net/sunrpc/rpc_pipe.c"
    },
    {
      "type": "modify",
      "old_id": "e59da6398d44508ca902c7dad417ddb0cdba888a",
      "old_mode": 33188,
      "old_path": "security/selinux/selinuxfs.c",
      "new_id": "b5fa02d17b1eae8ff3a863ec8520fae951b1de12",
      "new_mode": 33188,
      "new_path": "security/selinux/selinuxfs.c"
    }
  ]
}
