)]}'
{
  "log": [
    {
      "commit": "bca794785c2c12ecddeb09e70165b8ff80baa6ae",
      "tree": "8e8fefa535c799240846082ba580dc87d0a98cbf",
      "parents": [
        "1ca277d88dafdbc3c5a69d32590e7184b9af6371"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:26 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:26 2009 -0400"
      },
      "message": "NFS: Fix the type of struct nfs_fattr-\u003emode\n\nThere is no point in using anything other than umode_t, since we copy the\ncontent pretty much directly into inode-\u003ei_mode.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1ca277d88dafdbc3c5a69d32590e7184b9af6371",
      "tree": "8cd36f442796e7e83c1dfcd72a036846f1b3950f",
      "parents": [
        "9e6e70f8d8b6698e0017c56b86525aabe9c7cd4c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:25 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:25 2009 -0400"
      },
      "message": "NFS: Shrink the struct nfs_fattr\n\nWe don\u0027t need the bitmap[] field anymore, since the \u0027valid\u0027 field tells us\nall we need to know about which attributes were filled in...\nAlso move the pre-op attributes in order to improve the structure packing.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9e6e70f8d8b6698e0017c56b86525aabe9c7cd4c",
      "tree": "3364c61dc3fdb1cc69b18e0cf16947abc49c0be5",
      "parents": [
        "78f945f88ef83dcc7c962614a080e0a9a2db5889"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:24 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:24 2009 -0400"
      },
      "message": "NFSv4: Support NFSv4 optional attributes in the struct nfs_fattr\n\nCurrently, filling struct nfs_fattr is more or less an all or nothing\noperation, since NFSv2 and NFSv3 have only mandatory attributes.\nIn NFSv4, some attributes are optional, and so we may simply not be able to\nfill in those fields. Furthermore, NFSv4 allows you to specify which\nattributes you are interested in retrieving, thus permitting you to\noptimise away retrieval of attributes that you know will no change...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "78f945f88ef83dcc7c962614a080e0a9a2db5889",
      "tree": "1a3ab02259b3b6ddce570aa8afcd3375de71a0cc",
      "parents": [
        "37d9d76d8b3a2ac5817e1fa3263cfe0fdb439e51"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:23 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:23 2009 -0400"
      },
      "message": "NFSv4: Ignore errors on the post-op attributes in SETATTR calls\n\nThere is no need to fail or retry a SETATTR call just because the post-op\nGETATTR failed.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "37d9d76d8b3a2ac5817e1fa3263cfe0fdb439e51",
      "tree": "ccbf57ce8f85ad8277838c50f723cbe79950eebc",
      "parents": [
        "2b57dc6cf9bf31edc0df430ea18dd1dbd3028975"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Mar 11 14:10:23 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:23 2009 -0400"
      },
      "message": "NFS: flush cached directory information slightly more readily.\n\nIf cached directory contents becomes incorrect, there is no way to\nflush the contents.  This contrasts with files where file locking is\nthe recommended way to ensure cache consistency between multiple\napplications (a read-lock always flushes the cache).\n\nAlso while changes to files often change the size of the file (thus\ntriggering a cache flush), changes to directories often do not change\nthe apparent size (as the size is often rounded to a block size).\n\nSo it is particularly important with directories to avoid the\npossibility of an incorrect cache wherever possible.\n\nWhen the link count on a directory changes it implies a change in the\nnumber of child directories, and so a change in the contents of this\ndirectory.  So use that as a trigger to flush cached contents.\n\nWhen the ctime changes but the mtime does not, there are two possible\nreasons.\n 1/ The owner/mode information has been changed.\n 2/ utimes has been used to set the mtime backwards.\n\nIn the first case, a data-cache flush is not required.\nIn the second case it is.\n\nSo on the basis that correctness trumps performance, flush the\ndirectory contents cache in this case also.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2b57dc6cf9bf31edc0df430ea18dd1dbd3028975",
      "tree": "3d70e9e220fd665fa08b2d0566eb35bf593cfcd7",
      "parents": [
        "fe315e76fc3a3f9f7e1581dc22fec7e7719f0896"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Wed Mar 11 14:10:22 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:22 2009 -0400"
      },
      "message": "NFS: Minor __nfs_revalidate_inode cleanup\n\nRemove redundant NFS_STALE() check, a leftover due to the commit\n691beb13cdc88358334ef0ba867c080a247a760f\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d7371c41b0cda782256b1df759df4e8d4724584c",
      "tree": "c5807f0cb163db7bb4a03cdd6c986d8fa40545e0",
      "parents": [
        "a71ee337b31271e701f689d544b6153b75609bc5"
      ],
      "author": {
        "name": "Ian Dall",
        "email": "ian@beware.dropbear.id.au",
        "time": "Tue Mar 10 20:33:22 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:22 2009 -0400"
      },
      "message": "Bug 11061, NFS mounts dropped\n\nAddresses: http://bugzilla.kernel.org/show_bug.cgi?id\u003d11061\n\nsockaddr structures can\u0027t be reliably compared using memcmp() because\nthere are padding bytes in the structure which can\u0027t be guaranteed to\nbe the same even when the sockaddr structures refer to the same\nsocket. Instead compare all the relevant fields. In the case of IPv6\nsin6_flowinfo is not compared because it only affects QoS and\nsin6_scope_id is only compared if the address is \"link local\" because\n\"link local\" addresses need only be unique to a specific link.\n\nSigned-off-by: Ian Dall \u003cian@beware.dropbear.id.au\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a71ee337b31271e701f689d544b6153b75609bc5",
      "tree": "56871bcec70c8f46a1fcc4b2f76763e948b508f0",
      "parents": [
        "57df675c60c5cf0748ddba9c7f85afde1530d74d"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Tue Mar 10 20:33:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:21 2009 -0400"
      },
      "message": "NFS: Handle -ESTALE error in access()\n\nHi Trond,\n\nI have been looking at a bugreport where trying to open applications on KDE\non a NFS mounted home fails temporarily. There have been multiple reports on\ndifferent kernel versions pointing to this common issue:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12557\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/269954\nhttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d508866.html\n\nThis issue can be reproducible consistently by doing this on a NFS mounted\nhome (KDE):\n1. Open 2 xterm sessions\n2. From one of the xterm session, do \"ssh -X \u003cremote host\u003e\"\n3. \"stat ~/.Xauthority\" on the remote SSH session\n4. Close the two xterm sessions\n5. On the server do a \"stat ~/.Xauthority\"\n6. Now on the client, try to open xterm\nThis will fail.\n\nEven if the filehandle had become stale, the NFS client should invalidate\nthe cache/inode and should repeat LOOKUP. Looking at the packet capture when\nthe failure occurs shows that there were two subsequent ACCESS() calls with\nthe same filehandle and both fails with -ESTALE error.\n\nI have tested the fix below. Now the client issue a LOOKUP after the\nACCESS() call fails with -ESTALE. If all this makes sense to you, can you\nconsider this for inclusion?\n\nThanks,\n\n\nIf the server returns an -ESTALE error due to stale filehandle in response to\nan ACCESS() call, we need to invalidate the cache and inode so that LOOKUP()\ncan be retried. Without this change, the nfs client retries ACCESS() with the\nsame filehandle, fails again and could lead to temporary failure of\napplications running on nfs mounted home.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57df675c60c5cf0748ddba9c7f85afde1530d74d",
      "tree": "9ee0df8d0b0b2b374bcaf66ead94886f39ac7220",
      "parents": [
        "78851e1aa4c3b796d5f0bb11b445016726302b44"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Mar 10 20:33:20 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:20 2009 -0400"
      },
      "message": "NLM: Fix GRANT callback address comparison when IPv6 is enabled\n\nThe NFS mount command may pass an AF_INET server address to lockd.  If\nlockd happens to be using a PF_INET6 listener, the nlm_cmp_addr() in\nnlmclnt_grant() will fail to match requests from that host because they\nwill all have a mapped IPv4 AF_INET6 address.\n\nAdopt the same solution used in nfs_sockaddr_match_ipaddr() for NFSv4\ncallbacks: if either address is AF_INET, map it to an AF_INET6 address\nbefore doing the comparison.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ae46141ff08f1965b17c531b571953c39ce8b9e2",
      "tree": "12e9b19461fb00c7ba21d93272ddd470ca0e82b0",
      "parents": [
        "ef95d31e6de6be9602ce950b85fb7ab8af46ae42"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:18 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:18 2009 -0400"
      },
      "message": "NFSv3: Fix posix ACL code\n\nFix a memory leak due to allocation in the XDR layer. In cases where the\nRPC call needs to be retransmitted, we end up allocating new pages without\nclearing the old ones. Fix this by moving the allocation into\nnfs3_proc_setacls().\n\nAlso fix an issue discovered by Kevin Rudd, whereby the amount of memory\nreserved for the acls in the xdr_buf-\u003ehead was miscalculated, and causing\ncorruption.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ef95d31e6de6be9602ce950b85fb7ab8af46ae42",
      "tree": "aeb7d7a9893374a0c8975a5d060f07ab05283319",
      "parents": [
        "eb9b55ab4d73280597fd183b367d50452f4d7846"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:17 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:17 2009 -0400"
      },
      "message": "NFS: Fix misparsing of nfsv4 fs_locations attribute (take 2)\n\nThe changeset ea31a4437c59219bf3ea946d58984b01a45a289c (nfs: Fix\nmisparsing of nfsv4 fs_locations attribute) causes the mountpath that is\ncalculated at the beginning of try_location() to be clobbered when we\nlater strncpy a non-nul terminated hostname using an incorrect buffer\nlength.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "260219cc48cfb22486e5d0d706c978228a080d63",
      "tree": "2346222cc38d9e8da0aca1988d08b6e0ecdf0d0a",
      "parents": [
        "2f68891314b14e7e0ef07b4e77a8ea6e917fc74b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 10 12:55:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 10 15:55:11 2009 -0700"
      },
      "message": "devpts: remove graffiti\n\nVery annoying when working with containters.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c91ffc896cf839a3a0923c0062ff61c930a21e0",
      "tree": "aa17696055c9a3176f3be3cfdda009e7b71922cc",
      "parents": [
        "6d5b5acca9e566515ef3f1ed617e7295c4f94345",
        "b9447ef80bd301b932ac4d85c9622e929de5fd62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 09 09:13:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 09 09:13:16 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix spinlock assertions on UP systems\n"
    },
    {
      "commit": "b9447ef80bd301b932ac4d85c9622e929de5fd62",
      "tree": "6d0bb1f287ed09f7850b77e2f622c3bebb35112b",
      "parents": [
        "4e06bdd6cbd5105376e7caf4e683ed131e777389"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 09 11:45:38 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 09 11:45:38 2009 -0400"
      },
      "message": "Btrfs: fix spinlock assertions on UP systems\n\nbtrfs_tree_locked was being used to make sure a given extent_buffer was\nproperly locked in a few places.  But, it wasn\u0027t correct for UP compiled\nkernels.\n\nThis switches it to using assert_spin_locked instead, and renames it to\nbtrfs_assert_tree_locked to better reflect how it was really being used.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5b61f6accfd6449150aefe13a7679ec360abcc16",
      "tree": "19544bac887b5849e6a3b4cbd2f78d7cd6774268",
      "parents": [
        "14016899967739585b7450d486681f4c5deec149",
        "7ce9d5d1f3c8736511daa413c64985a05b2feee3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:24:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:24:57 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix ext4_free_inode() vs. ext4_claim_inode() race\n"
    },
    {
      "commit": "f4f8056a862a9950320429dfda708c88b4ce6025",
      "tree": "5dc5874e703b35864d328269f12ef9840fb10bb5",
      "parents": [
        "edf2e2811efa9304ebe14f778d33b764cfd58b7a"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Thu Mar 05 00:55:31 2009 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Mar 05 00:55:31 2009 +0000"
      },
      "message": "Squashfs: frag_size should be signed, as it can hold an error result\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "118e1ef6fabfc023126e6075f6ac0fc729cb5285",
      "tree": "3c497ad9fcc5a459de9d75a688bb78c5220e8dd5",
      "parents": [
        "2450cf51a1bdba7037e91b1bcc494b01c58aaf66"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Mar 05 00:31:12 2009 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Mar 05 00:31:12 2009 +0000"
      },
      "message": "Squashfs: Fix oops when reading fsfuzzer corrupted filesystems\n\nThis fixes a code regression caused by the recent mainlining changes.\nThe recent code changes call zlib_inflate repeatedly, decompressing into\nseparate 4K buffers, this code didn\u0027t check for the possibility that\nzlib_inflate might ask for too many buffers when decompressing corrupted\ndata.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "7ce9d5d1f3c8736511daa413c64985a05b2feee3",
      "tree": "89b30c50d6e09467f43f4f824d04838e9bb33026",
      "parents": [
        "fec6c6fec3e20637bee5d276fb61dd8b49a3f9cc"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Mar 04 18:38:18 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 04 18:38:18 2009 -0500"
      },
      "message": "ext4: fix ext4_free_inode() vs. ext4_claim_inode() race\n\nI was seeing fsck errors on inode bitmaps after a 4 thread\ndbench run on a 4 cpu machine:\n\nInode bitmap differences: -50736 -(50752--50753) etc...\n\nI believe that this is because ext4_free_inode() uses atomic\nbitops, and although ext4_new_inode() *used* to also use atomic \nbitops for synchronization, commit \n393418676a7602e1d7d3f6e560159c65c8cbd50e changed this to use\nthe sb_bgl_lock, so that we could also synchronize against\nread_inode_bitmap and initialization of uninit inode tables.\n\nHowever, that change left ext4_free_inode using atomic bitops,\nwhich I think leaves no synchronization between setting \u0026 \nunsetting bits in the inode table.\n\nThe below patch fixes it for me, although I wonder if we\u0027re \ngetting at all heavy-handed with this spinlock...\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "36b31106b725ac2ca4941d4ee8dbb67df72ed5dd",
      "tree": "81a38dfa56d58ce3be085ed8b31fac6f41ef0571",
      "parents": [
        "7b88ed671a7157e427811db208bb167c49f33352",
        "8f64b32eb73fbfe9f38c4123121b63ee409278a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 02 15:42:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 02 15:42:26 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: don\u0027t call jbd2_journal_force_commit_nested without journal\n  ext4: Reorder fs/Makefile so that ext2 root fs\u0027s are mounted using ext2\n  ext4: Remove duplicate call to ext4_commit_super() in ext4_freeze()\n"
    },
    {
      "commit": "5cf8cf4146de03de67d1a8aefbece66b65f255cc",
      "tree": "ced1ae8ce6217acdc717a394e7ebbdb5dcb1886e",
      "parents": [
        "31d8b5631f095cb7100cfccc95c801a2547ffe2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Feb 26 21:32:51 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:27:45 2009 -0800"
      },
      "message": "Fix FREEZE/THAW compat_ioctl regression\n\nCommit 8e961870bb9804110d5c8211d5d9d500451c4518 removed the FREEZE/THAW\nhandling in xfs_compat_ioctl but never added any compat handler back, so\nnow any freeze/thaw request from a 32-bit binary ond 64-bit userspace\nwill fail.\n\nAs these ioctls are 32/64-bit compatible two simple COMPATIBLE_IOCTL\nentries in fs/compat_ioctl.c will do the job.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "adc487204a9373d2b5a535412466326036147a72",
      "tree": "bae340437d94f25020f2dcdf448eb1110d4621a8",
      "parents": [
        "dca17146f4b72b8966016c406d94ad3e48289b79"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Feb 27 14:02:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:20 2009 -0800"
      },
      "message": "EXPORT_SYMBOL(d_obtain_alias) rather than EXPORT_SYMBOL_GPL\n\nCommit 4ea3ada2955e4519befa98ff55dd62d6dfbd1705 declares d_obtain_alias()\nas EXPORT_SYMBOL_GPL where it\u0027s supposed to replace d_alloc_anon which was\npreviously declared as EXPORT_SYMBOL and thus available to any loadable\nmodule.\n\nThis patch reverts that.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nAcked-by: 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": "221be177e68e197a946bb991c8b91468e960be4e",
      "tree": "f77313df6358700d58cc7921551400170a8f6700",
      "parents": [
        "d49981150387c481779a544ec641f17882f4bbfb",
        "b50be33e42e2c87812b30aee1a2b2a5ac6cb3ffa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 14:45:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 14:45:57 2009 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  [MTD] [MAPS] Remove MODULE_DEVICE_TABLE() from ck804rom driver.\n  [JFFS2] fix mount crash caused by removed nodes\n  [JFFS2] force the jffs2 GC daemon to behave a bit better\n  [MTD] [MAPS] blackfin async requires complex mappings\n  [MTD] [MAPS] blackfin: fix memory leak in error path\n  [MTD] [MAPS] physmap: fix wrong free and del_mtd_{partition,device}\n  [MTD] slram: Handle negative devlength correctly\n  [MTD] map_rom has NULL erase pointer\n  [MTD] [LPDDR] qinfo_probe depends on lpddr\n"
    },
    {
      "commit": "28d57d437786eb3e44f1ca3f0f41e7cfe29c6dd4",
      "tree": "f6dfd111dac45ee7e2b366eb47a2598f46460a1e",
      "parents": [
        "4442f518269c6b3686fcbcadad22dc4475309b16"
      ],
      "author": {
        "name": "wengang wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Fri Feb 13 10:11:47 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:12 2009 -0800"
      },
      "message": "ocfs2: add IO error check in ocfs2_get_sector()\n\nCheck for IO error in ocfs2_get_sector().\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4442f518269c6b3686fcbcadad22dc4475309b16",
      "tree": "5d054d3e44dc95d6ce48709894fe5f2449fb6c77",
      "parents": [
        "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Feb 20 11:11:50 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: set gap to seperate entry and value when xattr in bucket\n\nThis patch set a gap (4 bytes) between xattr entry and\nname/value when xattr in bucket. This gap use to seperate\nentry and name/value when a bucket is full. It had already\nbeen set when xattr in inode/block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7",
      "tree": "81ab9d6d0be93e57bcb17130abed3516574b3752",
      "parents": [
        "89a907afe073b8971a83d0ad54f391542b64d327"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 24 17:40:26 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: lock the metaecc process for xattr bucket\n\nFor other metadata in ocfs2, metaecc is checked in ocfs2_read_blocks\nwith io_mutex held. While for xattr bucket, it is calculated by\nthe whole buckets. So we have to add a spin_lock to prevent multiple\nprocesses calculating metaecc.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nTested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "89a907afe073b8971a83d0ad54f391542b64d327",
      "tree": "0168dc1ee1a92981c74c73e9a224e9d4fe63b048",
      "parents": [
        "53ecd25e148615e0ed2a72635cc76f4773f97f90"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 17 04:39:28 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: Use the right access_* method in ctime update of xattr.\n\nIn ctime updating of xattr, it use the wrong type of access for\ninode, so use ocfs2_journal_access_di instead.\n\nReported-and-Tested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "53ecd25e148615e0ed2a72635cc76f4773f97f90",
      "tree": "ad4f26d160889792c72199678634b4132c5ce1d7",
      "parents": [
        "dabc47de7a23f57522dc762d9d2ad875700d3497"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:16 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2/dlm: Make dlm_assert_master_handler() kill itself instead of the asserter\n\nIn dlm_assert_master_handler(), if we get an incorrect assert master from a node\nthat, we reply with EINVAL asking the asserter to die. The problem is that an\nassert is sent after so many hoops, it is invariably the node that thinks the\nasserter is wrong, is actually wrong. So instead of killing the asserter, this\npatch kills the assertee.\n\nThis patch papers over a race that is still being addressed.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "dabc47de7a23f57522dc762d9d2ad875700d3497",
      "tree": "02d3bca6eaa20975512693a4fcce988dd7df4855",
      "parents": [
        "c74ff8bb2235d848beb67fcfddae71ecbe3f92b1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:15 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2/dlm: Use ast_lock to protect ast_list\n\nThe code was using dlm-\u003espinlock instead of dlm-\u003east_lock to protect the\nast_list. This patch fixes the issue.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c74ff8bb2235d848beb67fcfddae71ecbe3f92b1",
      "tree": "516dd4c87a13c5a068fb47660488f52de486ddb2",
      "parents": [
        "7dc102b737e9f49dac426161294cb2d326a97d8e"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:14 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2: Cleanup the lockname print in dlmglue.c\n\nThe dentry lock has a different format than other locks. This patch fixes\nocfs2_log_dlm_error() macro to make it print the dentry lock correctly.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7dc102b737e9f49dac426161294cb2d326a97d8e",
      "tree": "6073525b25fa7ab423099e808866cfdf96f668dd",
      "parents": [
        "47be12e4eec84c1846f29af64fe25a396b57a026"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:13 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2/dlm: Retract fix for race between purge and migrate\n\nMainline commit d4f7e650e55af6b235871126f747da88600e8040 attempts to delay\nthe dlm_thread from sending the drop ref message if the lockres is being\nmigrated. The problem is that we make the dlm_thread wait for the migration\nto complete. This causes a deadlock as dlm_thread also participates in the\nlockres migration process.\n\nA better fix for the original oss bugzilla#1012 is in testing.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "47be12e4eec84c1846f29af64fe25a396b57a026",
      "tree": "a16590b4fc4e3753295c230a32f07a6e1bbd3a57",
      "parents": [
        "64e71303e44f3697e4568147caa966de74bdb4fb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jan 09 07:32:48 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2: Access and dirty the buffer_head in mark_written.\n\nIn __ocfs2_mark_extent_written, when we meet with the situation\nof c_split_covers_rec, the old solution just replace the extent\nrecord and forget to access and dirty the buffer_head. This will\ncause a problem when the unwritten extent is in an extent block.\nSo access and dirty it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "64e71303e44f3697e4568147caa966de74bdb4fb",
      "tree": "49c93c69aeb56e739658c00981f1410e1e354d38",
      "parents": [
        "babb29b0a33db53704594f63f271ca6c049eddc6",
        "4e06bdd6cbd5105376e7caf4e683ed131e777389"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 10:37:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 10:37:00 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: try committing transaction before returning ENOSPC\n  Btrfs: add better -ENOSPC handling\n"
    },
    {
      "commit": "b2bf96833c5782befc3e7700f791fde754a47b01",
      "tree": "b38745750c948b519e4c46bb9589d3a61c6359f4",
      "parents": [
        "169d418b127b98a3e464e9c4b807ad083760f98c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 19 08:50:26 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 26 10:45:48 2009 +0100"
      },
      "message": "block: fix bogus gcc warning for uninitialized var usage\n\nNewer gcc throw this warning:\n\n        fs/bio.c: In function ?bio_alloc_bioset?:\n        fs/bio.c:305: warning: ?p? may be used uninitialized in this function\n\nsince it cannot figure out that \u0027p\u0027 is only ever used if \u0027bs\u0027 is non-NULL.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8f64b32eb73fbfe9f38c4123121b63ee409278a7",
      "tree": "1c856ed32d7a282dbde0cea2e8839e2c2de51ba9",
      "parents": [
        "d8ae4601a4b7ea1fa17fa395c3468c0e144d1275"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Feb 26 00:57:35 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 26 00:57:35 2009 -0500"
      },
      "message": "ext4: don\u0027t call jbd2_journal_force_commit_nested without journal\n\nRunning without a journal, I oopsed when I ran out of space,\nbecause we called jbd2_journal_force_commit_nested() from\next4_should_retry_alloc() without a journal.\n\nThis should take care of it, I think.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d8ae4601a4b7ea1fa17fa395c3468c0e144d1275",
      "tree": "ce4a6593aaa883377fdd2754655ff5815d363111",
      "parents": [
        "8b1a8ff8b321a9384304aeea4dbdb9747daf7ee8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 09:50:01 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 09:50:01 2009 -0500"
      },
      "message": "ext4: Reorder fs/Makefile so that ext2 root fs\u0027s are mounted using ext2\n\nIn fs/Makefile, ext3 was placed before ext2 so that a root filesystem\nthat possessed a journal, it would be mounted as ext3 instead of ext2.\nThis was necessary because a cleanly unmounted ext3 filesystem was\nfully backwards compatible with ext2, and could be mounted by ext2 ---\nbut it was desirable that it be mounted with ext3 so that the\njournaling would be enabled.\n\nThe ext4 filesystem supports new incompatible features, so there is no\ndanger of an ext4 filesystem being mistaken for an ext2 filesystem.\nAt that point, the relative ordering of ext4 with respect to ext2\ndidn\u0027t matter until ext4 gained the ability to mount filesystems\nwithout a journal starting in 2.6.29-rc1.  Now that this is the case,\ngiven that ext4 is before ext2, it means that root filesystems that\nwere using the plain-jane ext2 format are getting mounted using the\next4 filesystem driver, which is a change in behavior which could be\nsurprising to users.\n\nIt\u0027s doubtful that there are that many ext2-only root filesystem users\nthat would also have ext4 compiled into the kernel, but to adhere to\nthe principle of least surprise, the correct ordering in fs/Makefile\nis ext3, followed by ext2, and finally ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "8b1a8ff8b321a9384304aeea4dbdb9747daf7ee8",
      "tree": "7be11423c5b5a10e085122b5a3e8d004e5fa865a",
      "parents": [
        "ebd3610b110bbb18ea6f9f2aeed1e1068c537227"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 00:08:53 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 00:08:53 2009 -0500"
      },
      "message": "ext4: Remove duplicate call to ext4_commit_super() in ext4_freeze()\n\nCommit c4be0c1d added error checking to ext4_freeze() when calling\next4_commit_super().  Unfortunately the patch failed to remove the\noriginal call to ext4_commit_super(), with the net result that when\nfreezing the filesystem, the superblock gets written twice, the first\ntime without error checking.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "694593e3374a67d95ece6a275a1f181644c2c4d8",
      "tree": "df083065019ded7607e460a7bea44f53deb505f8",
      "parents": [
        "21209b61b0ca0aafb04b5ab3561e3c8e7c7f776d",
        "e07a4b9217d1e97d2f3a62b6b070efdc61212110"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:42:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:42:08 2009 -0800"
      },
      "message": "Merge branch \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc:\n  proc: fix PG_locked reporting in /proc/kpageflags\n"
    },
    {
      "commit": "4daa0682af15b24e9d66ccde3a5d502682e572d8",
      "tree": "b675fbb92366514e53c240dfa0115cd4aeef00ba",
      "parents": [
        "f7e603ad8f78cd3b59e33fa72707da0cbabdf699",
        "ebd3610b110bbb18ea6f9f2aeed1e1068c537227"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:39:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:39:34 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin()\n  ext4: Add fallback for find_group_flex\n"
    },
    {
      "commit": "e07a4b9217d1e97d2f3a62b6b070efdc61212110",
      "tree": "8fb1450f8dd1140693f84092ba25eedf3359ccb9",
      "parents": [
        "f7e603ad8f78cd3b59e33fa72707da0cbabdf699"
      ],
      "author": {
        "name": "Helge Bahmann",
        "email": "helge.bahmann@secunet.com",
        "time": "Fri Feb 20 16:24:12 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Feb 24 21:17:58 2009 +0300"
      },
      "message": "proc: fix PG_locked reporting in /proc/kpageflags\n\nExpr always evaluates to zero.\n\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "cac711211a039ae2e2dc6322ffb3c2279d093bf1",
      "tree": "a910c047f30616462bb8312b86b0caff8a56fa85",
      "parents": [
        "226485e9a91ee89c941d8cb7714f85644a8071d0"
      ],
      "author": {
        "name": "Krzysztof Sachanowicz",
        "email": "analyzer1@gmail.com",
        "time": "Mon Feb 23 22:21:55 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 23 18:25:32 2009 -0800"
      },
      "message": "proc: proc_get_inode should de_put when inode already initialized\n\nde_get is called before every proc_get_inode, but corresponding de_put is\ncalled only when dropping last reference to an inode. This might cause\nsomething like\nremove_proc_entry: /proc/stats busy, count\u003d14496\nto be printed to the syslog.\n\nThe fix is to call de_put in case of an already initialized inode in\nproc_get_inode.\n\nSigned-off-by: Krzysztof Sachanowicz \u003canalyzer1@gmail.com\u003e\nTested-by: Marcin Pilipczuk \u003cmarcin.pilipczuk@gmail.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebd3610b110bbb18ea6f9f2aeed1e1068c537227",
      "tree": "a7ecd4c6ef1d05619abeefea831e8f73ffadda11",
      "parents": [
        "05bf9e839d9de4e8a094274a0a2fd07beb47eaf1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Feb 22 21:09:59 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 22 21:09:59 2009 -0500"
      },
      "message": "ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin()\n\nFunctions ext4_write_begin() and ext4_da_write_begin() call\ngrab_cache_page_write_begin() without AOP_FLAG_NOFS. Thus it\ncan happen that page reclaim is triggered in that function\nand it recurses back into the filesystem (or some other filesystem).\nBut this can lead to various problems as a transaction is already\nstarted at that point. Add the necessary flag.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11688\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "05bf9e839d9de4e8a094274a0a2fd07beb47eaf1",
      "tree": "36dba549ded1f7c7b37bd854fb20d55bff89787d",
      "parents": [
        "20f4d6c3a2a23c5d7d9cc7f42fbb943ca7a03d1f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 21 12:13:24 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 21 12:13:24 2009 -0500"
      },
      "message": "ext4: Add fallback for find_group_flex\n\nThis is a workaround for find_group_flex() which badly needs to be\nreplaced.  One of its problems (besides ignoring the Orlov algorithm)\nis that it is a bit hyperactive about returning failure under\nsuspicious circumstances.  This can lead to spurious ENOSPC failures\neven when there are inodes still available.\n\nWork around this for now by retrying the search using\nfind_group_other() if find_group_flex() returns -1.  If\nfind_group_other() succeeds when find_group_flex() has failed, log a\nwarning message.\n\nA better block/inode allocator that will fix this problem for real has\nbeen queued up for the next merge window.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "710320d57999016729da7c9cfee017b276f553bc",
      "tree": "e881354fc52ef892d564832e7993ec89dad15f7d",
      "parents": [
        "2ec77fc93ca8731368fbe8e71f805c0569d4bcee",
        "eca6acf91552a9b2e997cc76339115c95eac0217"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 09:11:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 09:11:28 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] Fix multiuser mounts so server does not invalidate earlier security contexts\n  [CIFS] improve posix semantics of file create\n  [CIFS] Fix oops in cifs_strfromUCS_le mounting to servers which do not specify their OS\n  cifs: posix fill in inode needed by posix open\n  cifs: properly handle case where CIFSGetSrvInodeNumber fails\n  cifs: refactor new_inode() calls and inode initialization\n  [CIFS] Prevent OOPs when mounting with remote prefixpath.\n  [CIFS] ipv6_addr_equal for address comparison\n"
    },
    {
      "commit": "4c41bd0ec953954158f92bed5d3062645062b98e",
      "tree": "bd3f4c7fdbcac9bf2cabce557d472d6ed4ae4741",
      "parents": [
        "efab0b5d3eed6aa71f8e3233e4e11774eedc04dc"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 16 21:29:31 2009 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Feb 21 11:09:29 2009 +0100"
      },
      "message": "[JFFS2] fix mount crash caused by removed nodes\n\nAt scan time we observed following scenario:\n\n   node A inserted\n   node B inserted\n   node C inserted -\u003e sets overlapped flag on node B\n\n   node A is removed due to CRC failure -\u003e overlapped flag on node B remains\n\n   while (tn-\u003eoverlapped)\n   \t tn \u003d tn_prev(tn);\n\n   \u003d\u003d\u003e crash, when tn_prev(B) is referenced.\n\nWhen the ultimate node is removed at scan time and the overlapped flag\nis set on the penultimate node, then nothing updates the overlapped\nflag of that node. The overlapped iterators blindly expect that the\nultimate node does not have the overlapped flag set, which causes the\nscan code to crash.\n\nIt would be a huge overhead to go through the node chain on node\nremoval and fix up the overlapped flags, so detecting such a case on\nthe fly in the overlapped iterators is a simpler and reliable\nsolution.\n\nCc: stable@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "eca6acf91552a9b2e997cc76339115c95eac0217",
      "tree": "2c3c3ef60900d6ee0cb8952f2bd4195abfb92663",
      "parents": [
        "c3b2a0c640bff7df85d79fb4f89674949a267ec2"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Feb 20 05:43:09 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:10 2009 +0000"
      },
      "message": "[CIFS] Fix multiuser mounts so server does not invalidate earlier security contexts\n\nWhen two different users mount the same Windows 2003 Server share using CIFS,\nthe first session mounted can be invalidated.  Some servers invalidate the first\nsmb session when a second similar user (e.g. two users who get mapped by server to \"guest\")\nauthenticates an smb session from the same client.\n\nBy making sure that we set the 2nd and subsequent vc numbers to nonzero values,\nthis ensures that we will not have this problem.\n\nFixes Samba bug 6004, problem description follows:\nHow to reproduce:\n\n- configure an \"open share\" (full permissions to Guest user) on Windows 2003\nServer (I couldn\u0027t reproduce the problem with Samba server or Windows older\nthan 2003)\n- mount the share twice with different users who will be authenticated as guest.\n\n noacl,noperm,user\u003djohn,dir_mode\u003d0700,domain\u003dDOMAIN,rw\n noacl,noperm,user\u003djeff,dir_mode\u003d0700,domain\u003dDOMAIN,rw\n\nResult:\n\n- just the mount point mounted last is accessible:\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c3b2a0c640bff7df85d79fb4f89674949a267ec2",
      "tree": "ed36e11454123d276929b1c470a27409ccf957bb",
      "parents": [
        "69765529d701c838df19ea1f5ad2f33a528261ae"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Feb 20 04:32:45 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:09 2009 +0000"
      },
      "message": "[CIFS] improve posix semantics of file create\n\nSamba server added support for a new posix open/create/mkdir operation\na year or so ago, and we added support to cifs for mkdir to use it,\nbut had not added the corresponding code to file create.\n\nThe following patch helps improve the performance of the cifs create\npath (to Samba and servers which support the cifs posix protocol\nextensions).  Using Connectathon basic test1, with 2000 files, the\nperformance improved about 15%, and also helped reduce network traffic\n(17% fewer SMBs sent over the wire) due to saving a network round trip\nfor the SetPathInfo on every file create.\n\nIt should also help the semantics (and probably the performance) of\nwrite (e.g. when posix byte range locks are on the file) on file\nhandles opened with posix create, and adds support for a few flags\nwhich would have to be ignored otherwise.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "69765529d701c838df19ea1f5ad2f33a528261ae",
      "tree": "229ce1fda799ac8f6553a87ed05516dd675b3eec",
      "parents": [
        "44f68fadd865bb288ebdcea2b602f0b1cab27a0c"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Feb 17 01:29:40 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:09 2009 +0000"
      },
      "message": "[CIFS] Fix oops in cifs_strfromUCS_le mounting to servers which do not specify their OS\n\nFixes kernel bug #10451 http://bugzilla.kernel.org/show_bug.cgi?id\u003d10451\n\nCertain NAS appliances do not set the operating system or network operating system\nfields in the session setup response on the wire.  cifs was oopsing on the unexpected\nzero length response fields (when trying to null terminate a zero length field).\n\nThis fixes the oops.\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "44f68fadd865bb288ebdcea2b602f0b1cab27a0c",
      "tree": "5b8a7bc718bf9cbb0ae53dd48c95ceaaa98873ce",
      "parents": [
        "950ec52880fab89b957c7dc45e8b8476dd63741f"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Feb 11 08:08:28 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:08 2009 +0000"
      },
      "message": "cifs: posix fill in inode needed by posix open\n\nfunction needed to prepare for posix open\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "950ec52880fab89b957c7dc45e8b8476dd63741f",
      "tree": "dfb8bd4bdf0e455fefd453c4e899276641a60394",
      "parents": [
        "132ac7b77cc95a22d6118d327c96586759fbf006"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Feb 11 08:08:26 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:08 2009 +0000"
      },
      "message": "cifs: properly handle case where CIFSGetSrvInodeNumber fails\n\n...if it does then we pass a pointer to an unintialized variable for\nthe inode number to cifs_new_inode. Have it pass a NULL pointer instead.\n\nAlso tweak the function prototypes to reduce the amount of casting.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "132ac7b77cc95a22d6118d327c96586759fbf006",
      "tree": "37e1211723408f2aef2b71bfdaf34a596e675d8d",
      "parents": [
        "e4cce94c9c8797b08faf6a79396df4d175e377fa"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 10 07:33:57 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:07 2009 +0000"
      },
      "message": "cifs: refactor new_inode() calls and inode initialization\n\nMove new inode creation into a separate routine and refactor the\ncallers to take advantage of it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "e4cce94c9c8797b08faf6a79396df4d175e377fa",
      "tree": "6eb306603652bf08ca10fef4f899332f30d71e09",
      "parents": [
        "e1f81c8a417be466e85a38b61679aa6860ec7331"
      ],
      "author": {
        "name": "Igor Mammedov",
        "email": "niallain@gmail.com",
        "time": "Tue Feb 10 14:10:26 2009 +0300"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:36:21 2009 +0000"
      },
      "message": "[CIFS] Prevent OOPs when mounting with remote prefixpath.\n\nFixes OOPs with message \u0027kernel BUG at fs/cifs/cifs_dfs_ref.c:274!\u0027.\nChecks if the prefixpath in an accesible while we are still in cifs_mount\nand fails with reporting a error if we can\u0027t access the prefixpath\n\nShould fix Samba bugs 6086 and 5861 and kernel bug 12192\n\nSigned-off-by: Igor Mammedov \u003cniallain@gmail.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "264b29900657f53fb4ddc8bf08f447c4c227b2cf",
      "tree": "b45d7a4f57b578cc331dc391b1a4225013136c92",
      "parents": [
        "b6adea334c6c89d5e6c94f9196bbf3a279cb53bd",
        "2cfbd50b536c878e58ab3681c4e944fa3d99b415"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:59:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:59:14 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: check file pointer in btrfs_sync_file\n"
    },
    {
      "commit": "4e06bdd6cbd5105376e7caf4e683ed131e777389",
      "tree": "20a7b891f7f8f518eb2cd81234e0c9ab5902c6c3",
      "parents": [
        "6a63209fc02d5483371f07e4913ee8abad608051"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Fri Feb 20 10:59:53 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 10:59:53 2009 -0500"
      },
      "message": "Btrfs: try committing transaction before returning ENOSPC\n\nThis fixes a problem where we could return -ENOSPC when we may actually have\nplenty of space, the space is just pinned.  Instead of returning -ENOSPC\nimmediately, commit the transaction first and then try and do the allocation\nagain.\n\nThis patch also does chunk allocation for metadata if we pass the 80%\nthreshold for metadata space.  This will help with stack usage since the chunk\nallocation will happen early on, instead of when the allocation is happening.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\n\n\n"
    },
    {
      "commit": "6a63209fc02d5483371f07e4913ee8abad608051",
      "tree": "7595e0df452928b677b66a64baf0cb3b7ec53dfc",
      "parents": [
        "2cfbd50b536c878e58ab3681c4e944fa3d99b415"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Fri Feb 20 11:00:09 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 11:00:09 2009 -0500"
      },
      "message": "Btrfs: add better -ENOSPC handling\n\nThis is a step in the direction of better -ENOSPC handling.  Instead of\nchecking the global bytes counter we check the space_info bytes counters to\nmake sure we have enough space.\n\nIf we don\u0027t we go ahead and try to allocate a new chunk, and then if that fails\nwe return -ENOSPC.  This patch adds two counters to btrfs_space_info,\nbytes_delalloc and bytes_may_use.\n\nbytes_delalloc account for extents we\u0027ve actually setup for delalloc and will\nbe allocated at some point down the line. \n\nbytes_may_use is to keep track of how many bytes we may use for delalloc at\nsome point.  When we actually set the extent_bit for the delalloc bytes we\nsubtract the reserved bytes from the bytes_may_use counter.  This keeps us from\nnot actually being able to allocate space for any delalloc bytes.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\n\n\n\n\n"
    },
    {
      "commit": "2cfbd50b536c878e58ab3681c4e944fa3d99b415",
      "tree": "af29d7c8a094b0560c3ed04aebacdea23ae1177f",
      "parents": [
        "2456242530a21cfee82646ebeeda65d3f74faa4c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 10:55:10 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 10:55:10 2009 -0500"
      },
      "message": "Btrfs: check file pointer in btrfs_sync_file\n\nfsync can be called by NFS with a null file pointer, and btrfs was\noopsing in this case.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "620565ef5f35f4196e5081417db381c16b0ae791",
      "tree": "6bfbcd9c26de367a64177392e9eb0dc553094f36",
      "parents": [
        "a5e753638874b9caabde01c8774e1a39e31cb614",
        "27e88bf6af7d42adf790f7b2ed7d65475f191cf2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 19 13:09:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 19 13:09:32 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  Revert \"[XFS] remove old vmap cache\"\n  Revert \"[XFS] use scalable vmap API\"\n"
    },
    {
      "commit": "27e88bf6af7d42adf790f7b2ed7d65475f191cf2",
      "tree": "ce135c2daae945a11b7ae0c5869660b7972aa88f",
      "parents": [
        "7fdf582447aa01658b624adc0a51a31e4278b68c"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Feb 18 15:56:51 2009 -0600"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Feb 19 13:15:55 2009 -0600"
      },
      "message": "Revert \"[XFS] remove old vmap cache\"\n\nThis reverts commit d2859751cd0bf586941ffa7308635a293f943c17.\n\nThis commit caused regression. We\u0027ll try to fix use of new\nvmap API for next release.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "7fdf582447aa01658b624adc0a51a31e4278b68c",
      "tree": "dcb0df49afe80e241f470d3850a6bea6c2c0c596",
      "parents": [
        "43f3f057c56d030546145696627f13f95735be95"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Feb 18 15:41:28 2009 -0600"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Feb 19 13:15:44 2009 -0600"
      },
      "message": "Revert \"[XFS] use scalable vmap API\"\n\nThis reverts commit 95f8e302c04c0b0c6de35ab399a5551605eeb006.\n\nThis commit caused regression. We\u0027ll try to fix use of new\nvmap API for next release.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "ba95fd47d177d46743ad94055908d22840370e06",
      "tree": "f29e6921fefba2728c3b7f6854ac7f7729f602b2",
      "parents": [
        "59af0a0b5848caf38f1bf7013905c3e9cdba4d1d",
        "be987fdb55a4726e2fcbab7501f89276bdb57288"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 18:33:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 18:33:04 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list\n  block: fix booting from partitioned md array\n  block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb\n  cciss: PCI power management reset for kexec\n  paride/pg.c: xs(): \u0026\u0026/|| confusion\n  fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free\n  block: fix bad definition of BIO_RW_SYNC\n  bsg: Fix sense buffer bug in SG_IO\n"
    },
    {
      "commit": "f04b30de3c82528f1ab4c58b3dd4c975f5341901",
      "tree": "1d3410190d93a72c0a98961704086ba17c21d326",
      "parents": [
        "be50344e604f956891fc0013f1ba78823a758124"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 14:48:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:56 2009 -0800"
      },
      "message": "inotify: fix GFP_KERNEL related deadlock\n\nEnhanced lockdep coverage of __GFP_NOFS turned up this new lockdep\nassert:\n\n[ 1093.677775]\n[ 1093.677781] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ 1093.680031] [ INFO: inconsistent lock state ]\n[ 1093.680031] 2.6.29-rc5-tip-01504-gb49eca1-dirty #1\n[ 1093.680031] ---------------------------------\n[ 1093.680031] inconsistent {RECLAIM_FS-ON-W} -\u003e {IN-RECLAIM_FS-W} usage.\n[ 1093.680031] kswapd0/308 [HC0[0]:SC0[0]:HE1:SE1] takes:\n[ 1093.680031]  (\u0026inode-\u003einotify_mutex){+.+.?.}, at: [\u003cc0205942\u003e] inotify_inode_is_dead+0x20/0x80\n[ 1093.680031] {RECLAIM_FS-ON-W} state was registered at:\n[ 1093.680031]   [\u003cc01696b9\u003e] mark_held_locks+0x43/0x5b\n[ 1093.680031]   [\u003cc016baa4\u003e] lockdep_trace_alloc+0x6c/0x6e\n[ 1093.680031]   [\u003cc01cf8b0\u003e] kmem_cache_alloc+0x20/0x150\n[ 1093.680031]   [\u003cc040d0ec\u003e] idr_pre_get+0x27/0x6c\n[ 1093.680031]   [\u003cc02056e3\u003e] inotify_handle_get_wd+0x25/0xad\n[ 1093.680031]   [\u003cc0205f43\u003e] inotify_add_watch+0x7a/0x129\n[ 1093.680031]   [\u003cc020679e\u003e] sys_inotify_add_watch+0x20f/0x250\n[ 1093.680031]   [\u003cc010389e\u003e] sysenter_do_call+0x12/0x35\n[ 1093.680031]   [\u003cffffffff\u003e] 0xffffffff\n[ 1093.680031] irq event stamp: 60417\n[ 1093.680031] hardirqs last  enabled at (60417): [\u003cc018d5f5\u003e] call_rcu+0x53/0x59\n[ 1093.680031] hardirqs last disabled at (60416): [\u003cc018d5b9\u003e] call_rcu+0x17/0x59\n[ 1093.680031] softirqs last  enabled at (59656): [\u003cc0146229\u003e] __do_softirq+0x157/0x16b\n[ 1093.680031] softirqs last disabled at (59651): [\u003cc0106293\u003e] do_softirq+0x74/0x15d\n[ 1093.680031]\n[ 1093.680031] other info that might help us debug this:\n[ 1093.680031] 2 locks held by kswapd0/308:\n[ 1093.680031]  #0:  (shrinker_rwsem){++++..}, at: [\u003cc01b0502\u003e] shrink_slab+0x36/0x189\n[ 1093.680031]  #1:  (\u0026type-\u003es_umount_key#4){+++++.}, at: [\u003cc01e6d77\u003e] shrink_dcache_memory+0x110/0x1fb\n[ 1093.680031]\n[ 1093.680031] stack backtrace:\n[ 1093.680031] Pid: 308, comm: kswapd0 Not tainted 2.6.29-rc5-tip-01504-gb49eca1-dirty #1\n[ 1093.680031] Call Trace:\n[ 1093.680031]  [\u003cc016947a\u003e] valid_state+0x12a/0x13d\n[ 1093.680031]  [\u003cc016954e\u003e] mark_lock+0xc1/0x1e9\n[ 1093.680031]  [\u003cc016a5b4\u003e] ? check_usage_forwards+0x0/0x3f\n[ 1093.680031]  [\u003cc016ab74\u003e] __lock_acquire+0x2c6/0xac8\n[ 1093.680031]  [\u003cc01688d9\u003e] ? register_lock_class+0x17/0x228\n[ 1093.680031]  [\u003cc016b3d3\u003e] lock_acquire+0x5d/0x7a\n[ 1093.680031]  [\u003cc0205942\u003e] ? inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc08824c4\u003e] __mutex_lock_common+0x3a/0x4cb\n[ 1093.680031]  [\u003cc0205942\u003e] ? inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc08829ed\u003e] mutex_lock_nested+0x2e/0x36\n[ 1093.680031]  [\u003cc0205942\u003e] ? inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc0205942\u003e] inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc01e6672\u003e] dentry_iput+0x90/0xc2\n[ 1093.680031]  [\u003cc01e67a3\u003e] d_kill+0x21/0x45\n[ 1093.680031]  [\u003cc01e6a46\u003e] __shrink_dcache_sb+0x27f/0x355\n[ 1093.680031]  [\u003cc01e6dc5\u003e] shrink_dcache_memory+0x15e/0x1fb\n[ 1093.680031]  [\u003cc01b05ed\u003e] shrink_slab+0x121/0x189\n[ 1093.680031]  [\u003cc01b0d12\u003e] kswapd+0x39f/0x561\n[ 1093.680031]  [\u003cc01ae499\u003e] ? isolate_pages_global+0x0/0x233\n[ 1093.680031]  [\u003cc0157eae\u003e] ? autoremove_wake_function+0x0/0x43\n[ 1093.680031]  [\u003cc01b0973\u003e] ? kswapd+0x0/0x561\n[ 1093.680031]  [\u003cc0157daf\u003e] kthread+0x41/0x82\n[ 1093.680031]  [\u003cc0157d6e\u003e] ? kthread+0x0/0x82\n[ 1093.680031]  [\u003cc01043ab\u003e] kernel_thread_helper+0x7/0x10\n\ninotify_handle_get_wd() does idr_pre_get() which does a\nkmem_cache_alloc() without __GFP_FS - and is hence deadlockable under\nextreme MM pressure.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: MinChan Kim \u003cminchan.kim@gmail.com\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": "2db69a9340da12a4db44edb7506dd68799aeff55",
      "tree": "1d644a26f4ebafeaaa0b8124b60c2875453f775a",
      "parents": [
        "a1a5c3b9237662f326cc730e167e7524b5d05a36"
      ],
      "author": {
        "name": "Bill Nottingham",
        "email": "notting@redhat.com",
        "time": "Wed Feb 18 14:48:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:56 2009 -0800"
      },
      "message": "vt: Declare PIO_CMAP/GIO_CMAP as compatbile ioctls.\n\nOtherwise, these don\u0027t work when called from 32-bit userspace on 64-bit\nkernels.\n\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ada723dcd681e2dffd7d73345cc8fda0eb0df9bd",
      "tree": "5f1b114d225721ae7a65fca08a6d053f89f36c43",
      "parents": [
        "27c0c8e511fa9e2389503926840fac606d90a049"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Feb 18 14:48:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:55 2009 -0800"
      },
      "message": "fs/super.c: add lockdep annotation to s_umount\n\nLi Zefan said:\n\nThread 1:\n  for ((; ;))\n  {\n      mount -t cpuset xxx /mnt \u003e /dev/null 2\u003e\u00261\n      cat /mnt/cpus \u003e /dev/null 2\u003e\u00261\n      umount /mnt \u003e /dev/null 2\u003e\u00261\n  }\n\nThread 2:\n  for ((; ;))\n  {\n      mount -t cpuset xxx /mnt \u003e /dev/null 2\u003e\u00261\n      umount /mnt \u003e /dev/null 2\u003e\u00261\n  }\n\n(Note: It is irrelevant which cgroup subsys is used.)\n\nAfter a while a lockdep warning showed up:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n2.6.28 #479\n---------------------------------------------\nmount/13554 is trying to acquire lock:\n (\u0026type-\u003es_umount_key#19){--..}, at: [\u003cc049d888\u003e] sget+0x5e/0x321\n\nbut task is already holding lock:\n (\u0026type-\u003es_umount_key#19){--..}, at: [\u003cc049da0c\u003e] sget+0x1e2/0x321\n\nother info that might help us debug this:\n1 lock held by mount/13554:\n #0:  (\u0026type-\u003es_umount_key#19){--..}, at: [\u003cc049da0c\u003e] sget+0x1e2/0x321\n\nstack backtrace:\nPid: 13554, comm: mount Not tainted 2.6.28-mc #479\nCall Trace:\n [\u003cc044ad2e\u003e] validate_chain+0x4c6/0xbbd\n [\u003cc044ba9b\u003e] __lock_acquire+0x676/0x700\n [\u003cc044bb82\u003e] lock_acquire+0x5d/0x7a\n [\u003cc049d888\u003e] ? sget+0x5e/0x321\n [\u003cc061b9b8\u003e] down_write+0x34/0x50\n [\u003cc049d888\u003e] ? sget+0x5e/0x321\n [\u003cc049d888\u003e] sget+0x5e/0x321\n [\u003cc045a2e7\u003e] ? cgroup_set_super+0x0/0x3e\n [\u003cc045959f\u003e] ? cgroup_test_super+0x0/0x2f\n [\u003cc045bcea\u003e] cgroup_get_sb+0x98/0x2e7\n [\u003cc045cfb6\u003e] cpuset_get_sb+0x4a/0x5f\n [\u003cc049dfa4\u003e] vfs_kern_mount+0x40/0x7b\n [\u003cc049e02d\u003e] do_kern_mount+0x37/0xbf\n [\u003cc04af4a0\u003e] do_mount+0x5c3/0x61a\n [\u003cc04addd2\u003e] ? copy_mount_options+0x2c/0x111\n [\u003cc04af560\u003e] sys_mount+0x69/0xa0\n [\u003cc0403251\u003e] sysenter_do_call+0x12/0x31\n\nThe cause is after alloc_super() and then retry, an old entry in list\nfs_supers is found, so grab_super(old) is called, but both functions hold\ns_umount lock:\n\nstruct super_block *sget(...)\n{\n\t...\nretry:\n\tspin_lock(\u0026sb_lock);\n\tif (test) {\n\t\tlist_for_each_entry(old, \u0026type-\u003efs_supers, s_instances) {\n\t\t\tif (!test(old, data))\n\t\t\t\tcontinue;\n\t\t\tif (!grab_super(old))  \u003c--- 2nd: down_write(\u0026old-\u003es_umount);\n\t\t\t\tgoto retry;\n\t\t\tif (s)\n\t\t\t\tdestroy_super(s);\n\t\t\treturn old;\n\t\t}\n\t}\n\tif (!s) {\n\t\tspin_unlock(\u0026sb_lock);\n\t\ts \u003d alloc_super(type);   \u003c--- 1th: down_write(\u0026s-\u003es_umount)\n\t\tif (!s)\n\t\t\treturn ERR_PTR(-ENOMEM);\n\t\tgoto retry;\n\t}\n\t...\n}\n\nIt seems like a false positive, and seems like VFS but not cgroup needs to\nbe fixed.\n\nPeter said:\n\nWe can simply put the new s_umount instance in a but lockdep doesn\u0027t\nparticularly cares about subclass order.\n\nIf there\u0027s any issue with the callers of sget() assuming the s_umount lock\nbeing of sublcass 0, then there is another annotation we can use to fix\nthat, but lets not bother with that if this is sufficient.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d12673\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cf6e7d83bf334cc5916137862c920a97aabc018",
      "tree": "6bdbc4a98e9b332919beaeba0649797fff544795",
      "parents": [
        "610d18f4128ebbd88845d0fc60cce67b49af881e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 18 14:48:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:54 2009 -0800"
      },
      "message": "mm: task dirty accounting fix\n\nYAMAMOTO-san noticed that task_dirty_inc doesn\u0027t seem to be called properly for\ncases where set_page_dirty is not used to dirty a page (eg. mark_buffer_dirty).\n\nAdditionally, there is some inconsistency about when task_dirty_inc is\ncalled.  It is used for dirty balancing, however it even gets called for\n__set_page_dirty_no_writeback.\n\nSo rather than increment it in a set_page_dirty wrapper, move it down to\nexactly where the dirty page accounting stats are incremented.\n\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-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": "610d18f4128ebbd88845d0fc60cce67b49af881e",
      "tree": "97faea373227afc42c4a8f932fb2fe3fd393a258",
      "parents": [
        "ef35ce231b3cb2a4b1808e826da263bf37ccb38a"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Wed Feb 18 14:48:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:53 2009 -0800"
      },
      "message": "timerfd: add flags check\n\nAs requested by Michael, add a missing check for valid flags in\ntimerfd_settime(), and make it return EINVAL in case some extra bits are\nset.\n\nMichael said:\nIf this is to be any use to userland apps that want to check flag\nsupport (perhaps it is too late already), then the sooner we get it\ninto the kernel the better: 2.6.29 would be good; earlier stables as\nwell would be even better.\n\n[akpm@linux-foundation.org: remove unused TFD_FLAGS_SET]\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f19d472935c83d823fa4cf02bcc0a7b9952db30",
      "tree": "25cabc0b48ad0acb05fa69f92de617cf588fec8d",
      "parents": [
        "55ec82176eca52e4e0530a82a0eb59160a1a95a1"
      ],
      "author": {
        "name": "Eric Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 18 14:48:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:53 2009 -0800"
      },
      "message": "seq_file: properly cope with pread\n\nCurrently seq_read assumes that the offset passed to it is always the\noffset it passed to user space.  In the case pread this assumption is\nbroken and we do the wrong thing when presented with pread.\n\nTo solve this I introduce an offset cache inside of struct seq_file so we\nknow where our logical file position is.  Then in seq_read if we try to\nread from another offset we reset our data structures and attempt to go to\nthe offset user space wanted.\n\n[akpm@linux-foundation.org: restore FMODE_PWRITE]\n[pjt@google.com: seq_open needs its fmode opened up to take advantage of this]\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78f707bfc723552e8309b7c38a8d0cc51012e813",
      "tree": "67f47d32eac2cb8288a9469b47c1d8cefc6ce42a",
      "parents": [
        "82eb03cfd862a65363fa2826de0dbd5474cfe5e2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 17 13:59:08 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:01 2009 +0100"
      },
      "message": "block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb\n\nThe above commit added WRITE_SYNC and switched various places to using\nthat for committing writes that will be waited upon immediately after\nsubmission. However, this causes a performance regression with AS and CFQ\nfor ext3 at least, since sync_dirty_buffer() will submit some writes with\nWRITE_SYNC while ext3 has sumitted others dependent writes without the sync\nflag set. This causes excessive anticipation/idling in the IO scheduler\nbecause sync and async writes get interleaved, causing a big performance\nregression for the below test case (which is meant to simulate sqlite\nlike behaviour).\n\n---- test case ----\n\nint main(int argc, char **argv)\n{\n\n\tint fdes, i;\n\tFILE *fp;\n\tstruct timeval start;\n\tstruct timeval end;\n\tstruct timeval res;\n\n\tgettimeofday(\u0026start, NULL);\n\tfor (i\u003d0; i\u003cROWS; i++) {\n\t\tfp \u003d fopen(\"test_file\", \"a\");\n\t\tfprintf(fp, \"Some Text Data\\n\");\n\t\tfdes \u003d fileno(fp);\n\t\tfsync(fdes);\n\t\tfclose(fp);\n\t}\n\tgettimeofday(\u0026end, NULL);\n\n\ttimersub(\u0026end, \u0026start, \u0026res);\n\tfprintf(stdout, \"time to write %d lines is %ld(msec)\\n\", ROWS,\n\t\t\t(res.tv_sec*1000000 + res.tv_usec)/1000);\n\n\treturn 0;\n}\n\n-------------------\n\nThanks to Sean.White@APCC.com for tracking down this performance\nregression and providing a test case.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a60e78e57a17d55bbd5a96da16fe9649d364b987",
      "tree": "5b7a7c5977ee8862166f743d1aede56278c4971b",
      "parents": [
        "93dbb393503d53cd226e5e1f0088fe8f4dbaa2b8"
      ],
      "author": {
        "name": "Subhash Peddamallu",
        "email": "subhash.peddamallu@gmail.com",
        "time": "Mon Feb 16 10:27:07 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:01 2009 +0100"
      },
      "message": "fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free\n\nWhen freeing from bio pool use right ptr to account for bs-\u003efront_pad,\ninstead of bio ptr,\n\nSigned-off-by: Subhash Peddamallu \u003csubhash.peddamallu@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "48c0d9ece360ff6001e2ae36aa9b34446d0388a8",
      "tree": "094987b35e1d6f5ec552bca336de43dd7848c94a",
      "parents": [
        "0637810f24bad641d3d3f80fd3f63f3baffd9536",
        "2456242530a21cfee82646ebeeda65d3f74faa4c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:19:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:19:14 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: hold trans_mutex when using btrfs_record_root_in_trans\n  Btrfs: make a lockdep class for the extent buffer locks\n  Btrfs: fs/btrfs/volumes.c: remove useless kzalloc\n  Btrfs: remove unused code in split_state()\n  Btrfs: remove btrfs_init_path\n  Btrfs: balance_level checks !child after access\n  Btrfs: Avoid using __GFP_HIGHMEM with slab allocator\n  Btrfs: don\u0027t clean old snapshots on sync(1)\n  Btrfs: use larger metadata clusters in ssd mode\n  Btrfs: process mount options on mount -o remount,\n  Btrfs: make sure all pending extent operations are complete\n"
    },
    {
      "commit": "3512a79dbcc90e6edac98717607bd821bba50a14",
      "tree": "9038e3545ccdfec77ec24d982f8cc24701fb532d",
      "parents": [
        "39a65762d4c48fd8a498f34b7fec74a6b0aebd55",
        "090542641de833c6f756895fc2f139f046e298f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:05:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:05:05 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Fix NULL dereference in ext4_ext_migrate()\u0027s error handling\n  ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages\n  ext4: Initialize preallocation list_head\u0027s properly\n  ext4: Fix lockdep warning\n  ext4: Fix to read empty directory blocks correctly in 64k\n  jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()\n  Revert \"ext4: wait on all pending commits in ext4_sync_fs()\"\n  jbd2: Fix return value of jbd2_journal_start_commit()\n"
    },
    {
      "commit": "1a88b5364b535edaa321d70a566e358390ff0872",
      "tree": "41c557358a595de85ba8a7a7697901ff21d1de1a",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Mon Feb 16 02:38:12 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:02:08 2009 -0800"
      },
      "message": "Fix incomplete __mntput locking\n\nGetting this wrong caused\n\n\tWARNING: at fs/namespace.c:636 mntput_no_expire+0xac/0xf2()\n\ndue to optimistically checking cpu_writer-\u003emnt outside the spinlock.\n\nHere\u0027s what we really want:\n * we know that nobody will set cpu_writer-\u003emnt to mnt from now on\n * all changes to that sucker are done under cpu_writer-\u003elock\n * we want the laziest equivalent of\n\tspin_lock(\u0026cpu_writer-\u003elock);\n\tif (likely(cpu_writer-\u003emnt !\u003d mnt)) {\n\t\tspin_unlock(\u0026cpu_writer-\u003elock);\n\t\tcontinue;\n\t}\n\t/* do stuff */\n  that would make sure we won\u0027t miss earlier setting of -\u003emnt done by\n  another CPU.\n\nAnyway, for now we just move the spin_lock() earlier and move the test\ninto the properly locked region.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-and-tested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "090542641de833c6f756895fc2f139f046e298f9",
      "tree": "8a3939e4e72e5107282a5343d2cb50c29e5077a6",
      "parents": [
        "2acf2c261b823d9d9ed954f348b97620297a36b5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun Feb 15 20:02:19 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 15 20:02:19 2009 -0500"
      },
      "message": "ext4: Fix NULL dereference in ext4_ext_migrate()\u0027s error handling\n\nThis was found through a code checker (http://repo.or.cz/w/smatch.git/). \nIt looks like you might be able to trigger the error by trying to migrate \na readonly file system.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2acf2c261b823d9d9ed954f348b97620297a36b5",
      "tree": "01bcc80ee26a9cc25df9b9a215081943f3fcbd6c",
      "parents": [
        "d794bf8e0936dce45104565cd48c571061f4c1e3"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Feb 14 10:42:58 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 14 10:42:58 2009 -0500"
      },
      "message": "ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages\n\nWith delayed allocation we lock the page in write_cache_pages() and\ntry to build an in memory extent of contiguous blocks.  This is needed\nso that we can get large contiguous blocks request.  If range_cyclic\nmode is enabled, write_cache_pages() will loop back to the 0 index if\nno I/O has been done yet, and try to start writing from the beginning\nof the range.  That causes an attempt to take the page lock of lower\nindex page while holding the page lock of higher index page, which can\ncause a dead lock with another writeback thread.\n\nThe solution is to implement the range_cyclic behavior in\next4_da_writepages() instead.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12579\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d794bf8e0936dce45104565cd48c571061f4c1e3",
      "tree": "ad23776b739eb551b520865e837a106a7b628819",
      "parents": [
        "ba4439165f0f0d25b2fe065cf0c1ff8130b802eb"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Feb 14 10:31:16 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 14 10:31:16 2009 -0500"
      },
      "message": "ext4: Initialize preallocation list_head\u0027s properly\n\nWhen creating a new ext4_prealloc_space structure, we have to\ninitialize its list_head pointers before we add them to any prealloc\nlists.  Otherwise, with list debug enabled, we will get list\ncorruption warnings.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "efab0b5d3eed6aa71f8e3233e4e11774eedc04dc",
      "tree": "79906754c394f0e2e081c150ea4494a3bde1b086",
      "parents": [
        "ab00d68276295a1b4da7ad924a35a3566e9c2698"
      ],
      "author": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Wed Feb 11 13:27:02 2009 -0800"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Feb 14 08:59:04 2009 +0000"
      },
      "message": "[JFFS2] force the jffs2 GC daemon to behave a bit better\n\nI\u0027ve noticed some pretty poor behavior on OLPC machines after bootup, when\ngdm/X are starting.  The GCD monopolizes the scheduler (which in turns\nmeans it gets to do more nand i/o), which results in processes taking much\nmuch longer than they should to start.\n\nAs an example, on an OLPC machine going from OFW to a usable X (via\nauto-login gdm) takes 2m 30s.  The majority of this time is consumed by\nthe switch into graphical mode.  With this patch, we cut a full 60s off of\nbootup time.  After bootup, things are much snappier as well.\n\nNote that we have seen a CRC node error with this patch that causes the machine\nto fail to boot, but we\u0027ve also seen that problem without this patch.\n\nSigned-off-by: Andres Salomon \u003cdilinger@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "2456242530a21cfee82646ebeeda65d3f74faa4c",
      "tree": "c0e8f5eda96cefeb44a48f05a248ea22b4259ad2",
      "parents": [
        "4008c04a07c73ec3cb1be4c1391d2159a8f75d6d"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Feb 12 14:14:53 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:14:53 2009 -0500"
      },
      "message": "Btrfs: hold trans_mutex when using btrfs_record_root_in_trans\n\nbtrfs_record_root_in_trans needs the trans_mutex held to make sure two\ncallers don\u0027t race to setup the root in a given transaction.  This adds\nit to all the places that were missing it.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\n\n"
    },
    {
      "commit": "4008c04a07c73ec3cb1be4c1391d2159a8f75d6d",
      "tree": "c0b10a7287ac810bfc406541e32b850ad4580248",
      "parents": [
        "3f3420df505e47751ef76a652b5cb660e5360d6f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:09:45 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:09:45 2009 -0500"
      },
      "message": "Btrfs: make a lockdep class for the extent buffer locks\n\nBtrfs is currently using spin_lock_nested with a nested value based\non the tree depth of the block.  But, this doesn\u0027t quite work because\nthe max tree depth is bigger than what spin_lock_nested can deal with,\nand because locks are sometimes taken before the level field is filled in.\n\nThe solution here is to use lockdep_set_class_and_name instead, and to\nset the class before unlocking the pages when the block is read from the\ndisk and just after init of a freshly allocated tree block.\n\nbtrfs_clear_path_blocking is also changed to take the locks in the proper\norder, and it also makes sure all the locks currently held are properly\nset to blocking before it tries to retake the spinlocks.  Otherwise, lockdep\ngets upset about bad lock orderin.\n\nThe lockdep magic cam from Peter Zijlstra \u003cpeterz@infradead.org\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3f3420df505e47751ef76a652b5cb660e5360d6f",
      "tree": "de413daa777dba47be638c29825c779635a45764",
      "parents": [
        "a48ddf08ba9bab91efd95e458737afa9d7699623"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu Feb 12 10:16:03 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 10:16:03 2009 -0500"
      },
      "message": "Btrfs: fs/btrfs/volumes.c: remove useless kzalloc\n\nThe call to kzalloc is followed by a kmalloc whose result is stored in the\nsame variable.\n\nThe semantic match that finds the problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nstatement S;\nexpression E;\nidentifier f,l;\nposition p1,p2;\nexpression *ptr !\u003d NULL;\n@@\n\n(\nif ((x@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...)) \u003d\u003d NULL) S\n|\nx@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...);\n...\nif (x \u003d\u003d NULL) S\n)\n\u003c... when !\u003d x\n     when !\u003d if (...) { \u003c+...x...+\u003e }\nx-\u003ef \u003d E\n...\u003e\n(\n return \\(0\\|\u003c+...x...+\u003e\\|ptr\\);\n|\n return@p2 ...;\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nprint \"* file: %s kmalloc %s return %s\" % (p1[0].file,p1[0].line,p2[0].line)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a48ddf08ba9bab91efd95e458737afa9d7699623",
      "tree": "58fb45f4b54d3a18108f636528337a09c0a08cc7",
      "parents": [
        "e00f7308658622fbd483cb0d9fe41165bf9050d0"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Thu Feb 12 14:25:23 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:25:23 2009 -0500"
      },
      "message": "Btrfs: remove unused code in split_state()\n\nThese two lines are not used, remove them.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "e00f7308658622fbd483cb0d9fe41165bf9050d0",
      "tree": "5baeaee96a3d6789f4cce2ca17d7f4f8afb3431e",
      "parents": [
        "7951f3cefbd711f4429a0cd014aa83a844c399a0"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Feb 12 14:11:25 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:11:25 2009 -0500"
      },
      "message": "Btrfs: remove btrfs_init_path\n\nbtrfs_init_path was initially used when the path objects were on the\nstack.  Now all the work is done by btrfs_alloc_path and btrfs_init_path\nisn\u0027t required.\n\nThis patch removes it, and just uses kmem_cache_zalloc to zero out the object.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "7951f3cefbd711f4429a0cd014aa83a844c399a0",
      "tree": "7eec0bc3b933d71f99cad5379ef15bf1e084a572",
      "parents": [
        "b335b0034e252e79ec2e9c6697f5d663c4627bec"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Feb 12 10:06:15 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 10:06:15 2009 -0500"
      },
      "message": "Btrfs: balance_level checks !child after access\n\nThe BUG_ON() is in the wrong spot.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "b335b0034e252e79ec2e9c6697f5d663c4627bec",
      "tree": "f99286083d21fdc298b50d3d47dc96a9f1f54bb8",
      "parents": [
        "e1df36d2f18254d0690a0fbe036cece74ec311b8"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Feb 12 10:06:04 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 10:06:04 2009 -0500"
      },
      "message": "Btrfs: Avoid using __GFP_HIGHMEM with slab allocator\n\nbtrfs_releasepage may call kmem_cache_alloc indirectly,\nand provide same GFP flags it gets to kmem_cache_alloc.\nSo it\u0027s possible to use __GFP_HIGHMEM with the slab\nallocator.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\n\n"
    },
    {
      "commit": "e1df36d2f18254d0690a0fbe036cece74ec311b8",
      "tree": "34823b4533c7fe2d5a329a03b99faa6bd0a88956",
      "parents": [
        "536ac8ae86e68bb5574d7cc81c7d229a86b82601"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:45:08 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:45:08 2009 -0500"
      },
      "message": "Btrfs: don\u0027t clean old snapshots on sync(1)\n\nCleaning old snapshots can make sync(1) somewhat slow, and some users\nand applications still use it in a global fsync kind of workload.\n\nThis patch changes btrfs not to clean old snapshots during sync, which is\nsafe from a FS consistency point of view.  The major downside is that it\nmakes it difficult to tell when old snapshots have been reaped and\nthe space they were using has been reclaimed.  A new ioctl will be added\nfor this purpose instead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "536ac8ae86e68bb5574d7cc81c7d229a86b82601",
      "tree": "2ec565edbbe3cf91e864b83f3fbd0a5bf8c088c4",
      "parents": [
        "b288052e1779261ae80138074989ef50358c4e58"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:41:38 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:41:38 2009 -0500"
      },
      "message": "Btrfs: use larger metadata clusters in ssd mode\n\nLarger metadata clusters can significantly improve writeback performance\non ssd drives with large erasure blocks.  The larger clusters make it\nmore likely a given IO will completely overwrite the ssd block, so it\ndoesn\u0027t have to do an internal rwm cycle.\n\nOn spinning media, lager metadata clusters end up spreading out the\nmetadata more over time, which makes fsck slower, so we don\u0027t want this\nto be the default.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "b288052e1779261ae80138074989ef50358c4e58",
      "tree": "58c2a8e3bd4208c9b49f471f33303c88bdc20606",
      "parents": [
        "eb099670895f22970cd143875467c2768d6d87e5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:37:35 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:37:35 2009 -0500"
      },
      "message": "Btrfs: process mount options on mount -o remount,\n\nBtrfs wasn\u0027t parsing any new mount options during remount, making it\ndifficult to set mount options on a root drive.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "eb099670895f22970cd143875467c2768d6d87e5",
      "tree": "4fc48dad8f0f2c13ff85d9310aa163305a243ef2",
      "parents": [
        "284b066af41579f62649048fdec5c5e7091703e6"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Feb 12 09:27:38 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:27:38 2009 -0500"
      },
      "message": "Btrfs: make sure all pending extent operations are complete\n\nTheres a slight problem with finish_current_insert, if we set all to 1 and then\ngo through and don\u0027t actually skip any of the extents on the pending list, we\ncould exit right after we\u0027ve added new extents.\n\nThis is a problem because by inserting the new extents we could have gotten new\nCOW\u0027s to happen and such, so we may have some pending updates to do or even\nmore inserts to do after that.\n\nSo this patch will only exit if we have never skipped any of the extents in the\npending list, and we have no extents to insert, this will make sure that all of\nthe pending work is truly done before we return.  I\u0027ve been running with this\npatch for a few days with all of my other testing and have not seen issues.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\n\n"
    },
    {
      "commit": "0e4a9b59282914fe057ab17027f55123964bc2e2",
      "tree": "8bf359a1937e809d767f73f7ccdb948420ae72fc",
      "parents": [
        "cfebe563bd0a3ff97e1bc167123120d59c7a84db"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Feb 11 13:04:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:36 2009 -0800"
      },
      "message": "ext2/xip: refuse to change xip flag during remount with busy inodes\n\nFor a reason that I was unable to understand in three months of debugging,\nmount ext2 -o remount stopped working properly when remounting from\nregular operation to xip, or the other way around.  According to a git\nbisect search, the problem was introduced with the VM_MIXEDMAP/PTE_SPECIAL\nrework in the vm:\n\ncommit 70688e4dd1647f0ceb502bbd5964fa344c5eb411\nAuthor: Nick Piggin \u003cnpiggin@suse.de\u003e\nDate:   Mon Apr 28 02:13:02 2008 -0700\n\n    xip: support non-struct page backed memory\n\nIn the failing scenario, the filesystem is mounted read only via root\u003d\nkernel parameter on s390x.  During remount (in rc.sysinit), the inodes of\nthe bash binary and its libraries are busy and cannot be invalidated (the\nbash which is running rc.sysinit resides on subject filesystem).\nAfterwards, another bash process (running ifup-eth) recurses into a\nsubshell, runs dup_mm (via fork).  Some of the mappings in this bash\nprocess were created from inodes that could not be invalidated during\nremount.\n\nBoth parent and child process crash some time later due to inconsistencies\nin their address spaces.  The issue seems to be timing sensitive, various\nattempts to recreate it have failed.\n\nThis patch refuses to change the xip flag during remount in case some\ninodes cannot be invalidated.  This patch keeps users from running into\nthat issue.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.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": "02ac597c9b86af49b2016aa98aee20ab59dbf0d2",
      "tree": "7ecf4acd955eabb023dba50c0b4ef67d585eb56e",
      "parents": [
        "8fe4cd0dc5ea43760c59eb256404188272cc95dd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 11 13:04:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "ext3: revert \"ext3: wait on all pending commits in ext3_sync_fs\"\n\nThis reverts commit c87591b719737b4e91eb1a9fa8fd55a4ff1886d6.\n\nSince journal_start_commit() is now fixed to return 1 when we started a\ntransaction commit, there\u0027s some transaction waiting to be committed or\nthere\u0027s a transaction already committing, we don\u0027t need to call\next3_force_commit() in ext3_sync_fs().  Furthermore ext3_force_commit()\ncan unnecessarily create sync transaction which is expensive so it\u0027s\nworthwhile to remove it when we can.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8fe4cd0dc5ea43760c59eb256404188272cc95dd",
      "tree": "f02892b7393c60b98b51202d868fa12b0a2339e2",
      "parents": [
        "fc3501d411d34823fb9be248a95a0c44f945866f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 11 13:04:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "jbd: fix return value of journal_start_commit()\n\njournal_start_commit() returns 1 if either a transaction is committing or\nthe function has queued a transaction commit.  But it returns 0 if we\nraced with somebody queueing the transaction commit as well.  This\nresulted in ext3_sync_fs() not functioning correctly (description from\nArthur Jones): In the case of a data\u003dordered umount with pending long\nsymlinks which are delayed due to a long list of other I/O on the backing\nblock device, this causes the buffer associated with the long symlinks to\nnot be moved to the inode dirty list in the second phase of fsync_super.\nThen, before they can be dirtied again, kjournald exits, seeing the UMOUNT\nflag and the dirty pages are never written to the backing block device,\ncausing long symlink corruption and exposing new or previously freed block\ndata to userspace.\n\nThis can be reproduced with a script created by Eric Sandeen\n\u003csandeen@redhat.com\u003e:\n\n        #!/bin/bash\n\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        rm -f /mnt/test2/*\n        dd if\u003d/dev/zero of\u003d/mnt/test2/bigfile bs\u003d1M count\u003d512\n        touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        /mnt/test2/link\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        ls /mnt/test2/\n\nThis patch fixes journal_start_commit() to always return 1 when there\u0027s\na transaction committing or queued for commit.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Mike Snitzer \u003csnitzer@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a6fe125950676015f5108fb71b2a67441755003",
      "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
      "parents": [
        "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Feb 10 14:02:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 10 10:48:42 2009 -0800"
      },
      "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba4439165f0f0d25b2fe065cf0c1ff8130b802eb",
      "tree": "242f9aa5cc4fe0ca7d3062aa0a7ec713a4346bb8",
      "parents": [
        "7be2baaa0322c59ba888aa5260a8c130666acd41"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Feb 10 11:14:34 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:14:34 2009 -0500"
      },
      "message": "ext4: Fix lockdep warning\n\nWe should not call ext4_mb_add_n_trim while holding alloc_semp.\n\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    [ INFO: possible recursive locking detected ]\n    2.6.29-rc4-git1-dirty #124\n    ---------------------------------------------\n    ffsb/3116 is trying to acquire lock:\n     (\u0026meta_group_info[i]-\u003ealloc_sem){----}, at: [\u003cffffffff8035a6e8\u003e]\n     ext4_mb_load_buddy+0xd2/0x343\n\n    but task is already holding lock:\n     (\u0026meta_group_info[i]-\u003ealloc_sem){----}, at: [\u003cffffffff8035a6e8\u003e]\n     ext4_mb_load_buddy+0xd2/0x343\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12672\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7be2baaa0322c59ba888aa5260a8c130666acd41",
      "tree": "a1543a38923d60092e06741ab3dee9ce9af32abc",
      "parents": [
        "7f5aa215088b817add9c71914b83650bdd49f8a9"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Feb 10 09:53:42 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 09:53:42 2009 -0500"
      },
      "message": "ext4: Fix to read empty directory blocks correctly in 64k\n\nThe rec_len field in the directory entry is 16 bits, so there was a\nproblem representing rec_len for filesystems with a 64k block size in\nthe case where the directory entry takes the entire 64k block.\nUnfortunately, there were two schemes that were proposed; one where\nall zeros meant 65536 and one where all ones (65535) meant 65536.\nE2fsprogs used 0, whereas the kernel used 65535.  Oops.  Fortunately\nthis case happens extremely rarely, with the most common case being\nthe lost+found directory, created by mke2fs.\n\nSo we will be liberal in what we accept, and accept both encodings,\nbut we will continue to encode 65536 as 65535.  This will require a\nchange in e2fsprogs, but with fortunately ext4 filesystems normally\nhave the dir_index feature enabled, which precludes having a\ncompletely empty directory block.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f5aa215088b817add9c71914b83650bdd49f8a9",
      "tree": "9b811d1f0b41a2738fc68654ae605bf5d8cf2a72",
      "parents": [
        "9eddacf9e9c03578ef2c07c9534423e823d677f8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "message": "jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()\n\nIf we race with commit code setting i_transaction to NULL, we could\npossibly dereference it.  Proper locking requires the journal pointer\n(to access journal-\u003ej_list_lock), which we don\u0027t have.  So we have to\nchange the prototype of the function so that filesystem passes us the\njournal pointer.  Also add a more detailed comment about why the\nfunction jbd2_journal_begin_ordered_truncate() does what it does and\nhow it should be used.\n\nThanks to Dan Carpenter \u003cerror27@gmail.com\u003e for pointing to the\nsuspitious code.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCC: linux-ext4@vger.kernel.org\nCC: ocfs2-devel@oss.oracle.com\nCC: mfasheh@suse.de\nCC: Dan Carpenter \u003cerror27@gmail.com\u003e\n"
    },
    {
      "commit": "9eddacf9e9c03578ef2c07c9534423e823d677f8",
      "tree": "6b317bb2e531ba56c9bc7ece8c41ec039d12d309",
      "parents": [
        "c88ccea3143975294f5a52097546bcbb75975f52"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 06:46:05 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 06:46:05 2009 -0500"
      },
      "message": "Revert \"ext4: wait on all pending commits in ext4_sync_fs()\"\n\nThis undoes commit 14ce0cb411c88681ab8f3a4c9caa7f42e97a3184.\n\nSince jbd2_journal_start_commit() is now fixed to return 1 when we\nstarted a transaction commit, there\u0027s some transaction waiting to be\ncommitted or there\u0027s a transaction already committing, we don\u0027t\nneed to call ext4_force_commit() in ext4_sync_fs(). Furthermore\next4_force_commit() can unnecessarily create sync transaction which is\nexpensive so it\u0027s worthwhile to remove it when we can.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12224\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "c88ccea3143975294f5a52097546bcbb75975f52",
      "tree": "b8aad20536941279a7b9bd80dc00729d6ac92da9",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 11:27:46 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:27:46 2009 -0500"
      },
      "message": "jbd2: Fix return value of jbd2_journal_start_commit()\n\nThe function jbd2_journal_start_commit() returns 1 if either a\ntransaction is committing or the function has queued a transaction\ncommit. But it returns 0 if we raced with somebody queueing the\ntransaction commit as well. This resulted in ext4_sync_fs() not\nfunctioning correctly (description from Arthur Jones): \n\n   In the case of a data\u003dordered umount with pending long symlinks\n   which are delayed due to a long list of other I/O on the backing\n   block device, this causes the buffer associated with the long\n   symlinks to not be moved to the inode dirty list in the second\n   phase of fsync_super.  Then, before they can be dirtied again,\n   kjournald exits, seeing the UMOUNT flag and the dirty pages are\n   never written to the backing block device, causing long symlink\n   corruption and exposing new or previously freed block data to\n   userspace.\n\nThis can be reproduced with a script created by Eric Sandeen\n\u003csandeen@redhat.com\u003e:\n\n        #!/bin/bash\n\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        rm -f /mnt/test2/*\n        dd if\u003d/dev/zero of\u003d/mnt/test2/bigfile bs\u003d1M count\u003d512\n        touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        /mnt/test2/link\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        ls /mnt/test2/\n\nThis patch fixes jbd2_journal_start_commit() to always return 1 when\nthere\u0027s a transaction committing or queued for commit.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCC: Eric Sandeen \u003csandeen@redhat.com\u003e\nCC: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "4c098bcd55fad34dcf224bf8343db6a9ac58fc68",
      "tree": "ba2070fbdb19bc6a2cb648ec5e95d14822ad085d",
      "parents": [
        "d006b2b620ebf87a1d5592fbd7ae75d4a6da8423",
        "284b066af41579f62649048fdec5c5e7091703e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 14:00:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 14:00:16 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: don\u0027t use spin_is_contended\n"
    },
    {
      "commit": "284b066af41579f62649048fdec5c5e7091703e6",
      "tree": "e34185c911cb50b0ade04f804056ffbe2a6e04ae",
      "parents": [
        "42f15d77df8a7e8a2feb15041d5d30710ee7f951"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 09 16:22:03 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 09 16:22:03 2009 -0500"
      },
      "message": "Btrfs: don\u0027t use spin_is_contended\n\nBtrfs was using spin_is_contended to see if it should drop locks before\ndoing extent allocations during btrfs_search_slot.  The idea was to avoid\nexpensive searches in the tree unless the lock was actually contended.\n\nBut, spin_is_contended is specific to the ticket spinlocks on x86, so this\nis causing compile errors everywhere else.\n\nIn practice, the contention could easily appear some time after we started\ndoing the extent allocation, and it makes more sense to always drop the lock\ninstead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "896abeb743579fc8be0d16d15d6768a158a3a109",
      "tree": "8b5f6ce348ea00e5f67de8f67001fdbfd248de32",
      "parents": [
        "f06da264cfb0f9444d41ca247213e419f90aa72a",
        "9d9b87c1218be78ddecbc85ec3bb91c79c1d56ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 10:30:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 10:30:19 2009 -0800"
      },
      "message": "Merge branch \u0027for-2.6.29\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.29\u0027 of git://linux-nfs.org/~bfields/linux:\n  lockd: fix regression in lockd\u0027s handling of blocked locks\n"
    },
    {
      "commit": "9d9b87c1218be78ddecbc85ec3bb91c79c1d56ab",
      "tree": "e33e637f4fa8b4dd1946c6a29e290078d34a388c",
      "parents": [
        "eda58a85ec3fc05855a26654d97a2b53f0e715b9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 04 17:35:38 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 09 13:19:46 2009 -0500"
      },
      "message": "lockd: fix regression in lockd\u0027s handling of blocked locks\n\nIf a client requests a blocking lock, is denied, then requests it again,\nthen here in nlmsvc_lock() we will call vfs_lock_file() without FL_SLEEP\nset, because we\u0027ve already queued a block and don\u0027t need the locks code\nto do it again.\n\nBut that means vfs_lock_file() will return -EAGAIN instead of\nFILE_LOCK_DENIED.  So we still need to translate that -EAGAIN return\ninto a nlm_lck_blocked error in this case, and put ourselves back on\nlockd\u0027s block list.\n\nThe bug was introduced by bde74e4bc64415b1 \"locks: add special return\nvalue for asynchronous locks\".\n\nThanks to Frank van Maarseveen for the report; his original test\ncase was essentially\n\n\tfor i in `seq 30`; do flock /nfsmount/foo sleep 10 \u0026 done\n\nTested-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nReported-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "766ccb9ed406c230d13c145def08ebea1b932982",
      "tree": "952f74260d8baa66063fd8efa1b29d2dddb45c2b",
      "parents": [
        "f30d5b307c694e03368ab55f2f96b0ca4131e775"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue Jan 20 15:31:31 2009 +0100"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Feb 08 09:56:11 2009 -0800"
      },
      "message": "async: Rename _special -\u003e _domain for clarity.\n\nRename the async_*_special() functions to async_*_domain(), which\ndescribes the purpose of these functions much better.\n[Broke up long lines to silence checkpatch]\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "ccfef64621ef1e8c7726581b38eb8b98fd2a8afb",
      "tree": "74d99dcecbd7adad1dcd5d61fac408855b43a267",
      "parents": [
        "ae1a25da8448271a99745da03100d5299575a269",
        "0bf2f3aec5474da80a60e1baca629af87ecb67b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:52:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:52:55 2009 -0800"
      },
      "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:\n  CRED: Fix SUID exec regression\n"
    }
  ],
  "next": "ae1a25da8448271a99745da03100d5299575a269"
}
