)]}'
{
  "log": [
    {
      "commit": "d6a0967c90dced0a8baf502e6f3d5862fd5a5805",
      "tree": "e0242d5077730dabc4102b7abad9ee0c41e33bc0",
      "parents": [
        "fb385003c4ac9634cf2448f6ded81e5fd1190c1f",
        "ceab36edd3d3ad3ffd01d41d6d1e05ac1ff8357e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 19:03:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 19:03:09 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 balancing oops when invalidate_inode_pages2 returns EBUSY\n  Btrfs: correct error-handling zlib error handling\n  Btrfs: remove superfluous NULL pointer check in btrfs_rename()\n  Btrfs: make sure the async caching thread advances the key\n  Btrfs: fix btrfs_remove_from_free_space corner case\n"
    },
    {
      "commit": "fb385003c4ac9634cf2448f6ded81e5fd1190c1f",
      "tree": "3a6068559cef144c04b96372ee0eecf20dfb108b",
      "parents": [
        "36b8659f9316b24c514a7c8290596b2382b91dd2",
        "b36ec0428a06fcbdb67d61e9e664154e5dd9a8c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 18:53:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 18:53:44 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/hch/xfs-icache-races\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/hch/xfs-icache-races:\n  xfs: fix freeing of inodes not yet added to the inode cache\n  vfs: add __destroy_inode\n  vfs: fix inode_init_always calling convention\n"
    },
    {
      "commit": "ceab36edd3d3ad3ffd01d41d6d1e05ac1ff8357e",
      "tree": "a6d899030878d52ae6d7932e459deece3524c787",
      "parents": [
        "60f2e8f8a07331097a57ec4abcdc680405579377"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Aug 07 13:51:33 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Aug 07 13:51:33 2009 -0400"
      },
      "message": "Btrfs: fix balancing oops when invalidate_inode_pages2 returns EBUSY\n\ninvalidate_inode_pages2_range may return -EBUSY occasionally\nwhich results Oops. This patch fixes the issue by moving\ninvalidate_inode_pages2_range into a loop and keeping calling\nit until the return value is not -EBUSY.\n\nThe EBUSY return is temporary, and can happen when the btrfs release page\nfunction is unable to release a page because the EXTENT_LOCK\nbit is set.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "60f2e8f8a07331097a57ec4abcdc680405579377",
      "tree": "6ed3c6c8fc2ad4c824c7d2c942fe7d3ece924dc7",
      "parents": [
        "4baf8c9201e88546918cbfa61ea8062c38bc1644"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Aug 07 13:51:33 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Aug 07 13:51:33 2009 -0400"
      },
      "message": "Btrfs: correct error-handling zlib error handling\n\nfind_zlib_workspace returns an ERR_PTR value in an error case instead of NULL.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@match exists@\nexpression x, E;\nstatement S1, S2;\n@@\n\nx \u003d find_zlib_workspace(...)\n... when !\u003d x \u003d E\n(\n*  if (x \u003d\u003d NULL || ...) S1 else S2\n|\n*  if (x \u003d\u003d NULL \u0026\u0026 ...) S1 else S2\n)\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": "4baf8c9201e88546918cbfa61ea8062c38bc1644",
      "tree": "7ea84d6155aa7b4e246df56ea0f79d5b3da08d87",
      "parents": [
        "013f1b12f4fc479f697acae2f31bad220162cd03"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Aug 07 13:47:08 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Aug 07 13:47:08 2009 -0400"
      },
      "message": "Btrfs: remove superfluous NULL pointer check in btrfs_rename()\n\nThis takes care of the following entry from Dan\u0027s list:\n\nfs/btrfs/inode.c +4788 btrfs_rename(36) warning: variable derefenced before check \u0027old_inode\u0027\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nCc: Eugene Teo \u003ceteo@redhat.com\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "389623fef0e8b088f293c437d3b7094fe82349fd",
      "tree": "e7e7175531f9ee9a7b215fe6b8c62674fb32862a",
      "parents": [
        "385861206c21364c01dcfdda5064643ce111d517",
        "57ca7deb062abf56168d15f000c16e25f88a9cf3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 10:42:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 10:42:31 2009 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  jffs2: Fix return value from jffs2_do_readpage_nolock()\n  mtd: mtdblock: introduce mtdblks_lock\n  mtd: remove \u0027SBC8240 Wind River\u0027 Device Driver Code\n  mtd: OneNAND: OMAP2/3: free GPMC CS on module removal\n  mtd: OneNAND: fix incorrect bufferram offset\n  mtd: blkdevs: do not forget to get MTD devices\n  mtd: fix the conversion from dev to mtd_info\n  mtd: let include/linux/mtd/partitions.h stand on its own\n"
    },
    {
      "commit": "3440625d78711bee41a84cf29c3d8c579b522666",
      "tree": "c430bf6cc2b0f5ad4ce9464f378f14824e7fc28b",
      "parents": [
        "9e5cf0ca2e9b65110ae5f094d7f0f7165cd1bbbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 06 15:09:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 10:39:57 2009 -0700"
      },
      "message": "flat: fix uninitialized ptr with shared libs\n\nThe new credentials code broke load_flat_shared_library() as it now uses\nan uninitialized cred pointer.\n\nReported-by: Bernd Schmidt \u003cbernds_cb1@t-online.de\u003e\nTested-by: Bernd Schmidt \u003cbernds_cb1@t-online.de\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d8dd38a5aa0cc2490bbad9b75e77fa154e1d145",
      "tree": "dcc1ec93e95dde5704a7e37939454c9b24904758",
      "parents": [
        "69130c7cf96ea853dc5be599dd6a4b98907d39cc"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Aug 06 15:07:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 10:39:56 2009 -0700"
      },
      "message": "vfs: mnt_want_write_file(): fix special file handling\n\nI suspect that mnt_want_write_file() may have wrong assumption.  I think\nmnt_want_write_file() is assuming it increments -\u003emnt_writers if\n(file-\u003ef_mode \u0026 FMODE_WRITE).  But, if it\u0027s special_file(), it is false?\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nAcked-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\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": "69130c7cf96ea853dc5be599dd6a4b98907d39cc",
      "tree": "9ac97112a66388664534436ee88903e01fa1f705",
      "parents": [
        "0035fe00f77d2b0a1a2d001f7442136d1ec5aefa"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Aug 06 15:07:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 10:39:56 2009 -0700"
      },
      "message": "compat_ioctl: hook up compat handler for FIEMAP ioctl\n\nThe FIEMAP_IOC_FIEMAP mapping ioctl was missing a 32-bit compat handler,\nwhich means that 32-bit suerspace on 64-bit kernels cannot use this ioctl\ncommand.\n\nThe structure is nicely aligned, padded, and sized, so it is just this\nsimple.\n\nTested w/ 32-bit ioctl tester (from Josef) on a 64-bit kernel on ext4.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Mark Lord \u003clkml@rtr.ca\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Josef Bacik \u003cjosef@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b36ec0428a06fcbdb67d61e9e664154e5dd9a8c7",
      "tree": "556cb840214cdff185dfd419bed6dc876a58ae01",
      "parents": [
        "2e00c97e2c1d2ffc9e26252ca26b237678b0b772"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 07 14:38:34 2009 -0300"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Fri Aug 07 14:38:34 2009 -0300"
      },
      "message": "xfs: fix freeing of inodes not yet added to the inode cache\n\nWhen freeing an inode that lost race getting added to the inode cache we\nmust not call into -\u003edestroy_inode, because that would delete the inode\nthat won the race from the inode cache radix tree.\n\nThis patch uses splits a new xfs_inode_free helper out of xfs_ireclaim\nand uses that plus __destroy_inode to make sure we really only free\nthe memory allocted for the inode that lost the race, and not mess with\nthe inode cache state.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReported-by: Alex Samad \u003calex@samad.com.au\u003e\nReported-by: Andrew Randrianasulu \u003crandrik@mail.ru\u003e\nReported-by: Stephane \u003csharnois@max-t.com\u003e\nReported-by: Tommy \u003ctommy@news-service.com\u003e\nReported-by: Miah Gregory \u003cmace@darksilence.net\u003e\nReported-by: Gabriel Barazer \u003cgabriel@oxeva.fr\u003e\nReported-by: Leandro Lucarella \u003cllucax@gmail.com\u003e\nReported-by: Daniel Burr \u003cdburr@fami.com.au\u003e\nReported-by: Nickolay \u003cnewmail@spaces.ru\u003e\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nReported-by: Dan Carley \u003cdan.carley+linuxkern-bugs@gmail.com\u003e\nReported-by: Michael Ole Olsen \u003cgnu@gmx.net\u003e\nReported-by: Michael Weissenbacher \u003cmw@dermichi.com\u003e\nReported-by: Martin Spott \u003cMartin.Spott@mgras.net\u003e\nReported-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nTested-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nTested-by: Dan Carley \u003cdan.carley+linuxkern-bugs@gmail.com\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\n"
    },
    {
      "commit": "2e00c97e2c1d2ffc9e26252ca26b237678b0b772",
      "tree": "e2c65f473e079c4b6027f7f8b7224febe7483884",
      "parents": [
        "54e346215e4fe2ca8c94c54e546cc61902060510"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 07 14:38:29 2009 -0300"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Fri Aug 07 14:38:29 2009 -0300"
      },
      "message": "vfs: add __destroy_inode\n\nWhen we want to tear down an inode that lost the add to the cache race\nin XFS we must not call into -\u003edestroy_inode because that would delete\nthe inode that won the race from the inode cache radix tree.\n\nThis patch provides the __destroy_inode helper needed to fix this,\nthe actual fix will be in th next patch.  As XFS was the only reason\ndestroy_inode was exported we shift the export to the new __destroy_inode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "54e346215e4fe2ca8c94c54e546cc61902060510",
      "tree": "9b4ed9b0ab78117ba1a41db7073708031622cf10",
      "parents": [
        "90bc1a658a53f8832ee799685703977a450e5af9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 07 14:38:25 2009 -0300"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Fri Aug 07 14:38:25 2009 -0300"
      },
      "message": "vfs: fix inode_init_always calling convention\n\nCurrently inode_init_always calls into -\u003edestroy_inode if the additional\ninitialization fails.  That\u0027s not only counter-intuitive because\ninode_init_always did not allocate the inode structure, but in case of\nXFS it\u0027s actively harmful as -\u003edestroy_inode might delete the inode from\na radix-tree that has never been added.  This in turn might end up\ndeleting the inode for the same inum that has been instanciated by\nanother process and cause lots of cause subtile problems.\n\nAlso in the case of re-initializing a reclaimable inode in XFS it would\nfree an inode we still want to keep alive.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "624720e09c9b7913ef4bc6989878a6fcb7ecdff8",
      "tree": "be36dc1fc45a4cf5d5100ca5252e6aa3b465fbe2",
      "parents": [
        "849c9caa60642095060e9c21f14687ae9149a6f3",
        "01a261e09a21e0ba342d3907a79cf5c78ee3f37a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 04 15:28:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 04 15:28:23 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  nilfs2: fix missing unlock in error path of nilfs_mdt_write_page\n  nilfs2: fix oops due to inconsistent state in page with discrete b-tree nodes\n"
    },
    {
      "commit": "849c9caa60642095060e9c21f14687ae9149a6f3",
      "tree": "b33da1ea12f55ad11b547fc723f72b22e1d9cecc",
      "parents": [
        "a33a052f19a21d727847391c8c1aff3fb221c472",
        "d098564f3b2b5d555e51bca765a6a9e0dda8f2cd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 04 15:27:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 04 15:27:56 2009 -0700"
      },
      "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] Update readme to reflect forceuid mount parms\n  cifs: Read buffer overflow\n  cifs: show noforceuid/noforcegid mount options (try #2)\n  cifs: reinstate original behavior when uid\u003d/gid\u003d options are specified\n  [CIFS] Updates fs/cifs/CHANGES\n  cifs: fix error handling in mount-time DFS referral chasing code\n"
    },
    {
      "commit": "57ca7deb062abf56168d15f000c16e25f88a9cf3",
      "tree": "f9dac86ff98ca5f40498834fbd74559437398329",
      "parents": [
        "d676c11727815761e41a81b00c054b4bec452ae5"
      ],
      "author": {
        "name": "Anders Grafström",
        "email": "grfstrm@users.sourceforge.net",
        "time": "Tue Aug 04 13:11:47 2009 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Aug 04 12:13:06 2009 +0100"
      },
      "message": "jffs2: Fix return value from jffs2_do_readpage_nolock()\n\nThis fixes \"kernel BUG at fs/jffs2/file.c:251!\".\nThis pseudocode hopefully illustrates the scenario that triggers it:\n\njffs2_write_begin {\n     jffs2_do_readpage_nolock {\n         jffs2_read_inode_range {\n             jffs2_read_dnode {\n                 Data CRC 33c102e9 !\u003d calculated CRC 0ef77e7b for node at 005d42e4\n                 return -EIO;\n             }\n         }\n         ClearPageUptodate(pg);\n         return 0;\n     }\n}\n\njffs2_write_end {\n     BUG_ON(!PageUptodate(pg));\n}\n\nSigned-off-by: Anders Grafström \u003cgrfstrm@users.sourceforge.net\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "d098564f3b2b5d555e51bca765a6a9e0dda8f2cd",
      "tree": "4408cca53ee3a1c024514d1dd06cedd58bc5af48",
      "parents": [
        "24e2fb615fd6b624c320cec9ea9d91a75dad902e"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Aug 04 03:53:28 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Aug 04 03:53:28 2009 +0000"
      },
      "message": "[CIFS] Update readme to reflect forceuid mount parms\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "24e2fb615fd6b624c320cec9ea9d91a75dad902e",
      "tree": "f6849650d675636490a14659228ce9a18004bc77",
      "parents": [
        "4486d6ede16b362f89b29845af6fe1a26ae78a54"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Sun Aug 02 13:00:18 2009 +0200"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 03 21:01:32 2009 +0000"
      },
      "message": "cifs: Read buffer overflow\n\nCheck whether index is within bounds before testing the element.\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "4486d6ede16b362f89b29845af6fe1a26ae78a54",
      "tree": "b96bb887453baccdcfe1a0afee0f6cc9e7aaae4a",
      "parents": [
        "9b9d6b2434fe942895c341b9a982f158529788ec"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Aug 03 12:45:10 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Aug 03 21:01:17 2009 +0000"
      },
      "message": "cifs: show noforceuid/noforcegid mount options (try #2)\n\nSince forceuid is the default, we now need to show when it\u0027s disabled.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "01a261e09a21e0ba342d3907a79cf5c78ee3f37a",
      "tree": "e26e8008ce2de35afe2703529d771268a256329f",
      "parents": [
        "a97778457f22181e8c38c4cd7d7e528378738a98"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Aug 02 17:45:55 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Aug 02 22:24:15 2009 +0900"
      },
      "message": "nilfs2: fix missing unlock in error path of nilfs_mdt_write_page\n\nThis adds a missing unlock of nilfs-\u003ens_writer_mutex in\nnilfs_mdt_write_page() function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9b9d6b2434fe942895c341b9a982f158529788ec",
      "tree": "402b7f233fae53f45d5ad3a445360200b6fa2cc7",
      "parents": [
        "5bd9052d79daa4c8beb45436c408b6de672adb82"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jul 31 06:56:09 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sun Aug 02 03:47:25 2009 +0000"
      },
      "message": "cifs: reinstate original behavior when uid\u003d/gid\u003d options are specified\n\nThis patch fixes the regression reported here:\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13861\n\ncommit 4ae1507f6d266d0cc3dd36e474d83aad70fec9e4 changed the default\nbehavior when the uid\u003d or gid\u003d option was specified for a mount. The\nexisting behavior was to always clobber the ownership information\nprovided by the server when these options were specified. The above\ncommit changed this behavior so that these options simply provided\ndefaults when the server did not provide this information (unless\n\"forceuid\" or \"forcegid\" were specified)\n\nThis patch reverts this change so that the default behavior is restored.\nIt also adds \"noforceuid\" and \"noforcegid\" options to make it so that\nownership information from the server is preserved, even when the mount\nhas uid\u003d or gid\u003d options specified.\n\nIt also adds a couple of printk notices that pop up when forceuid or\nforcegid options are specified without a uid\u003d or gid\u003d option.\n\nReported-by: Tom Chiverton \u003cbugzilla.kernel.org@falkensweb.com\u003e\nReviewed-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a97778457f22181e8c38c4cd7d7e528378738a98",
      "tree": "d2ee3d9491ab2b17551f099d9a6119407700dbd2",
      "parents": [
        "ed680c4ad478d0fee9740f7d029087f181346564"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jul 28 17:55:29 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 01 22:48:32 2009 +0900"
      },
      "message": "nilfs2: fix oops due to inconsistent state in page with discrete b-tree nodes\n\nAndrea Gelmini gave me a report that a kernel oops hit on a nilfs\nfilesystem with a 1KB block size when doing rsync.\n\nThis turned out to be caused by an inconsistency of dirty state\nbetween a page and its buffers storing b-tree node blocks.\n\nIf the page had multiple buffers split over multiple logs, and if the\nlogs were written at a time, a dirty flag remained in the page even\nevery dirty flag in the buffers was cleared.\n\nThis will fix the failure by dropping the dirty flag properly for\npages with the discrete multiple b-tree nodes.\n\nReported-by: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f5266cbd2fca04dbd0387a67f550b6667ffa4ed2",
      "tree": "ee3c3a8d92fc1745d63baa6e069959694a11dbe4",
      "parents": [
        "a5bc92cdf2ab27a15732976004b3755c40740f57",
        "c8a4051c3731b6db224482218cfd535ab9393ff8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 31 12:17:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 31 12:17:37 2009 -0700"
      },
      "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  xfs: bump up nr_to_write in xfs_vm_writepage\n  xfs: reduce bmv_count in xfs_vn_fiemap\n"
    },
    {
      "commit": "013f1b12f4fc479f697acae2f31bad220162cd03",
      "tree": "b51225aa32f249de352840b31b49eb9799fdafe8",
      "parents": [
        "6606bb97e146a387932efee263745b7240a11193"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 31 14:57:55 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 31 14:57:55 2009 -0400"
      },
      "message": "Btrfs: make sure the async caching thread advances the key\n\nThe async caching thread can end up looping forever if a given\nsearch puts it at the last key in a leaf.  It will end up calling\nbtrfs_next_leaf and then checking if it needs to politely drop\nthe read semaphore.\n\nMost of the time this looping isn\u0027t noticed because it is able to\nmake progress the next time around.  But, during log replay,\nwe wait on the async caching thread to finish, and the async thread\nis waiting on the commit, and no progress is really made.\n\nThe fix used here is to copy the key out of the next leaf,\nthat way our search lands there properly.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6606bb97e146a387932efee263745b7240a11193",
      "tree": "76652e563a889cc03d7d179074bb1aab9ef3a3f4",
      "parents": [
        "f36f3042eae238bdaefe7c79310afe573bfc3622"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jul 31 11:03:58 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 31 11:03:58 2009 -0400"
      },
      "message": "Btrfs: fix btrfs_remove_from_free_space corner case\n\nYan Zheng hit a problem where we tried to remove some free space but failed\nbecause we couldn\u0027t find the free space entry.  This is because the free space\nwas held within a bitmap that had a starting offset well before the actual\noffset of the free space, and there were free space extents that were in the\nsame range as that offset, so tree_search_offset returned with NULL because we\ncouldn\u0027t find a free space extent that had that offset.  This is fixed by\nmaking sure that if we fail to find the entry, we re-search again with\nbitmap_only set to 1 and do an offset_to_bitmap so we can get the appropriate\nbitmap.  A similar problem happens in btrfs_alloc_from_bitmap for the\nclustering code, but that is not as bad since we will just go and redo our\ncluster allocation.\n\nAlso this adds some debugging checks to make sure that the free space we are\ntrying to remove from the bitmap is in fact there.  This can probably go away\nafter a while, but since this code is only used by the tree-logging stuff it\nwould be nice to run with it for a while to make sure there are no problems.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c8a4051c3731b6db224482218cfd535ab9393ff8",
      "tree": "78b326f229fd670e37e1eb08f89bede4260aec95",
      "parents": [
        "97db39a1f6f69e906e98118392400de5217aa33a"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Fri Jul 31 00:02:17 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jul 31 00:57:11 2009 -0500"
      },
      "message": "xfs: bump up nr_to_write in xfs_vm_writepage\n\nVM calculation for nr_to_write seems off.  Bump it way\nup, this gets simple streaming writes zippy again.\nTo be reviewed again after Jens\u0027 writeback changes.\n\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "97db39a1f6f69e906e98118392400de5217aa33a",
      "tree": "f5735b99542d8d31dcad907294c5cf7a0657b563",
      "parents": [
        "fd40261354802b0f05f6f67121235aa002e87069"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sun Jul 26 21:52:01 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jul 31 00:56:58 2009 -0500"
      },
      "message": "xfs: reduce bmv_count in xfs_vn_fiemap\n\ncommit 6321e3ed2acf3ee9643cdd403e1c88605d7944ba caused\nthe full bmv_count\u0027s worth of getbmapx structures to get\nallocated; telling it to do MAXEXTNUM was a bit insane,\nresulting in ENOMEM every time.\n\nChop it down to something reasonable, the number of slots\nin the caller\u0027s input buffer.  If this is too large the\ncaller may get ENOMEM but the reason should not be a\nmystery, and they can try again with something smaller.\n\nWe add 1 to the value because in the normal getbmap\nworld, bmv_count includes the header and xfs_getbmap does:\n\n        nex \u003d bmv-\u003ebmv_count - 1;\n        if (nex \u003c\u003d 0)\n                return XFS_ERROR(EINVAL);\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Olaf Weber \u003colaf@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "ec6a8679fa8ce977c8b7f86238455b494699de74",
      "tree": "d06401567f67cd757ddf358168bdf574cb4b94f5",
      "parents": [
        "db06816cb9ceb21a2bf24122407b7b4fe419c3fc",
        "f36f3042eae238bdaefe7c79310afe573bfc3622"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:46:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:46:48 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: be more polite in the async caching threads\n  Btrfs: preserve commit_root for async caching\n"
    },
    {
      "commit": "784b1d6b21cb25791b68276af27a7c2321d5a86f",
      "tree": "06b21ba973390931d591e6ecf3ee38db2c0bdd92",
      "parents": [
        "691c5f7374ee3d48fd2c838261820a06e4be9043",
        "4bf17af0dbfe4cf20cb750e22e8e926273e7a7a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:46:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:46:17 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:\n  udf: Fix loading of VAT inode when drive wrongly reports number of recorded blocks\n"
    },
    {
      "commit": "691c5f7374ee3d48fd2c838261820a06e4be9043",
      "tree": "c9fb4f9f62fd27409b35e6d217faecbc722cb7dd",
      "parents": [
        "fbdbf8389976b9f40d36f21985be28a0f438f779",
        "dee865656f2d8b866f8ac22c60d6363b914e9f12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:46:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:46:06 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6:\n  quota: Silence lockdep on quota_on\n"
    },
    {
      "commit": "79af3133174da620171eea82bb505a5a5cb7c6f4",
      "tree": "1cf726b76589998039c3020efd00d622572e0300",
      "parents": [
        "e1ca4aed112b270162302d389281b6cefac60a12",
        "b94a170e96dc416828af9d350ae2e34b70ae7347"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:45:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 30 16:45:37 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: remove dcache entries for remote deleted inodes\n  GFS2: Fix incorrent statfs consistency check\n  GFS2: Don\u0027t put unlikely reclaim candidates on the reclaim list.\n  GFS2: Don\u0027t try and dealloc own inode\n  GFS2: Fix panic in glock memory shrinker\n  GFS2: keep statfs info in sync on grows\n  GFS2: Shrink the shrinker\n"
    },
    {
      "commit": "dee865656f2d8b866f8ac22c60d6363b914e9f12",
      "tree": "1fd24f795884c2cfd2b9d06fee104f08236011c7",
      "parents": [
        "658874f05d040ca96eb5ba9b1c30ce0ff287d762"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 22 18:12:17 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 30 17:31:23 2009 +0200"
      },
      "message": "quota: Silence lockdep on quota_on\n\nCommit d01730d74d2b0155da50d44555001706294014f7 didn\u0027t completely fix\nthe problem since we still take dqio_mutex and i_mutex in the wrong\norder. Move taking of i_mutex further down (luckily it\u0027s needed only\nfor updating inode flags) below where dqio_mutex is taken.\n\nTested-by: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4bf17af0dbfe4cf20cb750e22e8e926273e7a7a4",
      "tree": "9d7218df82274d1dd564f3ba06ca8c65a99234c1",
      "parents": [
        "658874f05d040ca96eb5ba9b1c30ce0ff287d762"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jul 14 19:30:23 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 30 17:28:26 2009 +0200"
      },
      "message": "udf: Fix loading of VAT inode when drive wrongly reports number of recorded blocks\n\nVAT inode is located in the last block recorded block of the medium. When the\ndrive errorneously reports number of recorded blocks, we failed to load the VAT\ninode and thus mount the medium. This patch makes kernel try to read VAT inode\nfrom the last block of the device if it is different from the last recorded\nblock.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f36f3042eae238bdaefe7c79310afe573bfc3622",
      "tree": "83ea0e271dedeef36423509be7f4189b838d14b5",
      "parents": [
        "276e680d192a67d222fcea51af37b056feffb665"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jul 30 10:04:48 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jul 30 10:14:46 2009 -0400"
      },
      "message": "Btrfs: be more polite in the async caching threads\n\nThe semaphore used by the async caching threads can prevent a\ntransaction commit, which can make the FS appear to stall.  This\nreleases the semaphore more often when a transaction commit is\nin progress.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "276e680d192a67d222fcea51af37b056feffb665",
      "tree": "137bae016c30f24e7fafcbc8073e3411b732eb31",
      "parents": [
        "f25784b35f590c81d5fb8245a8cd45e1afb6f1b2"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Jul 30 09:40:40 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jul 30 09:40:40 2009 -0400"
      },
      "message": "Btrfs: preserve commit_root for async caching\n\nThe async block group caching code uses the commit_root pointer\nto get a stable version of the extent allocation tree for scanning.\nThis copy of the tree root isn\u0027t going to change and it significantly\nreduces the complexity of the scanning code.\n\nDuring a commit, we have a loop where we update the extent allocation\ntree root.  We need to loop because updating the root pointer in\nthe tree of tree roots may allocate blocks which may change the\nextent allocation tree.\n\nRight now the commit_root pointer is changed inside this loop.  It\nis more correct to change the commit_root pointer only after all the\nlooping is done.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b94a170e96dc416828af9d350ae2e34b70ae7347",
      "tree": "6000929d554359c7b520a49a63415b9fc18b48b9",
      "parents": [
        "6b94617024bd6810cde1d0d491202c30d5a38d91"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Jul 23 18:52:34 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 11:01:03 2009 +0100"
      },
      "message": "GFS2: remove dcache entries for remote deleted inodes\n\nWhen a file is deleted from a gfs2 filesystem on one node, a dcache\nentry for it may still exist on other nodes in the cluster. If this\nhappens, gfs2 will be unable to free this file on disk. Because of this,\nit\u0027s possible to have a gfs2 filesystem with no files on it and no free\nspace. With this patch, when a node receives a callback notifying it\nthat the file is being deleted on another node, it schedules a new\nworkqueue thread to remove the file\u0027s dcache entry.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6b94617024bd6810cde1d0d491202c30d5a38d91",
      "tree": "0c43470d42191b3b445a41add6d01ce84e482290",
      "parents": [
        "8ff22a6f9bdaac87c0eeb1d56c736181f11b4221"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Jul 10 18:13:26 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 11:00:28 2009 +0100"
      },
      "message": "GFS2: Fix incorrent statfs consistency check\n\nSince both linked and unlinked inodes are counted by rgd-\u003erd_dinodes, It\nmakes no sense to count them with the used data blocks (first check that\nI changed), it makes sense to count them with the linked inodes (second\ncheck), and it makes no sense to care if there are more unlinked inodes\nthan linked ones. This fixes these errors.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8ff22a6f9bdaac87c0eeb1d56c736181f11b4221",
      "tree": "00b0ad7afe45497d251adb244baf6875a0744985",
      "parents": [
        "1e19a19584b332eb92a573b66b7342fb97e67507"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Jul 10 18:04:24 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 11:00:09 2009 +0100"
      },
      "message": "GFS2: Don\u0027t put unlikely reclaim candidates on the reclaim list.\n\nGFS2 was placing far too many glocks on the reclaim list that were not good\ncandidates for freeing up from cache.  These locks would sit there and\nrepeatedly get scanned to see if they could be reclaimed, wasting a lot\nof time when there was memory pressure. This fix does more checks on the\nlocks to see if they are actually likely to be removable from cache.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1e19a19584b332eb92a573b66b7342fb97e67507",
      "tree": "c02ad1ff429ba770da8bee47c5444be829729666",
      "parents": [
        "a51b56fff3f04fc5aa66b21a2a6d693ee9862d66"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 10 21:13:38 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 10:59:50 2009 +0100"
      },
      "message": "GFS2: Don\u0027t try and dealloc own inode\n\nWhen searching for unlinked, but still allocated inodes during block\nallocation, avoid the block relating to the inode that is doing the\nallocation. This fixes a hang caused when an unlinked, but still\nopen, inode tries to allocate some more blocks and lands up\nfinding itself during the search for deallocatable inodes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a51b56fff3f04fc5aa66b21a2a6d693ee9862d66",
      "tree": "e93c25ebe818e7a157f2b878a9512ada0f2f2bd1",
      "parents": [
        "1946f70ab5e4eb8b54a8eaaedba2293a3750ab7e"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Jun 30 13:51:11 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 10:59:28 2009 +0100"
      },
      "message": "GFS2: Fix panic in glock memory shrinker\n\nIt is possible for gfs2_shrink_glock_memory() to check a glock for\ndemotion\nthat\u0027s in the process of being freed by gfs2_glock_put().  In this case,\ngfs2_shrink_glock_memory() will acquire a new reference to this glock,\nand\nthen try to free the glock itself when it drops the refernce.  To solve\nthis, gfs2_shrink_glock_memory() just needs to check if the glock is in\nthe process of being freed, and if so skip it without ever unlocking the\nlru_lock.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nAcked-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1946f70ab5e4eb8b54a8eaaedba2293a3750ab7e",
      "tree": "91cc1850c7777d5cdea8713710081f70bb63a202",
      "parents": [
        "2163b1e616c41c286f5ab79912671cd4bf52057c"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Jun 25 15:09:51 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 10:52:33 2009 +0100"
      },
      "message": "GFS2: keep statfs info in sync on grows\n\nGFS2 wasn\u0027t syncing its statfs info on grows.  This causes a problem\nwhen you grow the filesystem on multiple nodes.  GFS2 would calculate\nthe new space based on the resource groups (which are always current),\nand then assume that the filesystem had grown the from the existing\nstatfs size.  If you grew the filesystem on two different nodes in a\nshort time, the second node wouldn\u0027t see the statfs size change from the\nfirst node, and would assume that it was grown by a larger amount than\nit was.  When all these changes were synced out, the total fileystem\nsize would be incorrect (the first grow would be counted twice).\n\nThis patch syncs makes GFS2 read in the statfs changes from disk before\na grow, and write them out after the grow, while the master statfs inode\nis locked.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2163b1e616c41c286f5ab79912671cd4bf52057c",
      "tree": "5f7170d724c69e0f51857367b5de5a2c0e9bdbae",
      "parents": [
        "4be3bd7849165e7efa6b0b35a23d6a3598d97465"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 25 16:30:26 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 10:52:14 2009 +0100"
      },
      "message": "GFS2: Shrink the shrinker\n\nThis patch removes some of the special cases that the shrinker\nwas trying to deal with. As a result we leave fewer items on\nthe list and none at all which cannot be demoted. This makes\nthe list scanning more efficient and solves some issues seen\nwith large numbers of inodes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5bd9052d79daa4c8beb45436c408b6de672adb82",
      "tree": "de976b18a0bbea6c48801a88aec56d618c4f78dc",
      "parents": [
        "7b91e2661addd8e2419cb45f6a322aa5dab9bcee"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jul 30 02:26:14 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jul 30 02:26:14 2009 +0000"
      },
      "message": "[CIFS] Updates fs/cifs/CHANGES\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "91a5698d1f253d30f53f0c58d2504eaec481b854",
      "tree": "684d8060e16b33c6ede5b814dbd459e0c5cb1f39",
      "parents": [
        "084bad91afd0f40ff4db9ceb56e29234c314d8d1",
        "dddac6a7b445de95515f64fdf82fe5dc36c02f26"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:15:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:15:18 2009 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Hibernate: Replace bdget call with simple atomic_inc of i_count\n  PM / ACPI: HP G7000 Notebook needs a SCI_EN resume quirk\n"
    },
    {
      "commit": "5c8053652328693d10551131432ef3573e77ed2d",
      "tree": "1ee02826893cd4a5cdc294cdce9e34847df2a495",
      "parents": [
        "1c29b3ff4f2d847464f7be3a0e179c6dfc69bd02"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Jul 29 15:04:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:36 2009 -0700"
      },
      "message": "fs/ramfs/file-nommu.c needs include/linux/sched.h\n\nThis file makes use of various macros defined in files like asm/current.h\nor asm-generic/resource.h.  All these files can be included via sched.h.\nThe building of the !MMU ARM kernel (with additional patches) fails\nwithout this change.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ccf5675a82a72bc1599b9b29cf33f7e391658485",
      "tree": "9a049faa35cdf3eee14005402d03ae3201b2d5fe",
      "parents": [
        "b7ebbb77f183061eb34dd210372d016c04371c26",
        "a39ea210ec8c8f6ed381f8dafbe755c57b8f30c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 12:29:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 12:29:08 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:\n  driver core: documentation: make it clear that sysfs is optional\n  driver core: sysdev: do not send KOBJ_ADD uevent if kobject_init_and_add fails\n  Dynamic debug: fix typo: -/-\u003e\n  driver core: firmware_class:fix memory leak of page pointers array\n  sysfs: fix hardlink count on device_move\n"
    },
    {
      "commit": "dddac6a7b445de95515f64fdf82fe5dc36c02f26",
      "tree": "39651610292d6b0c17f210f253a0dd16b022727d",
      "parents": [
        "ec79be26875f6c1468784876cb99192b7f41c7a5"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Wed Jul 29 21:07:55 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 29 21:07:55 2009 +0200"
      },
      "message": "PM / Hibernate: Replace bdget call with simple atomic_inc of i_count\n\nCreate bdgrab().  This function copies an existing reference to a\nblock_device.  It is safe to call from any context.\n\nHibernation code wishes to copy a reference to the active swap device.\nRight now it calls bdget() under a spinlock, but this is wrong because\nbdget() can sleep.  It doesn\u0027t need a full bdget() because we already\nhold a reference to active swap devices (and the spinlock protects\nagainst swapoff).\n\nFixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d13827\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "655c5d8fc110a9d4f90cc831bd009936f3e8df28",
      "tree": "6acb038a6dd8831830d8ae2f5485a4e411d0b579",
      "parents": [
        "ce4adcc6e5320062e0d993eb75152d165aaabbe6",
        "f25784b35f590c81d5fb8245a8cd45e1afb6f1b2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 28 14:27:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 28 14:27:06 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: (22 commits)\n  Btrfs: Fix async caching interaction with unmount\n  Btrfs: change how we unpin extents\n  Btrfs: Correct redundant test in add_inode_ref\n  Btrfs: find smallest available device extent during chunk allocation\n  Btrfs: clear all space_info-\u003efull after removing a block group\n  Btrfs: make flushoncommit mount option correctly wait on ordered_extents\n  Btrfs: Avoid delayed reference update looping\n  Btrfs: Fix ordering of key field checks in btrfs_previous_item\n  Btrfs: find_free_dev_extent doesn\u0027t handle holes at the start of the device\n  Btrfs: Remove code duplication in comp_keys\n  Btrfs: async block group caching\n  Btrfs: use hybrid extents+bitmap rb tree for free space\n  Btrfs: Fix crash on read failures at mount\n  Btrfs: remove of redundant btrfs_header_level\n  Btrfs: adjust NULL test\n  Btrfs: Remove broken sanity check from btrfs_rmap_block()\n  Btrfs: convert nested spin_lock_irqsave to spin_lock\n  Btrfs: make sure all dirty blocks are written at commit time\n  Btrfs: fix locking issue in btrfs_find_next_key\n  Btrfs: fix double increment of path-\u003eslots[0] in btrfs_next_leaf\n  ...\n"
    },
    {
      "commit": "f151cd2c54ddc7714e2f740681350476cda03a28",
      "tree": "81591bb25357c0d02a0549efadb62b67ba166434",
      "parents": [
        "6352a29305373ae6196491e6d4669f301e26492e"
      ],
      "author": {
        "name": "Ramon de Carvalho Valle",
        "email": "ramon@risesecurity.org",
        "time": "Tue Jul 28 13:58:22 2009 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 28 14:26:06 2009 -0700"
      },
      "message": "eCryptfs: parse_tag_3_packet check tag 3 packet encrypted key size\n\nThe parse_tag_3_packet function does not check if the tag 3 packet contains a\nencrypted key size larger than ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES.\n\nSigned-off-by: Ramon de Carvalho Valle \u003cramon@risesecurity.org\u003e\n[tyhicks@linux.vnet.ibm.com: Added printk newline and changed goto to out_free]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: stable@kernel.org (2.6.27 and 30)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6352a29305373ae6196491e6d4669f301e26492e",
      "tree": "ef68d8601812e1b190f67b69373ff5210191ea45",
      "parents": [
        "4733fd328f14280900435d9dbae1487d110a4d56"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jul 28 13:57:01 2009 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 28 14:26:06 2009 -0700"
      },
      "message": "eCryptfs: Check Tag 11 literal data buffer size\n\nTag 11 packets are stored in the metadata section of an eCryptfs file to\nstore the key signature(s) used to encrypt the file encryption key.\nAfter extracting the packet length field to determine the key signature\nlength, a check is not performed to see if the length would exceed the\nkey signature buffer size that was passed into parse_tag_11_packet().\n\nThanks to Ramon de Carvalho Valle for finding this bug using fsfuzzer.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: stable@kernel.org (2.6.27 and 30)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f58b44582001c8bcdb75f36cf85ebbe5170e959",
      "tree": "4d9f1a2ff668f37db7f0d5b5076307213868d2fb",
      "parents": [
        "4733fd328f14280900435d9dbae1487d110a4d56"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Tue Jul 14 17:56:15 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jul 28 13:45:21 2009 -0700"
      },
      "message": "sysfs: fix hardlink count on device_move\n\nUpdate directory hardlink count when moving kobjects to a new parent.\nFixes the following problem which occurs when several devices are\nmoved to the same parent and then unregistered:\n\n\u003e ls -laF /sys/devices/css0/defunct/\n\u003e total 0\n\u003e drwxr-xr-x 4294967295 root root    0 2009-07-14 17:02 ./\n\u003e drwxr-xr-x        114 root root    0 2009-07-14 17:02 ../\n\u003e drwxr-xr-x          2 root root    0 2009-07-14 17:01 power/\n\u003e -rw-r--r--          1 root root 4096 2009-07-14 17:01 uevent\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f25784b35f590c81d5fb8245a8cd45e1afb6f1b2",
      "tree": "71306747041b6e4a5eaccc5028c770fed29b3f87",
      "parents": [
        "68b38550ddbea13d296184bf69edff387618b1d3"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Tue Jul 28 08:41:57 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jul 28 08:41:57 2009 -0400"
      },
      "message": "Btrfs: Fix async caching interaction with unmount\n\n- don\u0027t stop the caching thread until btrfs_commit_super return.\n\n- if caching is interrupted by umount, set last to (u64)-1.\n  otherwise the un-scanned range of block group will be considered\n  as free extent.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7b91e2661addd8e2419cb45f6a322aa5dab9bcee",
      "tree": "cf17b0ca2bffa52c7e450cd75d5277c35cc9eda4",
      "parents": [
        "fc013a58859b7cf85e53a05804a74952fe0a4117"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Jul 23 15:22:30 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jul 28 00:51:59 2009 +0000"
      },
      "message": "cifs: fix error handling in mount-time DFS referral chasing code\n\nIf the referral is malformed or the hostname can\u0027t be resolved, then\nthe current code generates an oops. Fix it to handle these errors\ngracefully.\n\nReported-by: Sandro Mathys \u003csm@sandro-mathys.ch\u003e\nAcked-by: Igor Mammedov \u003cniallain@gmail.com\u003e\nCC: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "fc013a58859b7cf85e53a05804a74952fe0a4117",
      "tree": "012d671d822c281edef18f00992ec8c9ea4b0893",
      "parents": [
        "3a54297478e6578f96fd54bf4daa1751130aca86",
        "f44aebcc566d1d6275f7191867b9633dc11de2ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 15:54:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 15:54:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify:\n  inotify: use GFP_NOFS under potential memory pressure\n  fsnotify: fix inotify tail drop check with path entries\n  inotify: check filename before dropping repeat events\n  fsnotify: use def_bool in kconfig instead of letting the user choose\n  inotify: fix error paths in inotify_update_watch\n  inotify: do not leak inode marks in inotify_add_watch\n  inotify: drop user watch count when a watch is removed\n"
    },
    {
      "commit": "a9355cf8e68baac964f815079b820d2680756300",
      "tree": "2b12b884520ea72e51dceeff4e474f0593c73754",
      "parents": [
        "9ae260270c90643156cda73427aa1f04c923e627",
        "4a19fb11a90fdbbcb3bc02effa036230d035ca28"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:15:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:15:56 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:\n  jfs: Fix early release of acl in jfs_get_acl\n"
    },
    {
      "commit": "2bc20d09b03bca6e068e07440812d75b70b1c0b2",
      "tree": "50711d4320e12efd1439639af8464b69a3b7af6a",
      "parents": [
        "c7425eb4814bce40f3d117ff7a7870cc12e350e3",
        "f1015c447781729060c415f5133164c638561f25"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:12:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:12:10 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  jbd: fix race between write_metadata_buffer and get_write_access\n  ext3: Get rid of extenddisksize parameter of ext3_get_blocks_handle()\n  jbd: Fix a race between checkpointing code and journal_get_write_access()\n  ext3: Fix truncation of symlinks after failed write\n  jbd: Fail to load a journal if it is too short\n"
    },
    {
      "commit": "c7425eb4814bce40f3d117ff7a7870cc12e350e3",
      "tree": "4253a0877cbc2cb3943e1a332d18bb8b3c05606a",
      "parents": [
        "9e1b32caa525cb236e80e9c671e179bcecccc657",
        "f1230c97978f52268d8c66e6f88e54c3d2092a75"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:11:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:11:43 2009 -0700"
      },
      "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 sparse warning\n  cifs: fix sb-\u003es_maxbytes so that it casts properly to a signed value\n  cifs: disable serverino if server doesn\u0027t support it\n"
    },
    {
      "commit": "68b38550ddbea13d296184bf69edff387618b1d3",
      "tree": "c0c3901b77f273ac08c39c641586884f41a90b84",
      "parents": [
        "631c07c8d12bcc6ce4a0fbfbd64ea843d78e2b10"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jul 27 13:57:01 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 27 13:57:01 2009 -0400"
      },
      "message": "Btrfs: change how we unpin extents\n\nWe are racy with async block caching and unpinning extents.  This patch makes\nthings much less complicated by only unpinning the extent if the block group is\ncached.  We check the block_group-\u003ecached var under the block_group-\u003elock spin\nlock.  If it is set to BTRFS_CACHE_FINISHED then we update the pinned counters,\nand unpin the extent and add the free space back.  If it is not set to this, we\nstart the caching of the block group so the next time we unpin extents we can\nunpin the extent.  This keeps us from racing with the async caching threads,\nlets us kill the fs wide async thread counter, and keeps us from having to set\nDELALLOC bits for every extent we hit if there are caching kthreads going.\n\nOne thing that needed to be changed was btrfs_free_super_mirror_extents.  Now\ninstead of just looking for LOCKED extents, we also look for DIRTY extents,\nsince we could have left some extents pinned in the previous transaction that\nwill never get freed now that we are unmounting, which would cause us to leak\nmemory.  So btrfs_free_super_mirror_extents has been changed to\nbtrfs_free_pinned_extents, and it will clear the extents locked for the super\nmirror, and any remaining pinned extents that may be present.  Thank you,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "631c07c8d12bcc6ce4a0fbfbd64ea843d78e2b10",
      "tree": "67c1564674da446c0472d8265f67843ff6cbe891",
      "parents": [
        "9779b72f0584fd53e0de53f62f205bf0dc0db553"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Jul 27 13:57:00 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 27 13:57:00 2009 -0400"
      },
      "message": "Btrfs: Correct redundant test in add_inode_ref\n\ndir has already been tested.  It seems that this test should be on the\nrecently returned value inode.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://www.emn.fr/x-info/coccinelle/)\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9779b72f0584fd53e0de53f62f205bf0dc0db553",
      "tree": "fc05718a138dbcf64069e0a2b4ffc84bf9abf5e7",
      "parents": [
        "283bb1979fa8580c4037d8df251449368c292a3b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 16:41:41 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 16:41:41 2009 -0400"
      },
      "message": "Btrfs: find smallest available device extent during chunk allocation\n\nAllocating new block group is easy when the disk has plenty of space.\nBut things get difficult as the disk fills up, especially if\nthe FS has been run through btrfs-vol -b.  The balance operation\nis likely to make the total bytes available on the device greater\nthan the largest extent we\u0027ll actually be able to allocate.\n\nBut the device extent allocation code incorrectly assumes that a device\nwith 5G free will be able to allocate a 5G extent.  It isn\u0027t normally a\nproblem because device extents don\u0027t get freed unless btrfs-vol -b\nis run.\n\nThis fixes the device extent allocator to remember the largest free\nextent it can find, and then uses that value as a fallback.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "283bb1979fa8580c4037d8df251449368c292a3b",
      "tree": "4207fcd1e595cfb4074b719fd22e70277e72464f",
      "parents": [
        "ebecd3d9d2adba144c15f1d35c78e0c26ead1bfd"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 16:30:55 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 16:30:55 2009 -0400"
      },
      "message": "Btrfs: clear all space_info-\u003efull after removing a block group\n\nBtrfs allocates individual extents from block groups, and each\nblock group has a specific type.  It may hold metadata, data\nmirrored or striped etc.\n\nWhen we balance space (btrfs-vol -b) or remove a drive (btrfs-vol -r)\nwe free block groups.  Once a block group is freed, the space it was\nusing on the device may be available for use by new block groups.\n\nbtrfs_remove_block_group was clearing the flag that said\n\u0027our devices are full, don\u0027t even try to allocate new block groups\u0027,\nbut it was only clearing that flag for a specific type of block group.\n\nThis commit clears the full flag for all of the types of block groups,\nmaking it much more likely that we\u0027ll be able to balance space when\nthe drive is close to full.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ebecd3d9d2adba144c15f1d35c78e0c26ead1bfd",
      "tree": "605fdb3fcc3c9543d0a69987fcfd89ad3c7fb144",
      "parents": [
        "d717aa1d31c36cb56059e97966cb76f0be021969"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 24 13:17:44 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 13:17:44 2009 -0400"
      },
      "message": "Btrfs: make flushoncommit mount option correctly wait on ordered_extents\n\nThe commit_transaction call to wait_ordered_extents when snap_pending\npasses nocow_only\u003d1 to process only NOCOW or PREALLOC extents.  This isn\u0027t\ncorrect for the \u0027flushoncommit\u0027 mode, as it skips extents we just started\nIO on in start_delalloc_inodes.\n\nSo, in the flushoncommit case, wait on all ordered extents.  Otherwise,\nonly pass the nocow_only flag to wait_ordered_extents if snap_pending.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d717aa1d31c36cb56059e97966cb76f0be021969",
      "tree": "bb3f8aafe721504c329d448f84f3b3868e056413",
      "parents": [
        "0a4eefbb745ec0e8a5b694ae3f40cc34082d8f61"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Jul 24 12:42:46 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 12:42:46 2009 -0400"
      },
      "message": "Btrfs: Avoid delayed reference update looping\n\nbtrfs_split_leaf and btrfs_del_items can end up in a loop\nwhere one is constantly spliting a given leaf and the other\nis constantly merging it back with the adjacent nodes.\n\nThere is a better fix for this, but in the interest of something\nsmall, this patch just changes btrfs_del_items back to balancing less\noften.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0a4eefbb745ec0e8a5b694ae3f40cc34082d8f61",
      "tree": "b8c144c52f2725fa05325f282d8d2e4edc2e7181",
      "parents": [
        "1fcbac581be375ca0a686f72ee2b7fd1dbf386e7"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Jul 24 11:06:53 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 11:22:47 2009 -0400"
      },
      "message": "Btrfs: Fix ordering of key field checks in btrfs_previous_item\n\nCheck objectid of item before checking the item type, otherwise we may return\nzero for a key that is actually too low.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1fcbac581be375ca0a686f72ee2b7fd1dbf386e7",
      "tree": "64789d4143fdb02acd428ec928ed18239c95c37b",
      "parents": [
        "20736abaa361bea488df6a1f66f6b37fb01107b9"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Jul 24 11:06:53 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 11:22:47 2009 -0400"
      },
      "message": "Btrfs: find_free_dev_extent doesn\u0027t handle holes at the start of the device\n\nfind_free_dev_extent does not properly handle the case where\nthe device is not complete free, and there is a free extent\nat the beginning of the device.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "20736abaa361bea488df6a1f66f6b37fb01107b9",
      "tree": "d4e55905f371b701d06f3aa74eb18c6a25f83186",
      "parents": [
        "817d52f8dba26d0295c26035531c30ce5f1e3c3e"
      ],
      "author": {
        "name": "Diego Calleja",
        "email": "diegocg@gmail.com",
        "time": "Fri Jul 24 11:06:52 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 11:22:46 2009 -0400"
      },
      "message": "Btrfs: Remove code duplication in comp_keys\n\ncomp_keys is duplicating what is done in btrfs_comp_cpu_keys, so just\ncall it.\n\nSigned-off-by: Diego Calleja \u003cdiegocg@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "817d52f8dba26d0295c26035531c30ce5f1e3c3e",
      "tree": "5230153e86323de48e7e1440352d1b74d2d9961d",
      "parents": [
        "963030817060e4f109be1993b9ae8f81dbf5e11a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jul 13 21:29:25 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 09:23:39 2009 -0400"
      },
      "message": "Btrfs: async block group caching\n\nThis patch moves the caching of the block group off to a kthread in order to\nallow people to allocate sooner.  Instead of blocking up behind the caching\nmutex, we instead kick of the caching kthread, and then attempt to make an\nallocation.  If we cannot, we wait on the block groups caching waitqueue, which\nthe caching kthread will wake the waiting threads up everytime it finds 2 meg\nworth of space, and then again when its finished caching.  This is how I tested\nthe speedup from this\n\nmkfs the disk\nmount the disk\nfill the disk up with fs_mark\nunmount the disk\nmount the disk\ntime touch /mnt/foo\n\nWithout my changes this took 11 seconds on my box, with these changes it now\ntakes 1 second.\n\nAnother change thats been put in place is we lock the super mirror\u0027s in the\npinned extent map in order to keep us from adding that stuff as free space when\ncaching the block group.  This doesn\u0027t really change anything else as far as the\npinned extent map is concerned, since for actual pinned extents we use\nEXTENT_DIRTY, but it does mean that when we unmount we have to go in and unlock\nthose extents to keep from leaking memory.\n\nI\u0027ve also added a check where when we are reading block groups from disk, if the\namount of space used \u003d\u003d the size of the block group, we go ahead and mark the\nblock group as cached.  This drastically reduces the amount of time it takes to\ncache the block groups.  Using the same test as above, except doing a dd to a\nfile and then unmounting, it used to take 33 seconds to umount, now it takes 3\nseconds.\n\nThis version uses the commit_root in the caching kthread, and then keeps track\nof how many async caching threads are running at any given time so if one of the\nasync threads is still running as we cross transactions we can wait until its\nfinished before handling the pinned extents.  Thank you,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "963030817060e4f109be1993b9ae8f81dbf5e11a",
      "tree": "7d81121b7e68d3d5b3317afba53d36bc1bf8221a",
      "parents": [
        "83121942b28daffc9526b14b7843d8cdbd3db641"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jul 13 21:29:25 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jul 24 09:23:30 2009 -0400"
      },
      "message": "Btrfs: use hybrid extents+bitmap rb tree for free space\n\nCurrently btrfs has a problem where it can use a ridiculous amount of RAM simply\ntracking free space.  As free space gets fragmented, we end up with thousands of\nentries on an rb-tree per block group, which usually spans 1 gig of area.  Since\nwe currently don\u0027t ever flush free space cache back to disk this gets to be a\nbit unweildly on large fs\u0027s with lots of fragmentation.\n\nThis patch solves this problem by using PAGE_SIZE bitmaps for parts of the free\nspace cache.  Initially we calculate a threshold of extent entries we can\nhandle, which is however many extent entries we can cram into 16k of ram.  The\nmaximum amount of RAM that should ever be used to track 1 gigabyte of diskspace\nwill be 32k of RAM, which scales much better than we did before.\n\nOnce we pass the extent threshold, we start adding bitmaps and using those\ninstead for tracking the free space.  This patch also makes it so that any free\nspace thats less than 4 * sectorsize we go ahead and put into a bitmap.  This is\nnice since we try and allocate out of the front of a block group, so if the\nfront of a block group is heavily fragmented and then has a huge chunk of free\nspace at the end, we go ahead and add the fragmented areas to bitmaps and use a\nnormal extent entry to track the big chunk at the back of the block group.\n\nI\u0027ve also taken the opportunity to revamp how we search for free space.\nPreviously we indexed free space via an offset indexed rb tree and a bytes\nindexed rb tree.  I\u0027ve dropped the bytes indexed rb tree and use only the offset\nindexed rb tree.  This cuts the number of tree operations we were doing\npreviously down by half, and gives us a little bit of a better allocation\npattern since we will always start from a specific offset and search forward\nfrom there, instead of searching for the size we need and try and get it as\nclose as possible to the offset we want.\n\nI\u0027ve given this a healthy amount of testing pre-new format stuff, as well as\npost-new format stuff.  I\u0027ve booted up my fedora box which is installed on btrfs\nwith this patch and ran with it for a few days without issues.  I\u0027ve not seen\nany performance regressions in any of my tests.\n\nSince the last patch Yan Zheng fixed a problem where we could have overlapping\nentries, so updating their offset inline would cause problems.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4a19fb11a90fdbbcb3bc02effa036230d035ca28",
      "tree": "62ffffbec656eb462cd7ae6cc4a615400b5cb5b5",
      "parents": [
        "4be3bd7849165e7efa6b0b35a23d6a3598d97465"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "stefan.bader@canonical.com",
        "time": "Thu Jul 23 11:26:05 2009 +0200"
      },
      "committer": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Thu Jul 23 11:08:36 2009 -0500"
      },
      "message": "jfs: Fix early release of acl in jfs_get_acl\n\nBugLink: http://bugs.launchpad.net/ubuntu/+bug/396780\n\nCommit 073aaa1b142461d91f83da66db1184d7c1b1edea \"helpers for acl\ncaching + switch to those\" introduced new helper functions for\nacl handling but seems to have introduced a regression for jfs as\nthe acl is released before returning it to the caller, instead of\nleaving this for the caller to do.\nThis causes the acl object to be used after freeing it, leading\nto kernel panics in completely different places.\n\nThanks to Christophe Dumez for reporting and bisecting into this.\n\nReported-by: Christophe Dumez \u003cdchris@gmail.com\u003e\nTested-by: Christophe Dumez \u003cdchris@gmail.com\u003e\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nAcked-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "81cbf6d0555d77b2a4235c03f24167e2d792ccf5",
      "tree": "8731a6d387158445ff3590e48842b7c097e0dcd6",
      "parents": [
        "3c3301083e3bea4d14c597106c7b20b4b85fc03d",
        "023d43c7b5a23a81fe8afa9f37296f8ed4be11fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 22 16:44:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 22 16:44:18 2009 -0700"
      },
      "message": "Merge branch \u0027lockdep-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep\n\n* \u0027lockdep-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep:\n  lockdep: Fix lockdep annotation for pipe_double_lock()\n"
    },
    {
      "commit": "f1230c97978f52268d8c66e6f88e54c3d2092a75",
      "tree": "3ec132331d1eb944b464be772469b464a8c6a26d",
      "parents": [
        "03aa3a49ad3592a9e4e1ab19c6da3e852288caf1"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jul 22 23:13:01 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jul 22 23:13:01 2009 +0000"
      },
      "message": "[CIFS] fix sparse warning\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "03aa3a49ad3592a9e4e1ab19c6da3e852288caf1",
      "tree": "eaaa507b6debb862f551d9d3c750b4889e3131ed",
      "parents": [
        "ce6e7fcd43aab1f77e56aa36936dd7d2d05a1ffa"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 21 19:42:03 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jul 22 21:08:00 2009 +0000"
      },
      "message": "cifs: fix sb-\u003es_maxbytes so that it casts properly to a signed value\n\nThis off-by-one bug causes sendfile() to not work properly. When a task\ncalls sendfile() on a file on a CIFS filesystem, the syscall returns -1\nand sets errno to EOVERFLOW.\n\ndo_sendfile uses s_maxbytes to verify the returned offset of the file.\nThe problem there is that this value is cast to a signed value (loff_t).\nWhen this is done on the s_maxbytes value that cifs uses, it becomes\nnegative and the comparisons against it fail.\n\nEven though s_maxbytes is an unsigned value, it seems that it\u0027s not OK\nto set it in such a way that it\u0027ll end up negative when it\u0027s cast to a\nsigned value. These casts happen in other codepaths besides sendfile\ntoo, but the VFS is a little hard to follow in this area and I can\u0027t\nbe sure if there are other bugs that this will fix.\n\nIt\u0027s not clear to me why s_maxbytes isn\u0027t just declared as loff_t in the\nfirst place, but either way we still need to fix these values to make\nsendfile work properly. This is also an opportunity to replace the magic\nbit-shift values here with the standard #defines for this.\n\nThis fixes the reproducer program I have that does a sendfile and\nwill probably also fix the situation where apache is serving from a\nCIFS share.\n\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ce6e7fcd43aab1f77e56aa36936dd7d2d05a1ffa",
      "tree": "d76654cd10a30f12117211924fc4abf68b4fcf3d",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jul 22 15:08:58 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jul 22 21:07:51 2009 +0000"
      },
      "message": "cifs: disable serverino if server doesn\u0027t support it\n\nA recent regression when dealing with older servers. This bug was\nintroduced when we made serverino the default...\n\nWhen the server can\u0027t provide inode numbers, disable it for the mount.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "83121942b28daffc9526b14b7843d8cdbd3db641",
      "tree": "7440a54bdc12e3aa7c268b9b747204dc0e1e2a5e",
      "parents": [
        "c271b492419a18908ba19ee02b231fb305a27023"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jul 22 16:52:13 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 16:52:13 2009 -0400"
      },
      "message": "Btrfs: Fix crash on read failures at mount\n\nIf the tree roots hit read errors during mount, btrfs is not properly\nerroring out.  We need to check the uptodate bits after\nreading in the tree root node.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c271b492419a18908ba19ee02b231fb305a27023",
      "tree": "cb4cfe98ed0f560d1ebd1b7c4cc256055b2c86c0",
      "parents": [
        "33c17ad5717c887568c1de61f15e5d58ed66d189"
      ],
      "author": {
        "name": "Daniel Cadete",
        "email": "danielcadete10@gmail.com",
        "time": "Wed Jul 22 16:52:13 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 16:52:13 2009 -0400"
      },
      "message": "Btrfs: remove of redundant btrfs_header_level\n\nThis removes the continues call\u0027s of btrfs_header_level. One call of\nbtrfs_header_level(c) its enough.\n\nSigned-off-by Daniel Cadete \u003cdanielncadete10@gmail.com\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "33c17ad5717c887568c1de61f15e5d58ed66d189",
      "tree": "9593d6df5dd1a634361770d2cef87ab7c55b49b7",
      "parents": [
        "3acada49c2794c5aac21849e2ea05790c6dd2faa"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Jul 22 16:49:01 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 16:49:01 2009 -0400"
      },
      "message": "Btrfs: adjust NULL test\n\nMove the call to BUG_ON to before the dereference of the tested value.\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3acada49c2794c5aac21849e2ea05790c6dd2faa",
      "tree": "0b8fe86b5ce08aac59014053a5fb1738b9705609",
      "parents": [
        "29c5e8ce01f9dad7e24b99c21e4f836d6b0289e0"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jul 22 16:49:01 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 16:49:01 2009 -0400"
      },
      "message": "Btrfs: Remove broken sanity check from btrfs_rmap_block()\n\nIt was never actually doing anything anyway (see the loop condition),\nand it would be difficult to make it work for RAID[56].\n\nEven if it was actually working, it\u0027s checking for the wrong thing\nanyway. Instead of checking whether we list a block which _doesn\u0027t_ land\nat the relevant physical location, it should be checking that we _have_\nlisted all the logical blocks which refer to the required physical\nlocation on all devices.\n\nThis function is only called from remove_sb_from_cache() to ensure that\nwe reserve the logical blocks which would reside at the same physical\nlocation as the superblock copies. So listing more blocks than we need\nis actually OK.\n\nWith RAID[56] we\u0027re going to throw away an entire stripe for each block\nwe have to ignore, so we _are_ going to list blocks other than the\nones which actually contain the superblock.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "29c5e8ce01f9dad7e24b99c21e4f836d6b0289e0",
      "tree": "ca5628ea861a4fdb875e6cc90878853ad74091f2",
      "parents": [
        "4a8c9a62d7f7f058eed4b8a6f2c890a887778093"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Jul 22 16:49:00 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 16:49:00 2009 -0400"
      },
      "message": "Btrfs: convert nested spin_lock_irqsave to spin_lock\n\nIf spin_lock_irqsave is called twice in a row with the same second\nargument, the interrupt state at the point of the second call overwrites\nthe value saved by the first call.  Indeed, the second call does not need\nto save the interrupt state, so it is changed to a simple spin_lock.\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "023d43c7b5a23a81fe8afa9f37296f8ed4be11fb",
      "tree": "a817c4765d17c5d7facb66ae43cbc2b04c28c05b",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Jul 21 10:09:23 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 22 21:14:14 2009 +0200"
      },
      "message": "lockdep: Fix lockdep annotation for pipe_double_lock()\n\nThe presumed use of the pipe_double_lock() routine is to lock 2 locks in\na deadlock free way by ordering the locks by their address. However it\nfails to keep the specified lock classes in order and explicitly\nannotates a deadlock.\n\nRectify this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nLKML-Reference: \u003c1248163763.15751.11098.camel@twins\u003e\n"
    },
    {
      "commit": "1f9758d4e7b3d5db638c728b54de2faa2a01f292",
      "tree": "0a3dc99a70bd9c979cdb4f0522ce5e630cc99b4c",
      "parents": [
        "49ed657356121c2a8fa1f5c2ab38496b95f6fe6a",
        "4fed598a49c014cbc563179b25f2a4b8565e2a50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 22 10:05:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 22 10:05:00 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  fs/Kconfig: move nilfs2 out\n"
    },
    {
      "commit": "4a8c9a62d7f7f058eed4b8a6f2c890a887778093",
      "tree": "d3d099197e5ddc94f737dbad273810b902b05307",
      "parents": [
        "33c66f430bfa3a033e70470e4c93f967156b696d"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed Jul 22 10:07:05 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 10:07:05 2009 -0400"
      },
      "message": "Btrfs: make sure all dirty blocks are written at commit time\n\nWrite dirty block groups may allocate new block, and so may add new delayed\nback ref. btrfs_run_delayed_refs may make some block groups dirty.\n\ncommit_cowonly_roots does not handle the recursion properly, and some dirty\nblocks can be left unwritten at commit time. This patch moves\nbtrfs_run_delayed_refs into the loop that writes dirty block groups, and makes\nthe code not break out of the loop until there are no dirty block groups or\ndelayed back refs.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "33c66f430bfa3a033e70470e4c93f967156b696d",
      "tree": "5af7edc4564aa3f32033b364495828eb32b690a7",
      "parents": [
        "e457afec60fdbd86b963d36f4a8a9285088c6043"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "message": "Btrfs: fix locking issue in btrfs_find_next_key\n\nWhen walking up the tree, btrfs_find_next_key assumes the upper level tree\nblock is properly locked. This isn\u0027t always true even path-\u003ekeep_locks is 1.\nThis is because btrfs_find_next_key may advance path-\u003eslots[] several times\ninstead of only once.\n\nWhen \u0027path-\u003eslots[level] \u003e\u003d btrfs_header_nritems(path-\u003enodes[level])\u0027 is found,\nwe can\u0027t guarantee the original value of \u0027path-\u003eslots[level]\u0027 is\n\u0027btrfs_header_nritems(path-\u003enodes[level]) - 1\u0027. If it\u0027s not, the tree block at\n\u0027level + 1\u0027 isn\u0027t locked.\n\nThis patch fixes the issue by explicitly checking the locking state,\nre-searching the tree if it\u0027s not locked.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e457afec60fdbd86b963d36f4a8a9285088c6043",
      "tree": "e3d0add1584cd9edae3dfd24405a13294a2a2280",
      "parents": [
        "bf1fb512a58d7aeb41aaa40d6d2d2d29e08e506a"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "message": "Btrfs: fix double increment of path-\u003eslots[0] in btrfs_next_leaf\n\nif 1 is returned by btrfs_search_slot, the path already points to the\nfirst item with \u0027key \u003e searching key\u0027. So increasing path-\u003eslots[0] by\none is superfluous in that case.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bf1fb512a58d7aeb41aaa40d6d2d2d29e08e506a",
      "tree": "7a4dca58c7a39cbe12e0931353fa66586f240075",
      "parents": [
        "1bec1aed1e7e632b3cc43b6807c2b4dcd1572e28"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "message": "Btrfs: properly update space information after shrinking device.\n\nChange \u0027goto done\u0027 to \u0027break\u0027 for the case of all device extents have\nbeen freed, so that the code updates space information will be execute.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1bec1aed1e7e632b3cc43b6807c2b4dcd1572e28",
      "tree": "82ae1710227adaf27d915e40508aaf4bb62a7422",
      "parents": [
        "68f5a38c3ea4ae9cc7a40f86ff6d6d031583d93a"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 22 09:59:00 2009 -0400"
      },
      "message": "Btrfs: fix definition of struct btrfs_extent_inline_ref\n\nuse __le64 instead of u64 in on-disk structure definition.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d953126a28f97ec965d23c69fd5795854c048f30",
      "tree": "d3f239909dac00e1bc7882a783b8b63b20345d4d",
      "parents": [
        "fccba8045537f7e840d0e7565e1989d465e488a3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 19:22:38 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 19:22:38 2009 -0400"
      },
      "message": "NFSv4: Fix a problem whereby a buggy server can oops the kernel\n\nWe just had a case in which a buggy server occasionally returns the wrong\nattributes during an OPEN call. While the client does catch this sort of\ncondition in nfs4_open_done(), and causes the nfs4_atomic_open() to return\n-EISDIR, the logic in nfs_atomic_lookup() is broken, since it causes a\nfallback to an ordinary lookup instead of just returning the error.\n\nWhen the buggy server then returns a regular file for the fallback lookup,\nthe VFS allows the open, and bad things start to happen, since the open\nfile doesn\u0027t have any associated NFSv4 state.\n\nThe fix is firstly to return the EISDIR/ENOTDIR errors immediately, and\nsecondly to ensure that we are always careful when dereferencing the\nnfs_open_context state pointer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fccba8045537f7e840d0e7565e1989d465e488a3",
      "tree": "89d80da7e017240e5a1d20c79501459c886fd007",
      "parents": [
        "b64aec8d1e1d8482a7b6cca60c8105c756bf1fe4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "message": "NFSv4: Fix an NFSv4 mount regression\n\nCommit 008f55d0e019943323c20a03493a2ba5672a4cc8 (nfs41: recover lease in\n_nfs4_lookup_root) forces the state manager to always run on mount. This is\na bug in the case of NFSv4.0, which doesn\u0027t require us to send a\nsetclientid until we want to grab file state.\n\nIn any case, this is completely the wrong place to be doing state\nmanagement. Moving that code into nfs4_init_session...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b64aec8d1e1d8482a7b6cca60c8105c756bf1fe4",
      "tree": "022958ab88c3e6a7c9372e50cedb588e73462b57",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:47:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:47:46 2009 -0400"
      },
      "message": "NFSv4: Fix an Oops in nfs4_free_lock_state\n\nThe oops http://www.kerneloops.org/raw.php?rawid\u003d537858\u0026msgid\u003d appears to\nbe due to the nfs4_lock_state-\u003els_state field being uninitialised. This\nhappens if the call to nfs4_free_lock_state() is triggered at the end of\nnfs4_get_lock_state().\n\nThe fix is to move the initialisation of ls_state into the allocator.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f44aebcc566d1d6275f7191867b9633dc11de2ee",
      "tree": "a5faaf5ca8e1360f359ee22ad29582992596c3e6",
      "parents": [
        "c05594b62125c528d93af3a78229793aae36df7f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 15 15:49:52 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 21 15:26:27 2009 -0400"
      },
      "message": "inotify: use GFP_NOFS under potential memory pressure\n\ninotify can have a watchs removed under filesystem reclaim.\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\n[ INFO: inconsistent lock state ]\n2.6.31-rc2 #16\n---------------------------------\ninconsistent {IN-RECLAIM_FS-W} -\u003e {RECLAIM_FS-ON-W} usage.\nkhubd/217 [HC0[0]:SC0[0]:HE1:SE1] takes:\n (iprune_mutex){+.+.?.}, at: [\u003cc10ba899\u003e] invalidate_inodes+0x20/0xe3\n{IN-RECLAIM_FS-W} state was registered at:\n  [\u003cc10536ab\u003e] __lock_acquire+0x2c9/0xac4\n  [\u003cc1053f45\u003e] lock_acquire+0x9f/0xc2\n  [\u003cc1308872\u003e] __mutex_lock_common+0x2d/0x323\n  [\u003cc1308c00\u003e] mutex_lock_nested+0x2e/0x36\n  [\u003cc10ba6ff\u003e] shrink_icache_memory+0x38/0x1b2\n  [\u003cc108bfb6\u003e] shrink_slab+0xe2/0x13c\n  [\u003cc108c3e1\u003e] kswapd+0x3d1/0x55d\n  [\u003cc10449b5\u003e] kthread+0x66/0x6b\n  [\u003cc1003fdf\u003e] kernel_thread_helper+0x7/0x10\n  [\u003cffffffff\u003e] 0xffffffff\n\nTwo things are needed to fix this.  First we need a method to tell\nfsnotify_create_event() to use GFP_NOFS and second we need to stop using\none global IN_IGNORED event and allocate them one at a time.  This solves\ncurrent issues with multiple IN_IGNORED on a queue having tail drop\nproblems and simplifies the allocations since we don\u0027t have to worry about\ntwo tasks opperating on the IGNORED event concurrently.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "c05594b62125c528d93af3a78229793aae36df7f",
      "tree": "2e9b2ba0ea63d3587cb3c6dc7d72e7a202aade52",
      "parents": [
        "4a148ba988988b9c400ad0f2cbccc155289b954b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Jul 13 15:56:55 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 21 15:26:26 2009 -0400"
      },
      "message": "fsnotify: fix inotify tail drop check with path entries\n\nfsnotify drops new events when they are the same as the tail event on the\nqueue to be sent to userspace.  The problem is that if the event comes with\na path we forget to break out of the switch statement and fall into the\ncode path which matches on events that do not have any type of file backed\ninformation (things like IN_UNMOUNT and IN_Q_OVERFLOW).  The problem is\nthat this code thinks all such events should be dropped.  Fix is to add a\nbreak.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4a148ba988988b9c400ad0f2cbccc155289b954b",
      "tree": "e80e3cd0d182721038b1d83a55cbde828c98cb09",
      "parents": [
        "520dc2a526fd681337883b6ff1ddcf7c23b1b063"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Jul 13 15:56:55 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 21 15:26:26 2009 -0400"
      },
      "message": "inotify: check filename before dropping repeat events\n\ninotify drops events if the last event on the queue is the same as the\ncurrent event.  But it does 2 things wrong.  First it is comparing old-\u003einode\nwith new-\u003einode.  But after an event if put on the queue the -\u003einode is no\nlonger allowed to be used.  It\u0027s possible between the last event and this new\nevent the inode could be reused and we would falsely match the inode\u0027s memory\naddress between two differing events.\n\nThe second problem is that when a file is removed fsnotify is passed the\nnegative dentry for the removed object rather than the postive dentry from\nimmediately before the removal.  This mean the (broken) inotify tail drop code\nwas matching the NULL -\u003einode of differing events.\n\nThe fix is to check the file name which is stored with events when doing the\ntail drop instead of wrongly checking the address of the stored -\u003einode.\n\nReported-by: Scott James Remnant \u003cscott@ubuntu.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "520dc2a526fd681337883b6ff1ddcf7c23b1b063",
      "tree": "a6346bbd0b405d1a377aaaf5f1f69a5f662f814a",
      "parents": [
        "7e790dd5fc937bc8d2400c30a05e32a9e9eef276"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Jul 13 15:56:54 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 21 15:26:26 2009 -0400"
      },
      "message": "fsnotify: use def_bool in kconfig instead of letting the user choose\n\nfsnotify doens\u0027t give the user anything.  If someone chooses inotify or\ndnotify it should build fsnotify, if they don\u0027t select one it shouldn\u0027t be\nbuilt.  This patch changes fsnotify to be a def_bool\u003dn and makes everything\nelse select it.  Also fixes the issue people complained about on lwn where\ngdm hung because they didn\u0027t have inotify and they didn\u0027t get the inotify\nbuild option.....\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "7e790dd5fc937bc8d2400c30a05e32a9e9eef276",
      "tree": "a593a3120eb8dfbf3febdf18b6d530376b593859",
      "parents": [
        "75fe2b26394c59c8e16bd7b76f4be5d048103ad1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 07 10:28:24 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 21 15:26:26 2009 -0400"
      },
      "message": "inotify: fix error paths in inotify_update_watch\n\ninotify_update_watch could leave things in a horrid state on a number of\nerror paths.  We could try to remove idr entries that didn\u0027t exist, we\ncould send an IN_IGNORED to userspace for watches that don\u0027t exist, and a\nbit of other stupidity.  Clean these up by doing the idr addition before we\nput the mark on the inode since we can clean that up on error and getting\noff the inode\u0027s mark list is hard.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "75fe2b26394c59c8e16bd7b76f4be5d048103ad1",
      "tree": "0f2a6c59dd1c6eddc497b9c7363298e949c0768a",
      "parents": [
        "5549f7cdf84c02939fd368d0842aa2f472bb6e98"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 07 10:28:23 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 21 15:26:26 2009 -0400"
      },
      "message": "inotify: do not leak inode marks in inotify_add_watch\n\ninotify_add_watch had a couple of problems.  The biggest being that if\ninotify_add_watch was called on the same inode twice (to update or change the\nevent mask) a refence was taken on the original inode mark by\nfsnotify_find_mark_entry but was not being dropped at the end of the\ninotify_add_watch call.  Thus if inotify_rm_watch was called although the mark\nwas removed from the inode, the refcnt wouldn\u0027t hit zero and we would leak\nmemory.\n\nReported-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "5549f7cdf84c02939fd368d0842aa2f472bb6e98",
      "tree": "ca921e8ce50067a4d034eefbf686551215e8504e",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 07 10:28:23 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jul 21 15:26:26 2009 -0400"
      },
      "message": "inotify: drop user watch count when a watch is removed\n\nThe inotify rewrite forgot to drop the inotify watch use cound when a watch\nwas removed.  This means that a single inotify fd can only ever register a\nmaximum of /proc/sys/fs/max_user_watches even if some of those had been\nfreed.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "f1015c447781729060c415f5133164c638561f25",
      "tree": "3fb03db8dc97bf9037cbdf91b71e28a2bbb8eed3",
      "parents": [
        "43237b5490e8f2f4679decd660064ff35ce490cc"
      ],
      "author": {
        "name": "dingdinghua",
        "email": "dingdinghua85@gmail.com",
        "time": "Wed Jul 15 21:42:05 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jul 21 11:54:42 2009 +0200"
      },
      "message": "jbd: fix race between write_metadata_buffer and get_write_access\n\nThe function journal_write_metadata_buffer() calls jbd_unlock_bh_state(bh_in)\ntoo early; this could potentially allow another thread to call get_write_access\non the buffer head, modify the data, and dirty it, and allowing the wrong data\nto be written into the journal.  Fortunately, if we lose this race, the only\ntime this will actually cause filesystem corruption is if there is a system\ncrash or other unclean shutdown of the system before the next commit can take\nplace.\n\nSigned-off-by: dingdinghua \u003cdingdinghua85@gmail.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "457f82bac659745f6d5052e4c493d92d62722c9c",
      "tree": "b188adcd36db2a3e0c1ccc5d84d19cc3d6c380bd",
      "parents": [
        "eb872c159f15a7d1b3aa2be9ac4cd66abaac6874",
        "9c9ad6162e2aa1e528ed687ccab87fe681ebbef1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 20 16:48:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 20 16:48:31 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: Fix incorrect parameters to v9fs_file_readn.\n  9p: Possible regression in p9_client_stat\n  9p: default 9p transport module fix\n"
    },
    {
      "commit": "90a98b2f3f3647fb17667768a348b2b219f2a9f7",
      "tree": "784f9cf1728176d7f604fede2ce845cfd6bcf31c",
      "parents": [
        "287638b2c533165c3c03dfa15196c2ba583cd287"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jul 20 13:40:52 2009 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jul 20 18:24:37 2009 +0000"
      },
      "message": "cifs: free nativeFileSystem field before allocating a new one\n\n...otherwise, we\u0027ll leak this memory if we have to reconnect (e.g. after\nnetwork failure).\n\nSigned-off-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": "f6c43385435640e056424034caac0d765c45e370",
      "tree": "54c2ba0a7d3abb156bc51f6b9f02e00f0a260f85",
      "parents": [
        "65bc98b0059360e458aebd208587be44641227c1",
        "35b5c55fee08e6e4001ba98060a2d0b82f70b5f4"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jul 16 04:21:39 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jul 16 04:21:39 2009 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of /pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "43237b5490e8f2f4679decd660064ff35ce490cc",
      "tree": "487380755d875bfe4e5b3700d08c85d58f97ae14",
      "parents": [
        "1e9fd53b783ea646de3ee09a4574afeb6778d504"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed May 20 18:41:58 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 15 21:30:46 2009 +0200"
      },
      "message": "ext3: Get rid of extenddisksize parameter of ext3_get_blocks_handle()\n\nGet rid of extenddisksize parameter of ext3_get_blocks_handle(). This seems to\nbe a relict from some old days and setting disksize in this function does not\nmake much sence. Currently it was set only by ext3_getblk().  Since the\nparameter has some effect only if create \u003d\u003d 1, it is easy to check that the\nthree callers which end up calling ext3_getblk() with create \u003d\u003d 1 (ext3_append,\next3_quota_write, ext3_mkdir) do the right thing and set disksize themselves.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "1e9fd53b783ea646de3ee09a4574afeb6778d504",
      "tree": "0b87e9ca83c612a1c3c5b91a359f8604cde48c45",
      "parents": [
        "9eaaa2d5759837402ec5eee13b2a97921808c3eb"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 24 17:31:40 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 15 21:30:07 2009 +0200"
      },
      "message": "jbd: Fix a race between checkpointing code and journal_get_write_access()\n\nThe following race can happen:\n\n  CPU1                          CPU2\n                                checkpointing code checks the buffer, adds\n                                  it to an array for writeback\ndo_get_write_access()\n  ...\n  lock_buffer()\n  unlock_buffer()\n                                  flush_batch() submits the buffer for IO\n  __jbd_journal_file_buffer()\n\n  So a buffer under writeout is returned from do_get_write_access(). Since\nthe filesystem code relies on the fact that journaled buffers cannot be\nwritten out, it does not take the buffer lock and so it can modify buffer\nwhile it is under writeout. That can lead to a filesystem corruption\nif we crash at the right moment. The similar problem can happen with\nthe journal_get_create_access() path.\n  We fix the problem by clearing the buffer dirty bit under buffer_lock\neven if the buffer is on BJ_None list. Actually, we clear the dirty bit\nregardless the list the buffer is in and warn about the fact if\nthe buffer is already journalled.\n\nThanks for spotting the problem goes to dingdinghua \u003cdingdinghua85@gmail.com\u003e.\n\nReported-by: dingdinghua \u003cdingdinghua85@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    }
  ],
  "next": "9eaaa2d5759837402ec5eee13b2a97921808c3eb"
}
