)]}'
{
  "log": [
    {
      "commit": "a1bd120d13e586ea1c424048fd2c8420a442852a",
      "tree": "fdac342d7ab0fbaaeb1dd7d61a86b457a6938672",
      "parents": [
        "52957fe1c709d5ca3732456d73f4e4d95492c72c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:29:14 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "vfs: Add inode uid,gid,mode init helper\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2e147f1ef7d593b36c0e27a393b7d7ec0765f54b",
      "tree": "cc7746744467dfcedd8e5068eac982fc9c308515",
      "parents": [
        "a7cf4145bb86aaf85d4d4d29a69b50b688e2e49d"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Fri May 14 10:49:22 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "fs: inode.c use atomic_inc_return in __iget\n\nUsing atomic_inc_return in __iget(struct inode *inode) makes the intent\nof this code clearer and generates less code on processors that have\nthis operation.\n\nOn x86_64 this patch reduces the text size of inode.o by 12 bytes.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\n\n----\npatch against 2.6.34-rc7\ncompiled \u0026 tested on x86_64 AMD X2\n\nI\u0027ve been running with this patch applied for several weeks with no\nobvious problems.\nregards\nRichard\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9d5ed77dadc66a72b40419c91df942adfa55a102",
      "tree": "eb55062edf757a7b7fe707adda7178181f8a4427",
      "parents": [
        "91a9420f5826db482030c21eca8c507271bbc441"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:14:50 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 12 12:19:15 2010 +1000"
      },
      "message": "security: remove dead hook inode_delete\n\nUnused hook.  Remove.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "257ba15cedf1288f0c96118d7e63947231d27278",
      "tree": "7a977a0ea08a324ce74aedce19406cb0688f15e2",
      "parents": [
        "b43fa8284d7790d9cca32c9c55e24f29be2fa33b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:04 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: move dquot drop responsibility into the filesystem\n\nCurrently clear_inode calls vfs_dq_drop directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the drop inside the -\u003eclear_inode\nsuperblock operation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "eaff8079d4f1016a12e34ab323737314f24127dd",
      "tree": "a3d9e00320c6195e55811d5247a521f99341a411",
      "parents": [
        "7a0ad10c367ab57c899d340372f37880cbe6ab52"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Dec 17 14:25:01 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 17 11:03:25 2009 -0500"
      },
      "message": "kill I_LOCK\n\nAfter I_SYNC was split from I_LOCK the leftover is always used together with\nI_NEW and thus superflous.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6c21a7fb492bf7e2c4985937082ce58ddeca84bd",
      "tree": "6cfe11ba4b8eee26ee8b02d2b4a5fcc6ea07e4bd",
      "parents": [
        "6e8e16c7bc298d7887584c3d027e05db3e86eed9"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Thu Oct 22 17:30:13 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sun Oct 25 12:22:48 2009 +0800"
      },
      "message": "LSM: imbed ima calls in the security hooks\n\nBased on discussions on LKML and LSM, where there are consecutive\nsecurity_ and ima_ calls in the vfs layer, move the ima_ calls to\nthe existing security_ hooks.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ce06e0b21d6732a2bab10a585a3ec6909499be28",
      "tree": "5d796827ad968bf305c54a2dd7d6453a24e15344",
      "parents": [
        "b12536c27043f1c21195e587eb59950428326e22"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Sep 18 13:05:48 2009 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 24 07:47:27 2009 -0400"
      },
      "message": "vfs: optimize touch_time() too\n\nDo a similar optimization as earlier for touch_atime.  Getting the lock in\nmnt_get_write is relatively costly, so try all avenues to avoid it first.\n\nThis patch is careful to still only update inode fields inside the lock\nregion.\n\nThis didn\u0027t show up in benchmarks, but it\u0027s easy enough to do.\n\n[akpm@linux-foundation.org: fix typo in comment]\n[hugh.dickins@tiscali.co.uk: fix inverted test of mnt_want_write_file()]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Valerie Aurora \u003cvaurora@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b12536c27043f1c21195e587eb59950428326e22",
      "tree": "6b498fc08174b16b9fa1f44cce5d08d884eec49b",
      "parents": [
        "22fe404218156328a27e66349b1175cd0baa4990"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Sep 18 13:05:47 2009 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 24 07:47:26 2009 -0400"
      },
      "message": "vfs: optimization for touch_atime()\n\nSome benchmark testing shows touch_atime to be high up in profile logs for\nIO intensive workloads.  Most likely that\u0027s due to the lock in\nmnt_want_write().  Unfortunately touch_atime first takes the lock, and\nthen does all the other tests that could avoid atime updates (like noatime\nor relatime).\n\nDo it the other way round -- first try to avoid the update and only then\nif that didn\u0027t succeed take the lock.  That works because none of the\natime avoidance tests rely on locking.\n\nThis also eliminates a goto.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nReviewed-by: Valerie Aurora \u003cvaurora@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "22fe404218156328a27e66349b1175cd0baa4990",
      "tree": "f03f8eb0b346a6950815212a5fa86c6b7e65bd16",
      "parents": [
        "af0d9ae811d11de8a01d6bc922c5e062be01bd7f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Sep 18 13:05:44 2009 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 24 07:47:25 2009 -0400"
      },
      "message": "vfs: split generic_forget_inode() so that hugetlbfs does not have to copy it\n\nHugetlbfs needs to do special things instead of truncate_inode_pages().\n Currently, it copied generic_forget_inode() except for\ntruncate_inode_pages() call which is asking for trouble (the code there\nisn\u0027t trivial).  So create a separate function generic_detach_inode()\nwhich does all the list magic done in generic_forget_inode() and call\nit from hugetlbfs_forget_inode().\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "af0d9ae811d11de8a01d6bc922c5e062be01bd7f",
      "tree": "ee54e986a83208c625919904c39804da48076492",
      "parents": [
        "14be27460e4722d7135de3c46d043b4fc4382247"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Fri Sep 18 13:05:43 2009 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 24 07:47:24 2009 -0400"
      },
      "message": "fs/inode.c: add dev-id and inode number for debugging in init_special_inode()\n\nAdd device-id and inode number for better debugging.  This was suggested\nby Andreas in one of the threads\nhttp://article.gmane.org/gmane.comp.file-systems.ext4/12062 .\n\n\"If anyone has a chance, fixing this error message to be not-useless would\nbe good...  Including the device name and the inode number would help\ntrack down the source of the problem.\"\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "88e0fbc452ed94393bf89585c2b90edb94749b45",
      "tree": "374b7c8f397609da7a7b22ddee77a9c70956fcb1",
      "parents": [
        "70867453092297be9afb2249e712a1f960ec0a09"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Sep 22 16:43:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "fs: turn iprune_mutex into rwsem\n\nWe have had a report of bad memory allocation latency during DVD-RAM (UDF)\nwriting.  This is causing the user\u0027s desktop session to become unusable.\n\nJan tracked the cause of this down to UDF inode reclaim blocking:\n\ngnome-screens D ffff810006d1d598     0 20686      1\n ffff810006d1d508 0000000000000082 ffff810037db6718 0000000000000800\n ffff810006d1d488 ffffffff807e4280 ffffffff807e4280 ffff810006d1a580\n ffff8100bccbc140 ffff810006d1a8c0 0000000006d1d4e8 ffff810006d1a8c0\nCall Trace:\n [\u003cffffffff804477f3\u003e] io_schedule+0x63/0xa5\n [\u003cffffffff802c2587\u003e] sync_buffer+0x3b/0x3f\n [\u003cffffffff80447d2a\u003e] __wait_on_bit+0x47/0x79\n [\u003cffffffff80447dc6\u003e] out_of_line_wait_on_bit+0x6a/0x77\n [\u003cffffffff802c24f6\u003e] __wait_on_buffer+0x1f/0x21\n [\u003cffffffff802c442a\u003e] __bread+0x70/0x86\n [\u003cffffffff88de9ec7\u003e] :udf:udf_tread+0x38/0x3a\n [\u003cffffffff88de0fcf\u003e] :udf:udf_update_inode+0x4d/0x68c\n [\u003cffffffff88de26e1\u003e] :udf:udf_write_inode+0x1d/0x2b\n [\u003cffffffff802bcf85\u003e] __writeback_single_inode+0x1c0/0x394\n [\u003cffffffff802bd205\u003e] write_inode_now+0x7d/0xc4\n [\u003cffffffff88de2e76\u003e] :udf:udf_clear_inode+0x3d/0x53\n [\u003cffffffff802b39ae\u003e] clear_inode+0xc2/0x11b\n [\u003cffffffff802b3ab1\u003e] dispose_list+0x5b/0x102\n [\u003cffffffff802b3d35\u003e] shrink_icache_memory+0x1dd/0x213\n [\u003cffffffff8027ede3\u003e] shrink_slab+0xe3/0x158\n [\u003cffffffff8027fbab\u003e] try_to_free_pages+0x177/0x232\n [\u003cffffffff8027a578\u003e] __alloc_pages+0x1fa/0x392\n [\u003cffffffff802951fa\u003e] alloc_page_vma+0x176/0x189\n [\u003cffffffff802822d8\u003e] __do_fault+0x10c/0x417\n [\u003cffffffff80284232\u003e] handle_mm_fault+0x466/0x940\n [\u003cffffffff8044b922\u003e] do_page_fault+0x676/0xabf\n\nThis blocks with iprune_mutex held, which then blocks other reclaimers:\n\nX             D ffff81009d47c400     0 17285  14831\n ffff8100844f3728 0000000000000086 0000000000000000 ffff81000000e288\n ffff81000000da00 ffffffff807e4280 ffffffff807e4280 ffff81009d47c400\n ffffffff805ff890 ffff81009d47c740 00000000844f3808 ffff81009d47c740\nCall Trace:\n [\u003cffffffff80447f8c\u003e] __mutex_lock_slowpath+0x72/0xa9\n [\u003cffffffff80447e1a\u003e] mutex_lock+0x1e/0x22\n [\u003cffffffff802b3ba1\u003e] shrink_icache_memory+0x49/0x213\n [\u003cffffffff8027ede3\u003e] shrink_slab+0xe3/0x158\n [\u003cffffffff8027fbab\u003e] try_to_free_pages+0x177/0x232\n [\u003cffffffff8027a578\u003e] __alloc_pages+0x1fa/0x392\n [\u003cffffffff8029507f\u003e] alloc_pages_current+0xd1/0xd6\n [\u003cffffffff80279ac0\u003e] __get_free_pages+0xe/0x4d\n [\u003cffffffff802ae1b7\u003e] __pollwait+0x5e/0xdf\n [\u003cffffffff8860f2b4\u003e] :nvidia:nv_kern_poll+0x2e/0x73\n [\u003cffffffff802ad949\u003e] do_select+0x308/0x506\n [\u003cffffffff802adced\u003e] core_sys_select+0x1a6/0x254\n [\u003cffffffff802ae0b7\u003e] sys_select+0xb5/0x157\n\nNow I think the main problem is having the filesystem block (and do IO) in\ninode reclaim.  The problem is that this doesn\u0027t get accounted well and\npenalizes a random allocator with a big latency spike caused by work\ngenerated from elsewhere.\n\nI think the best idea would be to avoid this.  By design if possible, or\nby deferring the hard work to an asynchronous context.  If the latter,\nthen the fs would probably want to throttle creation of new work with\nqueue size of the deferred work, but let\u0027s not get into those details.\n\nAnyway, the other obvious thing we looked at is the iprune_mutex which is\ncausing the cascading blocking.  We could turn this into an rwsem to\nimprove concurrency.  It is unreasonable to totally ban all potentially\nslow or blocking operations in inode reclaim, so I think this is a cheap\nway to get a small improvement.\n\nThis doesn\u0027t solve the whole problem of course.  The process doing inode\nreclaim will still take the latency hit, and concurrent processes may end\nup contending on filesystem locks.  So fs developers should keep these\nproblems in mind.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e1d5dcc2bbbe71dbf010c747e15739bef6b7218",
      "tree": "2edb0f6cc65acbae95e42df1bc763ec048e6c2e0",
      "parents": [
        "7f09410bbc4306f592cfb43812389ea1c7905a20"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining inode_operations as const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "580be0837a7a59b207c3d5c661d044d8dd0a6a30",
      "tree": "4a659c92ed738367c1ed4d9b1b50fe018f401b81",
      "parents": [
        "5be461657be65460ad92be3527e3bb1dd11c49ea"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 21 17:01:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "fs: make sure data stored into inode is properly seen before unlocking new inode\n\nIn theory it could happen that on one CPU we initialize a new inode but\nclearing of I_NEW | I_LOCK gets reordered before some of the\ninitialization.  Thus on another CPU we return not fully uptodate inode\nfrom iget_locked().\n\nThis seems to fix a corruption issue on ext3 mounted over NFS.\n\n[akpm@linux-foundation.org: add some commentary]\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c96ce9f2084c1e04d02883e622f74a537a63aea",
      "tree": "cad3c6773d2886103b05f7b090b3385d23076a03",
      "parents": [
        "0cb583fd2862f19ea88b02eb307d11c09e51e2f8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 15 09:43:56 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:16:18 2009 +0200"
      },
      "message": "fs: remove bdev-\u003ebd_inode_backing_dev_info\n\nIt has been unused since it was introduced in:\n\ncommit 520808bf20e90fdbdb320264ba7dd5cf9d47dcac\nAuthor: Andrew Morton \u003cakpm@osdl.org\u003e\nDate:   Fri May 21 00:46:17 2004 -0700\n\n    [PATCH] block device layer: separate backing_dev_info infrastructure\n\nSo lets just kill it.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2e00c97e2c1d2ffc9e26252ca26b237678b0b772",
      "tree": "e2c65f473e079c4b6027f7f8b7224febe7483884",
      "parents": [
        "54e346215e4fe2ca8c94c54e546cc61902060510"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 07 14:38:29 2009 -0300"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Fri Aug 07 14:38:29 2009 -0300"
      },
      "message": "vfs: add __destroy_inode\n\nWhen we want to tear down an inode that lost the add to the cache race\nin XFS we must not call into -\u003edestroy_inode because that would delete\nthe inode that won the race from the inode cache radix tree.\n\nThis patch provides the __destroy_inode helper needed to fix this,\nthe actual fix will be in th next patch.  As XFS was the only reason\ndestroy_inode was exported we shift the export to the new __destroy_inode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "54e346215e4fe2ca8c94c54e546cc61902060510",
      "tree": "9b4ed9b0ab78117ba1a41db7073708031622cf10",
      "parents": [
        "90bc1a658a53f8832ee799685703977a450e5af9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 07 14:38:25 2009 -0300"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Fri Aug 07 14:38:25 2009 -0300"
      },
      "message": "vfs: fix inode_init_always calling convention\n\nCurrently inode_init_always calls into -\u003edestroy_inode if the additional\ninitialization fails.  That\u0027s not only counter-intuitive because\ninode_init_always did not allocate the inode structure, but in case of\nXFS it\u0027s actively harmful as -\u003edestroy_inode might delete the inode from\na radix-tree that has never been added.  This in turn might end up\ndeleting the inode for the same inum that has been instanciated by\nanother process and cause lots of cause subtile problems.\n\nAlso in the case of re-initializing a reclaimable inode in XFS it would\nfree an inode we still want to keep alive.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "936940a9c7e3d99b25859bf1ff140d8c2480183a",
      "tree": "ddce374cdab91939fef576dbdd4c66d13a9c0299",
      "parents": [
        "09ce42d3167e3f20b501fa780c2415332330fac5",
        "1cbd20d820c36f52543e3e4cd0067ebf52aa388f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 10:03:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 10:03:12 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (23 commits)\n  switch xfs to generic acl caching helpers\n  helpers for acl caching + switch to those\n  switch shmem to inode-\u003ei_acl\n  switch reiserfs to inode-\u003ei_acl\n  switch reiserfs to usual conventions for caching ACLs\n  reiserfs: minimal fix for ACL caching\n  switch nilfs2 to inode-\u003ei_acl\n  switch btrfs to inode-\u003ei_acl\n  switch jffs2 to inode-\u003ei_acl\n  switch jfs to inode-\u003ei_acl\n  switch ext4 to inode-\u003ei_acl\n  switch ext3 to inode-\u003ei_acl\n  switch ext2 to inode-\u003ei_acl\n  add caching of ACLs in struct inode\n  fs: Add new pre-allocation ioctls to vfs for compatibility with legacy xfs ioctls\n  cleanup __writeback_single_inode\n  ... and the same for vfsmount id/mount group id\n  Make allocation of anon devices cheaper\n  update Documentation/filesystems/Locking\n  devpts: remove module-related code\n  ...\n"
    },
    {
      "commit": "f19d4a8fa6f9b6ccf54df0971c97ffcaa390b7b0",
      "tree": "552854efb57cce365c4db585f1009946aeb03062",
      "parents": [
        "3e63cbb1efca7dd3137de1bb475e2e068e38ef23"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 19:50:45 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:15:27 2009 -0400"
      },
      "message": "add caching of ACLs in struct inode\n\nNo helpers, no conversions yet.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a7aa12f3911853a3574d47d567b81a2a5df7208",
      "tree": "ec3c8efe46b59ed78515ec75302a86054f60d6e5",
      "parents": [
        "df152c241df9e9d2b9a65d37bd02961abe7f591a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 04 15:26:49 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:34:22 2009 -0700"
      },
      "message": "vfs: Set special lockdep map for dirs only if not set by fs\n\nSome filesystems need to set lockdep map for i_mutex differently for\ndifferent directories. For example OCFS2 has system directories (for\norphan inode tracking and for gathering all system files like journal\nor quota files into a single place) which have different locking\nlocking rules than standard directories. For a filesystem setting\nlockdep map is naturaly done when the inode is read but we have to\nmodify unlock_new_inode() not to overwrite the lockdep map the filesystem\nhas set.\n\nAcked-by: peterz@infradead.org\nCC: mingo@redhat.com\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "2eadfc0ed68690075dcff08b30d87831388a1663",
      "tree": "5d27bab1a06b164371d13d47bc41ebacd83572fb",
      "parents": [
        "ff677f8d10a7b7dea6fbfc48d5ceeb3018cabb23"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Thu Apr 02 15:23:37 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:45 2009 +0200"
      },
      "message": "trivial: fs/inode: Fix typo in file_update_time nanodoc\n\nThe advertised flag for not updating the time was wrong.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "96029c4e09ccbd73a6d0ed2b29e80bf2586ad7ef",
      "tree": "032d2ac7024250c18487a2c7122af68fe56567ff",
      "parents": [
        "d3ef3d7351ccfbef3e5d926efc5ee332136f40d4"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:55 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: introduce mnt_clone_write\n\nThis patch speeds up lmbench lat_mmap test by about another 2% after the\nfirst patch.\n\nBefore:\n avg \u003d 462.286\n std \u003d 5.46106\n\nAfter:\n avg \u003d 453.12\n std \u003d 9.58257\n\n(50 runs of each, stddev gives a reasonable confidence)\n\nIt does this by introducing mnt_clone_write, which avoids some heavyweight\noperations of mnt_want_write if called on a vfsmount which we know already\nhas a write count; and mnt_want_write_file, which can call mnt_clone_write\nif the file is open for write.\n\nAfter these two patches, mnt_want_write and mnt_drop_write go from 7% on\nthe profile down to 1.3% (including mnt_clone_write).\n\n[AV: mnt_want_write_file() should take file alone and derive mnt from it;\nnot only all callers have that form, but that\u0027s the only mnt about which\nwe know that it\u0027s already held for write if file is opened for write]\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "164bc6195139047faaf5ada1278332e99494803b",
      "tree": "fdc0e31f9dc15796a4777ed917533091797b8b69",
      "parents": [
        "1ef5f13c6c8acd3fd10db9f1743f3b4cf30a4abb"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:58 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "fsnotify: handle filesystem unmounts with fsnotify marks\n\nWhen an fs is unmounted with an fsnotify mark entry attached to one of its\ninodes we need to destroy that mark entry and we also (like inotify) send\nan unmount event.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3be25f49b9d6a97eae9bcb96d3292072b7658bd8",
      "tree": "36f7d96481a47a6bde3c2f961346e940698111e0",
      "parents": [
        "90586523eb4b349806887c62ee70685a49415124"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:26 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: add marks to inodes so groups can interpret how to handle those inodes\n\nThis patch creates a way for fsnotify groups to attach marks to inodes.\nThese marks have little meaning to the generic fsnotify infrastructure\nand thus their meaning should be interpreted by the group that attached\nthem to the inode\u0027s list.\n\ndnotify and inotify  will make use of these markings to indicate which\ninodes are of interest to their respective groups.  But this implementation\nhas the useful property that in the future other listeners could actually\nuse the marks for the exact opposite reason, aka to indicate which inodes\nit had NO interest in.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "f07502dae230a2c3b65381fd1b06e8a18b2c7525",
      "tree": "0576d509666204c8c2ad3fd023c673b46f57bf78",
      "parents": [
        "81ee1bad86bd6752c626018d43a74e3f81f1ae72"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Sat Jun 06 21:18:09 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 06 14:33:41 2009 -0700"
      },
      "message": "integrity: fix IMA inode leak\n\nCONFIG_IMA\u003dy inode activity leaks iint_cache and radix_tree_node objects\nuntil the system runs out of memory.  Nowhere is calling ima_inode_free()\na.k.a. ima_iint_delete().  Fix that by calling it from destroy_inode().\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72a43d63cb51057393edfbcfc4596066205ad15d",
      "tree": "25b59cdaa08aabadc20100bd2a0c12b5feeaf520",
      "parents": [
        "460bcf57b128ce1c0dd553d905fedc097f9955c6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed May 13 19:13:40 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 06 06:17:26 2009 -0400"
      },
      "message": "ext3/4 with synchronous writes gets wedged by Postfix\n\nOK, that\u0027s probably the easiest way to do that, as much as I don\u0027t like it...\nSince iget() et.al. will not accept I_FREEING (will wait to go away\nand restart), and since we\u0027d better have serialization between new/free\non fs data structures anyway, we can afford simply skipping I_FREEING\net.al. in insert_inode_locked().\n\nWe do that from new_inode, so it won\u0027t race with free_inode in any interesting\nways and it won\u0027t race with iget (of any origin; nfsd or in case of fs\ncorruption a lookup) since both still will wait for I_LOCK.\n\nReviewed-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nTested-by: David Watson \u003cdbwatson@ukfsn.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b3304b531704711286c3359b06922b83fdba015",
      "tree": "176e991b95d391c7afd0e4bf8875663091ebf605",
      "parents": [
        "ddbaaf3024d764ced700efb2d818709b90ea6fdd"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Tue Mar 31 19:35:54 2009 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:41 2009 -0400"
      },
      "message": "Make checkpatch.pl shut up on fs/inode.c\n\nCode Quality According To Mingo(tm) has been vastly improved,\nno code has been damaged^Wchanged^Wdamaged.\n\n[commit message rewritten -- AV]\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "61e0d47c33cc371f725bcda4a47ae0efe652dba8",
      "tree": "e00f99b506f1c1a16e3ba987e3390deda6bd2e03",
      "parents": [
        "f8cc774ce4844811a55e2352f1443055e3994e28"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Apr 14 19:48:41 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:10:12 2009 +0200"
      },
      "message": "splice: add helpers for locking pipe inode\n\nThere are lots of sequences like this, especially in splice code:\n\n\tif (pipe-\u003einode)\n\t\tmutex_lock(\u0026pipe-\u003einode-\u003ei_mutex);\n\t/* do something */\n\tif (pipe-\u003einode)\n\t\tmutex_unlock(\u0026pipe-\u003einode-\u003ei_mutex);\n\nso introduce helpers which do the conditional locking and unlocking.\nAlso replace the inode_double_lock() call with a pipe_double_lock()\nhelper to avoid spreading the use of this functionality beyond the\npipe code.\n\nThis patch is just a cleanup, and should cause no behavioral changes.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3ae5080f4c2e293229508dabe7c8a90af4e4c460",
      "tree": "9cb11f26905a82b7fac9d3b8f9d61d58bc5c94b0",
      "parents": [
        "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
        "aabb8fdb41128705fd1627f56fdd571e45fdbcdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (37 commits)\n  fs: avoid I_NEW inodes\n  Merge code for single and multiple-instance mounts\n  Remove get_init_pts_sb()\n  Move common mknod_ptmx() calls into caller\n  Parse mount options just once and copy them to super block\n  Unroll essentials of do_remount_sb() into devpts\n  vfs: simple_set_mnt() should return void\n  fs: move bdev code out of buffer.c\n  constify dentry_operations: rest\n  constify dentry_operations: configfs\n  constify dentry_operations: sysfs\n  constify dentry_operations: JFS\n  constify dentry_operations: OCFS2\n  constify dentry_operations: GFS2\n  constify dentry_operations: FAT\n  constify dentry_operations: FUSE\n  constify dentry_operations: procfs\n  constify dentry_operations: ecryptfs\n  constify dentry_operations: CIFS\n  constify dentry_operations: AFS\n  ...\n"
    },
    {
      "commit": "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
      "tree": "6d9b27a07f88ad4509dcd86aa74a2cdecd0d5f4b",
      "parents": [
        "805de022b100bcf796860fe88d7db4164066d1c3",
        "c16831b4cc9b0805adf8ca3001752a7ec10a17bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6: (27 commits)\n  ext2: Zero our b_size in ext2_quota_read()\n  trivial: fix typos/grammar errors in fs/Kconfig\n  quota: Coding style fixes\n  quota: Remove superfluous inlines\n  quota: Remove uppercase aliases for quota functions.\n  nfsd: Use lowercase names of quota functions\n  jfs: Use lowercase names of quota functions\n  udf: Use lowercase names of quota functions\n  ufs: Use lowercase names of quota functions\n  reiserfs: Use lowercase names of quota functions\n  ext4: Use lowercase names of quota functions\n  ext3: Use lowercase names of quota functions\n  ext2: Use lowercase names of quota functions\n  ramfs: Remove quota call\n  vfs: Use lowercase names of quota functions\n  quota: Remove dqbuf_t and other cleanups\n  quota: Remove NODQUOT macro\n  quota: Make global quota locks cacheline aligned\n  quota: Move quota files into separate directory\n  ext4: quota reservation for delayed allocation\n  ...\n"
    },
    {
      "commit": "aabb8fdb41128705fd1627f56fdd571e45fdbcdb",
      "tree": "bae6e9abf167cf20b9a2d3e5c38520d3f17b777d",
      "parents": [
        "1bd7903560f1f713e85188a5aaf4d2428b6c8b50"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 11 13:17:36 2009 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:05 2009 -0400"
      },
      "message": "fs: avoid I_NEW inodes\n\nTo be on the safe side, it should be less fragile to exclude I_NEW inodes\nfrom inode list scans by default (unless there is an important reason to\nhave them).\n\nNormally they will get excluded (eg.  by zero refcount or writecount etc),\nhowever it is a bit fragile for list walkers to know exactly what parts of\nthe inode state is set up and valid to test when in I_NEW.  So along these\nlines, move I_NEW checks upward as well (sometimes taking I_FREEING etc\nchecks with them too -- this shouldn\u0027t be a problem should it?)\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8d80ce80e1d58ba9cd3e3972b112cccd6b4008f4",
      "tree": "16d3cca8d260c731d02a4e5e1ea5b9817c9c3626",
      "parents": [
        "1646df40bb111715a90ce0b86448dabbcc5b3f3d",
        "703a3cd72817e99201cef84a8a7aecc60b2b3581"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:03:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:03:39 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (71 commits)\n  SELinux: inode_doinit_with_dentry drop no dentry printk\n  SELinux: new permission between tty audit and audit socket\n  SELinux: open perm for sock files\n  smack: fixes for unlabeled host support\n  keys: make procfiles per-user-namespace\n  keys: skip keys from another user namespace\n  keys: consider user namespace in key_permission\n  keys: distinguish per-uid keys in different namespaces\n  integrity: ima iint radix_tree_lookup locking fix\n  TOMOYO: Do not call tomoyo_realpath_init unless registered.\n  integrity: ima scatterlist bug fix\n  smack: fix lots of kernel-doc notation\n  TOMOYO: Don\u0027t create securityfs entries unless registered.\n  TOMOYO: Fix exception policy read failure.\n  SELinux: convert the avc cache hash list to an hlist\n  SELinux: code readability with avc_cache\n  SELinux: remove unused av.decided field\n  SELinux: more careful use of avd in avc_has_perm_noaudit\n  SELinux: remove the unused ae.used\n  SELinux: check seqno when updating an avc_node\n  ...\n"
    },
    {
      "commit": "11ff6f05f1e836a6a02369a4c4b64757e484adc1",
      "tree": "325ab926d670d7fe1ca289a3b39fb913bc3b8cf3",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Mar 26 17:32:14 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 10:48:13 2009 -0700"
      },
      "message": "Allow relatime to update atime once a day\n\nAllow atime to be updated once per day even with relatime. This lets\nutilities like tmpreaper (which delete files based on last access time)\ncontinue working, making relatime a plausible default for distributions.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nReviewed-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nAcked-by: Valerie Aurora Henson \u003cvaurora@redhat.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e3509e273ecc2a5f937c493f9bb71e5e41ac2e5",
      "tree": "a7d9704e891f14b7196a275543b7f9c90f348b82",
      "parents": [
        "d26ac1a8128f6e1fc467f145acaa9f9bf9e16b75"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 16:45:12 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:35 2009 +0100"
      },
      "message": "vfs: Use lowercase names of quota functions\n\nUse lowercase names of quota functions instead of old uppercase ones.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCC: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "703a3cd72817e99201cef84a8a7aecc60b2b3581",
      "tree": "3e943755178ff410694722bb031f523136fbc432",
      "parents": [
        "df7f54c012b92ec93d56b68547351dcdf8a163d3",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "7ef0d7377cb287e08f3ae94cebc919448e1f5dff",
      "tree": "3ab288db22eb17e76b5db1d9b8c6f7517570632f",
      "parents": [
        "f272b7bc447553410dde691aa31fc531adf9c175"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Mar 12 14:31:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 12 16:20:24 2009 -0700"
      },
      "message": "fs: new inode i_state corruption fix\n\nThere was a report of a data corruption\nhttp://lkml.org/lkml/2008/11/14/121.  There is a script included to\nreproduce the problem.\n\nDuring testing, I encountered a number of strange things with ext3, so I\ntried ext2 to attempt to reduce complexity of the problem.  I found that\nfsstress would quickly hang in wait_on_inode, waiting for I_LOCK to be\ncleared, even though instrumentation showed that unlock_new_inode had\nalready been called for that inode.  This points to memory scribble, or\nsynchronisation problme.\n\ni_state of I_NEW inodes is not protected by inode_lock because other\nprocesses are not supposed to touch them until I_LOCK (and I_NEW) is\ncleared.  Adding WARN_ON(inode-\u003ei_state \u0026 I_NEW) to sites where we modify\ni_state revealed that generic_sync_sb_inodes is picking up new inodes from\nthe inode lists and passing them to __writeback_single_inode without\nwaiting for I_NEW.  Subsequently modifying i_state causes corruption.  In\nmy case it would look like this:\n\nCPU0                            CPU1\nunlock_new_inode()              __sync_single_inode()\n reg \u003c- inode-\u003ei_state\n reg -\u003e reg \u0026 ~(I_LOCK|I_NEW)   reg \u003c- inode-\u003ei_state\n reg -\u003e inode-\u003ei_state          reg -\u003e reg | I_SYNC\n                                reg -\u003e inode-\u003ei_state\n\nNon-atomic RMW on CPU1 overwrites CPU0 store and sets I_LOCK|I_NEW again.\n\nFix for this is rather than wait for I_NEW inodes, just skip over them:\ninodes concurrently being created are not subject to data integrity\noperations, and should not significantly contribute to dirty memory\neither.\n\nAfter this change, I\u0027m unable to reproduce any of the added warnings or\nhangs after ~1hour of running.  Previously, the new warnings would start\nimmediately and hang would happen in under 5 minutes.\n\nI\u0027m also testing on ext3 now, and so far no problems there either.  I\ndon\u0027t know whether this fixes the problem reported above, but it fixes a\nreal problem for me.\n\nCc: \"Jorge Boncompte [DTI2]\" \u003cjorge@dti2.net\u003e\nReported-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb5629b10d64a8006622ce3a52bc887d91057d69",
      "tree": "7c06d8f30783115e3384721046258ce615b129c5",
      "parents": [
        "8920d5ad6ba74ae8ab020e90cc4d976980e68701",
        "f01d1d546abb2f4028b5299092f529eefb01253a"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/namei.c\n\nManually merged per:\n\ndiff --cc fs/namei.c\nindex 734f2b5,bbc15c2..0000000\n--- a/fs/namei.c\n+++ b/fs/namei.c\n@@@ -860,9 -848,8 +849,10 @@@ static int __link_path_walk(const char\n  \t\tnd-\u003eflags |\u003d LOOKUP_CONTINUE;\n  \t\terr \u003d exec_permission_lite(inode);\n  \t\tif (err \u003d\u003d -EAGAIN)\n- \t\t\terr \u003d vfs_permission(nd, MAY_EXEC);\n+ \t\t\terr \u003d inode_permission(nd-\u003epath.dentry-\u003ed_inode,\n+ \t\t\t\t\t       MAY_EXEC);\n +\t\tif (!err)\n +\t\t\terr \u003d ima_path_check(\u0026nd-\u003epath, MAY_EXEC);\n   \t\tif (err)\n  \t\t\tbreak;\n\n@@@ -1525,14 -1506,9 +1509,14 @@@ int may_open(struct path *path, int acc\n  \t\tflag \u0026\u003d ~O_TRUNC;\n  \t}\n\n- \terror \u003d vfs_permission(nd, acc_mode);\n+ \terror \u003d inode_permission(inode, acc_mode);\n  \tif (error)\n  \t\treturn error;\n +\n- \terror \u003d ima_path_check(\u0026nd-\u003epath,\n++\terror \u003d ima_path_check(path,\n +\t\t\t       acc_mode \u0026 (MAY_READ | MAY_WRITE | MAY_EXEC));\n +\tif (error)\n +\t\treturn error;\n  \t/*\n  \t * An append-only file must be opened in append mode for writing.\n  \t */\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6146f0d5e47ca4047ffded0fb79b6c25359b386c",
      "tree": "edd792e52ad56d4a5d3ac6caa8437d3283fc157e",
      "parents": [
        "659aaf2bb5496a425ba14036b5b5900f593e4484"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:06:57 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:30 2009 +1100"
      },
      "message": "integrity: IMA hooks\n\nThis patch replaces the generic integrity hooks, for which IMA registered\nitself, with IMA integrity hooks in the appropriate places directly\nin the fs directory.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b32714ba29358a688ef337d5297bf4bdc9f596dc",
      "tree": "7f7e7bbb7e7db106c012772e3c95d427b55d6a4b",
      "parents": [
        "7c51d57e9d7fbce89f79c41dc8da383101dbe9c6"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 09 07:04:15 2009 -0800"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 09 13:15:49 2009 -0800"
      },
      "message": "partial revert of asynchronous inode delete\n\nlet the core of this one bake in -next as well, but leave\nsome of the infrastructure in place.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "efaee192063a54749c56b7383803e16fe553630e",
      "tree": "b18e3072904e53701bdd7889bb32babf8cc7bf7c",
      "parents": [
        "f29d3b23238e1955a8094e038c72546e99308e61"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Jan 06 07:20:54 2009 -0800"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jan 07 08:47:24 2009 -0800"
      },
      "message": "async: make the final inode deletion an asynchronous event\n\nthis makes \"rm -rf\" on a (names cached) kernel tree go from\n11.6 to 8.6 seconds on an ext3 filesystem\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "0bc02f3fa433a98631a932e77c4b1f873da35aee",
      "tree": "2b502015c319f70681f294cd070bdd6bf8e308ad",
      "parents": [
        "67faaada1ebcccf29745346f1d7cb5392f46500a"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 06 14:41:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "fs/inode: fix kernel-doc notation\n\nFix kernel-doc notation:\n\nWarning(linux-2.6.28-git3//fs/inode.c:120): No description found for parameter \u0027sb\u0027\nWarning(linux-2.6.28-git3//fs/inode.c:120): No description found for parameter \u0027inode\u0027\nWarning(linux-2.6.28-git3//fs/inode.c:588): No description found for parameter \u0027sb\u0027\nWarning(linux-2.6.28-git3//fs/inode.c:588): No description found for parameter \u0027inode\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c1d43787b48c798f44dc32a6e6deb5ca2da3e68",
      "tree": "587da6031de37a716839656cf4fe4245aba2afb4",
      "parents": [
        "e5991371ee0d1c0ce19e133c6f9075b49c5b4ae8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: remove GFP_HIGHUSER_PAGECACHE\n\nGFP_HIGHUSER_PAGECACHE is just an alias for GFP_HIGHUSER_MOVABLE, making\nthat harder to track down: remove it, and its out-of-work brothers\nGFP_NOFS_PAGECACHE and GFP_USER_PAGECACHE.\n\nSince we\u0027re making that improvement to hotremove_migrate_alloc(), I think\nwe can now also remove one of the \"o\"s from its comment.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56ff5efad96182f4d3cb3dc6b07396762c658f16",
      "tree": "cb91f93aa2324573527165d56d230b606a3111ed",
      "parents": [
        "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 09:34:39 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "zero i_uid/i_gid on inode allocation\n\n... and don\u0027t bother in callers.  Don\u0027t bother with zeroing i_blocks,\nwhile we are at it - it\u0027s already been zeroed.\n\ni_mode is not worth the effort; it has no common default value.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "261bca86ed4f7f391d1938167624e78da61dcc6b",
      "tree": "4601cf090fbfec31fbd554a27c67c717a7caba4b",
      "parents": [
        "272eb01485dda98e3b8910c7c1a53d597616b0a0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 30 01:48:21 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:43 2008 -0500"
      },
      "message": "nfsd/create race fixes, infrastructure\n\nnew helpers - insert_inode_locked() and insert_inode_locked4().\nHash new inode, making sure that there\u0027s no such inode in icache\nalready.  If there is and it does not end up unhashed (as would\nhappen if we have nfsd trying to resolve a bogus fhandle), fail.\nOtherwise insert our inode into hash and succeed.\n\nIn either case have i_state set to new+locked; cleanup ends up\nbeing simpler with such calling conventions.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d44dab8d1cde8aeba1faf44a7654f90800feb7fc",
      "tree": "f321eac9f9cb211284a987273d2d16c663f6955f",
      "parents": [
        "644c3567d16b7e53cf52ae98c4150d601c9eacfe"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Nov 10 17:06:05 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Mon Nov 10 17:06:05 2008 +1100"
      },
      "message": "fs: xfs needs inode_wait to be exported\n\nSince wait_on_inode() references it.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nReviewed-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n"
    },
    {
      "commit": "087e3b0460c367d0f4a5b71d7b013968ae23b588",
      "tree": "538a3abac6a20a3c33f6307a9c92c05882b2081c",
      "parents": [
        "c679eef0520eb3c2c731fce505e61b8ef9469aac"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Oct 30 18:24:37 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Thu Oct 30 18:24:37 2008 +1100"
      },
      "message": "Inode: export symbol destroy_inode\n\nTo make sure we free the security data inodes need to be freed using\nthe proper VFS helper (which we also need to export for this). We mark\nthese inodes bad so we can skip the flush path for them.\n\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\nSigned-off-by: David Chinner \u003cdavid@fromorbit.com\u003e\n"
    },
    {
      "commit": "8290c35f87304a6b73d4fd17b03580b4f7425de8",
      "tree": "cf7fb08de3fd7a6a1ccb079d2d5d53837aca16fe",
      "parents": [
        "2cb1599f9b2ecdd7a9e59feeee647eb258966839"
      ],
      "author": {
        "name": "David Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Oct 30 17:35:24 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Thu Oct 30 17:35:24 2008 +1100"
      },
      "message": "Inode: Allow external list initialisation\n\nTo allow XFS to combine the XFS and linux inodes into a single\nstructure, we need to drive inode lookup from the XFS inode cache,\nnot the generic inode cache. This means that we need initialise a\nstruct inode from a context outside alloc_inode() as it is no longer\nused by XFS.\n\nAfter inode allocation and initialisation, we need to add the inode\nto the superblock list, the in-use list, hash it and do some\naccounting. This all needs to be done with the inode_lock held and\nthere are already several places in fs/inode.c that do this list\nmanipulation.  Factor out the common code, add a locking wrapper and\nexport the function so ti can be called from XFS.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n"
    },
    {
      "commit": "2cb1599f9b2ecdd7a9e59feeee647eb258966839",
      "tree": "a54cb8c09d209e529d399874eb0be7bc365c5212",
      "parents": [
        "94b97e39b0c983e86f0028c456dcf213abc722a0"
      ],
      "author": {
        "name": "David Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Oct 30 17:32:23 2008 +1100"
      },
      "committer": {
        "name": "Lachlan McIlroy",
        "email": "lachlan@redback.melbourne.sgi.com",
        "time": "Thu Oct 30 17:32:23 2008 +1100"
      },
      "message": "Inode: Allow external initialisers\n\nTo allow XFS to combine the XFS and linux inodes into a single\nstructure, we need to drive inode lookup from the XFS inode cache,\nnot the generic inode cache. This means that we need initialise a\nstruct inode from a context outside alloc_inode() as it is no longer\nused by XFS.\n\nFactor and export the struct inode initialisation code from\nalloc_inode() to inode_init_always() as a counterpart to\ninode_init_once().  i.e. we have to call this init function for each\ninode instantiation (always), as opposed inode_init_once() which is\nonly called on slab object instantiation (once).\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Lachlan McIlroy \u003clachlan@sgi.com\u003e\n"
    },
    {
      "commit": "7d455e0030eeab820773e7786605be4d9e56a04b",
      "tree": "a388a21fac6ab04e75fb7a722a6abd095ab997a1",
      "parents": [
        "75312619e8cd47265da210189cca57ab09640b18"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Aug 15 00:40:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 15 08:35:44 2008 -0700"
      },
      "message": "fs/inode.c: properly init address_space-\u003ewriteback_index\n\nwrite_cache_pages() uses i_mapping-\u003ewriteback_index to pick up where it\nleft off the last time a given inode was found by pdflush or\nbalance_dirty_pages (or anyone else who sets wbc-\u003erange_cyclic)\n\nalloc_inode() should set it to a sane value so that writeback doesn\u0027t\nstart in the middle of a file.  It is somewhat difficult to notice the bug\nsince write_cache_pages will loop around to the start of the file and the\nelevator helps hide the resulting seeks.\n\nFor whatever reason, Btrfs hits this often.  Unpatched, untarring 30\ncopies of the linux kernel in series runs at 47MB/s on a single sata\ndrive.  With this fix, it jumps to 62MB/s.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19fd6231279be3c3bdd02ed99f9b0eb195978064",
      "tree": "ee09121054262d73c551b57114acd855b82a7a82",
      "parents": [
        "a60637c85893e7191faaafa6a72e197c24386727"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "mm: spinlock tree_lock\n\nmapping-\u003etree_lock has no read lockers.  convert the lock from an rwlock\nto a spinlock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ce07c7b61e74af35a05060a2d6341f68fd92c9e",
      "tree": "d24bdf708f8b864bba349a3e92d329337f4f5dc4",
      "parents": [
        "aeed5fce37196e09b4dac3a1c00d8b7122e040ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 06 13:13:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 06 13:13:37 2008 -0700"
      },
      "message": "VFS: fix unused variable warning\n\nCommit 33dcdac2df54e66c447ae03f58c95c7251aa5649 (\"kill -\u003eput_inode\")\nremoved the final use of i_op-\u003eput_inode, but left the now totally\nunused \"op\" variable in iput().\n\nGet rid of it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33dcdac2df54e66c447ae03f58c95c7251aa5649",
      "tree": "72163e37bd44452581f68d7991b14e70f37b8bba",
      "parents": [
        "dca3c33652e437ed02c30ed3eca3cecd0cc00838"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 29 17:46:26 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 06 13:45:34 2008 -0400"
      },
      "message": "[PATCH] kill -\u003eput_inode\n\nAnd with that last patch to affs killing the last put_inode instance we\ncan finally, after many years of transition kill this racy and awkward\ninterface.\n\n(It\u0027s kinda funny that even the description in\nDocumentation/filesystems/vfs.txt was entirely wrong..)\n\nAlso remove a very misleading comment above the defintion of\nstruct super_operations.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c5c8be3ce59dc59baf20b33dae3f8eb70af7b1f1",
      "tree": "93eb6e4142edd82820f5bf4a988f256a09ead748",
      "parents": [
        "af065b8a19041554196971d8b6ae1459798d3b14"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias@kaehlcke.net",
        "time": "Tue Apr 29 00:59:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:06 2008 -0700"
      },
      "message": "fs/inode.c: use hlist_for_each_entry()\n\nfs/inode.c: use hlist_for_each_entry() in find_inode() and find_inode_fast()\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Matthias Kaehlcke \u003cmatthias@kaehlcke.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20ddee2c75339cc095f6191c3115f81da8955e96",
      "tree": "de675e92d25f9946026132ac634c08f1c6e87916",
      "parents": [
        "74f9fdfa1f229284ee1ea58fa47f2cdeeb12f6fe"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:43 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:24 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: write count for file_update_time()\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cdb70f3f74b31576cc4d707a3d3b00d159cab8bb",
      "tree": "6b2fd4e67c78811c29632c30854af29849c2594f",
      "parents": [
        "a761a1c03a739f04afd6c8d37fd16405bbe754da"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:41 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:23 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: write counts for touch_atime()\n\nRemove handling of NULL mnt while we are at it - that can\u0027t happen these days.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "12debc4248a4a7f1873e47cda2cdd7faca80b099",
      "tree": "1ad80b77d213ea09cb746d6e4d50c4316462a452",
      "parents": [
        "755aedc15900ff7d83dd046f632af9a680b0c28f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:29 2008 -0800"
      },
      "message": "iget: remove iget() and the read_inode() super op as being obsolete\n\nRemove the old iget() call and the read_inode() superblock operation it uses\nas these are really obsolete, and the use of read_inode() does not produce\nproper error handling (no distinction between ENOMEM and EIO when marking an\ninode bad).\n\nFurthermore, this removes the temptation to use iget() to find an inode by\nnumber in a filesystem from code outside that filesystem.\n\niget_locked() should be used instead.  A new function is added in an earlier\npatch (iget_failed) that is to be called to mark an inode as bad, unlock it\nand release it should the get routine fail.  Mark iget() and read_inode() as\nbeing obsolete and remove references to them from the documentation.\n\nTypically a filesystem will be modified such that the read_inode function\nbecomes an internal iget function, for example the following:\n\n\tvoid thingyfs_read_inode(struct inode *inode)\n\t{\n\t\t...\n\t}\n\nwould be changed into something like:\n\n\tstruct inode *thingyfs_iget(struct super_block *sp, unsigned long ino)\n\t{\n\t\tstruct inode *inode;\n\t\tint ret;\n\n\t\tinode \u003d iget_locked(sb, ino);\n\t\tif (!inode)\n\t\t\treturn ERR_PTR(-ENOMEM);\n\t\tif (!(inode-\u003ei_state \u0026 I_NEW))\n\t\t\treturn inode;\n\n\t\t...\n\t\tunlock_new_inode(inode);\n\t\treturn inode;\n\terror:\n\t\tiget_failed(inode);\n\t\treturn ERR_PTR(ret);\n\t}\n\nand then thingyfs_iget() would be called rather than iget(), for example:\n\n\tret \u003d -EINVAL;\n\tinode \u003d iget(sb, ino);\n\tif (!inode || is_bad_inode(inode))\n\t\tgoto error;\n\nbecomes:\n\n\tinode \u003d thingyfs_iget(sb, ino);\n\tif (IS_ERR(inode)) {\n\t\tret \u003d PTR_ERR(inode);\n\t\tgoto error;\n\t}\n\nNote that is_bad_inode() does not need to be called.  The error returned by\nthingyfs_iget() should render it unnecessary.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25ec56b518257a56d2ff41a941d288e4b5ff9488",
      "tree": "77e84d38a5ad242f9d73a006f009649f223378f1",
      "parents": [
        "7a224228ed79d587ece2304869000aad1b8e97dd"
      ],
      "author": {
        "name": "Jean Noel Cordenner",
        "email": "jean-noel.cordenner@bull.net",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: Add inode version support in ext4\n\nThis patch adds 64-bit inode version support to ext4. The lower 32 bits\nare stored in the osd1.linux1.l_i_version field while the high 32 bits\nare stored in the i_version_hi field newly created in the ext4_inode.\nThis field is incremented in case the ext4_inode is large enough. A\ni_version mount option has been added to enable the feature.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Kalpak Shah \u003ckalpak@clusterfs.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Jean Noel Cordenner \u003cjean-noel.cordenner@bull.net\u003e\n"
    },
    {
      "commit": "7a224228ed79d587ece2304869000aad1b8e97dd",
      "tree": "f2b299f5a5d04cf8d3d0ef10ff264bd34943f90e",
      "parents": [
        "818d276ceb83aa9fdebb5e0a53188290312de987"
      ],
      "author": {
        "name": "Jean Noel Cordenner",
        "email": "jean-noel.cordenner@bull.net",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "vfs: Add 64 bit i_version support\n\nThe i_version field of the inode is changed to be a 64-bit counter that\nis set on every inode creation and that is incremented every time the\ninode data is modified (similarly to the \"ctime\" time-stamp).\nThe aim is to fulfill a NFSv4 requirement for rfc3530.\nThis first part concerns the vfs, it converts the 32-bit i_version in\nthe generic inode to a 64-bit, a flag is added in the super block in\norder to check if the feature is enabled and the i_version is\nincremented in the vfs.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Jean Noel Cordenner \u003cjean-noel.cordenner@bull.net\u003e\nSigned-off-by: Kalpak Shah \u003ckalpak@clusterfs.com\u003e\n"
    },
    {
      "commit": "1c0eeaf5698597146ed9b873e2f9e0961edcf0f9",
      "tree": "5265eac8437e8ce517a62db8fe2bd99db5b7019b",
      "parents": [
        "2e6883bdf49abd0e7f0d9b6297fc3be7ebb2250b"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Tue Oct 16 23:30:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:02 2007 -0700"
      },
      "message": "introduce I_SYNC\n\nI_LOCK was used for several unrelated purposes, which caused deadlock\nsituations in certain filesystems as a side effect.  One of the purposes\nnow uses the new I_SYNC bit.\n\nAlso document the various bits and change their order from historical to\nlogical.\n\n[bunk@stusta.de: make fs/inode.c:wake_up_inode() static]\nSigned-off-by: Joern Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Anton Altaparmakov \u003caia21@cam.ac.uk\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74bf17cffc32511c7c6d70fe7f376b92662e186e",
      "tree": "e770b056d4a83f847a04fc92e119aa607ec0edaf",
      "parents": [
        "1d99493b3a68e40e56459ea3565d4402fb6e5f3a"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Oct 16 23:26:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:49 2007 -0700"
      },
      "message": "fs: remove the unused mempages parameter\n\nSince the mempages parameter is actually not used, they should be removed.\n\nNow there is only files_init use the mempages parameter,\n\n \tfiles_init(mempages);\n\nbut I don\u0027t think the adaptation to mempages in files_init is really\nuseful; and if files_init also changed to the prototype void (*func)(void),\nthe wrapper vfs_caches_init would also not need the mempages parameter.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957",
      "tree": "191b4f45f926e44b882b1e87a9a85dc12230b892",
      "parents": [
        "b811c202a0edadaac7242ab834fe7ba409978ae7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 23:25:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "Slab API: remove useless ctor parameter and reorder parameters\n\nSlab constructors currently have a flags parameter that is never used.  And\nthe order of the arguments is opposite to other slab functions.  The object\npointer is placed before the kmem_cache pointer.\n\nConvert\n\n        ctor(void *object, struct kmem_cache *s, unsigned long flags)\n\nto\n\n        ctor(struct kmem_cache *s, void *object)\n\nthroughout the kernel\n\n[akpm@linux-foundation.org: coupla fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e89a5e15a2c88b3fd1ed3fa17fd767efe44727a",
      "tree": "840cb2badbbd568c44fa0ed2b3a467d3143381ea",
      "parents": [
        "e744fdea546abf7a794898a99a26f85c63a83648"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 06:47:54 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 10:01:50 2007 -0700"
      },
      "message": "lockdep: fixup the inode dir annotation\n\nA slight oversight tripped lockdep debugging code, each lockdep\nclass should have but a single init site.\n\nRearange the code to make this true.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14358e6ddaed27499d7d366b3e65c3e46b39e1c4",
      "tree": "de5a8919db855568577d0388fe30b5d7689e1f90",
      "parents": [
        "d475fd428ce77aa2a8bc650d230e17663a4f49c3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Oct 14 01:38:33 2007 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Oct 14 01:38:33 2007 +0200"
      },
      "message": "lockdep: annotate dir vs file i_mutex\n\nOn Mon, 2007-09-24 at 22:13 -0400, Steven Rostedt wrote:\n\u003e The circular lock seems to be this:\n\u003e \n\u003e #1:\n\u003e \n\u003e   sys_mmap2:              down_write(\u0026mm-\u003emmap_sem);\n\u003e   nfs_revalidate_mapping: mutex_lock(\u0026inode-\u003ei_mutex);\n\u003e \n\u003e \n\u003e #0:\n\u003e \n\u003e   vfs_readdir:     mutex_lock(\u0026inode-\u003ei_mutex);\n\u003e    - during the readdir (filldir64), we take a user fault (missing page?)\n\u003e     and call do_page_fault -\n\u003e   do_page_fault:   down_read(\u0026mm-\u003emmap_sem);\n\u003e \n\u003e \n\u003e So it does indeed look like a circular locking. Now the question is, \"is\n\u003e this a bug?\".  Looking like the inode of #1 must be a file or something\n\u003e else that you can mmap and the inode of #0 seems it must be a directory.\n\u003e I would say \"no\".\n\u003e \n\u003e Now if you can readdir on a file or mmap a directory, then this could be\n\u003e an issue.\n\u003e \n\u003e Otherwise, I\u0027d love to see someone teach lockdep about this issue! ;-)\n\nMake a distinction between file and dir usage of i_mutex.\nThe inode should be complete and unused at unlock_new_inode(), re-init\ni_mutex depending on its type.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "d475fd428ce77aa2a8bc650d230e17663a4f49c3",
      "tree": "19ba4a1b688a758b2e674f792e1d605896419cc8",
      "parents": [
        "58dfe883d3bc3b4c08c53a7f39e2ca3ec84f089e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 15 14:51:31 2007 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 15 14:51:31 2007 +0200"
      },
      "message": "lockdep: per filesystem inode lock class\nGive each filesystem its own inode lock class. The various filesystems have\ndifferent locking order wrt the inode locks; esp. the pseudo filesystems differ\nfrom the rest.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "8e1f936b73150f5095448a0fee6d4f30a1f9001d",
      "tree": "0996203e35c629e2ec243d128c7bd91ecd74d24a",
      "parents": [
        "5ad333eb66ff1e52a87639822ae088577669dcf9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 17 04:03:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:00 2007 -0700"
      },
      "message": "mm: clean up and kernelify shrinker registration\n\nI can never remember what the function to register to receive VM pressure\nis called.  I have to trace down from __alloc_pages() to find it.\n\nIt\u0027s called \"set_shrinker()\", and it needs Your Help.\n\n1) Don\u0027t hide struct shrinker.  It contains no magic.\n2) Don\u0027t allocate \"struct shrinker\".  It\u0027s not helpful.\n3) Call them \"register_shrinker\" and \"unregister_shrinker\".\n4) Call the function \"shrink\" not \"shrinker\".\n5) Reduce the 17 lines of waffly comments to 13, but document it properly.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "769848c03895b63e5662eb7e4ec8c4866f7d0183",
      "tree": "8911c7c312c8b8b172795fa2874c8162e1d3d15a",
      "parents": [
        "a32ea1e1f925399e0d81ca3f7394a44a6dafa12c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jul 17 04:03:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:22:59 2007 -0700"
      },
      "message": "Add __GFP_MOVABLE for callers to flag allocations from high memory that may be migrated\n\nIt is often known at allocation time whether a page may be migrated or not.\nThis patch adds a flag called __GFP_MOVABLE and a new mask called\nGFP_HIGH_MOVABLE.  Allocations using the __GFP_MOVABLE can be either migrated\nusing the page migration mechanism or reclaimed by syncing with backing\nstorage and discarding.\n\nAn API function very similar to alloc_zeroed_user_highpage() is added for\n__GFP_MOVABLE allocations called alloc_zeroed_user_highpage_movable().  The\nflags used by alloc_zeroed_user_highpage() are not changed because it would\nchange the semantics of an existing API.  After this patch is applied there\nare no in-kernel users of alloc_zeroed_user_highpage() so it probably should\nbe marked deprecated if this patch is merged.\n\nNote that this patch includes a minor cleanup to the use of __GFP_ZERO in\nshmem.c to keep all flag modifications to inode-\u003emapping in the\nshmem_dir_alloc() helper function.  This clean-up suggestion is courtesy of\nHugh Dickens.\n\nAdditional credit goes to Christoph Lameter and Linus Torvalds for shaping the\nconcept.  Credit to Hugh Dickens for catching issues with shmem swap vector\nand ramfs allocations.\n\n[akpm@linux-foundation.org: build fix]\n[hugh@veritas.com: __GFP_ZERO cleanup]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a35afb830f8d71ec211531aeb9a621b09a2efb39",
      "tree": "198280081e1f8b2f6c450742a5075cc7904a3d58",
      "parents": [
        "5577bd8a85c8b7643a241789b14fafa9c8a6c7db"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Remove SLAB_CTOR_CONSTRUCTOR\n\nSLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "866b04fccbf125cd39f2bdbcfeaa611d39a061a8",
      "tree": "5f59337d971bcb696b75e6fc39ca5d7d2a5a287b",
      "parents": [
        "63bd23591e6c3891d34e4c6dba7c6aa41b05caad"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 08 00:32:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:16 2007 -0700"
      },
      "message": "inode numbering: make static counters in new_inode and iunique be 32 bits\n\nThe problems are:\n\n- on filesystems w/o permanent inode numbers, i_ino values can be larger\n  than 32 bits, which can cause problems for some 32 bit userspace programs on\n  a 64 bit kernel.  We can\u0027t do anything for filesystems that have actual\n  \u003e32-bit inode numbers, but on filesystems that generate i_ino values on the\n  fly, we should try to have them fit in 32 bits.  We could trivially fix this\n  by making the static counters in new_inode and iunique 32 bits, but...\n\n- many filesystems call new_inode and assume that the i_ino values they are\n  given are unique.  They are not guaranteed to be so, since the static\n  counter can wrap.  This problem is exacerbated by the fix for #1.\n\n- after allocating a new inode, some filesystems call iunique to try to get\n  a unique i_ino value, but they don\u0027t actually add their inodes to the\n  hashtable, and so they\u0027re still not guaranteed to be unique if that counter\n  wraps.\n\nThis patch set takes the simpler approach of simply using iunique and hashing\nthe inodes afterward.  Christoph H.  previously mentioned that he thought that\nthis approach may slow down lookups for filesystems that currently hash their\ninodes.\n\nThe questions are:\n\n1) how much would this slow down lookups for these filesystems?\n2) is it enough to justify adding more infrastructure to avoid it?\n\nWhat might be best is to start with this approach and then only move to using\nIDR or some other scheme if these extra inodes in the hashtable prove to be\nproblematic.\n\nI\u0027ve done some cursory testing with this patch and the overhead of hashing and\nunhashing the inodes with pipefs is pretty low -- just a few seconds of system\ntime added on to the creation and destruction of 10 million pipes (very\nsimilar to the overhead that the IDR approach would add).\n\nThe hard thing to measure is what effect this has on other filesystems. I\u0027m\nopen to ways to try and gauge this.\n\nAgain, I\u0027ve only converted pipefs as an example. If this approach is\nacceptable then I\u0027ll start work on patches to convert other filesystems.\n\nWith a pretty-much-worst-case microbenchmark provided by Eric Dumazet\n\u003cdada1@cosmosbay.com\u003e:\n\nhashing patch (pipebench):\nsys     1m15.329s\nsys     1m16.249s\nsys     1m17.169s\n\nunpatched (pipebench):\nsys     1m9.836s\nsys     1m12.541s\nsys     1m14.153s\n\nWhich works out to 1.05642174294555027017.  So ~5-6% slowdown.\n\nThis patch:\n\nWhen a 32-bit program that was not compiled with large file offsets does a\nstat and gets a st_ino value back that won\u0027t fit in the 32 bit field, glibc\n(correctly) generates an EOVERFLOW error.  We can\u0027t do anything about fs\u0027s\nwith larger permanent inode numbers, but when we generate them on the fly, we\nought to try and have them fit within a 32 bit field.\n\nThis patch takes the first step toward this by making the static counters in\nthese two functions be 32 bits.\n\n[jlayton@redhat.com: mention that it\u0027s only the case for 32bit, non-LFS stat]\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5e618181a927210f8be1d3d2249d31904ba358d",
      "tree": "731f1ae4ff1ba56d402bb329182b7d935bb439a1",
      "parents": [
        "db9c02fa8bd50eb104781a9f78cae923d8da1e74"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue May 08 00:30:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:11 2007 -0700"
      },
      "message": "Introduce a handy list_first_entry macro\n\nThere are many places in the kernel where the construction like\n\n   foo \u003d list_entry(head-\u003enext, struct foo_struct, list);\n\nare used.\nThe code might look more descriptive and neat if using the macro\n\n   list_first_entry(head, type, member) \\\n             list_entry((head)-\u003enext, type, member)\n\nHere is the macro itself and the examples of its usage in the generic code.\n If it will turn out to be useful, I can prepare the set of patches to\ninject in into arch-specific code, drivers, networking, etc.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3361c7bebbf207f57f3dd1282cd87e1e37c082ac",
      "tree": "53c5ee74c70ed9727964996f3cf2fa4a0ff368ea",
      "parents": [
        "9d0633cfedde484d30eef869f749c04709ab3e42"
      ],
      "author": {
        "name": "Jeffrey Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 08 00:29:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "make iunique use a do/while loop rather than its obscure goto loop\n\nA while back, Christoph mentioned that he thought that iunique ought to be\ncleaned up to use a more conventional loop construct. This patch does that,\nturning the strange goto loop into a do/while.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acb0c854fa9483fa85e377b9f342352ea814a580",
      "tree": "654c7049c01b97314f2b93671b7d0c315a40adcf",
      "parents": [
        "578c8183c116e623d53b05d4c79762d053c7090f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:25:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:02 2007 -0700"
      },
      "message": "vfs: remove superflous sb \u003d\u003d NULL checks\n\ninode-\u003ei_sb is always set, not need to check for it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50953fe9e00ebbeffa032a565ab2f08312d51a87",
      "tree": "9f95f56f0b51600959a76cd88ce17f6e9c7a98a3",
      "parents": [
        "4b1d89290b62bb2db476c94c82cf7442aab440c8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_DEBUG_INITIAL flag\n\nI have never seen a use of SLAB_DEBUG_INITIAL.  It is only supported by\nSLAB.\n\nI think its purpose was to have a callback after an object has been freed\nto verify that the state is the constructor state again?  The callback is\nperformed before each freeing of an object.\n\nI would think that it is much easier to check the object state manually\nbefore the free.  That also places the check near the code object\nmanipulation of the object.\n\nAlso the SLAB_DEBUG_INITIAL callback is only performed if the kernel was\ncompiled with SLAB debugging on.  If there would be code in a constructor\nhandling SLAB_DEBUG_INITIAL then it would have to be conditional on\nSLAB_DEBUG otherwise it would just be dead code.  But there is no such code\nin the kernel.  I think SLUB_DEBUG_INITIAL is too problematic to make real\nuse of, difficult to understand and there are easier ways to accomplish the\nsame effect (i.e.  add debug code before kfree).\n\nThere is a related flag SLAB_CTOR_VERIFY that is frequently checked to be\nclear in fs inode caches.  Remove the pointless checks (they would even be\npointless without removeal of SLAB_DEBUG_INITIAL) from the fs constructors.\n\nThis is the last slab flag that SLUB did not support.  Remove the check for\nunimplemented flags from SLUB.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb58b7316a99703afb8d076b0e5f3e1e387e4b30",
      "tree": "d2aabf3413fc3e94a6760c364caf0762915a6273",
      "parents": [
        "ea6f3281a145d16ed53e88b0627f78d5cde6068f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Feb 12 00:51:57 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:28 2007 -0800"
      },
      "message": "[PATCH] move remove_dquot_ref to dqout.c\n\nRemove_dquot_ref can move to dqout.c instead of beeing in inode.c under\n#ifdef CONFIG_QUOTA.  Also clean the resulting code up a tiny little bit by\ntesting sb-\u003edq_op earlier - it\u0027s constant over a filesystems lifetime.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc0ecff698165ae8e178efa086e0dd1f385206b1",
      "tree": "fc6274f0862bdd6749172201170b2f6a7ce4c4ff",
      "parents": [
        "54bc485522afdac33de5504da2ea8cdcc690674e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 10 01:45:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:31 2007 -0800"
      },
      "message": "[PATCH] remove invalidate_inode_pages()\n\nConvert all calls to invalidate_inode_pages() into open-coded calls to\ninvalidate_mapping_pages().\n\nLeave the invalidate_inode_pages() wrapper in place for now, marked as\ndeprecated.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a3b0a490d49ada8bbf3f426be1a0ace4dcd0a55",
      "tree": "3816f425c64a7b551894f098b6f5b5f238339ed0",
      "parents": [
        "068135e63518314d4efd711142f674ad0841599e"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Sat Feb 10 01:44:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:26 2007 -0800"
      },
      "message": "[PATCH] igrab() should check for I_CLEAR\n\nWhen igrab() is calling __iget() on an inode it should check if\nclear_inode() has been called on the inode already.  Otherwise there is a\nrace window between clear_inode() and destroy_inode() where igrab() calls\n__iget() which leads to already free inodes on the inode lists.\n\nSigned-off-by: Vandana Rungta \u003cvandana@novell.com\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37756ced1f145aec18917812c3b8a96dbb47990d",
      "tree": "a293813e3dce24a161c2cf029c4139086a23d978",
      "parents": [
        "4ba4d4c0c52201009232fe9e781a281054a24e75"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Feb 10 01:44:49 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:25 2007 -0800"
      },
      "message": "[PATCH] avoid one conditional branch in touch_atime()\n\nI added IS_NOATIME(inode) macro definition in include/linux/fs.h, true if\nthe inode superblock is marked readonly or noatime.\n\nThis new macro is then used in touch_atime() instead of separatly testing\nMS_RDONLY and MS_NOATIME\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47ae32d6a54955a041cdc30b06d0bb16e75f68d5",
      "tree": "b28623f98ae536342d35443c6548c373df342e7f",
      "parents": [
        "b227613841d4d211a10c5860acc73e133b613bc0"
      ],
      "author": {
        "name": "Valerie Henson",
        "email": "val_henson@linux.intel.com",
        "time": "Wed Dec 13 00:34:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] relative atime\n\nAdd \"relatime\" (relative atime) support.  Relative atime only updates the\natime if the previous atime is older than the mtime or ctime.  Like\nnoatime, but useful for applications like mutt that need to know when a\nfile has been read since it was last modified.\n\nA corresponding patch against mount(8) is available at\nhttp://userweb.kernel.org/~akpm/mount-relative-atime.txt\n\nSigned-off-by: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Karel Zak \u003ckzak@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b227613841d4d211a10c5860acc73e133b613bc0",
      "tree": "273f9672954f65edb0098da6f65a27a30ad46bbc",
      "parents": [
        "1c0350bd0c9b59957760e67516973db35bafa050"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Dec 13 00:34:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] touch_atime() cleanup\n\nSimplify touch_atime() layout.\n\nCc: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.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": "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05",
      "tree": "51763269e44eb9bf4d0f8c529577489902850cf9",
      "parents": [
        "b65d34fd465f19fbe2f32f2205a9a06ca7c2bdeb"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] VFS: change struct file to use struct path\n\nThis patch changes struct file to use struct path instead of having\nindependent pointers to struct dentry and struct vfsmount, and converts all\nusers of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.\n\nAdditionally, it adds two #define\u0027s to make the transition easier for users of\nthe f_dentry and f_vfsmnt.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0da1480ec33d4bac8c32051c1d33202be6dc439f",
      "tree": "2b7c820451aa595fb9a8f64556eadd21ef3e9e2e",
      "parents": [
        "3982cd99c30285ebc71d405cd8530a3dfb7265de"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:40:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:44 2006 -0800"
      },
      "message": "[PATCH] proper prototype for remove_inode_dquot_ref()\n\nAdd a proper prototype for remove_inode_dquot_ref() in\ninclude/linux/quotaops.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62752ee198dca9209b7dee504763e51b11e9e0ca",
      "tree": "5e340a4c690851dadc3a8aa395e4c0d14b4837eb",
      "parents": [
        "ce9e3d9953c8cb67001719b5516da2928e956be4"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Oct 17 10:31:38 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Thu Oct 19 20:53:08 2006 +0200"
      },
      "message": "[PATCH] Take i_mutex in splice_from_pipe()\n\nThe splice_actor may be calling -\u003eprepare_write() and -\u003ecommit_write(). We\nwant i_mutex on the inode being written to before calling those so that we\ndon\u0027t race i_size changes.\n\nThe double locking behavior is done elsewhere in splice.c, and if we\neventually want _nolock variants of generic_file_splice_write(), fs modules\nmight have to replicate the nasty locking code. We introduce\ninode_double_lock() and inode_double_unlock() to consolidate the locking\nrules into one set of functions.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e6c6e640b8b258dc7f60533e81f050d15fc0a9af",
      "tree": "288227e66788a0f16b8430ac6fc6dd1ede372330",
      "parents": [
        "663d1ba2f1f66db43ab95350f965c1d9f2e3e5bc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Oct 10 22:48:47 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 10 15:37:23 2006 -0700"
      },
      "message": "[PATCH] fs/inode.c NULL noise removal\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ed97bd37efd8ff7398d3a7eedf4bcbf245f5dad3",
      "tree": "79817438dc5b3e004ba91d593228dc8aefcda3e8",
      "parents": [
        "07acaf28d21e710bcf1cec91c0cfdb1a7b5e3d65"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@rhlx01.fht-esslingen.de",
        "time": "Mon Oct 02 02:17:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:14 2006 -0700"
      },
      "message": "[PATCH] fs/inode.c tweaks\n\nOnly touch inode\u0027s i_mtime and i_ctime to make them equal to \"now\" in case\nthey aren\u0027t yet (don\u0027t just update timestamp unconditionally).  Uninline\nthe hash function to save 259 Bytes.\n\nThis tiny inode change which may improve cache behaviour also shaves off 8\nBytes from file_update_time() on i386.\n\nIncluded a tiny codestyle cleanup, too.\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b71e8a4ce03b3098c7801ee5e6e08d1a39a226c2",
      "tree": "69e287c96181862f911b19dfd37abb968d26bdaf",
      "parents": [
        "811d736f9e8013966e1a5a930c0db09508bdbb15"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 29 19:06:11 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:52:27 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move __invalidate_device() to block_dev.c [try #6]\n\nMove __invalidate_device() from fs/inode.c to fs/block_dev.c so that it can\nmore easily be disabled when the block layer is disabled.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "50462062a02226a698a211d5bd535376c89b8603",
      "tree": "07a34af458b338c609a35072b8c6fd1ed2a235a1",
      "parents": [
        "cfe14677f286c9be5d683b88214def8f4b8a6f24"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Sep 29 02:00:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:11 2006 -0700"
      },
      "message": "[PATCH] fs.h: ifdef security fields\n\n[assuming BSD security levels are deleted]\nThe only user of i_security, f_security, s_security fields is SELinux,\nhowever, quite a few security modules are trying to get into kernel.\nSo, wrap them under CONFIG_SECURITY. Adding config option for each\nsecurity field is likely an overkill.\n\nFollowing Stephen Smalley\u0027s suggestion, i_security initialization is\nmoved to security_inode_alloc() to not clutter core code with ifdefs\nand make alloc_inode() codepath tiny little bit smaller and faster.\n\nThe user of (highly greppable) struct fown_struct::security field is\nstill to be found. I\u0027ve checked every \"fown_struct\" and every \"f_owner\"\noccurence. Additionally it\u0027s removal doesn\u0027t break i386 allmodconfig\nbuild.\n\nstruct inode, struct file, struct super_block, struct fown_struct\nbecome smaller.\n\nP.S. Combined with two reiserfs inode shrinking patches sent to\nlinux-fsdevel, I can finally suck 12 reiserfs inodes into one page.\n\n\t\t/proc/slabinfo\n\n\t-ext2_inode_cache\t388\t10\n\t+ext2_inode_cache\t384\t10\n\t-inode_cache\t\t280\t14\n\t+inode_cache\t\t276\t14\n\t-proc_inode_cache\t296\t13\n\t+proc_inode_cache\t292\t13\n\t-reiser_inode_cache\t336\t11\n\t+reiser_inode_cache\t332\t12 \u003c\u003d\n\t-shmem_inode_cache\t372\t10\n\t+shmem_inode_cache\t368\t10\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "577c4eb09d1034d0739e3135fd2cff50588024be",
      "tree": "2eb22d60a62d013f300729ee563d1fe61f544da9",
      "parents": [
        "eaf796e7ef6014f208c409b2b14fddcfaafe7e3a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Move i_cdev into a union\n\nMove the i_cdev pointer in struct inode into a union.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eaf796e7ef6014f208c409b2b14fddcfaafe7e3a",
      "tree": "4a872d4b2b086132a9ebdaec1420b8a861ddf6b7",
      "parents": [
        "4c1541680f8d189d21dd07b053bc12996574646e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Move i_bdev into a union\n\nMove the i_bdev pointer in struct inode into a union.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8e18e2941c53416aa219708e7dcad21fb4bd6794",
      "tree": "44118f8b09556193ac93e0b71aecfa3e1d4bc182",
      "parents": [
        "6a1d9805ec506d8b9d04450997707da5f643d87c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private\n\nThe following patches reduce the size of the VFS inode structure by 28 bytes\non a UP x86.  (It would be more on an x86_64 system).  This is a 10% reduction\nin the inode size on a UP kernel that is configured in a production mode\n(i.e., with no spinlock or other debugging functions enabled; if you want to\nsave memory taken up by in-core inodes, the first thing you should do is\ndisable the debugging options; they are responsible for a huge amount of bloat\nin the VFS inode structure).\n\nThis patch:\n\nThe filesystem or device-specific pointer in the inode is inside a union,\nwhich is pretty pointless given that all 30+ users of this field have been\nusing the void pointer.  Get rid of the union and rename it to i_private, with\na comment to explain who is allowed to use the void pointer.  This is just a\ncleanup, but it allows us to reuse the union \u0027u\u0027 for something something where\nthe union will actually be used.\n\n[judith@osdl.org: powerpc build fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Judith Lebzelter \u003cjudith@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22a3e233ca08a2ddc949ba1ae8f6e16ec7ef1a13",
      "tree": "7ef158ba2c30e0dde2dc103d1904fae243759a6b",
      "parents": [
        "39302175c26d74be35715c05a0f342c9e64c21bf",
        "6ab3d5624e172c553004ecc862bfeac16d9d68b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "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  Remove obsolete #include \u003clinux/config.h\u003e\n  remove obsolete swsusp_encrypt\n  arch/arm26/Kconfig typos\n  Documentation/IPMI typos\n  Kconfig: Typos in net/sched/Kconfig\n  v9fs: do not include linux/version.h\n  Documentation/DocBook/mtdnand.tmpl: typo fixes\n  typo fixes: specfic -\u003e specific\n  typo fixes in Documentation/networking/pktgen.txt\n  typo fixes: occuring -\u003e occurring\n  typo fixes: infomation -\u003e information\n  typo fixes: disadvantadge -\u003e disadvantage\n  typo fixes: aquire -\u003e acquire\n  typo fixes: mecanism -\u003e mechanism\n  typo fixes: bandwith -\u003e bandwidth\n  fix a typo in the RTC_CLASS help text\n  smb is no longer maintained\n\nManually merged trivial conflict in arch/um/kernel/vmlinux.lds.S\n"
    },
    {
      "commit": "f8891e5e1f93a128c3900f82035e8541357896a7",
      "tree": "97b078ac97970962b17c85d39fd64cb48dc01168",
      "parents": [
        "ca889e6c45e0b112cb2ca9d35afc66297519b5d5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] Light weight event counters\n\nThe remaining counters in page_state after the zoned VM counter patches\nhave been applied are all just for show in /proc/vmstat.  They have no\nessential function for the VM.\n\nWe use a simple increment of per cpu variables.  In order to avoid the most\nsevere races we disable preempt.  Preempt does not prevent the race between\nan increment and an interrupt handler incrementing the same statistics\ncounter.  However, that race is exceedingly rare, we may only loose one\nincrement or so and there is no requirement (at least not in kernel) that\nthe vm event counters have to be accurate.\n\nIn the non preempt case this results in a simple increment for each\ncounter.  For many architectures this will be reduced by the compiler to a\nsingle instruction.  This single instruction is atomic for i386 and x86_64.\n And therefore even the rare race condition in an interrupt is avoided for\nboth architectures in most cases.\n\nThe patchset also adds an off switch for embedded systems that allows a\nbuilding of linux kernels without these counters.\n\nThe implementation of these counters is through inline code that hopefully\nresults in only a single instruction increment instruction being emitted\n(i386, x86_64) or in the increment being hidden though instruction\nconcurrency (EPIC architectures such as ia64 can get that done).\n\nBenefits:\n- VM event counter operations usually reduce to a single inline instruction\n  on i386 and x86_64.\n- No interrupt disable, only preempt disable for the preempt case.\n  Preempt disable can also be avoided by moving the counter into a spinlock.\n- Handling is similar to zoned VM counters.\n- Simple and easily extendable.\n- Can be omitted to reduce memory use for embedded use.\n\nReferences:\n\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113512330605497\u0026w\u003d2\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114988082814934\u0026w\u003d2\nlocal_t http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114991748606690\u0026w\u003d2\nV2 http://marc.theaimsgroup.com/?t\u003d115014808400007\u0026r\u003d1\u0026w\u003d2\nV3 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115024767022346\u0026w\u003d2\nV4 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115047968808926\u0026w\u003d2\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "f5e54d6e53a20cef45af7499e86164f0e0d16bb2",
      "tree": "cb92acbb89b84796261bf5563182261ec5654127",
      "parents": [
        "a052b68b1e7a31f1e6a721290035e9deb0f6fed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 28 04:26:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] mark address_space_operations const\n\nSame as with already do with the file operations: keep them in .rodata and\nprevents people from doing runtime patching.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b7542f8c7eb40efb967a558c5be90fe5f939c3ef",
      "tree": "f0df8a2eb2f9a704696bedb455a1de8e002c75e2",
      "parents": [
        "f6298aab2ebaa61de39931595f125bc1968905cc"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:38:18 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:38:18 2006 +0200"
      },
      "message": "BUG_ON() Conversion in fs/inode.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": "99ac48f54a91d02140c497edc31dc57d4bc5c85d",
      "tree": "68719391694a6914191bdf73d2071875f7653f6f",
      "parents": [
        "ec1b9466cb4f6ae6d950bd67055d9410d1056d2a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] mark f_ops const in the inode\n\nMark the f_ops members of inodes as const, as well as fix the\nripple-through this causes by places that copy this f_ops and then \"do\nstuff\" with it.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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"
    }
  ],
  "next": "bdfc326614b90e7bc47ee4a8fed05988555f0169"
}
