)]}'
{
  "log": [
    {
      "commit": "b0a31f7b2a668f00a8d0546dfeed65fac871b2da",
      "tree": "7379a66d9bfd6ae067f090f1bebac5d47332f5cb",
      "parents": [
        "4403dbfb4541d34e5db33db709094d57d09f7467"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 18:59:12 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:34 2012 +0000"
      },
      "message": "mtd: introduce mtd_writev interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "a2cc5ba075f9bc837d0b4d4ec7328dcefc11859d",
      "tree": "a5f2c88ddd21028247bfaf02ca336dd501ed3a5f",
      "parents": [
        "fd2819bbc92fc98bed5d612e4acbe16b6326f6bf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 18:29:55 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:24 2012 +0000"
      },
      "message": "mtd: introduce mtd_write_oob interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "fd2819bbc92fc98bed5d612e4acbe16b6326f6bf",
      "tree": "114f2a130cb854c74707eb805854fe048f65ac14",
      "parents": [
        "7ae79d7ff1769a3e9c47076b46e4eaa11204a2ee"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 18:27:05 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:23 2012 +0000"
      },
      "message": "mtd: introduce mtd_read_oob interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "eda95cbf75193808f62948fb0142ba0901d8bee2",
      "tree": "047bcfa05bc118b1d34327b3e62fa1d10d4bcb43",
      "parents": [
        "329ad399a9b3adf52c90637b21ca029fcf7f8795"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 17:35:41 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:20 2012 +0000"
      },
      "message": "mtd: introduce mtd_write interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "329ad399a9b3adf52c90637b21ca029fcf7f8795",
      "tree": "7aa7bb2609c25de7859c3a666f3ea90934609592",
      "parents": [
        "04c601bfa4cb29c968dcb66e44c799c9c01d8675"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 17:30:16 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:19 2012 +0000"
      },
      "message": "mtd: introduce mtd_read interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "04c601bfa4cb29c968dcb66e44c799c9c01d8675",
      "tree": "27fd5aaf5b6174a7f118f88ddbdb4eee3581ef56",
      "parents": [
        "7219778ad9c18cc2c05c7fca0abe026afbc19dfb"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 17:10:15 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:18 2012 +0000"
      },
      "message": "mtd: introduce mtd_get_unmapped_area interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "7219778ad9c18cc2c05c7fca0abe026afbc19dfb",
      "tree": "509a11bf7f7ebeef9a4236901adf53e507d1455b",
      "parents": [
        "d35ea200c0fb5315f16fb2599a4bafd9c1a7b386"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 17:05:52 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:17 2012 +0000"
      },
      "message": "mtd: introduce mtd_unpoint interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "d35ea200c0fb5315f16fb2599a4bafd9c1a7b386",
      "tree": "bca893ecf2cada20a1a3a84f64759c2e75838c5b",
      "parents": [
        "7e1f0dc0551b99acb5e8fa161a7ac401994d57d8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 17:00:37 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:15 2012 +0000"
      },
      "message": "mtd: introduce mtd_point interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "7e1f0dc0551b99acb5e8fa161a7ac401994d57d8",
      "tree": "19108039bb082d42fbda40d4bd3ddb11a1185cd1",
      "parents": [
        "969e57adc2589a0a0ae5edbbe7b92062565ce70b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 15:25:39 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:11 2012 +0000"
      },
      "message": "mtd: introduce mtd_erase interface\n\nThis patch is part of a patch-set which changes the MTD interface\nfrom \u0027mtd-\u003efunc()\u0027 form to \u0027mtd_func()\u0027 form. We need this because\nwe want to add common code to to all drivers in the mtd core level,\nwhich is impossible with the current interface when MTD clients\ncall driver functions like \u0027read()\u0027 or \u0027write()\u0027 directly.\n\nAt this point we just introduce a new inline wrapper function, but\nlater some of them are expected to gain more code. E.g., the input\nparameters check should be moved to the wrappers rather than be\nduplicated at many drivers.\n\nThis particular patch introduced the \u0027mtd_erase()\u0027 interface. The\nfollowing patches add all the other interfaces one by one.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "48d3610268cef9cea0704119a74a00d1bf82f536",
      "tree": "d58742e663834edf61a58643c2d670b457fee2ea",
      "parents": [
        "cdfe5ed0f271f1d5693fbd68809cc7e0e6c3af66"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 15:44:14 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:24:54 2012 +0000"
      },
      "message": "logfs: rename functions starting with mtd_\n\nWe are going to re-work the MTD interface and change \u0027mtd-\u003ewrite()\u0027 to\n\u0027mtd_write()\u0027, \u0027mtd-\u003eread()\u0027 to \u0027mtd_read()\u0027 and so forth for all functions\nin the \u0027struct mtd_info\u0027 structure.\n\nHowever, logfs has its own \u0027mtd_read()\u0027, \u0027mtd_write()\u0027, etc functions\nwhich collide with our changes. This patch renames these logfs functions\nto \u0027logfs_mtd_read()\u0027, \u0027logfs_mtd_write()\u0027, etc.\n\nAdditionally, to make the \u0027fs/logfs/dev_mtd.c\u0027 file look consistent, rename\nsimilarly all the other functions starting with \u0027mtd_\u0027.\n\nCc: Jörn Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "53466710202900ce49e471f480cac11275e1d0c4",
      "tree": "c9a4d9458dff37cd7e15f2181c8bc1d5edcf3f91",
      "parents": [
        "fa3ae714c763f3e9d8fd876879338d2b674b8db2"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Tue Dec 06 17:06:06 2011 -0600"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:18:03 2012 +0000"
      },
      "message": "jffs2: fix up error handling for insert_inode_locked\n\nafter 250df6ed274d767da844a5d9f05720b804240197\n(fs: protect inode-\u003ei_state with inode-\u003ei_lock), insert_inode_locked()\nno longer returns the inode with I_NEW set on failure.  However,\nthe error handler still calls unlock_new_inode() on failure,\nwhich does a WARN_ON if I_NEW is not set, so any failure spews\na lot of warnings.\n\nWe can just drop the unlock_new_inode() if insert_inode_locked()\nfails here.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "6d451c578c7222c7e9305c2e776a654dc6ec06c3",
      "tree": "93288fb3bba3ece1de4117e7db8f74754db5d66e",
      "parents": [
        "71448c1f4fd7c1b2bab766b3bf2b675cfe71b9ff",
        "b3bba872ddb0320a7ecb54decae53c13ceb2ed4c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 23 20:25:36 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 23 20:25:36 2011 -0800"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nfor linus: writeback reason binary tracing format fix\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: show writeback reason with __print_symbolic\n"
    },
    {
      "commit": "827fa4c762fa81fbfcd262505588feeeae7a3b66",
      "tree": "1dbbfcfb0e3a6e6a453f630bfa008fba6bf78daf",
      "parents": [
        "5d219c6b9fa28b990b22e8e3b08a1a1f34400b4f",
        "08c422c27f855d27b0b3d9fa30ebd938d4ae6f1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 23 14:58:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 23 14:58:39 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  Btrfs: call d_instantiate after all ops are setup\n  Btrfs: fix worker lock misuse in find_worker\n"
    },
    {
      "commit": "08c422c27f855d27b0b3d9fa30ebd938d4ae6f1f",
      "tree": "f618c94aa612781c911e18440df7eb16aed8697b",
      "parents": [
        "8d532b2afb2eacc84588db709ec280a3d1219be3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Dec 23 07:58:13 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 23 08:02:26 2011 -0500"
      },
      "message": "Btrfs: call d_instantiate after all ops are setup\n\nThis closes races where btrfs is calling d_instantiate too soon during\ninode creation.  All of the callers of btrfs_add_nondir are updated to\ninstantiate after the inode is fully setup in memory.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8d532b2afb2eacc84588db709ec280a3d1219be3",
      "tree": "27a4353e75d67bc41e9d2172702dbed1109095eb",
      "parents": [
        "d85c8a6f1bc083279215ff6e79b7c292bf3ec905"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 23 07:53:00 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 23 07:53:00 2011 -0500"
      },
      "message": "Btrfs: fix worker lock misuse in find_worker\n\nDan Carpenter noticed that we were doing a double unlock on the worker\nlock, and sometimes picking a worker thread without the lock held.\n\nThis fixes both errors.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\n"
    },
    {
      "commit": "822a5d313197c059924d394e6851be3cb312caa7",
      "tree": "7f93e12fc7f204f3ef6856e4912f2c5d0856ffdd",
      "parents": [
        "929e8d4a888cd15df486e5964c8e2021581a8a0f",
        "6c52961743f38747401b47127b82159ab6d8a7a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 20 11:31:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 20 11:31:56 2011 -0800"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFS: Fix a regression in nfs_file_llseek()\n  NFSv4: Do not accept delegated opens when a delegation recall is in effect\n  NFSv4: Ensure correct locking when accessing the \u0027lock_states\u0027 list\n  NFSv4.1: Ensure that we handle _all_ SEQUENCE status bits.\n  NFSv4: Don\u0027t error if we handled it in nfs4_recovery_handle_error\n  SUNRPC: Ensure we always bump the backlog queue in xprt_free_slot\n  SUNRPC: Fix the execution time statistics in the face of RPC restarts\n"
    },
    {
      "commit": "481fe17e973fb97aa3edf17c69557afe88d8334f",
      "tree": "3ab58a5f35345d7e61fc4428b18529705ceab1e5",
      "parents": [
        "695c60f21c69e525a89279a5f35bae4ff237afbc"
      ],
      "author": {
        "name": "Haogang Chen",
        "email": "haogangchen@gmail.com",
        "time": "Mon Dec 19 17:11:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 20 10:25:04 2011 -0800"
      },
      "message": "nilfs2: potential integer overflow in nilfs_ioctl_clean_segments()\n\nThere is a potential integer overflow in nilfs_ioctl_clean_segments().\nWhen a large argv[n].v_nmembs is passed from the userspace, the subsequent\ncall to vmalloc() will allocate a buffer smaller than expected, which\nleads to out-of-bound access in nilfs_ioctl_move_blocks() and\nlfs_clean_segments().\n\nThe following check does not prevent the overflow because nsegs is also\ncontrolled by the userspace and could be very large.\n\n\t\tif (argv[n].v_nmembs \u003e nsegs * nilfs-\u003ens_blocks_per_segment)\n\t\t\tgoto out_free;\n\nThis patch clamps argv[n].v_nmembs to UINT_MAX / argv[n].v_size, and\nreturns -EINVAL when overflow.\n\nSigned-off-by: Haogang Chen \u003chaogangchen@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "695c60f21c69e525a89279a5f35bae4ff237afbc",
      "tree": "ff706db0f49c246a398d1bbb0fc0336a43334dd1",
      "parents": [
        "b246272ecc5ac68c743b15c9e41a2275f7ce70e2"
      ],
      "author": {
        "name": "Thomas Meyer",
        "email": "thomas@m3y3r.de",
        "time": "Mon Dec 19 17:11:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 20 10:25:04 2011 -0800"
      },
      "message": "nilfs2: unbreak compat ioctl\n\ncommit 828b1c50ae (\"nilfs2: add compat ioctl\") incidentally broke all\nother NILFS compat ioctls.  Make them work again.\n\nSigned-off-by: Thomas Meyer \u003cthomas@m3y3r.de\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: \u003cstable@vger.kernel.org\u003e [3.0+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3bba872ddb0320a7ecb54decae53c13ceb2ed4c",
      "tree": "ed47c72d9193d40173e319663d4e1eb1c60a7d15",
      "parents": [
        "384703b8e6cd4c8ef08512e596024e028c91c339"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Dec 08 16:53:54 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Sun Dec 18 14:20:17 2011 +0800"
      },
      "message": "writeback: show writeback reason with __print_symbolic\n\nThis makes the binary trace understandable by trace-cmd.\n\nCC: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCC: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "c9a7fe9672612c0b595633d2945f52257ad92b20",
      "tree": "df251545a12fdbb895c07ec9dccde10163624b7f",
      "parents": [
        "2cfab8d74ebfbe06ce2947117945c4f45a5915ec",
        "d85c8a6f1bc083279215ff6e79b7c292bf3ec905",
        "142349f541d0bb6bc3e0d4563268105aada42b0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 16 12:15:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 16 12:15:50 2011 -0800"
      },
      "message": "Merge branches \u0027for-linus\u0027 and \u0027for-linus-3.2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  Btrfs: unplug every once and a while\n  Btrfs: deal with NULL srv_rsv in the delalloc inode reservation code\n  Btrfs: only set cache_generation if we setup the block group\n  Btrfs: don\u0027t panic if orphan item already exists\n  Btrfs: fix leaked space in truncate\n  Btrfs: fix how we do delalloc reservations and how we free reservations on error\n  Btrfs: deal with enospc from dirtying inodes properly\n  Btrfs: fix num_workers_starting bug and other bugs in async thread\n  BTRFS: Establish i_ops before calling d_instantiate\n  Btrfs: add a cond_resched() into the worker loop\n  Btrfs: fix ctime update of on-disk inode\n  btrfs: keep orphans for subvolume deletion\n  Btrfs: fix inaccurate available space on raid0 profile\n  Btrfs: fix wrong disk space information of the files\n  Btrfs: fix wrong i_size when truncating a file to a larger size\n  Btrfs: fix btrfs_end_bio to deal with write errors to a single mirror\n\n* \u0027for-linus-3.2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  btrfs: lower the dirty balance poll interval\n"
    },
    {
      "commit": "142349f541d0bb6bc3e0d4563268105aada42b0b",
      "tree": "c86e13b5cf8b87b3b4f3c5218442e221ce17f67b",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Fri Dec 16 12:32:57 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 16 12:32:57 2011 -0500"
      },
      "message": "btrfs: lower the dirty balance poll interval\n\nTests show that the original large intervals can easily make the dirty\nlimit exceeded on 100 concurrent dd\u0027s. So adapt to as large as the\nnext check point selected by the dirty throttling algorithm.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6c52961743f38747401b47127b82159ab6d8a7a4",
      "tree": "cfc3ba22db14f6402e567b70cad424ffd43545a6",
      "parents": [
        "652f89f64fabcdae9143ee2b4253cfa838fb0279"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 15 18:38:10 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 15 18:44:36 2011 -0500"
      },
      "message": "NFS: Fix a regression in nfs_file_llseek()\n\nAfter commit 06222e491e663dac939f04b125c9dc52126a75c4 (fs: handle\nSEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek)\nthe behaviour of llseek() was changed so that it always revalidates\nthe file size. The bug appears to be due to a logic error in the\nafore-mentioned commit, which always evaluates to \u0027true\u0027.\n\nReported-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d3.1]\n"
    },
    {
      "commit": "d85c8a6f1bc083279215ff6e79b7c292bf3ec905",
      "tree": "a816e64b9c9fa84ae3033ecf12a21a429a7301d9",
      "parents": [
        "567a45e917343c952806bb9f5c19aab0139bd519"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 15:38:41 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 15:38:41 2011 -0500"
      },
      "message": "Btrfs: unplug every once and a while\n\nThe btrfs io submission threads can build up massive plug lists.  This\nkeeps things more reasonable so we don\u0027t hand over huge dumps of IO at\nonce.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "567a45e917343c952806bb9f5c19aab0139bd519",
      "tree": "b1d6dac31a3a2836d24662139f21bb1ddc2522d3",
      "parents": [
        "e755d9ab387c4c2401dce5b6f435432a829f41cb",
        "e65cbb94e036058128a5dec6398be2fd64cf88ba"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 13:43:49 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 13:43:49 2011 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of http://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work into integration\n\nConflicts:\n\tfs/btrfs/inode.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e755d9ab387c4c2401dce5b6f435432a829f41cb",
      "tree": "fcec42ac109be4c291e03de111603fd7086fd91a",
      "parents": [
        "ad19db71f498fd858dd84ce603efcf97e321f184"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 13:36:29 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 13:36:29 2011 -0500"
      },
      "message": "Btrfs: deal with NULL srv_rsv in the delalloc inode reservation code\n\nbtrfs_update_inode is sometimes called with a null reservation.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e65cbb94e036058128a5dec6398be2fd64cf88ba",
      "tree": "1ad4bba788cc283545d1e240c529eadeab7155aa",
      "parents": [
        "ee4d89f0c4967c624c92516fcc37b41069bfdc23"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Dec 13 16:04:54 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 15 11:04:24 2011 -0500"
      },
      "message": "Btrfs: only set cache_generation if we setup the block group\n\nA user reported a problem booting into a new kernel with the old format inodes.\nHe was panicing in cow_file_range while writing out the inode cache.  This is\nbecause if the block group is not cached we\u0027ll just skip writing out the cache,\nhowever if it gets dirtied again in the same transaction and it finished caching\nwe\u0027d go ahead and write it out, but since we set cache_generation to the transid\nwe think we\u0027ve already truncated it and will just carry on, running into\ncow_file_range and blowing up.  We need to make sure we only set\ncache_generation if we\u0027ve done the truncate.  The user tested this patch and\nverified that the panic no longer occured.  Thanks,\n\nReported-and-Tested-by: Klaus Bitto \u003cklaus.bitto@gmail.com\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "ee4d89f0c4967c624c92516fcc37b41069bfdc23",
      "tree": "bec733b7d6f2794a86622ad76948c0be2c152170",
      "parents": [
        "7041ee97281c30a78658904140c7bd9373a36142"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Dec 13 12:55:58 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 15 11:04:24 2011 -0500"
      },
      "message": "Btrfs: don\u0027t panic if orphan item already exists\n\nI\u0027ve been hitting this BUG_ON() in btrfs_orphan_add when running xfstest 269 in\na loop.  This is because we will add an orphan item, do the truncate, the\ntruncate will fail for whatever reason (*cough*ENOSPC*cough*) and then we\u0027re\nleft with an orphan item still in the fs.  Then we come back later to do another\ntruncate and it blows up because we already have an orphan item.  This is ok so\njust fix the BUG_ON() to only BUG() if ret is not EEXIST.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7041ee97281c30a78658904140c7bd9373a36142",
      "tree": "7e0426127ca6cbe1c78e3def77b85488c69193ca",
      "parents": [
        "660d3f6cde552323578b85fc5a09a6742f1fe804"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 09 13:26:22 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 15 11:04:23 2011 -0500"
      },
      "message": "Btrfs: fix leaked space in truncate\n\nWe were occasionaly leaking space when running xfstest 269.  This is because if\nwe failed to start the transaction in the truncate loop we\u0027d just goto out, but\nwe need to break so that the inode is removed from the orphan list and the space\nis properly freed.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "660d3f6cde552323578b85fc5a09a6742f1fe804",
      "tree": "7273af0b2a6fe7f9be685cb0586534802c807924",
      "parents": [
        "22c44fe65adacd20a174f3f54686509ee94ef7be"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 09 11:18:51 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 15 11:04:22 2011 -0500"
      },
      "message": "Btrfs: fix how we do delalloc reservations and how we free reservations on error\n\nRunning xfstests 269 with some tracing my scripts kept spitting out errors about\nreleasing bytes that we didn\u0027t actually have reserved.  This took me down a huge\nrabbit hole and it turns out the way we deal with reserved_extents is wrong,\nwe need to only be setting it if the reservation succeeds, otherwise the free()\nmethod will come in and unreserve space that isn\u0027t actually reserved yet, which\ncan lead to other warnings and such.  The math was all working out right in the\nend, but it caused all sorts of other issues in addition to making my scripts\nyell and scream and generally make it impossible for me to track down the\noriginal issue I was looking for.  The other problem is with our error handling\nin the reservation code.  There are two cases that we need to deal with\n\n1) We raced with free.  In this case free won\u0027t free anything because csum_bytes\nis modified before we dro the lock in our reservation path, so free rightly\ndoesn\u0027t release any space because the reservation code may be depending on that\nreservation.  However if we fail, we need the reservation side to do the free at\nthat point since that space is no longer in use.  So as it stands the code was\ndoing this fine and it worked out, except in case #2\n\n2) We don\u0027t race with free.  Nobody comes in and changes anything, and our\nreservation fails.  In this case we didn\u0027t reserve anything anyway and we just\nneed to clean up csum_bytes but not free anything.  So we keep track of\ncsum_bytes before we drop the lock and if it hasn\u0027t changed we know we can just\ndecrement csum_bytes and carry on.\n\nBecause of the case where we can race with free()\u0027s since we have to drop our\nspin_lock to do the reservation, I\u0027m going to serialize all reservations with\nthe i_mutex.  We already get this for free in the heavy use paths, truncate and\nfile write all hold the i_mutex, just needed to add it to page_mkwrite and\nvarious ioctl/balance things.  With this patch my space leak scripts no longer\nscream bloody murder.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "22c44fe65adacd20a174f3f54686509ee94ef7be",
      "tree": "1d590b9e0d238970debd73a730c4e6553c2f7f1b",
      "parents": [
        "0dc3b84a73267f47a75468f924f5d58a840e3152"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Nov 30 10:45:38 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 15 11:04:21 2011 -0500"
      },
      "message": "Btrfs: deal with enospc from dirtying inodes properly\n\nNow that we\u0027re properly keeping track of delayed inode space we\u0027ve been getting\na lot of warnings out of btrfs_dirty_inode() when running xfstest 83.  This is\nbecause a bunch of people call mark_inode_dirty, which is void so we can\u0027t\nreturn ENOSPC.  This needs to be fixed in a few areas\n\n1) file_update_time - this updates the mtime and such when writing to a file,\nwhich will call mark_inode_dirty.  So copy file_update_time into btrfs so we can\ncall btrfs_dirty_inode directly and return an error if we get one appropriately.\n\n2) fix symlinks to use btrfs_setattr for -\u003esetattr.  For some reason we weren\u0027t\nsetting -\u003esetattr for symlinks, even though we should have been.  This catches\none of the cases where we were getting errors in mark_inode_dirty.\n\n3) Fix btrfs_setattr and btrfs_setsize to call btrfs_dirty_inode directly\ninstead of mark_inode_dirty.  This lets us return errors properly for truncate\nand chown/anything related to setattr.\n\n4) Add a new btrfs_fs_dirty_inode which will just call btrfs_dirty_inode and\nprint an error if we have one.  The only remaining user we can\u0027t control for\nthis is touch_atime(), but we don\u0027t really want to keep people from walking\ndown the tree if we don\u0027t have space to save the atime update, so just complain\nbut don\u0027t worry about it.\n\nWith this patch xfstests 83 complains a handful of times instead of hundreds of\ntimes.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0dc3b84a73267f47a75468f924f5d58a840e3152",
      "tree": "0c2f64c2884a0de54e3fe15971e960f71a722afb",
      "parents": [
        "5dbc8fca8ef5d719014f22345d990e957dcfc692"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 18 14:37:27 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 15 11:04:21 2011 -0500"
      },
      "message": "Btrfs: fix num_workers_starting bug and other bugs in async thread\n\nAl pointed out we have some random problems with the way we account for\nnum_workers_starting in the async thread stuff.  First of all we need to make\nsure to decrement num_workers_starting if we fail to start the worker, so make\n__btrfs_start_workers do this.  Also fix __btrfs_start_workers so that it\ndoesn\u0027t call btrfs_stop_workers(), there is no point in stopping everybody if we\nfailed to create a worker.  Also check_pending_worker_creates needs to call\n__btrfs_start_work in it\u0027s work function since it already increments\nnum_workers_starting.\n\nPeople only start one worker at a time, so get rid of the num_workers argument\neverywhere, and make btrfs_queue_worker a void since it will always succeed.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "ad19db71f498fd858dd84ce603efcf97e321f184",
      "tree": "2e78aa71cf3108ce34fc3e97ca1fecfad63047d2",
      "parents": [
        "8f3b65a3d66bcc086e1eb040b7545e70681f2ed1"
      ],
      "author": {
        "name": "Casey Schaufler",
        "email": "casey@schaufler-ca.com",
        "time": "Thu Dec 15 10:09:07 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 10:50:38 2011 -0500"
      },
      "message": "BTRFS: Establish i_ops before calling d_instantiate\n\nThe Smack LSM hook for security_d_instantiate checks\nthe inode\u0027s i_op-\u003egetxattr value to determine if the\ncontaining filesystem supports extended attributes.\nThe BTRFS filesystem sets the inode\u0027s i_op value only\nafter it has instantiated the inode. This results in\nSmack incorrectly giving new BTRFS inodes attributes\nfrom the filesystem defaults on the assumption that\nvalues can\u0027t be stored on the filesystem. This patch\nmoves the assignment of inode operation vectors ahead\nof the calls to d_instantiate, letting Smack know that\nthe filesystem supports extended attributes. There\nshould be no impact on the performance or behavior of\nBTRFS.\n\nSigned-off-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8f3b65a3d66bcc086e1eb040b7545e70681f2ed1",
      "tree": "3111f24d0e0391f8a1dac3f0a7fb9bff05e2b4bd",
      "parents": [
        "306424cc880a0fbbdc99eee1f43d056a301a180f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 09:29:43 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 10:50:38 2011 -0500"
      },
      "message": "Btrfs: add a cond_resched() into the worker loop\n\nIf we have a constant stream of end_io completions or crc work,\nwe can hit softlockup messages from the async helper threads.  This\nadds a cond_resched() into the loop to avoid them.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "306424cc880a0fbbdc99eee1f43d056a301a180f",
      "tree": "7c6b3b851fcd325c65724f3a7875311407998a6d",
      "parents": [
        "f8e9e0b07be0464e12366631da3da73a1a62449c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 14 20:12:02 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 10:50:37 2011 -0500"
      },
      "message": "Btrfs: fix ctime update of on-disk inode\n\nTo reproduce the bug:\n\n    # touch /mnt/tmp\n    # stat /mnt/tmp | grep Change\n    Change: 2011-12-09 09:32:23.412105981 +0800\n    # chattr +i /mnt/tmp\n    # stat /mnt/tmp | grep Change\n    Change: 2011-12-09 09:32:43.198105295 +0800\n    # umount /mnt\n    # mount /dev/loop1 /mnt\n    # stat /mnt/tmp | grep Change\n    Change: 2011-12-09 09:32:23.412105981 +0800\n\nWe should update ctime of in-memory inode before calling\nbtrfs_update_inode().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f8e9e0b07be0464e12366631da3da73a1a62449c",
      "tree": "3950d7dfe50186637b0bcca0d38943a64c9dff8c",
      "parents": [
        "39fb26c398ddf8d7794a85e896cfe1a42e55524b"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Wed Dec 14 20:12:02 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 10:50:37 2011 -0500"
      },
      "message": "btrfs: keep orphans for subvolume deletion\n\nSince we have the free space caches, btrfs_orphan_cleanup also runs for\nthe tree_root. Unfortunately this also cleans up the orphans used to mark\nsubvol deletions in progress.\n\nCurrently if a subvol deletion gets interrupted twice by umount/mount, the\ndeletion will not be continued and the space permanently lost, though it\nwould be possible to write a tool to recover those lost subvol deletions.\nThis patch checks if the orphan belongs to a subvol (dead root) and skips\nthe deletion.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "39fb26c398ddf8d7794a85e896cfe1a42e55524b",
      "tree": "6a7c1132f8ad0b9b70a2e5cccf55d74ab3095b48",
      "parents": [
        "3642320e07444cc46327b24977d752f99706dac2"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Dec 14 20:12:02 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 10:50:36 2011 -0500"
      },
      "message": "Btrfs: fix inaccurate available space on raid0 profile\n\nWhen we use raid0 as the data profile, df command may show us a very\ninaccurate value of the available space, which may be much less than the\nreal one. It may make the users puzzled. Fix it by changing the calculation\nof the available space, and making it be more similar to a fake chunk\nallocation.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3642320e07444cc46327b24977d752f99706dac2",
      "tree": "1ae0d347b6cd2330ca99041d2234672919ebffac",
      "parents": [
        "f4a2f4c548296168832ad4ab7e7f7b0cd0bf1214"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Dec 14 20:12:02 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 10:50:36 2011 -0500"
      },
      "message": "Btrfs: fix wrong disk space information of the files\n\nBtrfsck report errors after the 83th case of xfstests was run, The error\nnumber is 400, it means the used disk space of the file is wrong.\n\nThe reason of this bug is that:\nThe file truncation may fail when the space of the file system is not enough,\nand leave some file extents, whose offset are beyond the end of the files.\nWhen we want to expand those files, we will drop those file extents, and\nput in dummy file extents, and then we should update the i-node. But btrfs\nforgets to do it.\n\nThis patch adds the forgotten i-node update.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f4a2f4c548296168832ad4ab7e7f7b0cd0bf1214",
      "tree": "10df3e81cc6a10253bb007858ee862a91c596335",
      "parents": [
        "5dbc8fca8ef5d719014f22345d990e957dcfc692"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Dec 14 20:12:01 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 15 10:50:35 2011 -0500"
      },
      "message": "Btrfs: fix wrong i_size when truncating a file to a larger size\n\nBtrfsck report error 100 after the 83th case of xfstests was run, it means\nthe i_size of the file is wrong.\n\nThe reason of this bug is that:\nBtrfs increased i_size of the file at the beginning, but it failed to expand\nthe file, and failed to update the i_size to the old size because there is no\nenough space in the file system, so we found a wrong i_size.\n\nThis patch fixes this bug by updating the i_size just when we pass the file\nexpanding and get enough space to update i-node.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2240a7bb479c38434bd636da9ce6afbd3f49447a",
      "tree": "b19535236cfb6c64b798745dd3917dafc27bcd0a",
      "parents": [
        "30aaca4582eac20a52ac7b2ec35bdb908133e5b1",
        "5a0dc7365c240795bf190766eba7a27600be3b3e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:25:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:25:58 2011 -0800"
      },
      "message": "Merge tag \u0027tytso-for-linus-20111214\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* tag \u0027tytso-for-linus-20111214\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: handle EOF correctly in ext4_bio_write_page()\n  ext4: remove a wrong BUG_ON in ext4_ext_convert_to_initialized\n  ext4: correctly handle pages w/o buffers in ext4_discard_partial_buffers()\n  ext4: avoid potential hang in mpage_submit_io() when blocksize \u003c pagesize\n  ext4: avoid hangs in ext4_da_should_update_i_disksize()\n  ext4: display the correct mount option in /proc/mounts for [no]init_itable\n  ext4: Fix crash due to getting bogus eh_depth value on big-endian systems\n  ext4: fix ext4_end_io_dio() racing against fsync()\n\n.. using the new signed tag merge of git that now verifies the gpg\nsignature automatically.  Yay.  The branchname was just \u0027dev\u0027, which is\nprettier.  I\u0027ll tell Ted to use nicer tag names for future cases.\n"
    },
    {
      "commit": "30aaca4582eac20a52ac7b2ec35bdb908133e5b1",
      "tree": "ddc71661851922ba75dbeb0e6f272e9c2a0895fb",
      "parents": [
        "ddb360778a86bcf55d856bc15df3ebd2e77afff1",
        "73104b6e37f75f822e3dcf016147c322d1f6dad9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:23:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:23:35 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: llseek fix race\n  fuse: fix llseek bug\n  fuse: fix fuse_retrieve\n"
    },
    {
      "commit": "ddb360778a86bcf55d856bc15df3ebd2e77afff1",
      "tree": "3d3334f4f5e56ed4ab4c779ef1b21138299944b5",
      "parents": [
        "373da0a2a33018d560afcb2c77f8842985d79594",
        "759c361eb95964d0d786f8962224dd0d9e780e6e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:22:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:22:55 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  fs/ncpfs: fix error paths and goto statements in ncp_fill_super()\n  configfs: register_filesystem() called too early\n  fuse: register_filesystem() called too early\n  ubifs: too early register_filesystem()\n  ... and the same kind of leak for mqueue\n  procfs: fix a vfsmount longterm reference leak\n"
    },
    {
      "commit": "759c361eb95964d0d786f8962224dd0d9e780e6e",
      "tree": "9a054b2e2993dafd4bc87871192afdf532e09ad6",
      "parents": [
        "7c6455e368bc87ef38df7b6ddba2339a67107bdf"
      ],
      "author": {
        "name": "Djalal Harouni",
        "email": "tixxdz@opendz.org",
        "time": "Tue Dec 13 02:47:29 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 14 00:45:33 2011 -0500"
      },
      "message": "fs/ncpfs: fix error paths and goto statements in ncp_fill_super()\n\nThe label \u0027out_bdi\u0027 should be followed by bdi_destroy() instead of\nfput() which should be after the \u0027out_fput\u0027 label.\n\nIf bdi_setup_and_register() fails then jump to the \u0027out_fput\u0027 label\ninstead of the \u0027out_bdi\u0027 one.\n\nIf fget(data.info_fd) fails then jump to the previously fixed \u0027out_bdi\u0027\nlabel to call bdi_destroy() otherwise the bdi object will not be\ndestroyed.\n\nCompile tested only.\n\nSigned-off-by: Djalal Harouni \u003ctixxdz@opendz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a0dc7365c240795bf190766eba7a27600be3b3e",
      "tree": "614d5275640f4df89604f64e2cd47a438644226e",
      "parents": [
        "5b5ffa49d4bbb8ca4c41c094261660264f16bd20"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:29:12 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:29:12 2011 -0500"
      },
      "message": "ext4: handle EOF correctly in ext4_bio_write_page()\n\nWe need to zero out part of a page which beyond EOF before setting uptodate,\notherwise, mapread or write will see non-zero data beyond EOF.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5b5ffa49d4bbb8ca4c41c094261660264f16bd20",
      "tree": "98b3fb0f9b4afac37ce0c025ee9cca3991bee4eb",
      "parents": [
        "093e6e3666f47d29763a235b404c84ee47ba8bb0"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:13:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:13:42 2011 -0500"
      },
      "message": "ext4: remove a wrong BUG_ON in ext4_ext_convert_to_initialized\n\nIf a file is fallocated on a hole, map-\u003em_lblk + map-\u003em_len may be greater\nthan ee_block + ee_len.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "093e6e3666f47d29763a235b404c84ee47ba8bb0",
      "tree": "a337f1415bf1c98b63fa5536c42b97059309b8d1",
      "parents": [
        "13a79a4741d37fda2fbafb953f0f301dc007928f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:05:05 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:05:05 2011 -0500"
      },
      "message": "ext4: correctly handle pages w/o buffers in ext4_discard_partial_buffers()\n\nIf a page has been read into memory and never been written, it has no\nbuffers, but we should handle the page in truncate or punch hole.\n\nVFS code of writing operations has handled holes correctly, so this\npatch removes the code handling holes in writing operations.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "13a79a4741d37fda2fbafb953f0f301dc007928f",
      "tree": "b88b5b99690738c278c48b180cbd1ab2821522f6",
      "parents": [
        "ea51d132dbf9b00063169c1159bee253d9649224"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 21:51:55 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 21:51:55 2011 -0500"
      },
      "message": "ext4: avoid potential hang in mpage_submit_io() when blocksize \u003c pagesize\n\nIf there is an unwritten but clean buffer in a page and there is a\ndirty buffer after the buffer, then mpage_submit_io does not write the\ndirty buffer out.  As a result, da_writepages loops forever.\n\nThis patch fixes the problem by checking dirty flag.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "ea51d132dbf9b00063169c1159bee253d9649224",
      "tree": "c1c9f028e2efdb278e26d662fec2bc2ba2605f5d",
      "parents": [
        "fc6cb1cda5db7b2d24bf32890826214b857c728e"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Dec 13 21:41:15 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 21:41:15 2011 -0500"
      },
      "message": "ext4: avoid hangs in ext4_da_should_update_i_disksize()\n\nIf the pte mapping in generic_perform_write() is unmapped between\niov_iter_fault_in_readable() and iov_iter_copy_from_user_atomic(), the\n\"copied\" parameter to -\u003eend_write can be zero. ext4 couldn\u0027t cope with\nit with delayed allocations enabled. This skips the i_disksize\nenlargement logic if copied is zero and no new data was appeneded to\nthe inode.\n\n gdb\u003e bt\n #0  0xffffffff811afe80 in ext4_da_should_update_i_disksize (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x1\\\n 08000, len\u003d0x1000, copied\u003d0x0, page\u003d0xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2467\n #1  ext4_da_write_end (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x108000, len\u003d0x1000, copied\u003d0x0, page\u003d0\\\n xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2512\n #2  0xffffffff810d97f1 in generic_perform_write (iocb\u003d\u003cvalue optimized out\u003e, iov\u003d\u003cvalue optimized out\u003e, nr_segs\u003d\u003cvalue o\\\n ptimized out\u003e, pos\u003d0x108000, ppos\u003d0xffff88001e26be40, count\u003d\u003cvalue optimized out\u003e, written\u003d0x0) at mm/filemap.c:2440\n #3  generic_file_buffered_write (iocb\u003d\u003cvalue optimized out\u003e, iov\u003d\u003cvalue optimized out\u003e, nr_segs\u003d\u003cvalue optimized out\u003e, p\\\n os\u003d0x108000, ppos\u003d0xffff88001e26be40, count\u003d\u003cvalue optimized out\u003e, written\u003d0x0) at mm/filemap.c:2482\n #4  0xffffffff810db5d1 in __generic_file_aio_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d0x1, ppos\u003d0\\\n xffff88001e26be40) at mm/filemap.c:2600\n #5  0xffffffff810db853 in generic_file_aio_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d\u003cvalue optimi\\\n zed out\u003e, pos\u003d\u003cvalue optimized out\u003e) at mm/filemap.c:2632\n #6  0xffffffff811a71aa in ext4_file_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d0x1, pos\u003d0x108000) a\\\n t fs/ext4/file.c:136\n #7  0xffffffff811375aa in do_sync_write (filp\u003d0xffff88003f606a80, buf\u003d\u003cvalue optimized out\u003e, len\u003d\u003cvalue optimized out\u003e, \\\n ppos\u003d0xffff88001e26bf48) at fs/read_write.c:406\n #8  0xffffffff81137e56 in vfs_write (file\u003d0xffff88003f606a80, buf\u003d0x1ec2960 \u003cAddress 0x1ec2960 out of bounds\u003e, count\u003d0x4\\\n 000, pos\u003d0xffff88001e26bf48) at fs/read_write.c:435\n #9  0xffffffff8113816c in sys_write (fd\u003d\u003cvalue optimized out\u003e, buf\u003d0x1ec2960 \u003cAddress 0x1ec2960 out of bounds\u003e, count\u003d0x\\\n 4000) at fs/read_write.c:487\n #10 \u003csignal handler called\u003e\n #11 0x00007f120077a390 in __brk_reservation_fn_dmi_alloc__ ()\n #12 0x0000000000000000 in ?? ()\n gdb\u003e print offset\n $22 \u003d 0xffffffffffffffff\n gdb\u003e print idx\n $23 \u003d 0xffffffff\n gdb\u003e print inode-\u003ei_blkbits\n $24 \u003d 0xc\n gdb\u003e up\n #1  ext4_da_write_end (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x108000, len\u003d0x1000, copied\u003d0x0, page\u003d0\\\n xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2512\n 2512                    if (ext4_da_should_update_i_disksize(page, end)) {\n gdb\u003e print start\n $25 \u003d 0x0\n gdb\u003e print end\n $26 \u003d 0xffffffffffffffff\n gdb\u003e print pos\n $27 \u003d 0x108000\n gdb\u003e print new_i_size\n $28 \u003d 0x108000\n gdb\u003e print ((struct ext4_inode_info *)((char *)inode-((int)(\u0026((struct ext4_inode_info *)0)-\u003evfs_inode))))-\u003ei_disksize\n $29 \u003d 0xd9000\n gdb\u003e down\n 2467            for (i \u003d 0; i \u003c idx; i++)\n gdb\u003e print i\n $30 \u003d 0xd44acbee\n\nThis is 100% reproducible with some autonuma development code tuned in\na very aggressive manner (not normal way even for knumad) which does\n\"exotic\" changes to the ptes. It wouldn\u0027t normally trigger but I don\u0027t\nsee why it can\u0027t happen normally if the page is added to swap cache in\nbetween the two faults leading to \"copied\" being zero (which then\nhangs in ext4). So it should be fixed. Especially possible with lumpy\nreclaim (albeit disabled if compaction is enabled) as that would\nignore the young bits in the ptes.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "653f42f6b6348652c02737924abd6a5a6426e7ee",
      "tree": "466d9d722742f8f9c553226ffce200dc62f494ab",
      "parents": [
        "4dde6dedad736b86bcea3722abb7d8031aeeaa16",
        "9d5a09e659f8414dd3713e2acbfaf8a9e9794aa1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 13 14:59:42 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 13 14:59:42 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: add missing spin_unlock at ceph_mdsc_build_path()\n  ceph: fix SEEK_CUR, SEEK_SET regression\n  crush: fix mapping calculation when force argument doesn\u0027t exist\n  ceph: use i_ceph_lock instead of i_lock\n  rbd: remove buggy rollback functionality\n  rbd: return an error when an invalid header is read\n  ceph: fix rasize reporting by ceph_show_options\n"
    },
    {
      "commit": "4dde6dedad736b86bcea3722abb7d8031aeeaa16",
      "tree": "fac6c306bb1ae3461213937c564dddd634ad89a3",
      "parents": [
        "442ee5a942834431ccf0b412e3cf7bb9ae97ff4e",
        "82e230a07de3812a5e87a27979f033dad59172e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 13 14:58:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 13 14:58:56 2011 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: set max_pause to lowest value on zero bdi_dirty\n  writeback: permit through good bdi even when global dirty exceeded\n  writeback: comment on the bdi dirty threshold\n  fs: Make write(2) interruptible by a fatal signal\n  writeback: Fix issue on make htmldocs\n"
    },
    {
      "commit": "9d5a09e659f8414dd3713e2acbfaf8a9e9794aa1",
      "tree": "abba92c0a15f98cd4386cd86f081d1e2c89045ac",
      "parents": [
        "6a82c47aa84ab22cb5969a44105cca5358879d21"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Dec 13 09:57:44 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 13 11:59:53 2011 -0800"
      },
      "message": "ceph: add missing spin_unlock at ceph_mdsc_build_path()\n\none of the paths was missing spin_unlock\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "7c6455e368bc87ef38df7b6ddba2339a67107bdf",
      "tree": "f36669cae4f5de0bb73d9c01080ed184c7f1f108",
      "parents": [
        "988f032567eaba3c5896c5de05270b9ff71b2a9d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:32:42 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:35:15 2011 -0500"
      },
      "message": "configfs: register_filesystem() called too early\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "988f032567eaba3c5896c5de05270b9ff71b2a9d",
      "tree": "a16354eaba93f15682efb6b02a8a4f770edb1e1f",
      "parents": [
        "5cc361e3b8241989d8240014dbbe6214c9292541"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:25:27 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:35:14 2011 -0500"
      },
      "message": "fuse: register_filesystem() called too early\n\nsame story as with ubifs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5cc361e3b8241989d8240014dbbe6214c9292541",
      "tree": "bbc7ba880fe50443bcbda52be0cf8fef01024b49",
      "parents": [
        "6f686574cccc2ef66fb38e41f19cedd81e7b4504"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 23:58:21 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:35:13 2011 -0500"
      },
      "message": "ubifs: too early register_filesystem()\n\ndoing that before you are ready to handle mount() is a Bad Idea(tm)...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6a82c47aa84ab22cb5969a44105cca5358879d21",
      "tree": "60dea7b341119350274ba9c50cacddc2b357fd52",
      "parents": [
        "f1932fc1a6d899c754676b1dd8b17de93b052d43"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 13 09:19:26 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 13 09:19:26 2011 -0800"
      },
      "message": "ceph: fix SEEK_CUR, SEEK_SET regression\n\nCommit 06222e491e663dac939f04b125c9dc52126a75c4 got the if wrong so that\nit always evaluates as true.  This is semantically harmless, but makes\nSEEK_CUR and SEEK_SET needlessly query the server.\n\nRewrite the if to explicitly enumerate the cases we DO need a valid i_size\nto make this code less fragile.\n\nReported-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "73104b6e37f75f822e3dcf016147c322d1f6dad9",
      "tree": "07e8021e78af4237f645fef86ffe887aee5b4ea1",
      "parents": [
        "b48c6af2086ab2ba8a9c9b6ce9ecb34592ce500c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:40:59 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:40:59 2011 +0100"
      },
      "message": "fuse: llseek fix race\n\nFix race between lseek(fd, 0, SEEK_CUR) and read/write.  This was fixed in\ngeneric code by commit 5b6f1eb97d (vfs: lseek(fd, 0, SEEK_CUR) race condition).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b48c6af2086ab2ba8a9c9b6ce9ecb34592ce500c",
      "tree": "674ca20427f0a77a8f3e332302983e97c30a9f2a",
      "parents": [
        "48706d0a91583d08c56e7ef2a7602d99c8d4133f"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Dec 13 10:37:00 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 10:37:00 2011 +0100"
      },
      "message": "fuse: fix llseek bug\n\nThe test in fuse_file_llseek() \"not SEEK_CUR or not SEEK_SET\" always evaluates\nto true.\n\nThis was introduced in 3.1 by commit 06222e49 (fs: handle SEEK_HOLE/SEEK_DATA\nproperly in all fs\u0027s that define their own llseek) and changed the behavior of\nSEEK_CUR and SEEK_SET to always retrieve the file attributes.  This is a\nperformance regression.\n\nFix the test so that it makes sense.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@vger.kernel.org\nCC: Josef Bacik \u003cjosef@redhat.com\u003e\nCC: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48706d0a91583d08c56e7ef2a7602d99c8d4133f",
      "tree": "6eaee92bf61ef49c43d43b811289f6989375e3f6",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 10:36:59 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 10:36:59 2011 +0100"
      },
      "message": "fuse: fix fuse_retrieve\n\nFix two bugs in fuse_retrieve():\n\n - retrieving more than one page would yield repeated instances of the\n   first page\n\n - if more than FUSE_MAX_PAGES_PER_REQ pages were requested than the\n   request page array would overflow\n\nfuse_retrieve() was added in 2.6.36 and these bugs had been there since the\nbeginning.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@vger.kernel.org\n"
    },
    {
      "commit": "fc6cb1cda5db7b2d24bf32890826214b857c728e",
      "tree": "2f3226090a2da8bcde9d568598ffb3a1c7626fd3",
      "parents": [
        "b4611abfa98af8351bf32e8b9ecc9d3384931c37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "message": "ext4: display the correct mount option in /proc/mounts for [no]init_itable\n\n/proc/mounts was showing the mount option [no]init_inode_table when\nthe correct mount option that will be accepted by parse_options() is\n[no]init_itable.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b4611abfa98af8351bf32e8b9ecc9d3384931c37",
      "tree": "a1ff17e10c37207e83bc602cf1fc8045d778c8a5",
      "parents": [
        "b5a7e97039a80fae673ccc115ce595d5b88fb4ee"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 11:00:56 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 11:00:56 2011 -0500"
      },
      "message": "ext4: Fix crash due to getting bogus eh_depth value on big-endian systems\n\nCommit 1939dd84b3 (\"ext4: cleanup ext4_ext_grow_indepth code\") added a\nreference to ext4_extent_header.eh_depth, but forget to pass the value\nread through le16_to_cpu.  The result is a crash on big-endian\nmachines, such as this crash on a POWER7 server:\n\nattempt to access beyond end of device\nsda8: rw\u003d0, want\u003d776392648163376, limit\u003d168558560\nUnable to handle kernel paging request for data at address 0x6b6b6b6b6b6b6bcb\nFaulting instruction address: 0xc0000000001f5f38\ncpu 0x14: Vector: 300 (Data Access) at [c000001bd1aaecf0]\n    pc: c0000000001f5f38: .__brelse+0x18/0x60\n    lr: c0000000002e07a4: .ext4_ext_drop_refs+0x44/0x80\n    sp: c000001bd1aaef70\n   msr: 9000000000009032\n   dar: 6b6b6b6b6b6b6bcb\n dsisr: 40000000\n  current \u003d 0xc000001bd15b8010\n  paca    \u003d 0xc00000000ffe4600\n    pid   \u003d 19911, comm \u003d flush-8:0\nenter ? for help\n[c000001bd1aaeff0] c0000000002e07a4 .ext4_ext_drop_refs+0x44/0x80\n[c000001bd1aaf090] c0000000002e0c58 .ext4_ext_find_extent+0x408/0x4c0\n[c000001bd1aaf180] c0000000002e145c .ext4_ext_insert_extent+0x2bc/0x14c0\n[c000001bd1aaf2c0] c0000000002e3fb8 .ext4_ext_map_blocks+0x628/0x1710\n[c000001bd1aaf420] c0000000002b2974 .ext4_map_blocks+0x224/0x310\n[c000001bd1aaf4d0] c0000000002b7f2c .mpage_da_map_and_submit+0xbc/0x490\n[c000001bd1aaf5a0] c0000000002b8688 .write_cache_pages_da+0x2c8/0x430\n[c000001bd1aaf720] c0000000002b8b28 .ext4_da_writepages+0x338/0x670\n[c000001bd1aaf8d0] c000000000157280 .do_writepages+0x40/0x90\n[c000001bd1aaf940] c0000000001ea830 .writeback_single_inode+0xe0/0x530\n[c000001bd1aafa00] c0000000001eb680 .writeback_sb_inodes+0x210/0x300\n[c000001bd1aafb20] c0000000001ebc84 .__writeback_inodes_wb+0xd4/0x140\n[c000001bd1aafbe0] c0000000001ebfec .wb_writeback+0x2fc/0x3e0\n[c000001bd1aafce0] c0000000001ed770 .wb_do_writeback+0x2f0/0x300\n[c000001bd1aafdf0] c0000000001ed848 .bdi_writeback_thread+0xc8/0x340\n[c000001bd1aafed0] c0000000000c5494 .kthread+0xb4/0xc0\n[c000001bd1aaff90] c000000000021f48 .kernel_thread+0x54/0x70\n\nThis is due to getting ext_depth(inode) \u003d\u003d 0x101 and therefore running\noff the end of the path array in ext4_ext_drop_refs into following\nunallocated structures.\n\nThis fixes it by adding the necessary le16_to_cpu.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b5a7e97039a80fae673ccc115ce595d5b88fb4ee",
      "tree": "b8533e2cb3fc30da051487257cd24af6edeea83e",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 10:53:02 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 10:53:02 2011 -0500"
      },
      "message": "ext4: fix ext4_end_io_dio() racing against fsync()\n\nWe need to make sure iocb-\u003eprivate is cleared *before* we put the\nio_end structure on i_completed_io_list.  Otherwise fsync() could\npotentially run on another CPU and free the iocb structure out from\nunder us.\n\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "652f89f64fabcdae9143ee2b4253cfa838fb0279",
      "tree": "3ab618ec5a8f74c86d610e95ed04afa7b3b0b849",
      "parents": [
        "4b44b40e04a758e2242ff4a3f7c15982801ec8bc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 19:05:58 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 19:05:58 2011 -0500"
      },
      "message": "NFSv4: Do not accept delegated opens when a delegation recall is in effect\n\n...and report the servers that try to return a delegation when the client\nis using the CLAIM_DELEG_CUR open mode. That behaviour is explicitly\nforbidden in RFC3530.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8def5f51b012efb00e77ba2d04696cc0aadd0609",
      "tree": "17b51ff707fd1b3efec3a3ab872f0d7a7416aca5",
      "parents": [
        "a776878d6cf8a81fa65b29aa9bd6a10a5131e71c",
        "7023676f9ee851d94f0942e879243fc1f9081c47"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 09 14:45:44 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 09 14:45:44 2011 -0800"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  cifs: check for NULL last_entry before calling cifs_save_resume_key\n  cifs: attempt to freeze while looping on a receive attempt\n  cifs: Fix sparse warning when calling cifs_strtoUCS\n  CIFS: Add descriptions to the brlock cache functions\n"
    },
    {
      "commit": "4b44b40e04a758e2242ff4a3f7c15982801ec8bc",
      "tree": "2af50d7cbe9ed6c90bfb6581aac9fb0cdea6ea44",
      "parents": [
        "111d489f0fb431f4ae85d96851fbf8d3248c09d8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 16:31:52 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 09 16:31:52 2011 -0500"
      },
      "message": "NFSv4: Ensure correct locking when accessing the \u0027lock_states\u0027 list\n\nThere are currently 2 places in the state recovery code, where we do not\ntake sufficient precautions before accessing the state-\u003elock_states. In\nboth cases, we should be holding the state-\u003estate_lock.\n\nReported-by: Pascal Bouchareine \u003cpascal@gandi.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5dbc8fca8ef5d719014f22345d990e957dcfc692",
      "tree": "adf84c6e10a33cf5cab21487b2443f80a8129509",
      "parents": [
        "1cf4ffdb3289624a6462c94f2ce05545b32ef736"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 09 11:07:37 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 09 11:07:37 2011 -0500"
      },
      "message": "Btrfs: fix btrfs_end_bio to deal with write errors to a single mirror\n\nbtrfs_end_bio checks the number of errors on a bio against the max\nnumber of errors allowed before sending any EIOs up to the higher\nlevels.\n\nIf we got enough copies of the bio done for a given raid level, it is\nsupposed to clear the bio error flag and return success.\n\nWe have pointers to the original bio sent down by the higher layers and\npointers to any cloned bios we made for raid purposes.  If the original\nbio happens to be the one that got an io error, but not the last one to\nfinish, it might not have the BIO_UPTODATE bit set.\n\nThen, when the last bio does finish, we\u0027ll call bio_end_io on the\noriginal bio.  It won\u0027t have the uptodate bit set and we\u0027ll end up\nsending EIO to the higher layers.\n\nWe already had a check for this, it just was conditional on getting the\nIO error on the very last bio.  Make the check unconditional so we eat\nthe EIOs properly.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2a95ea6c0d129b4568fb64e1deda16ceb20e6636",
      "tree": "0648fbd539e00fcfc4a394acaabd3e54b4bf8658",
      "parents": [
        "1368edf0647ac112d8cfa6ce47257dc950c50f5c"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Dec 08 14:34:32 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 09 07:50:29 2011 -0800"
      },
      "message": "procfs: do not overflow get_{idle,iowait}_time for nohz\n\nSince commit a25cac5198d4 (\"proc: Consider NO_HZ when printing idle and\niowait times\") we are reporting idle/io_wait time also while a CPU is\ntickless.  We rely on get_{idle,iowait}_time functions to retrieve\nproper data.\n\nThese functions, however, use usecs_to_cputime to translate micro\nseconds time to cputime64_t.  This is just an alias to usecs_to_jiffies\nwhich reduces the data type from u64 to unsigned int and also checks\nwhether the given parameter overflows jiffies_to_usecs(MAX_JIFFY_OFFSET)\nand returns MAX_JIFFY_OFFSET in that case.\n\nWhen we overflow depends on CONFIG_HZ but especially for CONFIG_HZ_300\nit is quite low (1431649781) so we are getting MAX_JIFFY_OFFSET for\n\u003e3000s! until we overflow unsigned int.  Just for reference\nCONFIG_HZ_100 has an overflow window around 20s, CONFIG_HZ_250 ~8s and\nCONFIG_HZ_1000 ~2s.\n\nThis results in a bug when people saw [h]top going mad reporting 100%\nCPU usage even though there was basically no CPU load.  The reason was\nsimply that /proc/stat stopped reporting idle/io_wait changes (and\nreported MAX_JIFFY_OFFSET) and so the only change happening was for user\nsystem time.\n\nLet\u0027s use nsecs_to_jiffies64 instead which doesn\u0027t reduce the precision\nto 32b type and it is much more appropriate for cumulative time values\n(unlike usecs_to_jiffies which intended for timeout calculations).\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nTested-by: Artem S. Tashkinov \u003ct.artem@mailcity.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b53fc7c2974a50913f49e1d800fe904a28c338e3",
      "tree": "24d0c56f7b1135c78b869044e29a64a3c32170ea",
      "parents": [
        "83aeeada7c69f35e5100b27ec354335597a7a488"
      ],
      "author": {
        "name": "Claudio Scordino",
        "email": "claudio@evidence.eu.com",
        "time": "Thu Dec 08 14:33:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 09 07:50:28 2011 -0800"
      },
      "message": "fs/proc/meminfo.c: fix compilation error\n\nFix the error message \"directives may not be used inside a macro argument\"\nwhich appears when the kernel is compiled for the cris architecture.\n\nSigned-off-by: Claudio Scordino \u003cclaudio@evidence.eu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "905ad269c55fc62bee3da29f7b1d1efeba8aa1e1",
      "tree": "1c3cf1c0df2b72eca3f13f2f3d9057e754b7fb50",
      "parents": [
        "09d9673d53005fdf40de4c759425893904292236"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 23:20:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 00:40:19 2011 -0500"
      },
      "message": "procfs: fix a vfsmount longterm reference leak\n\nkern_mount() doesn\u0027t pair with plain mntput()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7023676f9ee851d94f0942e879243fc1f9081c47",
      "tree": "6aac4d2bbaae57306fa320beb4282c380171a8e2",
      "parents": [
        "95edcff497b126a3f3e079e94b20fe2ca7e5a63d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Dec 01 20:23:34 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Dec 08 22:04:47 2011 -0600"
      },
      "message": "cifs: check for NULL last_entry before calling cifs_save_resume_key\n\nPrior to commit eaf35b1, cifs_save_resume_key had some NULL pointer\nchecks at the top. It turns out that at least one of those NULL\npointer checks is needed after all.\n\nWhen the LastNameOffset in a FIND reply appears to be beyond the end of\nthe buffer, CIFSFindFirst and CIFSFindNext will set srch_inf.last_entry\nto NULL. Since eaf35b1, the code will now oops in this situation.\n\nFix this by having the callers check for a NULL last entry pointer\nbefore calling cifs_save_resume_key. No change is needed for the\ncall site in cifs_readdir as it\u0027s not reachable with a NULL\ncurrent_entry pointer.\n\nThis should fix:\n\n    https://bugzilla.redhat.com/show_bug.cgi?id\u003d750247\n\nCc: stable@vger.kernel.org\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nReported-by: Adam G. Metzler \u003cadamgmetzler@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "95edcff497b126a3f3e079e94b20fe2ca7e5a63d",
      "tree": "ef358cdf959bfa4641dd6b5a629e03da24bea109",
      "parents": [
        "59edb63ad08e4f3a9477223c9aaf3fba753085bf"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Dec 01 20:22:41 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Dec 08 22:04:47 2011 -0600"
      },
      "message": "cifs: attempt to freeze while looping on a receive attempt\n\nIn the recent overhaul of the demultiplex thread receive path, I\nneglected to ensure that we attempt to freeze on each pass through the\nreceive loop.\n\nReported-and-Tested-by: Woody Suwalski \u003cterraluna977@gmail.com\u003e\nReported-and-Tested-by: Adam Williamson \u003cawilliam@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "59edb63ad08e4f3a9477223c9aaf3fba753085bf",
      "tree": "226e770896bede879b998a54c947656ee8944c01",
      "parents": [
        "9a5101c8968c7b3e7de5564af6358d7332cf9a6b"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Nov 10 12:48:20 2011 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Dec 08 22:04:47 2011 -0600"
      },
      "message": "cifs: Fix sparse warning when calling cifs_strtoUCS\n\nFix sparse endian check warning while calling cifs_strtoUCS\n\nCHECK   fs/cifs/smbencrypt.c\nfs/cifs/smbencrypt.c:216:37: warning: incorrect type in argument 1\n(different base types)\nfs/cifs/smbencrypt.c:216:37:    expected restricted __le16 [usertype] *\u003cnoident\u003e\nfs/cifs/smbencrypt.c:216:37:    got unsigned short *\u003cnoident\u003e\n\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\nAcked-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\n"
    },
    {
      "commit": "9a5101c8968c7b3e7de5564af6358d7332cf9a6b",
      "tree": "f3a13e96a375a161570c40086d9cf7bc69ba5083",
      "parents": [
        "883381d9f1c5a6329bbb796e23ae52c939940310"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Mon Nov 07 16:11:24 2011 +0300"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Dec 08 22:04:47 2011 -0600"
      },
      "message": "CIFS: Add descriptions to the brlock cache functions\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "fb38f9b8fe98a9c1f6b1e57d1b08b1102b293929",
      "tree": "81282b9875595ece0c3d61a4ea1741aecba0191a",
      "parents": [
        "8bd1c8815fc23fa4db2376bf667ef885827b48c9",
        "1cf4ffdb3289624a6462c94f2ce05545b32ef736"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 08 13:18:59 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 08 13:18:59 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  Btrfs: drop spin lock when memory alloc fails\n  Btrfs: check if the to-be-added device is writable\n  Btrfs: try cluster but don\u0027t advance in search list\n  Btrfs: try to allocate from cluster even at LOOP_NO_EMPTY_SIZE\n"
    },
    {
      "commit": "1cf4ffdb3289624a6462c94f2ce05545b32ef736",
      "tree": "f8a981628e108b8a97d4abb3e0be3d8f13824e55",
      "parents": [
        "a5d16333612718569ffd26064270e535cb9c3928"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Wed Dec 07 20:08:40 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 08 08:55:47 2011 -0500"
      },
      "message": "Btrfs: drop spin lock when memory alloc fails\n\nDrop spin lock in convert_extent_bit() when memory alloc fails,\notherwise, it will be a deadlock.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a5d16333612718569ffd26064270e535cb9c3928",
      "tree": "8c91371ea5f77630ce3683bf4971bd3e6012cd0c",
      "parents": [
        "274bd4fb3ed6b72c1d77ef8850511f09fc6b8e4d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 07 20:08:40 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 08 08:55:46 2011 -0500"
      },
      "message": "Btrfs: check if the to-be-added device is writable\n\nIf we call ioctl(BTRFS_IOC_ADD_DEV) directly, we\u0027ll succeed in adding\na readonly device to a btrfs filesystem, and btrfs will write to\nthat device, emitting kernel errors:\n\n[ 3109.833692] lost page write due to I/O error on loop2\n[ 3109.833720] lost page write due to I/O error on loop2\n...\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "274bd4fb3ed6b72c1d77ef8850511f09fc6b8e4d",
      "tree": "c9a637653e547f24ed488d0d5956b314b4257597",
      "parents": [
        "062c05c46bd4358aad7a0e0cb5ffeb98ab935286"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Wed Dec 07 20:08:40 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 08 08:55:40 2011 -0500"
      },
      "message": "Btrfs: try cluster but don\u0027t advance in search list\n\nWhen we find an existing cluster, we switch to its block group as the\ncurrent block group, possibly skipping multiple blocks in the process.\nFurthermore, under heavy contention, multiple threads may fail to\nallocate from a cluster and then release just-created clusters just to\nproceed to create new ones in a different block group.\n\nThis patch tries to allocate from an existing cluster regardless of its\nblock group, and doesn\u0027t switch to that group, instead proceeding to\ntry to allocate a cluster from the group it was iterating before the\nattempt.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "062c05c46bd4358aad7a0e0cb5ffeb98ab935286",
      "tree": "1d5b9a84d299fab9345f811b6e246d935200a39b",
      "parents": [
        "f4a8e6563ea5366f563cb741a27fe90c5fa7f0fc"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Wed Dec 07 19:50:42 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Dec 07 19:50:42 2011 -0500"
      },
      "message": "Btrfs: try to allocate from cluster even at LOOP_NO_EMPTY_SIZE\n\nIf we reach LOOP_NO_EMPTY_SIZE, we won\u0027t even try to use a cluster that\nothers might have set up.  Odds are that there won\u0027t be one, but if\nsomeone else succeeded in setting it up, we might as well use it, even\nif we don\u0027t try to set up a cluster again.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a694ad94bce2a0287136043e25cff856ce3a1007",
      "tree": "56cc4ee94f0358a082b1bcba8270fe30b9aa1de0",
      "parents": [
        "1c70132ffbd3c93558c1c0b34ae228543391f355",
        "9f9c19ec1a59422c7687b11847ed3408128aa0d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 07 16:13:54 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 07 16:13:54 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix the logspace waiting algorithm\n  xfs: fix nfs export of 64-bit inodes numbers on 32-bit kernels\n  xfs: fix allocation length overflow in xfs_bmapi_write()\n"
    },
    {
      "commit": "be655596b3de5873f994ddbe205751a5ffb4de39",
      "tree": "cf6e53c6344f87a47ac68d6a6ff4d7dac6e5c25e",
      "parents": [
        "51703306b3b9ea7c05728040998521e47358147b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 30 09:47:09 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 07 10:46:44 2011 -0800"
      },
      "message": "ceph: use i_ceph_lock instead of i_lock\n\nWe have been using i_lock to protect all kinds of data structures in the\nceph_inode_info struct, including lists of inodes that we need to iterate\nover while avoiding races with inode destruction.  That requires grabbing\na reference to the inode with the list lock protected, but igrab() now\ntakes i_lock to check the inode flags.\n\nChanging the list lock ordering would be a painful process.\n\nHowever, using a ceph-specific i_ceph_lock in the ceph inode instead of\ni_lock is a simple mechanical change and avoids the ordering constraints\nimposed by igrab().\n\nReported-by: Amon Ott \u003ca.ott@m-privacy.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3172f8fe1ca1d432b196efad453c0ceb89302075",
      "tree": "0b9e8af7ea9ee9883ff1a834357694254200335a",
      "parents": [
        "b835c0f47f725d864bf2545f10c733b754bb6d51",
        "02125a826459a6ad142f8d91c5b6357562f96615"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 07 08:14:42 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 07 08:14:42 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  fix apparmor dereferencing potentially freed dentry, sanitize __d_path() API\n"
    },
    {
      "commit": "02125a826459a6ad142f8d91c5b6357562f96615",
      "tree": "8c9d9860aef93917d9b8cc6d471fe68b58ce7a9d",
      "parents": [
        "5611cc4572e889b62a7b4c72a413536bf6a9c416"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 05 08:43:34 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 06 23:57:18 2011 -0500"
      },
      "message": "fix apparmor dereferencing potentially freed dentry, sanitize __d_path() API\n\n__d_path() API is asking for trouble and in case of apparmor d_namespace_path()\ngetting just that.  The root cause is that when __d_path() misses the root\nit had been told to look for, it stores the location of the most remote ancestor\nin *root.  Without grabbing references.  Sure, at the moment of call it had\nbeen pinned down by what we have in *path.  And if we raced with umount -l, we\ncould have very well stopped at vfsmount/dentry that got freed as soon as\nprepend_path() dropped vfsmount_lock.\n\nIt is safe to compare these pointers with pre-existing (and known to be still\nalive) vfsmount and dentry, as long as all we are asking is \"is it the same\naddress?\".  Dereferencing is not safe and apparmor ended up stepping into\nthat.  d_namespace_path() really wants to examine the place where we stopped,\neven if it\u0027s not connected to our namespace.  As the result, it looked\nat -\u003ed_sb-\u003es_magic of a dentry that might\u0027ve been already freed by that point.\nAll other callers had been careful enough to avoid that, but it\u0027s really\na bad interface - it invites that kind of trouble.\n\nThe fix is fairly straightforward, even though it\u0027s bigger than I\u0027d like:\n\t* prepend_path() root argument becomes const.\n\t* __d_path() is never called with NULL/NULL root.  It was a kludge\nto start with.  Instead, we have an explicit function - d_absolute_root().\nSame as __d_path(), except that it doesn\u0027t get root passed and stops where\nit stops.  apparmor and tomoyo are using it.\n\t* __d_path() returns NULL on path outside of root.  The main\ncaller is show_mountinfo() and that\u0027s precisely what we pass root for - to\nskip those outside chroot jail.  Those who don\u0027t want that can (and do)\nuse d_path().\n\t* __d_path() root argument becomes const.  Everyone agrees, I hope.\n\t* apparmor does *NOT* try to use __d_path() or any of its variants\nwhen it sees that path-\u003emnt is an internal vfsmount.  In that case it\u0027s\ndefinitely not mounted anywhere and dentry_path() is exactly what we want\nthere.  Handling of sysctl()-triggered weirdness is moved to that place.\n\t* if apparmor is asked to do pathname relative to chroot jail\nand __d_path() tells it we it\u0027s not in that jail, the sucker just calls\nd_absolute_path() instead.  That\u0027s the other remaining caller of __d_path(),\nBTW.\n        * seq_path_root() does _NOT_ return -ENAMETOOLONG (it\u0027s stupid anyway -\nthe normal seq_file logics will take care of growing the buffer and redoing\nthe call of -\u003eshow() just fine).  However, if it gets path not reachable\nfrom root, it returns SEQ_SKIP.  The only caller adjusted (i.e. stopped\nignoring the return value as it used to do).\n\nReviewed-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nACKed-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "9f9c19ec1a59422c7687b11847ed3408128aa0d6",
      "tree": "55a7dbf7422f4b18e32ba5e0f5378c959c4e12ba",
      "parents": [
        "c29f7d457ac63311feb11928a866efd2fe153d74"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 28 08:17:36 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 06 14:19:47 2011 -0600"
      },
      "message": "xfs: fix the logspace waiting algorithm\n\nApply the scheme used in log_regrant_write_log_space to wake up any other\nthreads waiting for log space before the newly added one to\nlog_regrant_write_log_space as well, and factor the code into readable\nhelpers.  For each of the queues we have add two helpers:\n\n - one to try to wake up all waiting threads.  This helper will also be\n   usable by xfs_log_move_tail once we remove the current opportunistic\n   wakeups in it.\n - one to sleep on t_wait until enough log space is available, loosely\n   modelled after Linux waitqueues.\n \nAnd use them to reimplement the guts of log_regrant_write_log_space and\nlog_regrant_write_log_space.  These two function now use one and the same\nalgorithm for waiting on log space instead of subtly different ones before,\nwith an option to completely unify them in the near future.\n\nAlso move the filesystem shutdown handling to the common caller given\nthat we had to touch it anyway.\n\nBased on hard debugging and an earlier patch from\nChandra Seetharaman \u003csekharan@us.ibm.com\u003e.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nTested-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "c29f7d457ac63311feb11928a866efd2fe153d74",
      "tree": "277ae257d415895a980c973ab2e41f59c70999d3",
      "parents": [
        "a99ebf43f49f4499ab0e2a8a9132ad6ed6ba2409"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 30 08:58:18 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 06 10:46:23 2011 -0600"
      },
      "message": "xfs: fix nfs export of 64-bit inodes numbers on 32-bit kernels\n\nThe i_ino field in the VFS inode is of type unsigned long and thus can\u0027t\nhold the full 64-bit inode number on 32-bit kernels.  We have the full\ninode number in the XFS inode, so use that one for nfs exports.  Note\nthat I\u0027ve also switched the 32-bit file handles types to it, just to make\nthe code more consistent and copy \u0026 paste errors less likely to happen.\n\nReported-by: Guoquan Yang \u003cygq51@hotmail.com\u003e\nReported-by: Hank Peng \u003cpengxihan@gmail.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "a99ebf43f49f4499ab0e2a8a9132ad6ed6ba2409",
      "tree": "6dba4c8cacee04e8b507f77fd547bab7a23063ac",
      "parents": [
        "4c393a6059f8442a70512a48ce4639b882b6f6ad"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 01 11:24:20 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 02 16:24:02 2011 -0600"
      },
      "message": "xfs: fix allocation length overflow in xfs_bmapi_write()\n\nWhen testing the new xfstests --large-fs option that does very large\nfile preallocations, this assert was tripped deep in\nxfs_alloc_vextent():\n\nXFS: Assertion failed: args-\u003eminlen \u003c\u003d args-\u003emaxlen, file: fs/xfs/xfs_alloc.c, line: 2239\n\nThe allocation was trying to allocate a zero length extent because\nthe lower 32 bits of the allocation length was zero. The remaining\nlength of the allocation to be done was an exact multiple of 2^32 -\nthe first case I saw was at 496TB remaining to be allocated.\n\nThis turns out to be an overflow when converting the allocation\nlength (a 64 bit quantity) into the extent length to allocate (a 32\nbit quantity), and it requires the length to be allocated an exact\nmultiple of 2^32 blocks to trip the assert.\n\nFix it by limiting the extent lenth to allocate to MAXEXTLEN.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "ffb8fb5469315755ec2dd462452dcb869b358d55",
      "tree": "ee0f96ac0431819efc9c1233c07076e0d90d4a73",
      "parents": [
        "7ed89aed2b897059c3d733cbd4994035b4ce1fba",
        "4c393a6059f8442a70512a48ce4639b882b6f6ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 02 10:38:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 02 10:38:20 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix attr2 vs large data fork assert\n  xfs: force buffer writeback before blocking on the ilock in inode reclaim\n  xfs: validate acl count\n"
    },
    {
      "commit": "2151937d7ce491bfbe269a1ae742c6686904474c",
      "tree": "4aa64db4b4decc92cd8ee7c634a6d71546ab69f9",
      "parents": [
        "224736d9113ab4a7cf3f05c05377492bd99b4b02"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Dec 01 08:06:52 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 02 09:27:54 2011 -0800"
      },
      "message": "ceph: fix rasize reporting by ceph_show_options\n\nFix typo.\n\nReported-by: mowang da \u003cwhooya.xxl@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0a4ebed781dbb9ecbfef2374d29da1ab3b1a63f3",
      "tree": "ab171047c0b1bab2d423e85106f84fdf7b52ac7d",
      "parents": [
        "3b120ab76225592e9c267086fa4dfa3ce5a075fe",
        "939255798a468e1a92f03546de6e87be7b491e57"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 01 14:55:34 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 01 14:55:34 2011 -0800"
      },
      "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: (31 commits)\n  ocfs2: avoid unaligned access to dqc_bitmap\n  ocfs2: Use filemap_write_and_wait() instead of write_inode_now()\n  ocfs2: honor O_(D)SYNC flag in fallocate\n  ocfs2: Add a missing journal credit in ocfs2_link_credits() -v2\n  ocfs2: send correct UUID to cleancache initialization\n  ocfs2: Commit transactions in error cases -v2\n  ocfs2: make direntry invalid when deleting it\n  fs/ocfs2/dlm/dlmlock.c: free kmem_cache_zalloc\u0027d data using kmem_cache_free\n  ocfs2: Avoid livelock in ocfs2_readpage()\n  ocfs2: serialize unaligned aio\n  ocfs2: Implement llseek()\n  ocfs2: Fix ocfs2_page_mkwrite()\n  ocfs2: Add comment about orphan scanning\n  ocfs2: Clean up messages in the fs\n  ocfs2/cluster: Cluster up now includes network connections too\n  ocfs2/cluster: Add new function o2net_fill_node_map()\n  ocfs2/cluster: Fix output in file elapsed_time_in_ms\n  ocfs2/dlm: dlmlock_remote() needs to account for remastery\n  ocfs2/dlm: Take inflight reference count for remotely mastered resources too\n  ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery()\n  ...\n"
    },
    {
      "commit": "939255798a468e1a92f03546de6e87be7b491e57",
      "tree": "4ba0db743223eea3dea3405b3532d98716dcf250",
      "parents": [
        "249ec93c01db8898058899a80ffb537c8d27f86f"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Nov 15 14:56:34 2011 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Dec 01 14:39:32 2011 -0800"
      },
      "message": "ocfs2: avoid unaligned access to dqc_bitmap\n\nThe dqc_bitmap field of struct ocfs2_local_disk_chunk is 32-bit aligned,\nbut not 64-bit aligned.  The dqc_bitmap is accessed by ocfs2_set_bit(),\nocfs2_clear_bit(), ocfs2_test_bit(), or ocfs2_find_next_zero_bit().  These\nare wrapper macros for ext2_*_bit() which need to take an unsigned long\naligned address (though some architectures are able to handle unaligned\naddress correctly)\n\nSo some 64bit architectures may not be able to access the dqc_bitmap\ncorrectly.\n\nThis avoids such unaligned access by using another wrapper functions for\next2_*_bit().  The code is taken from fs/ext4/mballoc.c which also need to\nhandle unaligned bitmap access.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "111d489f0fb431f4ae85d96851fbf8d3248c09d8",
      "tree": "52314237a592989956bd772dc8eaa712e2f8cc92",
      "parents": [
        "4f38e4aadcca319650c0de31edf7193d7c384de2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:37:42 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:37:42 2011 -0500"
      },
      "message": "NFSv4.1: Ensure that we handle _all_ SEQUENCE status bits.\n\nCurrently, the code assumes that the SEQUENCE status bits are mutually\nexclusive. They are not...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d 2.6.34]\n"
    },
    {
      "commit": "4f38e4aadcca319650c0de31edf7193d7c384de2",
      "tree": "b33e902da4078218c7246646aecb50ad6658660a",
      "parents": [
        "c25573b5134294c0be82bfaecc6d08136835b271"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:31:34 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 01 16:31:34 2011 -0500"
      },
      "message": "NFSv4: Don\u0027t error if we handled it in nfs4_recovery_handle_error\n\nIf we handled an error condition, then nfs4_recovery_handle_error should\nreturn \u00270\u0027 so that the state recovery thread can continue.\nAlso ensure that nfs4_check_lease() continues to abort if we haven\u0027t got\nany credentials by having it return ENOKEY (which is not handled).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b930c26416c4ea6855726fd977145ccea9afbdda",
      "tree": "ae18b550c5918ba36f92d0971cc7f2cc8918a05d",
      "parents": [
        "11d814a20166461358e1cefaf6bcd425698b8460",
        "f4a8e6563ea5366f563cb741a27fe90c5fa7f0fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 01 08:28:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 01 08:28:53 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  Btrfs: fix meta data raid-repair merge problem\n  Btrfs: skip allocation attempt from empty cluster\n  Btrfs: skip block groups without enough space for a cluster\n  Btrfs: start search for new cluster at the beginning\n  Btrfs: reset cluster\u0027s max_size when creating bitmap\n  Btrfs: initialize new bitmaps\u0027 list\n  Btrfs: fix oops when calling statfs on readonly device\n  Btrfs: Don\u0027t error on resizing FS to same size\n  Btrfs: fix deadlock on metadata reservation when evicting a inode\n  Fix URL of btrfs-progs git repository in docs\n  btrfs scrub: handle -ENOMEM from init_ipath()\n"
    },
    {
      "commit": "f4a8e6563ea5366f563cb741a27fe90c5fa7f0fc",
      "tree": "e51f3968c45fdce8372f16d4e815d44fe6a0272a",
      "parents": [
        "be064d113906f04ea13088a8260e1e68ae0a4050"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Dec 01 09:30:36 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 01 09:30:36 2011 -0500"
      },
      "message": "Btrfs: fix meta data raid-repair merge problem\n\nCommit 4a54c8c16 introduced raid-repair, killing the individual\nreadpage_io_failed_hook entries from inode.c and disk-io.c. Commit\n4bb31e92 introduced new readahead code, adding a readpage_io_failed_hook to\ndisk-io.c.\n\nThe raid-repair commit had logic to disable raid-repair, if\nreadpage_io_failed_hook is set. Thus, the readahead commit effectively\ndisabled raid-repair for meta data.\n\nThis commit changes the logic to always attempt raid-repair when needed and\ncall the readpage_io_failed_hook in case raid-repair fails. This is much\nmore straight forward and should have been like that from the beginning.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\nReported-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "be064d113906f04ea13088a8260e1e68ae0a4050",
      "tree": "0adeb137e165fbcc5c9ed66d00189ef3194781f4",
      "parents": [
        "425d83156ca27f74e2cc3f370138038c3c8947f8"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "message": "Btrfs: skip allocation attempt from empty cluster\n\nIf we don\u0027t have a cluster, don\u0027t bother trying to allocate from it,\njumping right away to the attempt to allocate a new cluster.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "425d83156ca27f74e2cc3f370138038c3c8947f8",
      "tree": "67b452d423dc64aa3896078a2f90066922bbf384",
      "parents": [
        "1b22bad779be7fe07242be04749ec969164528b8"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "message": "Btrfs: skip block groups without enough space for a cluster\n\nWe test whether a block group has enough free space to hold the\nrequested block, but when we\u0027re doing clustered allocation, we can\nsave some cycles by testing whether it has enough room for the cluster\nupfront, otherwise we end up attempting to set up a cluster and\nfailing.  Only in the NO_EMPTY_SIZE loop do we attempt an unclustered\nallocation, and by then we\u0027ll have zeroed the cluster size, so this\npatch won\u0027t stop us from using the block group as a last resort.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1b22bad779be7fe07242be04749ec969164528b8",
      "tree": "08f8974f216e609a43119c4285844033775f6f7f",
      "parents": [
        "b78d09bceb524ee6481c21b77bda22d766b10e6a"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "message": "Btrfs: start search for new cluster at the beginning\n\nInstead of starting at zero (offset is always zero), request a cluster\nstarting at search_start, that denotes the beginning of the current\nblock group.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b78d09bceb524ee6481c21b77bda22d766b10e6a",
      "tree": "945f0f759dc1c32e091edfe1432f383153d76d19",
      "parents": [
        "f2d0f6765d6332f9be732965a0c6f3b8a55082b4"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 30 13:43:00 2011 -0500"
      },
      "message": "Btrfs: reset cluster\u0027s max_size when creating bitmap\n\nThe field that indicates the size of the largest contiguous chunk of\nfree space in the cluster is not initialized when setting up bitmaps,\nit\u0027s only increased when we find a larger contiguous chunk.  We end up\nretaining a larger value than appropriate for highly-fragmented\nclusters, which may cause pointless searches for large contiguous\ngroups, and even cause clusters that do not meet the density\nrequirements to be set up.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f2d0f6765d6332f9be732965a0c6f3b8a55082b4",
      "tree": "c9855b6e259e6b464c95b7ff0b9419023d02d703",
      "parents": [
        "b772a86ea6d932ac29d5e50e67c977653c832f8a"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Mon Nov 28 12:04:43 2011 -0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Nov 30 18:46:06 2011 +0100"
      },
      "message": "Btrfs: initialize new bitmaps\u0027 list\n\nWe\u0027re failing to create clusters with bitmaps because\nsetup_cluster_no_bitmap checks that the list is empty before inserting\nthe bitmap entry in the list for setup_cluster_bitmap, but the list\nfield is only initialized when it is restored from the on-disk free\nspace cache, or when it is written out to disk.\n\nBesides a potential race condition due to the multiple use of the list\nfield, filesystem performance severely degrades over time: as we use\nup all non-bitmap free extents, the try-to-set-up-cluster dance is\ndone at every metadata block allocation.  For every block group, we\nfail to set up a cluster, and after failing on them all up to twice,\nwe fall back to the much slower unclustered allocation.\n\nTo make matters worse, before the unclustered allocation, we try to\ncreate new block groups until we reach the 1% threshold, which\nintroduces additional bitmaps and thus block groups that we\u0027ll iterate\nover at each metadata block request.\n"
    },
    {
      "commit": "b772a86ea6d932ac29d5e50e67c977653c832f8a",
      "tree": "c142daf34c910b496ce578dfb391a8ebd929652e",
      "parents": [
        "ece7d20e8be6730fbb29f4550de6b19b1a3a9387"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Nov 28 16:43:00 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Nov 30 18:46:05 2011 +0100"
      },
      "message": "Btrfs: fix oops when calling statfs on readonly device\n\nTo reproduce this bug:\n\n  # dd if\u003d/dev/zero of\u003dimg bs\u003d1M count\u003d256\n  # mkfs.btrfs img\n  # losetup -r /dev/loop1 img\n  # mount /dev/loop1 /mnt\n  OOPS!!\n\nIt triggered BUG_ON(!nr_devices) in btrfs_calc_avail_data_space().\n\nTo fix this, instead of checking write-only devices, we check all open\ndeivces:\n\n  # df -h /dev/loop1\n  Filesystem            Size  Used Avail Use% Mounted on\n  /dev/loop1            250M   28K  238M   1% /mnt\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "ece7d20e8be6730fbb29f4550de6b19b1a3a9387",
      "tree": "7c01770040d8dd86548610679ab629683ec94017",
      "parents": [
        "aa38a711a893accf5b5192f3d705a120deaa81e0"
      ],
      "author": {
        "name": "Mike Fleetwood",
        "email": "mike.fleetwood@googlemail.com",
        "time": "Fri Nov 18 18:55:01 2011 +0000"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Nov 30 18:46:04 2011 +0100"
      },
      "message": "Btrfs: Don\u0027t error on resizing FS to same size\n\nIt seems overly harsh to fail a resize of a btrfs file system to the\nsame size when a shrink or grow would succeed.  User app GParted trips\nover this error.  Allow it by bypassing the shrink or grow operation.\n\nSigned-off-by: Mike Fleetwood \u003cmike.fleetwood@googlemail.com\u003e\n"
    },
    {
      "commit": "aa38a711a893accf5b5192f3d705a120deaa81e0",
      "tree": "59dbb3bca55b7141ba0e0fda1031452ae87a6935",
      "parents": [
        "b52f75a595e8a70ee453bd6fb8023ee294f7a729"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Nov 18 17:43:00 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Nov 30 18:46:03 2011 +0100"
      },
      "message": "Btrfs: fix deadlock on metadata reservation when evicting a inode\n\nWhen I ran the xfstests, I found the test tasks was blocked on meta-data\nreservation.\n\nBy debugging, I found the reason of this bug:\n   start transaction\n        |\n\tv\n   reserve meta-data space\n\t|\n\tv\n   flush delay allocation -\u003e iput inode -\u003e evict inode\n\t^\t\t\t\t\t|\n\t|\t\t\t\t\tv\n   wait for delay allocation flush \u003c- reserve meta-data space\n\nAnd besides that, the flush on evicting inode will block the thread, which\nis reclaiming the memory, and make oom happen easily.\n\nFix this bug by skipping the flush step when evicting inode.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "26bdef541d26fd6a5ddffdf8949ace22f94f809f",
      "tree": "85e4db1a93d211a719cb2c1ecec384ff442e0cd9",
      "parents": [
        "24a70313969fc3fc440216b40babdb42564acff3"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Nov 16 11:28:01 2011 +0300"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Nov 30 18:46:01 2011 +0100"
      },
      "message": "btrfs scrub: handle -ENOMEM from init_ipath()\n\ninit_ipath() can return an ERR_PTR(-ENOMEM).\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\n"
    }
  ],
  "next": "4c393a6059f8442a70512a48ce4639b882b6f6ad"
}
