)]}'
{
  "log": [
    {
      "commit": "1bfba4e8ea0e555e3a0296051517d96253660ccc",
      "tree": "48ced9016b5c08f1be217677c25e6879c07b5278",
      "parents": [
        "a7addcea6ac7c0e9733a48cda06ca0880f116a48"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Mon Jun 26 00:24:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:17 2006 -0700"
      },
      "message": "[PATCH] core: use list_move()\n\nThis patch converts the combination of list_del(A) and list_add(A, B) to\nlist_move(A, B).\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8e13059a37252c45ab7173a0e4bac05e4a444ab6",
      "tree": "5a1e2d011e9b2690b9463a738a4d906ce3e8362c",
      "parents": [
        "38e13929c391e6964b00840b765ed601a3377d33"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Mon Jun 26 00:24:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:17 2006 -0700"
      },
      "message": "[PATCH] use list_add_tail() instead of list_add()\n\nThis patch converts list_add(A, B.prev) to list_add_tail(A, \u0026B) for\nreadability.\n\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\nCc: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAOLed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f58a1ebb22f128fccfeafb2b18557c87741cd627",
      "tree": "02fc9331087b97f69f50ab3bc78ae1e9910aa6ec",
      "parents": [
        "d84a84775bba661d5a3fd06757bbb419381937f3"
      ],
      "author": {
        "name": "Hua Zhong",
        "email": "hzhong@gmail.com",
        "time": "Sun Jun 25 05:49:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:26 2006 -0700"
      },
      "message": "[PATCH] remove unlikely(sb) in prune_dcache\n\nlikely profiling shows that the following is a miss.\n\nAfter boot:\n[+- ] Type | # True | # False | Function:Filename@Line\n+unlikely |     1074|        0  prune_dcache()@:fs/dcache.c@409\n\nAfter a bonnie++ run:\n+unlikely |    66716|    19584  prune_dcache()@:fs/dcache.c@409\n\nSo remove it.\n\nSigned-off-by: Hua Zhong \u003chzhong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d702ccb342e49f7591df5a87c3857c698183b0fa",
      "tree": "4bc01a35030827a238c0822d74995b37efa4d9f7",
      "parents": [
        "0feae5c47aabdde59cbbec32d150e17102de37f0"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Jun 22 14:47:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:05:57 2006 -0700"
      },
      "message": "[PATCH] prune_one_dentry() tweaks\n\n- Add description of d_lock handling to comments over prune_one_dentry().\n\n- It has three callsites - uninline it, saving 200 bytes of text.\n\nCc: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Olaf Hering \u003colh@suse.de\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0feae5c47aabdde59cbbec32d150e17102de37f0",
      "tree": "244f742d943a0516921180b840419fdc329075f0",
      "parents": [
        "de047c1bcd7f7bcfbdc29eb5b439fb332594da3f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 22 14:47:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:05:57 2006 -0700"
      },
      "message": "[PATCH] Fix dcache race during umount\n\nThe race is that the shrink_dcache_memory shrinker could get called while a\nfilesystem is being unmounted, and could try to prune a dentry belonging to\nthat filesystem.\n\nIf it does, then it will call in to iput on the inode while the dentry is\nno longer able to be found by the umounting process.  If iput takes a\nwhile, generic_shutdown_super could get all the way though\nshrink_dcache_parent and shrink_dcache_anon and invalidate_inodes without\never waiting on this particular inode.\n\nEventually the superblock gets freed anyway and if the iput tried to touch\nit (which some filesystems certainly do), it will lose.  The promised\n\"Self-destruct in 5 seconds\" doesn\u0027t lead to a nice day.\n\nThe race is closed by holding s_umount while calling prune_one_dentry on\nsomeone else\u0027s dentry.  As a down_read_trylock is used,\nshrink_dcache_memory will no longer try to prune the dentry of a filesystem\nthat is being unmounted, and unmount will not be able to start until any\nsuch active prune_one_dentry completes.\n\nThis requires that prune_dcache *knows* which filesystem (if any) it is\ndoing the prune on behalf of so that it can be careful of other\nfilesystems.  shrink_dcache_memory isn\u0027t called it on behalf of any\nfilesystem, and so is careful of everything.\n\nshrink_dcache_anon is now passed a super_block rather than the s_anon list\nout of the superblock, so it can get the s_anon list itself, and can pass\nthe superblock down to prune_dcache.\n\nIf prune_dcache finds a dentry that it cannot free, it leaves it where it\nis (at the tail of the list) and exits, on the assumption that some other\nthread will be removing that dentry soon.  To try to make sure that some\nwork gets done, a limited number of dnetries which are untouchable are\nskipped over while choosing the dentry to work on.\n\nI believe this race was first found by Kirill Korotaev.\n\nCc: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Olaf Hering \u003colh@suse.de\u003e\nAcked-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e7e241f8c5c87cc3685364feface081c9fa3648",
      "tree": "43ea46cfec4da31a505e93875feeac945bf906ce",
      "parents": [
        "92476d7fc0326a409ab1d3864a04093a6be9aca7"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Mar 31 02:31:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:19:00 2006 -0800"
      },
      "message": "[PATCH] dcache: Add helper d_hash_and_lookup\n\nIt is very common to hash a dentry and then to call lookup.  If we take fs\nspecific hash functions into account the full hash logic can get ugly.\nFurther full_name_hash as an inline function is almost 100 bytes on x86 so\nhaving a non-inline choice in some cases can measurably decrease code size.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a2bd3f7efa86e8b56482a8f8948c8b222064a67",
      "tree": "34a90c6b4f08efb1b7f3ca6face4879164c28e15",
      "parents": [
        "094e320d761dae5816d8faa695b0509eea79c108"
      ],
      "author": {
        "name": "Amy Griffis",
        "email": "amy.griffis@hp.com",
        "time": "Fri Mar 31 02:30:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] inotify: IN_DELETE events missing\n\nIN_DELETE events are no longer generated for the removal of a file from a\nwatched directory.\n\nThis seems to be a result of clearing DCACHE_INOTIFY_PARENT_WATCHED in\nd_delete() directly before calling fsnotify_nameremove().\n\nAssuming the flag doesn\u0027t need to be cleared before dentry_iput(), this\nshould do the trick.\n\nSigned-off-by: Amy Griffis \u003camy.griffis@hp.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nAcked-by: Robert Love \u003crml@novell.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ae21d1bb376436285cd5346d3e4b3655d6dd1b9",
      "tree": "8f889770fae721da63bd378c1834a87e2eb1cfb5",
      "parents": [
        "f9b4192923fa6e38331e88214b1fe5fc21583fcc",
        "e9415777b1cd0eaf4d1d3d61772f0e6d5c2551ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment\n  Kconfig help: MTD_JEDECPROBE already supports Intel\n  Remove ugly debugging stuff\n  do_mounts.c: Minor ROOT_DEV comment cleanup\n  BUG_ON() Conversion in drivers/s390/block/dasd_devmap.c\n  BUG_ON() Conversion in mm/mempool.c\n  BUG_ON() Conversion in mm/memory.c\n  BUG_ON() Conversion in kernel/fork.c\n  BUG_ON() Conversion in ipc/sem.c\n  BUG_ON() Conversion in fs/ext2/\n  BUG_ON() Conversion in fs/hfs/\n  BUG_ON() Conversion in fs/dcache.c\n  BUG_ON() Conversion in fs/buffer.c\n  BUG_ON() Conversion in input/serio/hp_sdc_mlc.c\n  BUG_ON() Conversion in md/dm-table.c\n  BUG_ON() Conversion in md/dm-path-selector.c\n  BUG_ON() Conversion in drivers/isdn\n  BUG_ON() Conversion in drivers/char\n  BUG_ON() Conversion in drivers/mtd/\n"
    },
    {
      "commit": "3be7d29fb9c02962b49be636b30ca9cadd0fda4b",
      "tree": "2ec3fc11cb5f423091bd050181ac1786167c2ded",
      "parents": [
        "5ac35783f4a471d43c557db27928bc29f8a9c6d0"
      ],
      "author": {
        "name": "Artem B. Bityuckiy",
        "email": "dedekind@infradead.org",
        "time": "Sun Mar 26 18:58:31 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Mar 26 18:58:31 2006 +0200"
      },
      "message": "Remove ugly debugging stuff\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "fa3536cc144c1298f2ed9416c33f3b77fa2cd37a",
      "tree": "5484541319b86ae7dac0def4db7925f7cc7008e7",
      "parents": [
        "878a9f30d7b13015f3aa4534d7877d985f150183"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 26 01:37:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] Use __read_mostly on some hot fs variables\n\nI discovered on oprofile hunting on a SMP platform that dentry lookups were\nslowed down because d_hash_mask, d_hash_shift and dentry_hashtable were in\na cache line that contained inodes_stat.  So each time inodes_stats is\nchanged by a cpu, other cpus have to refill their cache line.\n\nThis patch moves some variables to the __read_mostly section, in order to\navoid false sharing.  RCU dentry lookups can go full speed.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28133c7b2b9bbdf8a8765a319e818c1652f38c1f",
      "tree": "35a5e82cbd970a90f45933aa2d4f20e421537b66",
      "parents": [
        "e827f92355e1eeec2d227d3bd3350d04042a011e"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Mar 26 18:25:39 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Mar 26 18:25:39 2006 +0200"
      },
      "message": "BUG_ON() Conversion in fs/dcache.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner and can better optimized away\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "2ab13460852e65c2ec0e77000baba5e859a6a2cf",
      "tree": "566f37cc9f4cb593c3f85a7eb4ae46b308b8a6dd",
      "parents": [
        "4ffc84442572669727dc4fcd976582508eaf23e7"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Sat Mar 25 03:07:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:56 2006 -0800"
      },
      "message": "[PATCH] Reduce sched latency in shrink_dcache_sb()\n\nThis patch reduces scheduling latency in shrink_dcache_sb() noticed during\nremounting of big partitions with many cached dentries.  The same latency\nfix was applied to select_parent() long ago.\n\nSigned-off-by: Denis Lunev \u003cden@sw.ru\u003e\nSigned-off-by: Pavel Emelianov \u003cxemul@sw.ru\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c32ccd87bfd1414b0aabfcd8dbc7539ad23bcbaa",
      "tree": "612dc637976cbe36e8b72924a1f7bd76e75463fd",
      "parents": [
        "bf36b9011e3c5b2739f9da2f6de8a6fa3edded32"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Mar 25 03:07:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:53 2006 -0800"
      },
      "message": "[PATCH] inotify: lock avoidance with parent watch status in dentry\n\nPrevious inotify work avoidance is good when inotify is completely unused,\nbut it breaks down if even a single watch is in place anywhere in the\nsystem.  Robin Holt notices that udev is one such culprit - it slows down a\n512-thread application on a 512 CPU system from 6 seconds to 22 minutes.\n\nSolve this by adding a flag in the dentry that tells inotify whether or not\nits parent inode has a watch on it.  Event queueing to parent will skip\ntaking locks if this flag is cleared.  Setting and clearing of this flag on\nall child dentries versus event delivery: this is no in terms of race\ncases, and that was shown to be equivalent to always performing the check.\n\nThe essential behaviour is that activity occuring _after_ a watch has been\nadded and _before_ it has been removed, will generate events.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "214fda1f6e1b8ef2a5292b0372744037fc80d318",
      "tree": "4cf0a18632cc663fcd75a1e23e357ec39c0c3b37",
      "parents": [
        "7d99b7d634d81bb372e03e4561c80430aa4cfac2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Mar 25 03:06:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] Optimise d_find_alias()\n\nThe attached patch optimises d_find_alias() to only take the spinlock if\nthere\u0027s anything in the the inode\u0027s alias list.  If there isn\u0027t, it returns\nNULL immediately.\n\nWith respect to the superblock sharing patch, this should reduce by one the\nnumber of times the dcache_lock is taken by nfs_lookup() for ordinary\ndirectory lookups.\n\nOnly in the case where there\u0027s already a dentry for particular directory inode\n(such as might happen when another mountpoint is rooted at that dentry) will\nthe lock then be taken the extra time.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0196009d8c3ecf6ea6ec080c63d2ccc146e7ad9",
      "tree": "3fcb06af54faf92fa5d9d82d5659762d2b742e1c",
      "parents": [
        "c61afb181c649754ea221f104e268cbacfc993e3"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread slab cache hooks\n\nChange the kmem_cache_create calls for certain slab caches to support cpuset\nmemory spreading.\n\nSee the previous patches, cpuset_mem_spread, for an explanation of cpuset\nmemory spreading, and cpuset_mem_spread_slab_cache for the slab cache support\nfor memory spreading.\n\nThe slab caches marked for now are: dentry_cache, inode_cache, some xfs slab\ncaches, and buffer_head.  This list may change over time.  In particular,\nother file system types that are used extensively on large NUMA systems may\nwant to allow for spreading their directory and inode slab cache entries.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "529bf6be5c04f2e869d07bfdb122e9fd98ade714",
      "tree": "38514bb3941c4ac2a79266e4483663b79efa2f22",
      "parents": [
        "21a1ea9eb40411d4ee29448c53b9e4c0654d6ceb"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Tue Mar 07 21:55:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:14:01 2006 -0800"
      },
      "message": "[PATCH] fix file counting\n\nI have benchmarked this on an x86_64 NUMA system and see no significant\nperformance difference on kernbench.  Tested on both x86_64 and powerpc.\n\nThe way we do file struct accounting is not very suitable for batched\nfreeing.  For scalability reasons, file accounting was\nconstructor/destructor based.  This meant that nr_files was decremented\nonly when the object was removed from the slab cache.  This is susceptible\nto slab fragmentation.  With RCU based file structure, consequent batched\nfreeing and a test program like Serge\u0027s, we just speed this up and end up\nwith a very fragmented slab -\n\nllm22:~ # cat /proc/sys/fs/file-nr\n587730  0       758844\n\nAt the same time, I see only a 2000+ objects in filp cache.  The following\npatch I fixes this problem.\n\nThis patch changes the file counting by removing the filp_count_lock.\nInstead we use a separate percpu counter, nr_files, for now and all\naccesses to it are through get_nr_files() api.  In the sysctl handler for\nnr_files, we populate files_stat.nr_files before returning to user.\n\nCounting files as an when they are created and destroyed (as opposed to\ninside slab) allows us to correctly count open files with RCU.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47ba87e0b1269698801310bfd1716b0538282405",
      "tree": "be429e822401e9f1a213b008b5e6e2f538754888",
      "parents": [
        "09114eb8c53d2d3b2ff9523e011cb68b2e245dce"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo.tosatti@cyclades.com",
        "time": "Fri Feb 03 03:04:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:04 2006 -0800"
      },
      "message": "[PATCH] make \"struct d_cookie\" depend on CONFIG_PROFILING\n\nShrinks \"struct dentry\" from 128 bytes to 124 on x86, allowing 31 objects\nper slab instead of 30.\n\nCc: John Levon \u003clevon@movementarian.org\u003e\nCc: Philippe Elie \u003cphil.el@wanadoo.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e866cfa939de7f52c154a9495eb5767f89abf453",
      "tree": "331c6c08848597ea5674ebccb51f31a045bd1e30",
      "parents": [
        "632d6407afb58ef125bf7e82a2e8af27d0704b56"
      ],
      "author": {
        "name": "Oleg Drokin",
        "email": "green@linuxhacker.ru",
        "time": "Mon Jan 09 20:52:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:41 2006 -0800"
      },
      "message": "[PATCH] d_instantiate_unique / NFS inode leakage\n\nIf we have found aliased dentry that we return, inode reference is not\ndropped and inode is not attached anywhere, so it seems the reference to\ninode is leaked in that case.\n\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e,\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "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"
    },
    {
      "commit": "665a7583f32ab5b3bfe7a4d88da506542f7cdd75",
      "tree": "2b45def3f7ecaf322b05622a635510fe8aef51af",
      "parents": [
        "9f46080c41d5f3f7c00b4e169ba4b0b2865258bf"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Mon Nov 07 00:59:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:35 2005 -0800"
      },
      "message": "[PATCH] Remove hlist_for_each_rcu() API, convert existing use to hlist_for_each_entry_rcu\n\nRemove the hlist_for_each_rcu() API, which is used only in one place, and\nis trivially converted to hlist_for_each_entry_rcu(), making the code\nshorter and more readable.  Any out-of-tree uses may be similarly\nconverted.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27496a8c67bef4d789d8e3c8317ca35813a507ae",
      "tree": "fe99a34fe5a800e41af61853e7444ddddf45d014",
      "parents": [
        "7d877f3bda870ab5f001bd92528654471d5966b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:20:48 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: fs/*\n\n - -\u003ereleasepage() annotated (s/int/gfp_t), instances updated\n - missing gfp_t in fs/* added\n - fixed misannotation from the original sweep caught by bitwise checks:\n   XFS used __nocast both for gfp_t and for flags used by XFS allocator.\n   The latter left with unsigned int __nocast; we might want to add a\n   different type for those but for now let\u0027s leave them alone.  That,\n   BTW, is a case when __nocast use had been actively confusing - it had\n   been used in the same code for two different and similar types, with\n   no way to catch misuses.  Switch of gfp_t to bitwise had caught that\n   immediately...\n\nOne tricky bit is left alone to be dealt with later - mapping-\u003eflags is\na mix of gfp_t and error indications.  Left alone for now.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f805fbdaacf4367ce566743a665622387768ac0d",
      "tree": "006c7be5683f8cad7be02824827e0104e15604b4",
      "parents": [
        "875bd5ab01bc0b760fd4e97838931cd2e7456cbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 19 19:54:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 19 19:54:29 2005 -0700"
      },
      "message": "Make fsnotify possibly work better for the inode removal case\n\nChecking i_nlink is dubious, but the alternatives look even\nless appetizing.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0cdca3f9806a3dbaa07b5e8175000cd513ba92d4",
      "tree": "2235a2065509b74eff9d94ffcdbc8d9371f5b5ab",
      "parents": [
        "fdadd65fbce0ff966cb8e74247d9636f52a7fc7a"
      ],
      "author": {
        "name": "Domen Puncer",
        "email": "domen@coderock.org",
        "time": "Sat Sep 10 00:27:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:32 2005 -0700"
      },
      "message": "[PATCH] janitor: fs/dcache.c: list_for_each*\n\nFirst one is list_for_each_entry (thanks maks), second 2 list_for_each_safe.\n\nSigned-off-by: Maximilian Attems \u003cjanitor@sternwelten.at\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a91bf7f5c22c8407a9991cbd9ce5bb87caa6b4a",
      "tree": "ffd77cfbf621a990052c1277d8a18451b9363dda",
      "parents": [
        "1963c907b21e140082d081b1c8f8c2154593c7d7"
      ],
      "author": {
        "name": "John McCutchan",
        "email": "ttb@tentacle.dhs.org",
        "time": "Mon Aug 08 13:52:16 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Aug 08 11:53:47 2005 -0700"
      },
      "message": "[PATCH] fsnotify_name/inoderemove\n\nThe patch below unhooks fsnotify from vfs_unlink \u0026 vfs_rmdir.  It\nintroduces two new fsnotify calls, that are hooked in at the dcache\nlevel.  This not only more closely matches how the VFS layer works, it\nalso avoids the problem with locking and inode lifetimes.\n\nThe two functions are\n\n - fsnotify_nameremove -- called when a directory entry is going away.\n   It notifies the PARENT of the deletion.  This is called from\n   d_delete().\n\n - inoderemove -- called when the files inode itself is going away.  It\n   notifies the inode that is being deleted.  This is called from\n   dentry_iput().\n\nSigned-off-by: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75c96f85845a6707b0f9916cb263cb3584f7d48f",
      "tree": "45a64d1c9bb71d7093db3a11e0f21465c2e3dec6",
      "parents": [
        "5e198d94dd0c3ec7f6138229e2e412c2c6268c38"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu May 05 16:16:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:47 2005 -0700"
      },
      "message": "[PATCH] make some things static\n\nThis patch makes some needlessly global identifiers static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
