)]}'
{
  "log": [
    {
      "commit": "94c8a984ae2adbd9a9626fb42e0f2faf3e36e86f",
      "tree": "a4beddd64501ef00ad41c8fd5974340bec2fcf73",
      "parents": [
        "f9fa0bc1fabe1d861e46d80ecbe7e85da359195c",
        "37adb89fadd65ce47f7e5cfd564938a76b351948"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 11:47:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 11:47:35 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Change initial mount authflavor only when server returns NFS4ERR_WRONGSEC\n  NFS: Fix a signed vs. unsigned secinfo bug\n  Revert \"net/sunrpc: Use static const char arrays\"\n"
    },
    {
      "commit": "3d762ca1cdf38b5fb7d1774734176d1d4d56bbb7",
      "tree": "2fed11327a86c05ec945c31aa6e1307fbca527c9",
      "parents": [
        "0c3efe54d0165cecf0698b468e253577b555dde6",
        "b03f24567ce7caf2420b8be4c6eb74c191d59a91"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:35:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:35:17 2011 -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  quota: Don\u0027t write quota info in dquot_commit()\n  ext3: Fix writepage credits computation for ordered mode\n"
    },
    {
      "commit": "37adb89fadd65ce47f7e5cfd564938a76b351948",
      "tree": "b935bde3f61965a8e0810f9d12281b97b2376351",
      "parents": [
        "418875900e3de4831c84f86ae4756690dac5be77"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Apr 07 16:02:20 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 07 13:19:40 2011 -0700"
      },
      "message": "NFS: Change initial mount authflavor only when server returns NFS4ERR_WRONGSEC\n\nWhen attempting an initial mount, we should only attempt other\nauthflavors if AUTH_UNIX receives a NFS4ERR_WRONGSEC error.\nThis allows other errors to be passed back to userspace programs.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ccfeef0ff76ebd632ae51bc56700f0072c4f1864",
      "tree": "83ec5932dac631a455a69212b505f68f57f68cdf",
      "parents": [
        "42933bac11e811f02200c944d8562a15f8ec4ff0",
        "6bef0b67474d71e0d6484cbabcc87657a1176d8d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:31:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:31:03 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027for-linus\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBI: do not select KALLSYMS_ALL\n  UBI: do not compare array with NULL\n  UBI: check if we are in RO mode in the erase routine\n  UBIFS: fix debugging failure in dbg_check_space_info\n  UBIFS: fix error path in dbg_debugfs_init_fs\n  UBIFS: unify error path dbg_debugfs_init_fs\n  UBIFS: do not select KALLSYMS_ALL\n  UBIFS: fix assertion warnings\n  UBIFS: fix oops on error path in read_pnode\n  UBIFS: do not read flash unnecessarily\n"
    },
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "418875900e3de4831c84f86ae4756690dac5be77",
      "tree": "d0609f12b62962806adc092867350b7bfcfed5a3",
      "parents": [
        "0867659fa3c245bf203d837a82e0f6ea5079c2c5"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Apr 06 14:33:28 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 06 13:25:04 2011 -0700"
      },
      "message": "NFS: Fix a signed vs. unsigned secinfo bug\n\nrpc_authflavor_t is cast from an unsigned int, but the\ninitial code tried to use it as a signed int.  I fix\nthis by passing an rpc_authflavor_t pointer around, and\nreturning signed integers from functions.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44148a667d3715f3a1c37eeff7e954c946cc1efe",
      "tree": "fd8685dd17dcef45993b733f4ec4df97e6808304",
      "parents": [
        "d0de4dc584ec6aa3b26fffea320a8457827768fc",
        "782b86e2656762382ae1c2686d8d5c91f7d5eacf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 05 15:29:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 05 15:29:01 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-2.6-block:\n  ide: always ensure that blk_delay_queue() is called if we have pending IO\n  block: fix request sorting at unplug\n  dm: improve block integrity support\n  fs: export empty_aops\n  ide: ide_requeue_and_plug() reinstate \"always plug\" behaviour\n  blk-throttle: don\u0027t call xchg on bool\n  ufs: remove unessecary blk_flush_plug\n  block: make the flush insertion use the tail of the dispatch list\n  block: get rid of elv_insert() interface\n  block: dump request state on seeing a corrupted request completion\n"
    },
    {
      "commit": "d0de4dc584ec6aa3b26fffea320a8457827768fc",
      "tree": "6895419a694ba323c6b18cdb6aa2714892b6f481",
      "parents": [
        "623dda65b6f71e6474f3f156dbed2acf6ff43584"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Apr 05 17:20:50 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 05 15:27:14 2011 -0700"
      },
      "message": "inotify: fix double free/corruption of stuct user\n\nOn an error path in inotify_init1 a normal user can trigger a double\nfree of struct user.  This is a regression introduced by a2ae4cc9a16e\n(\"inotify: stop kernel memory leak on file creation failure\").\n\nWe fix this by making sure that if a group exists the user reference is\ndropped when the group is cleaned up.  We should not explictly drop the\nreference on error and also drop the reference when the group is cleaned\nup.\n\nThe new lifetime rules are that an inotify group lives from\ninotify_new_group to the last fsnotify_put_group.  Since the struct user\nand inotify_devs are directly tied to this lifetime they are only\nchanged/updated in those two locations.  We get rid of all special\ncasing of struct user or user-\u003einotify_devs.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: stable@kernel.org (2.6.37 and up)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7dcda1c96d7c643101d4a05579ef4512a4baa7ef",
      "tree": "62051d63c47a3df7381cdc294815e79da5ebdc93",
      "parents": [
        "929e27252e8ca69363f81f26af5eaba62cb4c572"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:51:48 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:51:48 2011 +0200"
      },
      "message": "fs: export empty_aops\n\nWith the -\u003esync_page() hook gone, we have a few users that\nadd their own static address_space_operations without any\nfunctions defined.\n\nfs/inode.c already has an empty_aops that it uses for init\npurposes. Lets export that and use it in the places where\nan otherwise empty aops was defined.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ee3dea3549444e6e76d27af48b4929983e6f023c",
      "tree": "73bb5266cc383717139f50d4b077d5301c14cb53",
      "parents": [
        "53d63e6b0dfb95882ec0219ba6bbd50cde423794"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Mar 30 12:17:43 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:51:37 2011 +0200"
      },
      "message": "ufs: remove unessecary blk_flush_plug\n\nWe already flush the per-process plugging list when context switching,\nso a blk_flush_plug call just before a yield() is not needed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "884b8267d5f13bdcdc7e675ecbd0dbb0257689bb",
      "tree": "637c734a7466e43d3786968891e746c5b70d6a4b",
      "parents": [
        "d14f5b810b49c7dbd1a01be1c6d3641d46090080",
        "c9ddec74aa950a220cc4caa5215cfc5d886050b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 05 12:29:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 05 12:29:25 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: don\u0027t warn in btrfs_add_orphan\n  Btrfs: fix free space cache when there are pinned extents and clusters V2\n  Btrfs: Fix uninitialized root flags for subvolumes\n  btrfs: clear __GFP_FS flag in the space cache inode\n  Btrfs: fix memory leak in start_transaction()\n  Btrfs: fix memory leak in btrfs_ioctl_start_sync()\n  Btrfs: fix subvol_sem leak in btrfs_rename()\n  Btrfs: Fix oops for defrag with compression turned on\n  Btrfs: fix /proc/mounts info.\n  Btrfs: fix compiler warning in file.c\n"
    },
    {
      "commit": "7da6443aca9be29c6948dcbd636ad50154d0bc0c",
      "tree": "e7489f3d988171c4737f46ce6120411e995ed2ac",
      "parents": [
        "95169535113073993a3ed97ecc21831657f42a80"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Apr 04 17:16:39 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 11:07:37 2011 +0300"
      },
      "message": "UBIFS: fix debugging failure in dbg_check_space_info\n\nThis patch fixes a debugging failure with which looks like this:\nUBIFS error (pid 32313): dbg_check_space_info: free space changed from 6019344 to 6022654\n\nThe reason for this failure is described in the comment this patch adds\nto the code. But in short - \u0027c-\u003efreeable_cnt\u0027 may be different before\nand after re-mounting, and this is normal. So the debugging code should\nmake sure that free space calculations do not depend on \u0027c-\u003efreeable_cnt\u0027.\n\nA similar issue has been reported here:\nhttp://lists.infradead.org/pipermail/linux-mtd/2011-April/034647.html\n\nThis patch should fix it.\n\nFor the -stable guys: this patch is only relevant for kernels 2.6.30\nonwards.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org [2.6.30+]\n"
    },
    {
      "commit": "95169535113073993a3ed97ecc21831657f42a80",
      "tree": "7f118921eb0d46effe0f9bd4e4d766ead16bd663",
      "parents": [
        "cc6a86b950d69cfe542ee0d0ff30790152936a00"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Apr 01 10:16:17 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:46:01 2011 +0300"
      },
      "message": "UBIFS: fix error path in dbg_debugfs_init_fs\n\nThe debug interface is substandard and on error returns either\nNULL or an error code packed in the pointer. So using \"IS_ERR\"\nfor the pointers returned by debugfs function is incorrect.\nInstead, we should use IS_ERR_OR_NULL.\n\nThis path is an improved vestion of the original patch from\nPhil Carmody.\n\nReported-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "cc6a86b950d69cfe542ee0d0ff30790152936a00",
      "tree": "209ac625bd17d661bc086f75615c8ac712309981",
      "parents": [
        "81354de3d8691c2dedcc686cd2c167819ff0df10"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Apr 01 10:10:52 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:46:01 2011 +0300"
      },
      "message": "UBIFS: unify error path dbg_debugfs_init_fs\n\nThis is just a small clean-up patch which simlifies and unifies the\nerror path in the dbg_debugfs_init_fs(). We have common error path\nfor all failure cases in this function except of the very first\ncase. And this patch makes the first failure case use the same\nerror path as the other cases by using the \u0027fname\u0027 and \u0027dent\u0027\nvariables.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "81354de3d8691c2dedcc686cd2c167819ff0df10",
      "tree": "0e48973dcf80774eef93575effdb4982689e5909",
      "parents": [
        "c88ac00c5af70c2a0741da14b22cdcf8507ddd92"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Mar 30 11:18:54 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:45:45 2011 +0300"
      },
      "message": "UBIFS: do not select KALLSYMS_ALL\n\nAll UBIFS needs is to make sure we stacktraces when UBIFS debugging\nis enabled. It is enough to select KALLSYMS for this, KALLSYMS_ALL\nis not necessary. Moreover, Randy Dunlap reported that UBIFS causes\nthe following Kconfig dependency warning:\n\nwarning: (UBIFS_FS_DEBUG \u0026\u0026 LOCKDEP \u0026\u0026 LATENCYTOP) selects KALLSYMS_ALL\nwhich has unmet direct dependencies (DEBUG_KERNEL \u0026\u0026 KALLSYMS)\n\nThe reason is that KALLSYMS_ALL requires DEBUG_KERNEL and KALLSYMS, so\nideally, to select KALLSYMS_ALL we\u0027d need to select DEBUG_KERNEL and\nKALLSYMS first.\n\nThis seems to be too much to select. The easiest way to go is to forget\nabout KALLSYMS_ALL and just select KALLSYMS when UBIFS debugging is\nenabled - that should be enough for stackdumps.\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "c88ac00c5af70c2a0741da14b22cdcf8507ddd92",
      "tree": "5561ff6e47406f58e71eda4700c5a3f2694c6f71",
      "parents": [
        "54acbaaa523ca0bd284a18f67ad213c379679e86"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 29 09:45:21 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:45:09 2011 +0300"
      },
      "message": "UBIFS: fix assertion warnings\n\nThis patch fixes UBIFS assertion warnings like:\n\nUBIFS assert failed in ubifs_leb_unmap at 135 (pid 29365)\nPid: 29365, comm: integck Tainted: G          I 2.6.37-ubi-2.6+ #34\nCall Trace:\n [\u003cffffffffa047c663\u003e] ubifs_lpt_init+0x95e/0x9ee [ubifs]\n [\u003cffffffffa04623a7\u003e] ubifs_remount_fs+0x2c7/0x762 [ubifs]\n [\u003cffffffff810f066e\u003e] do_remount_sb+0xb6/0x101\n [\u003cffffffff81106ff4\u003e] ? do_mount+0x191/0x78e\n [\u003cffffffff811070bb\u003e] do_mount+0x258/0x78e\n [\u003cffffffff810da1e8\u003e] ? alloc_pages_current+0xa2/0xc5\n [\u003cffffffff81107674\u003e] sys_mount+0x83/0xbd\n [\u003cffffffff81009a12\u003e] system_call_fastpath+0x16/0x1b\n\nThey happen when we re-mount from R/O mode to R/W mode. While\nre-mounting, we write to the media, but we still have the c-\u003ero_mount\nflag set. The fix is very simple - just clear the flag before\nstarting re-mounting R/W.\n\nThese warnings are caused by the following commit:\n2ef13294d29bcfb306e0d360f1b97f37b647b0c0\n\nFor -stable guys: this bug was introduced in 2.6.38, this is materieal\nfor 2.6.38-stable.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org [2.6.38]\n"
    },
    {
      "commit": "54acbaaa523ca0bd284a18f67ad213c379679e86",
      "tree": "c6ed0d74270ef84bc605d71feaa09b0511ccece6",
      "parents": [
        "8b229c76765816796eec7ccd428f03bd8de8b525"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 25 19:09:54 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:40:31 2011 +0300"
      },
      "message": "UBIFS: fix oops on error path in read_pnode\n\nThanks to coverity which spotted that UBIFS will oops if \u0027kmalloc()\u0027\nin \u0027read_pnode()\u0027 fails and we dereference a NULL \u0027pnode\u0027 pointer\nwhen we \u0027goto out\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "8b229c76765816796eec7ccd428f03bd8de8b525",
      "tree": "fa8e30710d9365d0f26215d0027dd5408ee2d5fc",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 25 18:33:57 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:39:40 2011 +0300"
      },
      "message": "UBIFS: do not read flash unnecessarily\n\nThis fix makes the \u0027dbg_check_old_index()\u0027 function return\nimmediately if debugging is disabled, instead of executing\nincorrect \u0027goto out\u0027 which causes UBIFS to:\n\n1. Allocate memory\n2. Read the flash\n\nOn every commit. OK, we do not commit that often, but it is\nstill silly to do unneeded I/O anyway.\n\nCredits to coverity for spotting this silly issue.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c9ddec74aa950a220cc4caa5215cfc5d886050b7",
      "tree": "b8e40481dfe5f7e3bd749a29c6f0df70f1efd171",
      "parents": [
        "43be21462d8c263e2449b52b23326232fd710bee"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 28 13:43:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:20:24 2011 -0400"
      },
      "message": "Btrfs: don\u0027t warn in btrfs_add_orphan\n\nWhen I moved the orphan adding to btrfs_truncate I missed the fact that during\norphan cleanup we just add the orphan items to the orphan list without going\nthrough btrfs_orphan_add, which results in lots of warnings on mount if you have\nany orphan items that need to be truncated.  Just remove this warning since it\u0027s\nok, this will allow all of the normal space accounting take place.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "43be21462d8c263e2449b52b23326232fd710bee",
      "tree": "096a8cf240ffa7aa83625245ccdba08970e46612",
      "parents": [
        "08fe4db170b4193603d9d31f40ebaf652d07ac9c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Apr 01 14:55:00 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:20:24 2011 -0400"
      },
      "message": "Btrfs: fix free space cache when there are pinned extents and clusters V2\n\nI noticed a huge problem with the free space cache that was presenting\nas an early ENOSPC.  Turns out when writing the free space cache out I\nforgot to take into account pinned extents and more importantly\nclusters.  This would result in us leaking free space everytime we\nunmounted the filesystem and remounted it.\n\nI fix this by making sure to check and see if the current block group\nhas a cluster and writing out any entries that are in the cluster to the\ncache, as well as writing any pinned extents we currently have to the\ncache since those will be available for us to use the next time the fs\nmounts.\n\nThis patch also adds a check to the end of load_free_space_cache to make\nsure we got the right amount of free space cache, and if not make sure\nto clear the cache and re-cache the old fashioned way.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "08fe4db170b4193603d9d31f40ebaf652d07ac9c",
      "tree": "2d0d2abe40b77266600653e399d4973a679716a9",
      "parents": [
        "adae52b94e18afa1f84fab67df2a8a872c2f5533"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Mar 28 02:01:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:20:24 2011 -0400"
      },
      "message": "Btrfs: Fix uninitialized root flags for subvolumes\n\nroot_item-\u003eflags and root_item-\u003ebyte_limit are not initialized when\na subvolume is created. This bug is not revealed until we added\nreadonly snapshot support - now you mount a btrfs filesystem and you\nmay find the subvolumes in it are readonly.\n\nTo work around this problem, we steal a bit from root_item-\u003einode_item-\u003eflags,\nand use it to indicate if those fields have been properly initialized.\nWhen we read a tree root from disk, we check if the bit is set, and if\nnot we\u0027ll set the flag and initialize the two fields of the root item.\n\nReported-by: Andreas Philipp \u003cphilipp.andreas@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Andreas Philipp \u003cphilipp.andreas@gmail.com\u003e\ncc: stable@kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "adae52b94e18afa1f84fab67df2a8a872c2f5533",
      "tree": "fb9259b9eac14ac950d127faf1788392081010b0",
      "parents": [
        "6e8df2ae89ab37730c0062782f844c66ecfc97a7"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Mar 31 09:43:23 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:43 2011 -0400"
      },
      "message": "btrfs: clear __GFP_FS flag in the space cache inode\n\nthe object id of the space cache inode\u0027s key is allocated from the relative\nroot, just like the regular file. So we can\u0027t identify space cache inode by\nchecking the object id of the inode\u0027s key, and we have to clear __GFP_FS flag\nat the time we look up the space cache inode.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6e8df2ae89ab37730c0062782f844c66ecfc97a7",
      "tree": "4172619b01d817440d43807da8baec77a14d39d2",
      "parents": [
        "8b2b2d3cbefb605501342adaf64d601b545ed154"
      ],
      "author": {
        "name": "Yoshinori Sano",
        "email": "yoshinori.sano@gmail.com",
        "time": "Sun Apr 03 12:31:28 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:43 2011 -0400"
      },
      "message": "Btrfs: fix memory leak in start_transaction()\n\nFree btrfs_trans_handle when join_transaction() fails\nin start_transaction()\n\nSigned-off-by: Yoshinori Sano \u003cyoshinori.sano@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8b2b2d3cbefb605501342adaf64d601b545ed154",
      "tree": "244e724c20bbdc639f06a7a59a108b1eedd55f10",
      "parents": [
        "b44c59a80ded004e1a82712e5f9e17b131c03221"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Apr 04 01:52:13 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:42 2011 -0400"
      },
      "message": "Btrfs: fix memory leak in btrfs_ioctl_start_sync()\n\nCall btrfs_end_transaction() if btrfs_commit_transaction_async() fails.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b44c59a80ded004e1a82712e5f9e17b131c03221",
      "tree": "36588193bf5cc91d80d9d8376d5bad78f2babd0c",
      "parents": [
        "fe3f566cd19bb6d787c92b2e202c85f929abf3ac"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann@whamcloud.com",
        "time": "Thu Mar 31 13:23:47 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:42 2011 -0400"
      },
      "message": "Btrfs: fix subvol_sem leak in btrfs_rename()\n\nbtrfs_rename() does not release the subvol_sem if the transaction failed to start.\n\nSigned-off-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fe3f566cd19bb6d787c92b2e202c85f929abf3ac",
      "tree": "216c33bb0ed94e7791141939ea763620576d82b0",
      "parents": [
        "200da64e0b039f873f0f20481e6a7d056e7cc6c9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Mar 28 08:30:38 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:42 2011 -0400"
      },
      "message": "Btrfs: Fix oops for defrag with compression turned on\n\nWhen we defrag a file, whose size can be fit into an inline extent,\nwith compression enabled, the compress type is set to be\nfs_info-\u003ecompress_type, which is 0 if the btrfs filesystem is mounted\nwithout compress option. This leads to oops.\n\nReported-by: Daniel Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "200da64e0b039f873f0f20481e6a7d056e7cc6c9",
      "tree": "11cd911aa441efdde26260b72a642daef0fd61f0",
      "parents": [
        "c9149235a42ab93914434fff45c44b45023363f3"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Mar 31 00:44:29 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:41 2011 -0400"
      },
      "message": "Btrfs: fix /proc/mounts info.\n\nSome mount options are not displayed by /proc/mounts.\nThis patch displays the option such as compress_type by /proc/mounts.\n\nEx.\n  [before]\n    $ mount | grep sdc2\n    /dev/sdc2 on /test12 type btrfs (rw,space_cache,compress\u003dlzo)\n    $ cat /proc/mounts | grep sdc2\n    /dev/sdc2 /test12 btrfs rw,relatime,compress 0 0\n\n  [after]\n    $ mount | grep sdc2\n    /dev/sdc2 on /test12 type btrfs (rw,space_cache,compress\u003dlzo)\n    $ cat /proc/mounts | grep sdc2\n    /dev/sdc2 /test12 btrfs rw,relatime,compress\u003dlzo,space_cache 0 0\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c9149235a42ab93914434fff45c44b45023363f3",
      "tree": "827035f0710a01bf35c5c365387f650addfe647f",
      "parents": [
        "d9d04879321af570ea7285c6dad92d9c3cd108a1"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Wed Mar 30 00:57:23 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:41 2011 -0400"
      },
      "message": "Btrfs: fix compiler warning in file.c\n\nWhile compiling Btrfs, I got following messages:\n\n  CC [M]  fs/btrfs/file.o\nfs/btrfs/file.c: In function \u0027__btrfs_buffered_write\u0027:\nfs/btrfs/file.c:909: warning: \u0027ret\u0027 may be used uninitialized in this function\n  CC [M]  fs/btrfs/tree-defrag.o\n\nThis patch fixes compiler warning.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b03f24567ce7caf2420b8be4c6eb74c191d59a91",
      "tree": "f0337cbc006ff57bdaed3d48d60d0054d23afb74",
      "parents": [
        "523334ba508a8baaf5fc9f15fbad9ed04f334f48"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 31 18:36:52 2011 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Apr 01 00:23:46 2011 +0200"
      },
      "message": "quota: Don\u0027t write quota info in dquot_commit()\n\nThere\u0027s no reason to write quota info in dquot_commit(). The writing is a\nrelict from the old days when we didn\u0027t have dquot_acquire() and\ndquot_release() and thus dquot_commit() could have created / removed quota\nstructures from the file. These days dquot_commit() only updates usage counters\n/ limits in quota structure and thus there\u0027s no need to write quota info.\n\nThis also fixes an issue with journaling filesystem which didn\u0027t reserve\nenough space in the transaction for write of quota info (it could have been\ndirty at the time of dquot_commit() because of a race with other operation\nchanging it).\n\nCC: stable@kernel.org\nReported-and-tested-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "85cf0ac38c10b1f19fb1682354df1f7d9380a973",
      "tree": "4a892a01cd844f574566b8b3381aab03edb4dea2",
      "parents": [
        "50f3515828024582402044bcced6804c070c491c",
        "af71dda0b8e667d03eec21d25f90265eec5efea1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 30 09:46:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 30 09:46:36 2011 -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 whitespace coding style issues\n  nilfs2: fix oops due to a bad aops initialization\n  nilfs2: fix data loss in mmap page write for hole blocks\n"
    },
    {
      "commit": "50f3515828024582402044bcced6804c070c491c",
      "tree": "f9cf25bee56d0ca54acf4d571536268774dc56ed",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067",
        "4b2a58abd1e17c0ee53c8dded879e015917cca67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 30 09:46:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 30 09:46:09 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  libceph: Create a new key type \"ceph\".\n  libceph: Get secret from the kernel keys api when mounting with key\u003dNAME.\n  ceph: Move secret key parsing earlier.\n  libceph: fix null dereference when unregistering linger requests\n  ceph: unlock on error in ceph_osdc_start_request()\n  ceph: fix possible NULL pointer dereference\n  ceph: flush msgr_wq during mds_client shutdown\n"
    },
    {
      "commit": "af71dda0b8e667d03eec21d25f90265eec5efea1",
      "tree": "fe070073c86352f4ffd30381b8f7ba3a158d4619",
      "parents": [
        "d611b22f1a5ddd0823e9d6a30bac91219f800e41"
      ],
      "author": {
        "name": "Nicolas Kaiser",
        "email": "nikai@nikai.net",
        "time": "Sat Mar 19 16:47:54 2011 +0100"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 17:39:54 2011 +0900"
      },
      "message": "nilfs2: fix whitespace coding style issues\n\nFixes whitespace coding style issues.\n\nSigned-off-by: Nicolas Kaiser \u003cnikai@nikai.net\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d611b22f1a5ddd0823e9d6a30bac91219f800e41",
      "tree": "a0896c5007c47662dd52158e76972cac7a682d4c",
      "parents": [
        "34094537943113467faee98fe67c8a3d3f9a0a8b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 11:49:20 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 17:39:25 2011 +0900"
      },
      "message": "nilfs2: fix oops due to a bad aops initialization\n\nNilfs in 2.6.39-rc1 hit the following oops:\n\n BUG: unable to handle kernel NULL pointer dereference at 0000000000000048\n IP: [\u003cffffffff810ac235\u003e] try_to_release_page+0x2a/0x3d\n PGD 234cb6067 PUD 234c72067 PMD 0\n Oops: 0000 [#1] SMP\n \u003csnip\u003e\n Process truncate (pid: 10995, threadinfo ffff8802353c2000, task ffff880234cfa000)\n Stack:\n  ffff8802333c77b8 ffffffff810b64b0 0000000000003802 ffffffffa0052cca\n  0000000000000000 ffff8802353c3b58 0000000000000000 ffff8802353c3b58\n  0000000000000001 0000000000000000 ffffea0007b92308 ffffea0007b92308\n Call Trace:\n  [\u003cffffffff810b64b0\u003e] ? invalidate_inode_pages2_range+0x15f/0x273\n  [\u003cffffffffa0052cca\u003e] ? nilfs_palloc_get_block+0x2d/0xaf [nilfs2]\n  [\u003cffffffff810589e7\u003e] ? bit_waitqueue+0x14/0xa1\n  [\u003cffffffff81058ab1\u003e] ? wake_up_bit+0x10/0x20\n  [\u003cffffffffa00433fd\u003e] ? nilfs_forget_buffer+0x66/0x7a [nilfs2]\n  [\u003cffffffffa00467b8\u003e] ? nilfs_btree_concat_left+0x5c/0x77 [nilfs2]\n  [\u003cffffffffa00471fc\u003e] ? nilfs_btree_delete+0x395/0x3cf [nilfs2]\n  [\u003cffffffffa00449a3\u003e] ? nilfs_bmap_do_delete+0x6e/0x79 [nilfs2]\n  [\u003cffffffffa0045845\u003e] ? nilfs_btree_last_key+0x14b/0x15e [nilfs2]\n  [\u003cffffffffa00449dd\u003e] ? nilfs_bmap_truncate+0x2f/0x83 [nilfs2]\n  [\u003cffffffffa0044ab2\u003e] ? nilfs_bmap_last_key+0x35/0x62 [nilfs2]\n  [\u003cffffffffa003e99b\u003e] ? nilfs_truncate_bmap+0x6b/0xc7 [nilfs2]\n  [\u003cffffffffa003ee4a\u003e] ? nilfs_truncate+0x79/0xe4 [nilfs2]\n  [\u003cffffffff810b6c00\u003e] ? vmtruncate+0x33/0x3b\n  [\u003cffffffffa003e8f1\u003e] ? nilfs_setattr+0x4d/0x8c [nilfs2]\n  [\u003cffffffff81026106\u003e] ? do_page_fault+0x31b/0x356\n  [\u003cffffffff810f9d61\u003e] ? notify_change+0x17d/0x262\n  [\u003cffffffff810e5046\u003e] ? do_truncate+0x65/0x80\n  [\u003cffffffff810e52af\u003e] ? sys_ftruncate+0xf1/0xf6\n  [\u003cffffffff8132c012\u003e] ? system_call_fastpath+0x16/0x1b\n Code: c3 48 83 ec 08 48 8b 17 48 8b 47 18 80 e2 01 75 04 0f 0b eb fe 48 8b 17 80 e6 20 74 05 31 c0 41 59 c3 48 85 c0 74 11 48 8b 40 58\n  8b 40 48 48 85 c0 74 04 41 58 ff e0 59 e9 b1 b5 05 00 41 54\n RIP  [\u003cffffffff810ac235\u003e] try_to_release_page+0x2a/0x3d\n  RSP \u003cffff8802353c3b08\u003e\n CR2: 0000000000000048\n\nThis oops was brought in by the change \"block: remove per-queue\nplugging\" (commit: 7eaceaccab5f40bb).  It initializes mapping-\u003ea_ops\nwith a NULL pointer for some pages in nilfs (e.g. btree node pages),\nbut mm code doesn\u0027t NULL pointer checks against mapping-\u003ea_ops. (the\ncheck is done for each callback function)\n\nThis corrects the aops initialization and fixes the oops.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "34094537943113467faee98fe67c8a3d3f9a0a8b",
      "tree": "b848b18c90bfd29655e5806e81c54d02946c980d",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 27 22:50:49 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 10:45:31 2011 +0900"
      },
      "message": "nilfs2: fix data loss in mmap page write for hole blocks\n\nFrom the result of a function test of mmap, mmap write to shared pages\nturned out to be broken for hole blocks.  It doesn\u0027t write out filled\nblocks and the data will be lost after umount.  This is due to a bug\nthat the target file is not queued for log writer when filling hole\nblocks.\n\nAlso, nilfs_page_mkwrite function exits normal code path even after\nsuccessfully filled hole blocks due to a change of block_page_mkwrite\nfunction; just after nilfs was merged into the mainline,\nblock_page_mkwrite() started to return VM_FAULT_LOCKED instead of zero\nby the patch \"mm: close page_mkwrite races\" (commit:\nb827e496c893de0c).  The current nilfs_page_mkwrite() is not handling\nthis value properly.\n\nThis corrects nilfs_page_mkwrite() and will resolve the data loss\nproblem in mmap write.\n\n[This should be applied to every kernel since 2.6.30 but a fix is\n needed for 2.6.37 and prior kernels]\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e  [2.6.38]\n"
    },
    {
      "commit": "8323c3aa74cd92465350294567142d12ffdcc963",
      "tree": "052e7374393994eea8d534f98ee1bc7acea4c2d9",
      "parents": [
        "fbdb9190482fd83a3eb20cdeb0da454759f479d7"
      ],
      "author": {
        "name": "Tommi Virtanen",
        "email": "tommi.virtanen@dreamhost.com",
        "time": "Fri Mar 25 16:32:57 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 29 12:11:16 2011 -0700"
      },
      "message": "ceph: Move secret key parsing earlier.\n\nThis makes the base64 logic be contained in mount option parsing,\nand prepares us for replacing the homebew key management with the\nkernel key retention service.\n\nSigned-off-by: Tommi Virtanen \u003ctommi.virtanen@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0444d76ae64fffc7851797fc1b6ebdbb44ac504a",
      "tree": "d0678f0f8c82f3c2b2c66a6b47242eef1b323142",
      "parents": [
        "cb1817b37313b4b6c7f8f93c730553dd3cb6ac57"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 29 18:08:50 2011 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 29 07:50:34 2011 -0700"
      },
      "message": "fs: don\u0027t use igrab() while holding i_lock\n\nFix the incorrect use of igrab() inside the i_lock in NFS and Ceph‥\n\nIf we are already holding the i_lock, we have a reference to the\ninode so we can safely use ihold() to gain an extra reference. This\navoids hangs due to lock recursion on the i_lock now that the\ninode_lock is gone and igrab() uses the i_lock itself.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-fsdevel@vger.kernel.org\nCc: Ryan Mallon \u003cryan@bluewatersys.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5850150d0b9ae16840c5d9846f9d5a759996a15",
      "tree": "6e3f66bff48916af728aa4173f2b7657b31c2600",
      "parents": [
        "243b422af9ea9af4ead07a8ad54c90d4f9b6081a",
        "0e6e847ffe37436e331c132639f9f872febce82e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:51:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:51:02 2011 -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: stop using the page cache to back the buffer cache\n  xfs: register the inode cache shrinker before quotachecks\n  xfs: xfs_trans_read_buf() should return an error on failure\n  xfs: introduce inode cluster buffer trylocks for xfs_iflush\n  vmap: flush vmap aliases when mapping fails\n  xfs: preallocation transactions do not need to be synchronous\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_buf.c due to plug removal.\n"
    },
    {
      "commit": "7f5fe3ec8eab23cc28e8fb7d23b4777ad6a05734",
      "tree": "1c553d6a92115aea7d24d279c0bee5dc6e894902",
      "parents": [
        "212a17ab878305600e607f637d2d8a49d9f7ef25",
        "b5695d04634fa4ccca7dcbc05bb4a66522f02e0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:43:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:43:25 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: write lock requested keys\n  eCryptfs: move ecryptfs_find_auth_tok_for_sig() call before mutex_lock\n  eCryptfs: verify authentication tokens before their use\n  eCryptfs: modified size of keysig in the ecryptfs_key_sig structure\n  eCryptfs: removed num_global_auth_toks from ecryptfs_mount_crypt_stat\n  eCryptfs: ecryptfs_keyring_auth_tok_for_sig() bug fix\n  eCryptfs: Unlock page in write_begin error path\n  ecryptfs: modify write path to encrypt page in writepage\n  eCryptfs: Remove ECRYPTFS_NEW_FILE crypt stat flag\n  eCryptfs: Remove unnecessary grow_file() function\n"
    },
    {
      "commit": "212a17ab878305600e607f637d2d8a49d9f7ef25",
      "tree": "64ad97fcc3d5c49ebd735f5508643c798aeecddf",
      "parents": [
        "baaca1a61497d97cec595fedce03b0a23b983e64",
        "d9d04879321af570ea7285c6dad92d9c3cd108a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:31:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:31:05 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus-unmerged\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus-unmerged\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (45 commits)\n  Btrfs: fix __btrfs_map_block on 32 bit machines\n  btrfs: fix possible deadlock by clearing __GFP_FS flag\n  btrfs: check link counter overflow in link(2)\n  btrfs: don\u0027t mess with i_nlink of unlocked inode in rename()\n  Btrfs: check return value of btrfs_alloc_path()\n  Btrfs: fix OOPS of empty filesystem after balance\n  Btrfs: fix memory leak of empty filesystem after balance\n  Btrfs: fix return value of setflags ioctl\n  Btrfs: fix uncheck memory allocations\n  btrfs: make inode ref log recovery faster\n  Btrfs: add btrfs_trim_fs() to handle FITRIM\n  Btrfs: adjust btrfs_discard_extent() return errors and trimmed bytes\n  Btrfs: make btrfs_map_block() return entire free extent for each device of RAID0/1/10/DUP\n  Btrfs: make update_reserved_bytes() public\n  btrfs: return EXDEV when linking from different subvolumes\n  Btrfs: Per file/directory controls for COW and compression\n  Btrfs: add datacow flag in inode flag\n  btrfs: use GFP_NOFS instead of GFP_KERNEL\n  Btrfs: check return value of read_tree_block()\n  btrfs: properly access unaligned checksum buffer\n  ...\n\nFix up trivial conflicts in fs/btrfs/volumes.c due to plug removal in\nthe block layer.\n"
    },
    {
      "commit": "03e4970c10151c5fb25ddd7e9a142d63c6a8d058",
      "tree": "393447b9d0a6ebc64689d6e793e80ad549b97e35",
      "parents": [
        "1788c208aab15f9d9d1d24cff0d0c64b5c73bbee",
        "272b62c1f0f6f742046e45b50b6fec98860208a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 13:03:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 13:03:31 2011 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (39 commits)\n  Treat writes as new when holes span across page boundaries\n  fs,ocfs2: Move o2net_get_func_run_time under CONFIG_OCFS2_FS_STATS.\n  ocfs2/dlm: Move kmalloc() outside the spinlock\n  ocfs2: Make the left masklogs compat.\n  ocfs2: Remove masklog ML_AIO.\n  ocfs2: Remove masklog ML_UPTODATE.\n  ocfs2: Remove masklog ML_BH_IO.\n  ocfs2: Remove masklog ML_JOURNAL.\n  ocfs2: Remove masklog ML_EXPORT.\n  ocfs2: Remove masklog ML_DCACHE.\n  ocfs2: Remove masklog ML_NAMEI.\n  ocfs2: Remove mlog(0) from fs/ocfs2/dir.c\n  ocfs2: remove NAMEI from symlink.c\n  ocfs2: Remove masklog ML_QUOTA.\n  ocfs2: Remove mlog(0) from quota_local.c.\n  ocfs2: Remove masklog ML_RESERVATIONS.\n  ocfs2: Remove masklog ML_XATTR.\n  ocfs2: Remove masklog ML_SUPER.\n  ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.c\n  ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.c\n  ...\n\nFix up trivial conflict in fs/ocfs2/super.c\n"
    },
    {
      "commit": "272b62c1f0f6f742046e45b50b6fec98860208a0",
      "tree": "e57667bcd599a145f845fdb6aa4925ead19c0592",
      "parents": [
        "99bdc3880c611c7f2061fbd5372ef81b40217e26"
      ],
      "author": {
        "name": "Goldwyn Rodrigues",
        "email": "rgoldwyn@gmail.com",
        "time": "Thu Feb 17 09:44:40 2011 -0600"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon Mar 28 09:44:58 2011 -0700"
      },
      "message": "Treat writes as new when holes span across page boundaries\n\nWhen a hole spans across page boundaries, the next write forces\na read of the block. This could end up reading existing garbage\ndata from the disk in ocfs2_map_page_blocks. This leads to\nnon-zero holes. In order to avoid this, mark the writes as new\nwhen the holes span across page boundaries.\n\nSigned-off-by: Goldwyn Rodrigues \u003crgoldwyn@suse.de\u003e\nSigned-off-by: jlbec \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "99bdc3880c611c7f2061fbd5372ef81b40217e26",
      "tree": "ef68a53e28e9ee53ce9db3642bab5fa5b3d44866",
      "parents": [
        "ed59992e8d91b70053c53d846a76f7e1ac000454",
        "b4e1b7e88b2c87c358c2a88bec0c76d25accc604"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon Mar 28 09:44:26 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon Mar 28 09:44:26 2011 -0700"
      },
      "message": "Merge branch \u0027mlog_replace_for_39\u0027 of git://repo.or.cz/taoma-kernel into ocfs2-merge-window-fix\n"
    },
    {
      "commit": "ed59992e8d91b70053c53d846a76f7e1ac000454",
      "tree": "f8e3cebab68a6a5919225e95dde9f3f3a9d00817",
      "parents": [
        "770c4d81e0d2ca45516ddc9ae0a69565790b5533"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Fri Mar 18 17:01:08 2011 +0600"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon Mar 28 09:43:28 2011 -0700"
      },
      "message": "fs,ocfs2: Move o2net_get_func_run_time under CONFIG_OCFS2_FS_STATS.\n\nWhen CONFIG_DEBUG_FS\u003dy and CONFIG_OCFS2_FS_STATS\u003dn, we get the\nfollowing warning:\n\nfs/ocfs2/cluster/tcp.c:213:16: warning: ‘o2net_get_func_run_time’\ndefined but not used\n\nSince o2net_get_func_run_time is only called from\no2net_update_recv_stats, so move it under CONFIG_OCFS2_FS_STATS.\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: jlbec \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "1788c208aab15f9d9d1d24cff0d0c64b5c73bbee",
      "tree": "faf11b0fe60042af282a57f339031728dda28594",
      "parents": [
        "15b7cf1416c0e3ae6163ade3349d717fe2729952",
        "a271c5a0dea418931b6a903ef85adc30ad4c54be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 07:52:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 07:52:58 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Ensure that rpc_release_resources_task() can be called twice.\n  NFS: Don\u0027t leak RPC clients in NFSv4 secinfo negotiation\n  NFS: Fix a hang in the writeback path\n"
    },
    {
      "commit": "d9d04879321af570ea7285c6dad92d9c3cd108a1",
      "tree": "5a861897ca626d7bfa95ffc82a8448da2987533d",
      "parents": [
        "1561deda687eef0e95065f1268d680ddc5976ee7"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Mar 27 21:23:21 2011 -0400"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:59 2011 -0400"
      },
      "message": "Btrfs: fix __btrfs_map_block on 32 bit machines\n\nRecent changes for discard support didn\u0027t compile,\nthis fixes them not to try and % 64 bit numbers.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1561deda687eef0e95065f1268d680ddc5976ee7",
      "tree": "3ad8a8305fc3ca960cf7ef472f64d9cfef246ffd",
      "parents": [
        "c055e99eea6e4f614267632fac546e7896c0227b"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Sun Mar 27 16:07:36 2011 +0800"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:58 2011 -0400"
      },
      "message": "btrfs: fix possible deadlock by clearing __GFP_FS flag\n\nUsing the GFP_HIGHUSER_MOVABLE flag to allocate the metadata\u0027s page may cause\ndeadlock.\n  Task1\n  open()\n    ...\n    btrfs_search_slot()\n      ...\n      btrfs_cow_block()\n\t...\n\talloc_page()\n\t  wait for reclaiming\n\t\t\t\t\tshrink_slab()\n\t\t\t\t\t  ...\n\t\t\t\t\t  shrink_icache_memory()\n\t\t\t\t\t    ...\n\t\t\t\t\t    btrfs_evict_inode()\n\t\t\t\t\t      ...\n\t\t\t\t\t      btrfs_search_slot()\n\nIf the path is locked by task1, the deadlock happens.\n\nSo the btree\u0027s page cache is different with the file\u0027s page cache, it can not\nallocate pages by GFP_HIGHUSER_MOVABLE flag, we must clear __GFP_FS flag in\nGFP_HIGHUSER_MOVABLE flag.\n\nReported-by: Itaru Kitayama \u003ckitayama@cl.bb4u.ne.jp\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c055e99eea6e4f614267632fac546e7896c0227b",
      "tree": "df65ff7c1a3b0c4301edffbadd9f23f9023e5159",
      "parents": [
        "92986796d84ef939e304099dece32572a755b280"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Mar 04 17:15:18 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:56 2011 -0400"
      },
      "message": "btrfs: check link counter overflow in link(2)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "92986796d84ef939e304099dece32572a755b280",
      "tree": "d3356c2aa2bbc64166b09647c8760f7a6941df44",
      "parents": [
        "c2db1073fdf9757e6fd8b4a59d15b6ecc7a2af8a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Mar 04 17:14:37 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:55 2011 -0400"
      },
      "message": "btrfs: don\u0027t mess with i_nlink of unlocked inode in rename()\n\nold_inode is not locked; it\u0027s not safe to play with its link\ncount.  Instead of bumping it and calling btrfs_unlink_inode(),\nadd a variant of the latter that does not do btrfs_drop_nlink()/\nbtrfs_update_inode(), call it instead of btrfs_inc_nlink()/\nbtrfs_unlink_inode() and do btrfs_update_inode() ourselves.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c2db1073fdf9757e6fd8b4a59d15b6ecc7a2af8a",
      "tree": "024264b2d27f75b967efbde01060ebb8626fa39d",
      "parents": [
        "c59021f846881a957ac5afe456d0f59d6a517b61"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Tue Mar 01 06:48:31 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:54 2011 -0400"
      },
      "message": "Btrfs: check return value of btrfs_alloc_path()\n\nAdding the check on the return value of btrfs_alloc_path() to several places.\nAnd, some of callers are modified by this change.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c59021f846881a957ac5afe456d0f59d6a517b61",
      "tree": "63e0552f2850b55dcc6bde31e0610e5f22046675",
      "parents": [
        "9f7c43c96727a53bea45f7f2549d897f0a6117b8"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Mon Mar 07 02:13:14 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:53 2011 -0400"
      },
      "message": "Btrfs: fix OOPS of empty filesystem after balance\n\nbtrfs will remove unused block groups after balance.\nWhen a empty filesystem is balanced, the block group with tag \"DATA\" may be\ndropped, and after umount and mount again, it will not find \"DATA\" space_info\nand lead to OOPS.\nSo we initial the necessary space_infos(DATA, SYSTEM, METADATA) to avoid OOPS.\n\nReported-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9f7c43c96727a53bea45f7f2549d897f0a6117b8",
      "tree": "92037cbb39566fa8ba1b8a7644c8cb445be2c48a",
      "parents": [
        "2d4e6f6ad2b9f84f568d07dae4bdbc7f48a70ad1"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Mon Mar 07 02:13:33 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:52 2011 -0400"
      },
      "message": "Btrfs: fix memory leak of empty filesystem after balance\n\nAfter Josef\u0027s patch(commit 3c14874acc71180553fb5aba528e3cf57c5b958b),\nbtrfs will exclude super bytes when reading block groups(by marking a extent\nstate UPTODATE).  However, these bytes do not get freed while balance remove\nunused block groups, and we won\u0027t process those removed ones any more, when\nwe do umount and unload the btrfs module,  btrfs hits a memory leak.\n\nThis patch add the missing free operation.\n\nReproduce steps:\n$ mkfs.btrfs disk\n$ mount disk /mnt/btrfs -o loop\n$ btrfs filesystem balance /mnt/btrfs\n$ umount /mnt/btrfs\n$ rmmod btrfs\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2d4e6f6ad2b9f84f568d07dae4bdbc7f48a70ad1",
      "tree": "eb1490b2b5383fc92eaf276ef31011ec206a2439",
      "parents": [
        "dac97e516c617f9c797f64b0224050b70aea30c7"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 24 09:38:16 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:51 2011 -0400"
      },
      "message": "Btrfs: fix return value of setflags ioctl\n\nsetflags ioctl should return error when any checks fail.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nReviewed-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dac97e516c617f9c797f64b0224050b70aea30c7",
      "tree": "c5c7e7a40e649ee9beb9014b284d3a6e66fb94f2",
      "parents": [
        "c622ae6085d0c6ad834213bbf1477eb311359078"
      ],
      "author": {
        "name": "Yoshinori Sano",
        "email": "yoshinori.sano@gmail.com",
        "time": "Tue Feb 15 12:01:42 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:49 2011 -0400"
      },
      "message": "Btrfs: fix uncheck memory allocations\n\nTo make Btrfs code more robust, several return value checks where memory\nallocation can fail are introduced. I use BUG_ON where I don\u0027t know how\nto handle the error properly, which increases the number of using the\nnotorious BUG_ON, though.\n\nSigned-off-by: Yoshinori Sano \u003cyoshinori.sano@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c622ae6085d0c6ad834213bbf1477eb311359078",
      "tree": "27e12a77c1759d17102c702606d535e78d7c3003",
      "parents": [
        "f7039b1d5c32241f87a513e33120db36bf30264d"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Sat Mar 26 08:01:12 2011 -0400"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:48 2011 -0400"
      },
      "message": "btrfs: make inode ref log recovery faster\n\nWhen we recover from crash via write-ahead log tree and process\nthe inode refs, for each btrfs_inode_ref item, we will\n1) check if we already have a perfect match in fs/file tree, if\n   we have, then we\u0027re done.\n2) search the corresponding back reference in fs/file tree, and\n   check all the names in this back reference to see if they are\n   also in the log to avoid conflict corners.\n3) recover the logged inode refs to fs/file tree.\n\nIn current btrfs, however,\n- for 2)\u0027s check, once is enough, since the checked back reference\n  will remain unchanged after processing all the inode refs belonged\n  to the key.\n- it has no need to do another 1) between 2) and 3).\n\nI\u0027ve made a small test to show how it improves,\n\n$dd if\u003d/dev/zero of\u003dfoobar bs\u003d4K count\u003d1\n$sync\n$make 100 hard links continuously, like ln foobar link_i\n$fsync foobar\n$echo b \u003e /proc/sysrq-trigger\nafter reboot\n$time mount DEV PATH\n\nwithout patch:\nreal    0m0.285s\nuser    0m0.001s\nsys     0m0.009s\n\nwith patch:\nreal    0m0.123s\nuser    0m0.000s\nsys     0m0.010s\n\nChangelog v1-\u003ev2:\n- fix double free - pointed by David Sterba\nChangelog v2-\u003ev3:\n- adjust free order\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f7039b1d5c32241f87a513e33120db36bf30264d",
      "tree": "e911bc79c795fceb3e9a618d8f18571c2a776307",
      "parents": [
        "5378e60734f5b7bfe1b43dc191aaf6131c1befe7"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:28 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:47 2011 -0400"
      },
      "message": "Btrfs: add btrfs_trim_fs() to handle FITRIM\n\nWe take an free extent out from allocator, trim it, then put it back,\nbut before we trim the block group, we should make sure the block group is\ncached, so plus a little change to make cache_block_group() run without a\ntransaction.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5378e60734f5b7bfe1b43dc191aaf6131c1befe7",
      "tree": "b02c78e744a2a148b60a9c8046abef3f4381f544",
      "parents": [
        "fce3bb9a1bd492793170e117c60d5718b7896af4"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:27 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:46 2011 -0400"
      },
      "message": "Btrfs: adjust btrfs_discard_extent() return errors and trimmed bytes\n\nCallers of btrfs_discard_extent() should check if we are mounted with -o discard,\nas we want to make fitrim to work even the fs is not mounted with -o discard.\nAlso we should use REQ_DISCARD to map the free extent to get a full mapping,\nlast we only return errors if\n1. the error is not a EOPNOTSUPP\n2. no device supports discard\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fce3bb9a1bd492793170e117c60d5718b7896af4",
      "tree": "6704e735635531438bdc7dda074ad5e89d89d8eb",
      "parents": [
        "b4d00d569a49fcef02195635dbf8d15904b1fb63"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:26 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:45 2011 -0400"
      },
      "message": "Btrfs: make btrfs_map_block() return entire free extent for each device of RAID0/1/10/DUP\n\nbtrfs_map_block() will only return a single stripe length, but we want the\nfull extent be mapped to each disk when we are trimming the extent,\nso we add length to btrfs_bio_stripe and fill it if we are mapping for REQ_DISCARD.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4d00d569a49fcef02195635dbf8d15904b1fb63",
      "tree": "fc2414cdb122d4c4c5d1c0a37f9217ad3e2d5e3f",
      "parents": [
        "3ab3564f018b9b265d0258e4a231794bacd5ad85"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:25 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:43 2011 -0400"
      },
      "message": "Btrfs: make update_reserved_bytes() public\n\nMake the function public as we should update the reserved extents calculations\nafter taking out an extent for trimming.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3ab3564f018b9b265d0258e4a231794bacd5ad85",
      "tree": "53bb771dbb18194a9d13ce2c84c81f2ab834b7e5",
      "parents": [
        "75e7cb7fe0c391561bd3af36515be3f3c64a04c6"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Mar 22 17:20:26 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:42 2011 -0400"
      },
      "message": "btrfs: return EXDEV when linking from different subvolumes\n\nbtrfs_link returns EPERM if a cross-subvolume link is attempted.\n\nHowever, in this case I believe EXDEV to be the more appropriate value.\n\u003eFrom the link(2) man page:\n\nEXDEV  oldpath and newpath are not on the same mounted file system.  (Linux\n       permits a file system to be mounted at multiple points, but link()\n       does not work across different mount points, even if the same file\n       system is mounted on both.)\n\nThis matters because an application may have different behaviors based on\nreturn codes.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "75e7cb7fe0c391561bd3af36515be3f3c64a04c6",
      "tree": "3738481e2db10b2904a4434e4ca42d326da02be7",
      "parents": [
        "32471f6e1983922473573da62cbee58699574aa4"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Tue Mar 22 10:12:20 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:41 2011 -0400"
      },
      "message": "Btrfs: Per file/directory controls for COW and compression\n\nData compression and data cow are controlled across the entire FS by mount\noptions right now.  ioctls are needed to set this on a per file or per\ndirectory basis.  This has been proposed previously, but VFS developers\nwanted us to use generic ioctls rather than btrfs-specific ones.\n\nAccording to Chris\u0027s comment, there should be just one true compression\nmethod(probably LZO) stored in the super.  However, before this, we would\nwait for that one method is stable enough to be adopted into the super.\nSo I list it as a long term goal, and just store it in ram today.\n\nAfter applying this patch, we can use the generic \"FS_IOC_SETFLAGS\" ioctl to\ncontrol file and directory\u0027s datacow and compression attribute.\n\nNOTE:\n - The compression type is selected by such rules:\n   If we mount btrfs with compress options, ie, zlib/lzo, the type is it.\n   Otherwise, we\u0027ll use the default compress type (zlib today).\n\nv1-\u003ev2:\n- rebase to the latest btrfs.\nv2-\u003ev3:\n- fix a problem, i.e. when a file is set NOCOW via mount option, then this NOCOW\n  will be screwed by inheritance from parent directory.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fc0e4a314e361af3b13d9320e92c64118f9a3e61",
      "tree": "5bb9f51968375e5a7e19751da028bb5a8b74c624",
      "parents": [
        "97d9a8a420444eb5b5c071d4b3b9c4100a7ae015"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Mar 24 11:41:21 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:39 2011 -0400"
      },
      "message": "btrfs: use GFP_NOFS instead of GFP_KERNEL\n\nIn the filesystem context, we must allocate memory by GFP_NOFS,\nor we may start another filesystem operation and make kswap thread hang up.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "97d9a8a420444eb5b5c071d4b3b9c4100a7ae015",
      "tree": "4ed3e77541ebcc4885c4a10630e2f6bf94d3cef2",
      "parents": [
        "7e75bf3ff3a716d7b21d8fb43bf823115801c1e9"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Mar 24 06:33:21 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:37 2011 -0400"
      },
      "message": "Btrfs: check return value of read_tree_block()\n\nThis patch is checking return value of read_tree_block(),\nand if it is NULL, error processing.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7e75bf3ff3a716d7b21d8fb43bf823115801c1e9",
      "tree": "98509e562fe9577001f60e1035283c5cb4e076ea",
      "parents": [
        "db5b493ac78e46c7b6bad22cd25d8041564cd8ea"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dave@jikos.cz",
        "time": "Fri Mar 18 22:56:43 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:36 2011 -0400"
      },
      "message": "btrfs: properly access unaligned checksum buffer\n\nOn Fri, Mar 18, 2011 at 11:56:53AM -0400, Chris Mason wrote:\n\u003e Thanks for fielding this one.  Does put_unaligned_le32 optimize away on\n\u003e platforms with efficient access?  It would be great if we didn\u0027t need\n\u003e the #ifdef.\n\n(quicktest: assembly output is same for put_unaligned_le32 and direct\nassignment on my x86_64)\nI was originally following examples in\nDocumentation/unaligned-memory-access.txt. From other code it seems to me that\nthe define CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is intended for larger\nportions of code. Macros/wrappers for {put,get}_unaligned* are chosen via\narch/\u003carch\u003e/include/asm/unaligned.h accordingly, therefore it\u0027s safe to use\nput_unaligned_le32 without the ifdef.\n\ndave\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "db5b493ac78e46c7b6bad22cd25d8041564cd8ea",
      "tree": "18f484c3d8194b80165e5400831931a3ac5c58ba",
      "parents": [
        "1abe9b8a138c9988ba8f7bfded6453649a31541f"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Wed Mar 23 08:14:16 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:35 2011 -0400"
      },
      "message": "Btrfs: cleanup some BUG_ON()\n\nThis patch changes some BUG_ON() to the error return.\n(but, most callers still use BUG_ON())\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1abe9b8a138c9988ba8f7bfded6453649a31541f",
      "tree": "9fe0c181e78b075b65f6b1802f0a5092e7afbc6a",
      "parents": [
        "240f62c8756df285da11469259b3900f32883168"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 24 11:18:59 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:33 2011 -0400"
      },
      "message": "Btrfs: add initial tracepoint support for btrfs\n\nTracepoints can provide insight into why btrfs hits bugs and be greatly\nhelpful for debugging, e.g\n              dd-7822  [000]  2121.641088: btrfs_inode_request: root \u003d 5(FS_TREE), gen \u003d 4, ino \u003d 256, blocks \u003d 8, disk_i_size \u003d 0, last_trans \u003d 8, logged_trans \u003d 0\n              dd-7822  [000]  2121.641100: btrfs_inode_new: root \u003d 5(FS_TREE), gen \u003d 8, ino \u003d 257, blocks \u003d 0, disk_i_size \u003d 0, last_trans \u003d 0, logged_trans \u003d 0\n btrfs-transacti-7804  [001]  2146.935420: btrfs_cow_block: root \u003d 2(EXTENT_TREE), refs \u003d 2, orig_buf \u003d 29368320 (orig_level \u003d 0), cow_buf \u003d 29388800 (cow_level \u003d 0)\n btrfs-transacti-7804  [001]  2146.935473: btrfs_cow_block: root \u003d 1(ROOT_TREE), refs \u003d 2, orig_buf \u003d 29364224 (orig_level \u003d 0), cow_buf \u003d 29392896 (cow_level \u003d 0)\n btrfs-transacti-7804  [001]  2146.972221: btrfs_transaction_commit: root \u003d 1(ROOT_TREE), gen \u003d 8\n   flush-btrfs-2-7821  [001]  2155.824210: btrfs_chunk_alloc: root \u003d 3(CHUNK_TREE), offset \u003d 1103101952, size \u003d 1073741824, num_stripes \u003d 1, sub_stripes \u003d 0, type \u003d DATA\n   flush-btrfs-2-7821  [001]  2155.824241: btrfs_cow_block: root \u003d 2(EXTENT_TREE), refs \u003d 2, orig_buf \u003d 29388800 (orig_level \u003d 0), cow_buf \u003d 29396992 (cow_level \u003d 0)\n   flush-btrfs-2-7821  [001]  2155.824255: btrfs_cow_block: root \u003d 4(DEV_TREE), refs \u003d 2, orig_buf \u003d 29372416 (orig_level \u003d 0), cow_buf \u003d 29401088 (cow_level \u003d 0)\n   flush-btrfs-2-7821  [000]  2155.824329: btrfs_cow_block: root \u003d 3(CHUNK_TREE), refs \u003d 2, orig_buf \u003d 20971520 (orig_level \u003d 0), cow_buf \u003d 20975616 (cow_level \u003d 0)\n btrfs-endio-wri-7800  [001]  2155.898019: btrfs_cow_block: root \u003d 5(FS_TREE), refs \u003d 2, orig_buf \u003d 29384704 (orig_level \u003d 0), cow_buf \u003d 29405184 (cow_level \u003d 0)\n btrfs-endio-wri-7800  [001]  2155.898043: btrfs_cow_block: root \u003d 7(CSUM_TREE), refs \u003d 2, orig_buf \u003d 29376512 (orig_level \u003d 0), cow_buf \u003d 29409280 (cow_level \u003d 0)\n\nHere is what I have added:\n\n1) ordere_extent:\n        btrfs_ordered_extent_add\n        btrfs_ordered_extent_remove\n        btrfs_ordered_extent_start\n        btrfs_ordered_extent_put\n\nThese provide critical information to understand how ordered_extents are\nupdated.\n\n2) extent_map:\n        btrfs_get_extent\n\nextent_map is used in both read and write cases, and it is useful for tracking\nhow btrfs specific IO is running.\n\n3) writepage:\n        __extent_writepage\n        btrfs_writepage_end_io_hook\n\nPages are cirtical resourses and produce a lot of corner cases during writeback,\nso it is valuable to know how page is written to disk.\n\n4) inode:\n        btrfs_inode_new\n        btrfs_inode_request\n        btrfs_inode_evict\n\nThese can show where and when a inode is created, when a inode is evicted.\n\n5) sync:\n        btrfs_sync_file\n        btrfs_sync_fs\n\nThese show sync arguments.\n\n6) transaction:\n        btrfs_transaction_commit\n\nIn transaction based filesystem, it will be useful to know the generation and\nwho does commit.\n\n7) back reference and cow:\n\tbtrfs_delayed_tree_ref\n\tbtrfs_delayed_data_ref\n\tbtrfs_delayed_ref_head\n\tbtrfs_cow_block\n\nBtrfs natively supports back references, these tracepoints are helpful on\nunderstanding btrfs\u0027s COW mechanism.\n\n8) chunk:\n\tbtrfs_chunk_alloc\n\tbtrfs_chunk_free\n\nChunk is a link between physical offset and logical offset, and stands for space\ninfomation in btrfs, and these are helpful on tracing space things.\n\n9) reserved_extent:\n\tbtrfs_reserved_extent_alloc\n\tbtrfs_reserved_extent_free\n\nThese can show how btrfs uses its space.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "240f62c8756df285da11469259b3900f32883168",
      "tree": "eb973ef95389a9511c137c7c26248dfd04a2495f",
      "parents": [
        "c0da7aa1a2d8fcafe271a7077599253c8ed94bb2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 23 14:54:42 2011 -0400"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:22 2011 -0400"
      },
      "message": "Btrfs: use RCU instead of a spinlock to protect the root node\n\nThe pointer to the extent buffer for the root of each tree\nis protected by a spinlock so that we can safely read the pointer\nand take a reference on the extent buffer.\n\nBut now that the extent buffers are freed via RCU, we can safely\nuse rcu_read_lock instead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b5695d04634fa4ccca7dcbc05bb4a66522f02e0b",
      "tree": "568155380ea1b1fa3b9e68f68dd74cdd9d651229",
      "parents": [
        "950983fc04e02232e0d25717903461578a755ebb"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:55 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:43 2011 -0500"
      },
      "message": "eCryptfs: write lock requested keys\n\nA requested key is write locked in order to prevent modifications on the\nauthentication token while it is being used.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "950983fc04e02232e0d25717903461578a755ebb",
      "tree": "e78bd71ecfd12b87237db398116ac2c19082505b",
      "parents": [
        "0e1fc5ef470cc1d157005c437a434868d59fead4"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:54 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:42 2011 -0500"
      },
      "message": "eCryptfs: move ecryptfs_find_auth_tok_for_sig() call before mutex_lock\n\nThe ecryptfs_find_auth_tok_for_sig() call is moved before the\nmutex_lock(s-\u003etfm_mutex) instruction in order to avoid possible deadlocks\nthat may occur by holding the lock on the two semaphores \u0027key-\u003esem\u0027 and\n\u0027s-\u003etfm_mutex\u0027 in reverse order.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0e1fc5ef470cc1d157005c437a434868d59fead4",
      "tree": "a15889a237ad7db00ef695d4338286e663127ee0",
      "parents": [
        "7762e230fd31fcc1abc03ba32ee957fadc8eafb4"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:53 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:41 2011 -0500"
      },
      "message": "eCryptfs: verify authentication tokens before their use\n\nAuthentication tokens content may change if another requestor calls the\nupdate() method of the corresponding key. The new function\necryptfs_verify_auth_tok_from_key() retrieves the authentication token from\nthe provided key and verifies if it is still valid before being used to\nencrypt or decrypt an eCryptfs file.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\n[tyhicks: Minor formatting changes]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7762e230fd31fcc1abc03ba32ee957fadc8eafb4",
      "tree": "d49635aa3406a0e3590e1a0886c4aba9e5ed0145",
      "parents": [
        "cf35ca69131d5fc8febb74629d173e0731bf49c0"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:52 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:40 2011 -0500"
      },
      "message": "eCryptfs: modified size of keysig in the ecryptfs_key_sig structure\n\nThe size of the \u0027keysig\u0027 array is incremented of one byte in order to make\nroom for the NULL character. The \u0027keysig\u0027 variable is used, in the function\necryptfs_generate_key_packet_set(), to find an authentication token with\nthe given signature and is printed a debug message if it cannot be\nretrieved.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "cf35ca69131d5fc8febb74629d173e0731bf49c0",
      "tree": "894ff15a7806dbe4f7f899b0c92a1ffadacbd719",
      "parents": [
        "1821df040ac3cd6a57518739f345da6d50ea9d3f"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Mon Mar 21 16:00:51 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:39 2011 -0500"
      },
      "message": "eCryptfs: removed num_global_auth_toks from ecryptfs_mount_crypt_stat\n\nThis patch removes the \u0027num_global_auth_toks\u0027 field of the\necryptfs_mount_crypt_stat structure, used to count the number of items in\nthe \u0027global_auth_tok_list\u0027 list. This variable is not needed because there\nare no checks based upon it.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1821df040ac3cd6a57518739f345da6d50ea9d3f",
      "tree": "ca353d7cdde5c3bcaa5d9657d8f20d124dbdd3cd",
      "parents": [
        "50f198ae16ac66508d4b8d5a40967a8507ad19ee"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Thu Mar 17 12:48:50 2011 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:49:15 2011 -0500"
      },
      "message": "eCryptfs: ecryptfs_keyring_auth_tok_for_sig() bug fix\n\nThe pointer \u0027(*auth_tok_key)\u0027 is set to NULL in case request_key()\nfails, in order to prevent its use by functions calling\necryptfs_keyring_auth_tok_for_sig().\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "50f198ae16ac66508d4b8d5a40967a8507ad19ee",
      "tree": "cfd582a98eca9b93177fe6e417b82e7c4e345f45",
      "parents": [
        "57db4e8d73ef2b5e94a3f412108dff2576670a8a"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Mar 09 11:49:13 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:46 2011 -0500"
      },
      "message": "eCryptfs: Unlock page in write_begin error path\n\nUnlock the page in error path of ecryptfs_write_begin(). This may\nhappen, for example, if decryption fails while bring the page\nup-to-date.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "57db4e8d73ef2b5e94a3f412108dff2576670a8a",
      "tree": "ab6eae8e879cfa41cdb3309d8e6a52de14746ca4",
      "parents": [
        "fed8859b3ab94274c986cbdf7d27130e0545f02c"
      ],
      "author": {
        "name": "Thieu Le",
        "email": "thieule@chromium.org",
        "time": "Tue Mar 08 16:26:03 2011 -0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:45 2011 -0500"
      },
      "message": "ecryptfs: modify write path to encrypt page in writepage\n\nChange the write path to encrypt the data only when the page is written to\ndisk in ecryptfs_writepage. Previously, ecryptfs encrypts the page in\necryptfs_write_end which means that if there are multiple write requests to\nthe same page, ecryptfs ends up re-encrypting that page over and over again.\nThis patch minimizes the number of encryptions needed.\n\nSigned-off-by: Thieu Le \u003cthieule@chromium.org\u003e\n[tyhicks: Changed NULL .drop_inode sop pointer to generic_drop_inode]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fed8859b3ab94274c986cbdf7d27130e0545f02c",
      "tree": "01d36d5f87469aa25a7431e0b21ff86b7e524052",
      "parents": [
        "bd4f0fe8bb7c73c738e1e11bc90d6e2cf9c6e20e"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Feb 23 00:54:20 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:44 2011 -0500"
      },
      "message": "eCryptfs: Remove ECRYPTFS_NEW_FILE crypt stat flag\n\nNow that grow_file() is not called in the ecryptfs_create() path, the\nECRYPTFS_NEW_FILE flag is no longer needed. It helped\necryptfs_readpage() know not to decrypt zeroes that were read from the\nlower file in the grow_file() path.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bd4f0fe8bb7c73c738e1e11bc90d6e2cf9c6e20e",
      "tree": "caa1915ec444bbdb52a1646274d73e733979bb44",
      "parents": [
        "40471856f2e38e9bfa8d605295e8234421110dd6"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Wed Feb 23 00:14:19 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Mar 28 01:47:43 2011 -0500"
      },
      "message": "eCryptfs: Remove unnecessary grow_file() function\n\nWhen creating a new eCryptfs file, the crypto metadata is written out\nand then the lower file was being \"grown\" with 4 kB of encrypted zeroes.\nI suspect that growing the encrypted file was to prevent an information\nleak that the unencrypted file was empty. However, the unencrypted file\nsize is stored, in plaintext, in the metadata so growing the file is\nunnecessary.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a17d47300b4042a3893217c0c3f2d806fe1faa3b",
      "tree": "91964353354d358cbafc350421e2bddb9455c73c",
      "parents": [
        "04a6553f0766df3f56830c89b7da2f618b7ef0b0",
        "7bf7e370d5919112c223a269462cd0b546903829"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 19:40:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 19:40:56 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus-1\u0027 of git://git.infradead.org/mtd-2.6\n\n* \u0027for-linus-1\u0027 of git://git.infradead.org/mtd-2.6: (49 commits)\n  mtd: mtdswap: fix compilation warning\n  mtdswap: kill strict error handling option\n  mtd: nand: enable software BCH ECC in nand simulator\n  mtd: nand: add software BCH ECC support\n  mtd: fix printf format warnings, mostly lack of %zd for size_t, in mtdswap\n  mtd: sm_rtl: check kmalloc return value\n  mtd: cfi: add support for AMIC flashes (e.g. A29L160AT)\n  lib: add shared BCH ECC library\n  mtd: mxc_nand: fix OOB corruption when page size \u003e 2KiB\n  mtd: DaVinci: Removed header file that is not required\n  mtd: pxa3xx_nand: clean the keep configure code\n  mtd: pxa3xx_nand: mtd scan id process could be defined by driver itself\n  mtd: pxa3xx_nand: unify prepare command\n  mtd: pxa3xx_nand: discard wait_for_event,write_cmd,__readid function\n  mtd: pxa3xx_nand: rework irq logic\n  mtd: pxa3xx_nand: make scan procedure more clear\n  mtd: speedtest: fix integer overflow\n  mtd: mxc_nand: fix read past buffer end\n  mtd: omap3: nand: report corrected ecc errors\n  jffs2: remove a trailing white space in commentaries\n  ...\n"
    },
    {
      "commit": "b6d0ad686da95fa85ce0c583ec35017bf1583563",
      "tree": "357c740a9d8bb37397ead382dc3dd302f91d0e28",
      "parents": [
        "6213cfe82461e39219a3b06ecf1d0679b4c0657f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Mar 26 13:27:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 19:30:19 2011 -0700"
      },
      "message": "fs: fix inode.c kernel-doc warning\n\nFix inode.c kernel-doc fatal error: 2 comment sections have the same name:\n\n  Error(fs/inode.c:1171): duplicate section name \u0027Note\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76597cd31470fa130784c78fadb4dab2e624a723",
      "tree": "94387f243f4b8211352a95fda5b23bd12bbf8873",
      "parents": [
        "16c29dafcc86024048f1dbb8349d31cb22c7c55a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 19:09:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 19:09:29 2011 -0700"
      },
      "message": "proc: fix oops on invalid /proc/\u003cpid\u003e/maps access\n\nWhen m_start returns an error, the seq_file logic will still call m_stop\nwith that error entry, so we\u0027d better make sure that we check it before\nusing it as a vma.\n\nIntroduced by commit ec6fd8a4355c (\"report errors in /proc/*/*map*\nsanely\"), which replaced NULL with various ERR_PTR() cases.\n\n(On ia64, you happen to get a unaligned fault instead of a page fault,\nsince the address used is generally some random error code like -EPERM)\n\nReported-by: Anca Emanuel \u003canca.emanuel@gmail.com\u003e\nReported-by: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Stephen Wilson \u003cwilsons@start.ca\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0e7e3cf7932d6c77de0dc79a40dbaeb8060b544",
      "tree": "fcc8ab44418afe356b683674fcd2c1589b7c6efa",
      "parents": [
        "4d65c520fb4abed970069d18c119cfe85624f46d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 26 02:24:35 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 27 17:48:17 2011 +0200"
      },
      "message": "NFS: Don\u0027t leak RPC clients in NFSv4 secinfo negotiation\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4d65c520fb4abed970069d18c119cfe85624f46d",
      "tree": "74671eb263380317f1e4a958a6a7f73749e98eec",
      "parents": [
        "16c29dafcc86024048f1dbb8349d31cb22c7c55a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 25 14:15:11 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Mar 27 17:48:07 2011 +0200"
      },
      "message": "NFS: Fix a hang in the writeback path\n\nNow that the inode scalability patches have been merged, it is no longer\nsafe to call igrab() under the inode-\u003ei_lock.\nNow that we no longer call nfs_clear_request() until the nfs_page is\nbeing freed, we know that we are always holding a reference to the\nnfs_open_context, which again holds a reference to the path, and so\nthe inode cannot be freed until the last nfs_page has been removed\nfrom the radix tree and freed.\n\nWe can therefore skip the igrab()/iput() altogether.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c03e3126e4f9535f4983d727f036440255c43c82",
      "tree": "eb77abe288341b582ed255d0dda1940c7d1ea00b",
      "parents": [
        "9263412501022fecef844907129ee2513b5a89de"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Fri Mar 25 01:57:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:45:16 2011 -0700"
      },
      "message": "codafs: fix build break when CONFIG_PROC_SYSCTL\u003dn\n\nCommit 0bc825d240ab (\"codafs: fix compile warning when CONFIG_SYSCTL\u003dn\")\nintroduces build breakage, when CONFIG_PROC_SYSCTL\u003dn and\nCONFIG_CODA_FS\u003dy:\n\n  fs/built-in.o: In function `init_coda\u0027:\n  psdev.c:(.init.text+0xc02): undefined reference to `coda_sysctl_init\u0027\n  psdev.c:(.init.text+0xc7c): undefined reference to `coda_sysctl_clean\u0027\n  fs/built-in.o: In function `exit_coda\u0027:\n  psdev.c:(.exit.text+0xa9): undefined reference to `coda_sysctl_clean\u0027\n  make: *** [.tmp_vmlinux1] Error 1\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0da7aa1a2d8fcafe271a7077599253c8ed94bb2",
      "tree": "232a22b93eb56090c5a0ecdba377ffb761d5549c",
      "parents": [
        "98bc3149fad639c8f50c7110b961a2a2fe085eed"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 22 11:05:07 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 25 19:08:19 2011 -0400"
      },
      "message": "Btrfs: mark the bio with an error if we have a failure in dio\n\nI noticed that dio_end_io calls the appropriate endio function with an error,\nbut the endio functions don\u0027t actually do anything with that error, they assume\nthat if there was an error then the bio will not be uptodate.  So if we had\nchecksum failures we would never pass back EIO.  So if there is an error in our\nendio functions make sure to clear the uptodate flag on the bio.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "98bc3149fad639c8f50c7110b961a2a2fe085eed",
      "tree": "76b102e79a9adde87c4e93f475db643567c393da",
      "parents": [
        "4e69b598f6cfb0940b75abf7e179d6020e94ad1e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 22 11:00:46 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 25 19:08:18 2011 -0400"
      },
      "message": "Btrfs: don\u0027t allocate dip-\u003ecsums when doing writes\n\nWhen doing direct writes we store the checksums in the ordered sum stuff in the\nordered extent for writing them when the write completes, so we don\u0027t even use\nthe dip-\u003ecsums array.  So if we\u0027re writing, don\u0027t bother allocating dip-\u003ecsums\nsince we won\u0027t use it anyway.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "4e69b598f6cfb0940b75abf7e179d6020e94ad1e",
      "tree": "ae14c7078bd7540200ffe32726e33dd8ff64f5d5",
      "parents": [
        "32cb0840ce8e13901fe71a9a8e834a531802ffc4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 21 10:11:24 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 25 19:08:08 2011 -0400"
      },
      "message": "Btrfs: cleanup how we setup free space clusters\n\nThis patch makes the free space cluster refilling code a little easier to\nunderstand, and fixes some things with the bitmap part of it.  Currently we\neither want to refill a cluster with\n\n1) All normal extent entries (those without bitmaps)\n2) A bitmap entry with enough space\n\nThe current code has this ugly jump around logic that will first try and fill up\nthe cluster with extent entries and then if it can\u0027t do that it will try and\nfind a bitmap to use.  So instead split this out into two functions, one that\ntries to find only normal entries, and one that tries to find bitmaps.\n\nThis also fixes a suboptimal thing we would do with bitmaps.  If we used a\nbitmap we would just tell the cluster that we were pointing at a bitmap and it\nwould do the tree search in the block group for that entry every time we tried\nto make an allocation.  Instead of doing that now we just add it to the clusters\ngroup.\n\nI tested this with my ENOSPC tests and xfstests and it survived.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0e6e847ffe37436e331c132639f9f872febce82e",
      "tree": "eb440ef910af695eafef787e12badc64fac0f8fe",
      "parents": [
        "704b2907c2d47ceb187c0e25a6bbc2174b198f2f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Mar 26 09:16:45 2011 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Mar 26 09:16:45 2011 +1100"
      },
      "message": "xfs: stop using the page cache to back the buffer cache\n\nNow that the buffer cache has it\u0027s own LRU, we do not need to use\nthe page cache to provide persistent caching and reclaim\ninfrastructure. Convert the buffer cache to use alloc_pages()\ninstead of the page cache. This will remove all the overhead of page\ncache management from setup and teardown of the buffers, as well as\nneeding to mark pages accessed as we find buffers in the buffer\ncache.\n\nBy avoiding the page cache, we also remove the need to keep state in\nthe page_private(page) field for persistant storage across buffer\nfree/buffer rebuild and so all that code can be removed. This also\nfixes the long-standing problem of not having enough bits in the\npage_private field to track all the state needed for a 512\nsector/64k page setup.\n\nIt also removes the need for page locking during reads as the pages\nare unique to the buffer and nobody else will be attempting to\naccess them.\n\nFinally, it removes the buftarg address space lock as a point of\nglobal contention on workloads that allocate and free buffers\nquickly such as when creating or removing large numbers of inodes in\nparallel. This remove the 16TB limit on filesystem size on 32 bit\nmachines as the page index (32 bit) is no longer used for lookups\nof metadata buffers - the buffer cache is now solely indexed by disk\naddress which is stored in a 64 bit field in the buffer.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "704b2907c2d47ceb187c0e25a6bbc2174b198f2f",
      "tree": "0ca2703390a5ba43998eca28d85d77ee49a790f6",
      "parents": [
        "7401aafd5019d32a888e5f27332cf580945574bf"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Mar 26 09:14:57 2011 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Mar 26 09:14:57 2011 +1100"
      },
      "message": "xfs: register the inode cache shrinker before quotachecks\n\nDuring mount, we can do a quotacheck that involves a bulkstat pass\non all inodes. If there are more inodes in the filesystem than can\nbe held in memory, we require the inode cache shrinker to run to\nensure that we don\u0027t run out of memory.\n\nUnfortunately, the inode cache shrinker is not registered until we\nget to the end of the superblock setup process, which is after a\nquotacheck is run if it is needed. Hence we need to register the\ninode cache shrinker earlier in the mount process so that we don\u0027t\nOOM during mount. This requires that we also initialise the syncd\nwork before we register the shrinker, so we nee dto juggle that\naround as well.\n\nWhile there, make sure that we have set up the block sizes in the\nVFS superblock correctly before the quotacheck is run so that any\ninodes that are cached as a result of the quotacheck have their\nblock size fields set up correctly.\n\nCc: stable@kernel.org\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "7401aafd5019d32a888e5f27332cf580945574bf",
      "tree": "6a09fb6c38e6e96e239873bdefd24a890da09c9d",
      "parents": [
        "1bfd8d04190c615bb8d1d98188dead0c09702208"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Mar 26 09:14:44 2011 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Mar 26 09:14:44 2011 +1100"
      },
      "message": "xfs: xfs_trans_read_buf() should return an error on failure\n\nWhen inside a transaction and we fail to read a buffer,\nxfs_trans_read_buf returns a null buffer pointer and no error.\nxfs_do_da_buf() checks the error return, but not the buffer, and as\na result this read failure condition causes a panic when it attempts\nto dereference the non-existant buffer.\n\nMake xfs_trans_read_buf() return the same error for this situation\nregardless of whether it is in a transaction or not. This means\nevery caller does not need to check both the error return and the\nbuffer before proceeding to use the buffer.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "1bfd8d04190c615bb8d1d98188dead0c09702208",
      "tree": "f2eb5d4e9b730b7ecef25bcc1cc26caa2b306339",
      "parents": [
        "a19fb380961f209a3a406443686647bcd01bb9a6"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Mar 26 09:13:55 2011 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Mar 26 09:13:55 2011 +1100"
      },
      "message": "xfs: introduce inode cluster buffer trylocks for xfs_iflush\n\nThere is an ABBA deadlock between synchronous inode flushing in\nxfs_reclaim_inode and xfs_icluster_free. xfs_icluster_free locks the\nbuffer, then takes inode ilocks, whilst synchronous reclaim takes\nthe ilock followed by the buffer lock in xfs_iflush().\n\nTo avoid this deadlock, separate the inode cluster buffer locking\nsemantics from the synchronous inode flush semantics, allowing\ncallers to attempt to lock the buffer but still issue synchronous IO\nif it can get the buffer. This requires xfs_iflush() calls that\ncurrently use non-blocking semantics to pass SYNC_TRYLOCK rather\nthan 0 as the flags parameter.\n\nThis allows xfs_reclaim_inode to avoid the deadlock on the buffer\nlock and detect the failure so that it can drop the inode ilock and\nrestart the reclaim attempt on the inode. This allows\nxfs_ifree_cluster to obtain the inode lock, mark the inode stale and\nrelease it and hence defuse the deadlock situation. It also has the\npleasant side effect of avoiding IO in xfs_reclaim_inode when it\ntries to next reclaim the inode as it is now marked stale.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a19fb380961f209a3a406443686647bcd01bb9a6",
      "tree": "304baceb45f2b40991900a546c39663bb37814ea",
      "parents": [
        "8287889742940cf3c416e755322090d09f2829be"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Mar 26 09:13:42 2011 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Mar 26 09:13:42 2011 +1100"
      },
      "message": "vmap: flush vmap aliases when mapping fails\n\nOn 32 bit systems, vmalloc space is limited and XFS can chew through\nit quickly as the vmalloc space is lazily freed. This can result in\nfailure to map buffers, even when there is apparently large amounts\nof vmalloc space available. Hence, if we fail to map a buffer, purge\nthe aliases that have not yet been freed to hopefuly free up enough\nvmalloc space to allow a retry to succeed.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "8287889742940cf3c416e755322090d09f2829be",
      "tree": "50d67d48b4375a80b5ed04cc6d4cc88912c270f6",
      "parents": [
        "0c9ba97318fc9a905bcc1419b6966de061203a70"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Mar 26 09:13:08 2011 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Mar 26 09:13:08 2011 +1100"
      },
      "message": "xfs: preallocation transactions do not need to be synchronous\n\nPreallocation and hole punch transactions are currently synchronous\nand this is causing performance problems in some cases. The\ntransactions don\u0027t need to be synchronous as we don\u0027t need to\nguarantee the preallocation is persistent on disk until a\nfdatasync, fsync, sync operation occurs. If the file is opened\nO_SYNC or O_DATASYNC, only then should the transaction be issued\nsynchronously.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ef550f6f4f6c9345a27ec85d98f4f7de1adce79c",
      "tree": "dafd71f3e7fe46ed685b5ab3fd62c2bb7d3cb679",
      "parents": [
        "59c2be1e4d42c0d4949cecdeef3f37070a1fbc13"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 25 13:27:48 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 25 13:27:48 2011 -0700"
      },
      "message": "ceph: flush msgr_wq during mds_client shutdown\n\nThe release method for mds connections uses a backpointer to the\nmds_client, so we need to flush the workqueue of any pending work (and\nceph_connection references) prior to freeing the mds_client.  This fixes\nan oops easily triggered under UML by\n\n while true ; do mount ... ; umount ... ; done\n\nAlso fix an outdated comment: the flush in ceph_destroy_client only flushes\nOSD connections out.  This bug is basically an artifact of the ceph -\u003e\nceph+libceph conversion.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "40471856f2e38e9bfa8d605295e8234421110dd6",
      "tree": "9757e42e40bdbfcff7c52ab133e32b5c2203153b",
      "parents": [
        "ae005cbed12d0b340b04b59d6f5c56e710b3895d",
        "0acd2201920d0968919f4f5797d63f7b6f2b19d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:03:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:03:28 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.39\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.39\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (28 commits)\n  Cleanup XDR parsing for LAYOUTGET, GETDEVICEINFO\n  NFSv4.1 convert layoutcommit sync to boolean\n  NFSv4.1 pnfs_layoutcommit_inode fixes\n  NFS: Determine initial mount security\n  NFS: use secinfo when crossing mountpoints\n  NFS: Add secinfo procedure\n  NFS: lookup supports alternate client\n  NFS: convert call_sync() to a function\n  NFSv4.1 remove temp code that prevented ds commits\n  NFSv4.1: layoutcommit\n  NFSv4.1: filelayout driver specific code for COMMIT\n  NFSv4.1: remove GETATTR from ds commits\n  NFSv4.1: add generic layer hooks for pnfs COMMIT\n  NFSv4.1: alloc and free commit_buckets\n  NFSv4.1: shift filelayout_free_lseg\n  NFSv4.1: pull out code from nfs_commit_release\n  NFSv4.1: pull error handling out of nfs_commit_list\n  NFSv4.1: add callback to nfs4_commit_done\n  NFSv4.1: rearrange nfs_commit_rpcsetup\n  NFSv4.1: don\u0027t send COMMIT to ds for data sync writes\n  ...\n"
    },
    {
      "commit": "ae005cbed12d0b340b04b59d6f5c56e710b3895d",
      "tree": "d464865bcc97bea05eab4eba0d10bcad4ec89b93",
      "parents": [
        "3961cdf85b749f6bab50ad31ee97e9277e7a3b70",
        "0ba0851714beebb800992e5105a79dc3a4c504b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57:41 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (43 commits)\n  ext4: fix a BUG in mb_mark_used during trim.\n  ext4: unused variables cleanup in fs/ext4/extents.c\n  ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep()\n  ext4: add more tracepoints and use dev_t in the trace buffer\n  ext4: don\u0027t kfree uninitialized s_group_info members\n  ext4: add missing space in printk\u0027s in __ext4_grp_locked_error()\n  ext4: add FITRIM to compat_ioctl.\n  ext4: handle errors in ext4_clear_blocks()\n  ext4: unify the ext4_handle_release_buffer() api\n  ext4: handle errors in ext4_rename\n  jbd2: add COW fields to struct jbd2_journal_handle\n  jbd2: add the b_cow_tid field to journal_head struct\n  ext4: Initialize fsync transaction ids in ext4_new_inode()\n  ext4: Use single thread to perform DIO unwritten convertion\n  ext4: optimize ext4_bio_write_page() when no extent conversion is needed\n  ext4: skip orphan cleanup if fs has unknown ROCOMPAT features\n  ext4: use the nblocks arg to ext4_truncate_restart_trans()\n  ext4: fix missing iput of root inode for some mount error paths\n  ext4: make FIEMAP and delayed allocation play well together\n  ext4: suppress verbose debugging information if malloc-debug is off\n  ...\n\nFi up conflicts in fs/ext4/super.c due to workqueue changes\n"
    },
    {
      "commit": "7bf7e370d5919112c223a269462cd0b546903829",
      "tree": "03ccc715239df14ae168277dbccc9d9cf4d8a2c8",
      "parents": [
        "68b1a1e786f29c900fa1c516a402e24f0ece622a",
        "d39dd11c3e6a7af5c20bfac40594db36cf270f42"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 25 17:41:20 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 25 17:41:20 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus-1\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6: (9356 commits)\n  [media] rc: update for bitop name changes\n  fs: simplify iget \u0026 friends\n  fs: pull inode-\u003ei_lock up out of writeback_single_inode\n  fs: rename inode_lock to inode_hash_lock\n  fs: move i_wb_list out from under inode_lock\n  fs: move i_sb_list out from under inode_lock\n  fs: remove inode_lock from iput_final and prune_icache\n  fs: Lock the inode LRU list separately\n  fs: factor inode disposal\n  fs: protect inode-\u003ei_state with inode-\u003ei_lock\n  lib, arch: add filter argument to show_mem and fix private implementations\n  SLUB: Write to per cpu data when allocating it\n  slub: Fix debugobjects with lockless fastpath\n  autofs4: Do not potentially dereference NULL pointer returned by fget() in autofs_dev_ioctl_setpipefd()\n  autofs4 - remove autofs4_lock\n  autofs4 - fix d_manage() return on rcu-walk\n  autofs4 - fix autofs4_expire_indirect() traversal\n  autofs4 - fix dentry leak in autofs4_expire_direct()\n  autofs4 - reinstate last used update on access\n  vfs - check non-mountpoint dentry might block in __follow_mount_rcu()\n  ...\n\nNOTE!\n\nThis merge commit was created to fix compilation error. The block\ntree was merged upstream and removed the \u0027elv_queue_empty()\u0027\nfunction which the new \u0027mtdswap\u0027 driver is using. So a simple\nmerge of the mtd tree with upstream does not compile. And the\nmtd tree has already be published, so re-basing it is not an option.\n\nTo fix this unfortunate situation, I had to merge upstream into the\nmtd-2.6.git tree without committing, put the fixup patch on top of\nthis, and then commit this. The result is that we do not have commits\nwhich do not compile.\n\nIn other words, this merge commit \"merges\" 3 things: the MTD tree, the\nupstream tree, and the fixup patch.\n"
    },
    {
      "commit": "d39dd11c3e6a7af5c20bfac40594db36cf270f42",
      "tree": "6384e07fa2f347b286cde9754c4507b5a738ab47",
      "parents": [
        "30f5b28e7f937608e0407edaa459cc8161de81d9",
        "0b2d0724e26a335cd326eb7ad552c109116a8795"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:01:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:01:30 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  fs: simplify iget \u0026 friends\n  fs: pull inode-\u003ei_lock up out of writeback_single_inode\n  fs: rename inode_lock to inode_hash_lock\n  fs: move i_wb_list out from under inode_lock\n  fs: move i_sb_list out from under inode_lock\n  fs: remove inode_lock from iput_final and prune_icache\n  fs: Lock the inode LRU list separately\n  fs: factor inode disposal\n  fs: protect inode-\u003ei_state with inode-\u003ei_lock\n  autofs4: Do not potentially dereference NULL pointer returned by fget() in autofs_dev_ioctl_setpipefd()\n  autofs4 - remove autofs4_lock\n  autofs4 - fix d_manage() return on rcu-walk\n  autofs4 - fix autofs4_expire_indirect() traversal\n  autofs4 - fix dentry leak in autofs4_expire_direct()\n  autofs4 - reinstate last used update on access\n  vfs - check non-mountpoint dentry might block in __follow_mount_rcu()\n"
    },
    {
      "commit": "0b2d0724e26a335cd326eb7ad552c109116a8795",
      "tree": "fabd651e35f3fbc60d4ca9ca7fbdad0a04596d43",
      "parents": [
        "0f1b1fd86f6fd662e04da3e82a6780b226fcd0d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 23 15:03:28 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:52 2011 -0400"
      },
      "message": "fs: simplify iget \u0026 friends\n\nMerge get_new_inode/get_new_inode_fast into iget5_locked/iget_locked\nas those were the only callers.  Remove the internal ifind/ifind_fast\nhelpers - ifind_fast only had a single caller, and ifind had two\ncallers wanting it to do different things.  Also clean up the comments\nin this area to focus on information important to a developer trying\nto use it, instead of overloading them with implementation details.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0f1b1fd86f6fd662e04da3e82a6780b226fcd0d1",
      "tree": "422e2923193f5ac4ea2a6864a6635878ad58c43b",
      "parents": [
        "67a23c494621ff1d5431c3bc320947865b224625"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:43 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:51 2011 -0400"
      },
      "message": "fs: pull inode-\u003ei_lock up out of writeback_single_inode\n\nFirst thing we do in writeback_single_inode() is take the i_lock and\nthe last thing we do is drop it. A caller already holds the i_lock,\nso pull the i_lock out of writeback_single_inode() to reduce the\nround trips on this lock during inode writeback.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67a23c494621ff1d5431c3bc320947865b224625",
      "tree": "cce0868fc73031d8b0addc4dc7412d49ee9ec370",
      "parents": [
        "a66979abad090b2765a6c6790c9fdeab996833f2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:42 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:51 2011 -0400"
      },
      "message": "fs: rename inode_lock to inode_hash_lock\n\nAll that remains of the inode_lock is protecting the inode hash list\nmanipulation and traversals. Rename the inode_lock to\ninode_hash_lock to reflect it\u0027s actual function.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "a66979abad090b2765a6c6790c9fdeab996833f2"
}
