)]}'
{
  "log": [
    {
      "commit": "959327c7842e8621e28b89acea7d57ff02b60972",
      "tree": "b00de195fa401186228796abdcd16812862fbf4d",
      "parents": [
        "f84ea779c25dabc90956f1c329e5e5c501ea96cc",
        "b835c0f47f725d864bf2545f10c733b754bb6d51"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 06 21:10:05 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 06 21:10:05 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "b3613118eb30a589d971e4eccbbb2a1314f5dfd4",
      "tree": "868c1ee59e1b5c19a4f2e43716400d0001a994e5",
      "parents": [
        "7505afe28c16a8d386624930a018d0052c75d687",
        "5983fe2b29df5885880d7fa3b91aca306c7564ef"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\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": "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": "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"
    },
    {
      "commit": "4c393a6059f8442a70512a48ce4639b882b6f6ad",
      "tree": "dfff7ce8903ae87a092f3ee2ab213fd06e5a47ec",
      "parents": [
        "4dd2cb4a28b7ab1f37163a4eba280926a13a8749"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 19 17:44:30 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 29 13:03:12 2011 -0600"
      },
      "message": "xfs: fix attr2 vs large data fork assert\n\nWith Dmitry fsstress updates I\u0027ve seen very reproducible crashes in\nxfs_attr_shortform_remove because xfs_attr_shortform_bytesfit claims that\nthe attributes would not fit inline into the inode after removing an\nattribute.  It turns out that we were operating on an inode with lots\nof delalloc extents, and thus an if_bytes values for the data fork that\nis larger than biggest possible on-disk storage for it which utterly\nconfuses the code near the end of xfs_attr_shortform_bytesfit.\n\nFix this by always allowing the current attribute fork, like we already\ndo for the attr1 format, given that delalloc conversion will take care\nfor moving either the data or attribute area out of line if it doesn\u0027t\nfit at that point - or making the point moot by merging extents at this\npoint.\n\nAlso document the function better, and clean up some loose bits.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4dd2cb4a28b7ab1f37163a4eba280926a13a8749",
      "tree": "f48cbb282ad4d52649b594657f00c1c8be753a47",
      "parents": [
        "fa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 29 12:06:14 2011 -0600"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 29 12:06:14 2011 -0600"
      },
      "message": "xfs: force buffer writeback before blocking on the ilock in inode reclaim\n\nIf we are doing synchronous inode reclaim we block the VM from making\nprogress in memory reclaim.  So if we encouter a flush locked inode\npromote it in the delwri list and wake up xfsbufd to write it out now.\nWithout this we can get hangs of up to 30 seconds during workloads hitting\nsynchronous inode reclaim.\n\nThe scheme is copied from what we do for dquot reclaims.\n\nReported-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "883381d9f1c5a6329bbb796e23ae52c939940310",
      "tree": "b6b862d7391d537e309c6dd3798e56350c8b996d",
      "parents": [
        "0e500b6d23b5e99b6011047a53c4aeec78a41af8",
        "4c81f045c0bd2cbb78cc6446a4cd98038fe11a2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 29 08:59:12 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 29 08:59:12 2011 -0800"
      },
      "message": "Merge branch \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix racy use-after-free in ext4_end_io_dio()\n"
    },
    {
      "commit": "fa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba",
      "tree": "9765979df5cd3da5f7e7c54b6fcf47ae26486ec9",
      "parents": [
        "c8891329131f791e0ddc422eaf6fc86e9a8cf8f5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Nov 20 15:35:32 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Nov 28 22:14:24 2011 -0600"
      },
      "message": "xfs: validate acl count\n\nThis prevents in-memory corruption and possible panics if the on-disk\nACL is badly corrupted.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "cb3599926e3e7b3678583195effa61a03026ab0e",
      "tree": "775419d69e8732ba3f4933d3b7a07e98ae555458",
      "parents": [
        "4244cb482e8eab18142162a27c8829a04585863a",
        "f6f8285132907757ef84ef8dae0a1244b8cde6ac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 28 11:27:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 28 11:27:57 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:\n  pstore: pass allocated memory region back to caller\n"
    },
    {
      "commit": "4c81f045c0bd2cbb78cc6446a4cd98038fe11a2e",
      "tree": "d294fc2e46351d7ceb7b8d8b343cb5e6aabbcc18",
      "parents": [
        "caca6a03d365883564885f2c1da3e88dcf65d139"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 24 19:22:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 24 19:22:24 2011 -0500"
      },
      "message": "ext4: fix racy use-after-free in ext4_end_io_dio()\n\next4_end_io_dio() queues io_end-\u003ework and then clears iocb-\u003eprivate;\nhowever, io_end-\u003ework calls aio_complete() which frees the iocb\nobject.  If that slab object gets reallocated, then ext4_end_io_dio()\ncan end up clearing someone else\u0027s iocb-\u003eprivate, this use-after-free\ncan cause a leak of a struct ext4_io_end_t structure.\n\nDetected and tested with slab poisoning.\n\n[ Note: Can also reproduce using 12 fio\u0027s against 12 file systems with the\n  following configuration file:\n\n  [global]\n  direct\u003d1\n  ioengine\u003dlibaio\n  iodepth\u003d1\n  bs\u003d4k\n  ba\u003d4k\n  size\u003d128m\n\n  [create]\n  filename\u003d${TESTDIR}\n  rw\u003dwrite\n\n  -- tytso ]\n\nGoogle-Bug-Id: 5354697\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nTested-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "de7badf1adc7cc95269ac4b435da23c169018a3e",
      "tree": "69ee159386af40eba6323ddf33bff929ee4d4ca5",
      "parents": [
        "f10cdea68b70bd85706baed0decab59618f9c353",
        "0f751e641a71157aa584c2a2e22fda52b52b8a56"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 23 14:28:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 23 14:28:13 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:\n  eCryptfs: Extend array bounds for all filename chars\n  eCryptfs: Flush file in vma close\n  eCryptfs: Prevent file create race condition\n"
    },
    {
      "commit": "0f751e641a71157aa584c2a2e22fda52b52b8a56",
      "tree": "53bc2e3edf25f4564376d2dac79a5bfbd1e16bf5",
      "parents": [
        "32001d6fe9ac6b0423e674a3093aa56740849f3b"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 11:31:24 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 15:43:53 2011 -0600"
      },
      "message": "eCryptfs: Extend array bounds for all filename chars\n\nFrom mhalcrow\u0027s original commit message:\n\n    Characters with ASCII values greater than the size of\n    filename_rev_map[] are valid filename characters.\n    ecryptfs_decode_from_filename() will access kernel memory beyond\n    that array, and ecryptfs_parse_tag_70_packet() will then decrypt\n    those characters. The attacker, using the FNEK of the crafted file,\n    can then re-encrypt the characters to reveal the kernel memory past\n    the end of the filename_rev_map[] array. I expect low security\n    impact since this array is statically allocated in the text area,\n    and the amount of memory past the array that is accessible is\n    limited by the largest possible ASCII filename character.\n\nThis patch solves the issue reported by mhalcrow but with an\nimplementation suggested by Linus to simply extend the length of\nfilename_rev_map[] to 256. Characters greater than 0x7A are mapped to\n0x00, which is how invalid characters less than 0x7A were previously\nbeing handled.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nReported-by: Michael Halcrow \u003cmhalcrow@google.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "32001d6fe9ac6b0423e674a3093aa56740849f3b",
      "tree": "97517bbe44089da7d33a6cc715f835e2adc9ddea",
      "parents": [
        "b59db43ad4434519feb338eacb01d77eb50825c5"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Nov 21 17:31:29 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 15:40:09 2011 -0600"
      },
      "message": "eCryptfs: Flush file in vma close\n\nDirty pages weren\u0027t being written back when an mmap\u0027ed eCryptfs file was\nclosed before the mapping was unmapped. Since f_ops-\u003eflush() is not\ncalled by the munmap() path, the lower file was simply being released.\nThis patch flushes the eCryptfs file in the vm_ops-\u003eclose() path.\n\nhttps://launchpad.net/bugs/870326\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: stable@kernel.org [2.6.39+]\n"
    },
    {
      "commit": "b59db43ad4434519feb338eacb01d77eb50825c5",
      "tree": "ee978cf1ab736b3fc104b46b2491e7742e663dcf",
      "parents": [
        "6fe4c6d466e95d31164f14b1ac4aefb51f0f4f82"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Mon Nov 21 17:31:02 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Wed Nov 23 15:39:38 2011 -0600"
      },
      "message": "eCryptfs: Prevent file create race condition\n\nThe file creation path prematurely called d_instantiate() and\nunlock_new_inode() before the eCryptfs inode info was fully\nallocated and initialized and before the eCryptfs metadata was written\nto the lower file.\n\nThis could result in race conditions in subsequent file and inode\noperations leading to unexpected error conditions or a null pointer\ndereference while attempting to use the unallocated memory.\n\nhttps://launchpad.net/bugs/813146\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4e3fd7a06dc20b2d8ec6892233ad2012968fe7b6",
      "tree": "da3fbec7672ac6b967dfa31cec6c88f468a57fa2",
      "parents": [
        "40ba84993d66469d336099c5af74c3da5b73e28d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Nov 21 03:39:03 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 22 16:43:32 2011 -0500"
      },
      "message": "net: remove ipv6_addr_copy()\n\nC assignment can handle struct in6_addr copying.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2db1125d51c4752ca68d1f015347b6f5b55e9fca",
      "tree": "6f63b43c99b9b612b4ec3f8a673160fa3fe75111",
      "parents": [
        "866d43c9ea88daa3751b58aba16a2a9b7f7aa067",
        "d31da0f0ba3bc0a827a63879310818c22d9a95be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 13:19:21 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 13:19:21 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  mount_subtree() pointless use-after-free\n  iio: fix a leak due to improper use of anon_inode_getfd()\n  microblaze: bury asm/namei.h\n"
    },
    {
      "commit": "d31da0f0ba3bc0a827a63879310818c22d9a95be",
      "tree": "d89bbdf299c4cbc37f49a9964b8127f09eedd50b",
      "parents": [
        "b46413367961c2e8bd827e067a231be982aaeee2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 22 12:31:21 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 22 12:31:21 2011 -0500"
      },
      "message": "mount_subtree() pointless use-after-free\n\nd\u0027oh... we\u0027d carefully pinned mnt-\u003emnt_sb down, dropped mnt and attempt\nto grab s_umount on mnt-\u003emnt_sb.  The trouble is, *mnt might\u0027ve been\noverwritten by now...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e25ba0ce039d1c5cae0b0057e4b9e228dc6744bd",
      "tree": "3f5d705161f24c6a9dc36c1947ce7f81e53db41b",
      "parents": [
        "af36d15f58a3560617f1497ae011c3192049e40e",
        "62e4a76987eab2b7fa952546614bc83e5bfc9d3e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 08:54:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 08:54:15 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: Revert pnfs ugliness from the generic NFS read code path\n  SUNRPC: destroy freshly allocated transport in case of sockaddr init error\n  NFS: Fix a regression in the referral code\n  nfs: move nfs_file_operations declaration to bottom of file.c (try #2)\n  nfs: when attempting to open a directory, fall back on normal lookup (try #5)\n"
    },
    {
      "commit": "af36d15f58a3560617f1497ae011c3192049e40e",
      "tree": "f754dd93f4b14745c5e7b8caf52349716f7f7652",
      "parents": [
        "8ba8ed54de4dd79bb88ab6cd7dbf2e83d58d6d57",
        "24a70313969fc3fc440216b40babdb42564acff3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 08:53:40 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 22 08:53:40 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: remove free-space-cache.c WARN during log replay\n  Btrfs: sectorsize align offsets in fiemap\n  Btrfs: clear pages dirty for io and set them extent mapped\n  Btrfs: wait on caching if we\u0027re loading the free space cache\n  Btrfs: prefix resize related printks with btrfs:\n  btrfs: fix stat blocks accounting\n  Btrfs: avoid unnecessary bitmap search for cluster setup\n  Btrfs: fix to search one more bitmap for cluster setup\n  btrfs: mirror_num should be int, not u64\n  btrfs: Fix up 32/64-bit compatibility for new ioctls\n  Btrfs: fix barrier flushes\n  Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush\n"
    },
    {
      "commit": "f8f5ed7c996ad9426847ce09b828d415cb19bc06",
      "tree": "ef5826a0b818ef6130c67da63a8bb8aa81b19dde",
      "parents": [
        "c292fe4aae5aa5c089633bc40342d27c8275306a",
        "6e58ad69efe9f4c91eb15f6bc365293414c397ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:37 2011 -0800"
      },
      "message": "Merge branch \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix up a undefined error in ext4_free_blocks in debugging code\n  ext4: add blk_finish_plug in error case of writepages.\n  ext4: Remove kernel_lock annotations\n  ext4: ignore journalled data options on remount if fs has no journal\n"
    },
    {
      "commit": "c292fe4aae5aa5c089633bc40342d27c8275306a",
      "tree": "84c6898327eb35c3c20c1728eaff8ca19094ddeb",
      "parents": [
        "7758c4d6e9371efa04a1cf1b124bbf9cc43e830e",
        "224736d9113ab4a7cf3f05c05377492bd99b4b02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:13 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  libceph: Allocate larger oid buffer in request msgs\n  ceph: initialize root dentry\n  ceph: fix iput race when queueing inode work\n"
    },
    {
      "commit": "24a70313969fc3fc440216b40babdb42564acff3",
      "tree": "16c8840f4495369e771cff62bb2fd8aa81d65ee9",
      "parents": [
        "4d479cf010d56ec9c54f3099992d039918f1296b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 21 09:39:11 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 21 14:57:33 2011 -0500"
      },
      "message": "Btrfs: remove free-space-cache.c WARN during log replay\n\nThe log replay code only partially loads block groups, since\nthe block group caching code is able to detect and deal with\nextents the logging code has pinned down.\n\nWhile the logging code is pinning down block groups, there is\na bogus WARN_ON we\u0027re hitting if the code wasn\u0027t able to find\nan extent in the cache.  This commit removes the warning because\nit can happen any time there isn\u0027t a valid free space cache\nfor that block group.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6e58ad69efe9f4c91eb15f6bc365293414c397ce",
      "tree": "06c1f88ed4448526234172a2ae9ad2458488920d",
      "parents": [
        "3c1fcb2c24519febd7ca9cf292fa5bdf513b601f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "message": "ext4: fix up a undefined error in ext4_free_blocks in debugging code\n\nsbi is not defined, so let ext4_free_blocks use EXT4_SB(sb) instead\nwhen EXT4FS_DEBUG is defined.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\n"
    },
    {
      "commit": "dd179946db2493646955efc112d73c85b3cafcb1",
      "tree": "59203e419cf14e4a28e3ede7cb32a00d34bd0f8e",
      "parents": [
        "f1fd306a91f875e65af0e04855b23adda6831ac9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 16 15:31:30 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Nov 20 23:04:27 2011 -0500"
      },
      "message": "VFS: Log the fact that we\u0027ve given ELOOP rather than creating a loop\n\nTo prevent an NFS server from being used to create a directory loop in an NFS\nsuperblock on the client, the following patch was committed:\n\n\tcommit 1836750115f20b774e55c032a3893e8c5bdf41ed\n\tAuthor: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n\tDate:   Tue Jul 12 21:42:24 2011 -0400\n\tSubject: fix loop checks in d_materialise_unique()\n\nThis causes ELOOP to be reported to anyone trying to access the dentry that\nwould otherwise cause the kernel to complete the loop.\n\nHowever, no indication is given to the caller as to why an operation that ought\nto work doesn\u0027t.  The fault is with the kernel, which doesn\u0027t want to try and\nsolve the problem as it gets horrendously messy if there\u0027s another mountpoint\nsomewhere in the trees being spliced that can\u0027t be moved[*].\n\n[*] The real problem is that we don\u0027t handle the excision of a subtree that\ngets moved _out_ of what we can see.  This can happen on the server where a\ndirectory is merely moved between two other dirs on the same filesystem, but\nwhere destination dir is not accessible by the client.\n\nSo, given the choice to return ELOOP rather than trying to reconfigure the\ndentry tree, we should give the caller some indication of why they aren\u0027t being\nallowed to make what should be a legitimate request and log a message.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4d479cf010d56ec9c54f3099992d039918f1296b",
      "tree": "efed635e7dc1d53c9a63787846912df1667e8a16",
      "parents": [
        "f7d61dcd6873c49bcc42be2caa2af1c2511aa915"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Nov 17 11:34:31 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:17 2011 -0500"
      },
      "message": "Btrfs: sectorsize align offsets in fiemap\n\nWe\u0027ve been hitting BUG()\u0027s in btrfs_cont_expand and btrfs_fallocate and anywhere\nelse that calls btrfs_get_extent while running xfstests 13 in a loop.  This is\nbecause fiemap is calling btrfs_get_extent with non-sectorsize aligned offsets,\nwhich will end up adding mappings that are not sectorsize aligned, which will\ncause problems in some cases for subsequent calls to btrfs_get_extent for\nsimilar areas that are sectorsize aligned.  With this patch I ran xfstests 13 in\na loop for a couple of hours and didn\u0027t hit the problem that I could previously\nhit in at most 20 minutes.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "f7d61dcd6873c49bcc42be2caa2af1c2511aa915",
      "tree": "9619519c2eac1dd207bf822f348575cf9f98ba47",
      "parents": [
        "291c7d2f577428f896daa5002e784959328a80aa"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 15 09:31:24 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:17 2011 -0500"
      },
      "message": "Btrfs: clear pages dirty for io and set them extent mapped\n\nWhen doing the io_ctl helpers to clean up the free space cache stuff I stopped\nusing our normal prepare_pages stuff, which means I of course forgot to do\nthings like set the pages extent mapped, which will cause us all sorts of\nwonderful propblems.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "291c7d2f577428f896daa5002e784959328a80aa",
      "tree": "e18fdbc7bd0d8764444615a8efb1a3f74386204a",
      "parents": [
        "5bb1468238e20b15921909e9f9601e945f03bac7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Nov 14 13:52:14 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:16 2011 -0500"
      },
      "message": "Btrfs: wait on caching if we\u0027re loading the free space cache\n\nWe\u0027ve been hitting panics when running xfstest 13 in a loop for long periods of\ntime.  And actually this problem has always existed so we\u0027ve been hitting these\nthings randomly for a while.  Basically what happens is we get a thread coming\ninto the allocator and reading the space cache off of disk and adding the\nentries to the free space cache as we go.  Then we get another thread that comes\nin and tries to allocate from that block group.  Since block_group-\u003ecached !\u003d\nBTRFS_CACHE_NO it goes ahead and tries to do the allocation.  We do this because\nif we\u0027re doing the old slow way of caching we don\u0027t want to hold people up and\nwait for everything to finish.  The problem with this is we could end up\ndiscarding the space cache at some arbitrary point in the future, which means we\ncould very well end up allocating space that is either bad, or when the real\ncaching happens it could end up thinking the space isn\u0027t in use when it really\nis and cause all sorts of other problems.\n\nThe solution is to add a new flag to indicate we are loading the free space\ncache from disk, and always try to cache the block group if cache-\u003ecached !\u003d\nBTRFS_CACHE_FINISHED.  That way if we are loading the space cache anybody else\nwho tries to allocate from the block group will have to wait until it\u0027s finished\nto make sure it completes successfully.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "5bb1468238e20b15921909e9f9601e945f03bac7",
      "tree": "fdd730e4e974ce07dfc6f40be47f512178f3ff5c",
      "parents": [
        "fadc0d8be4dfca80f6c568bc5874931893c6709b"
      ],
      "author": {
        "name": "Arnd Hannemann",
        "email": "arnd@arndnet.de",
        "time": "Sun Nov 20 07:33:38 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:16 2011 -0500"
      },
      "message": "Btrfs: prefix resize related printks with btrfs:\n\nFor the user it is confusing to find something like:\n[10197.627710] new size for /dev/mapper/vg0-usr_share is 3221225472\nin kernel log, because it doesn\u0027t point directly to btrfs.\n\nThis patch prefixes those messages with \"btrfs:\" like other btrfs\nrelated printks.\n\nSigned-off-by: Arnd Hannemann \u003carnd@arndnet.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fadc0d8be4dfca80f6c568bc5874931893c6709b",
      "tree": "a73dd18819b86cc14a1f01a7f58e34d94b8d84da",
      "parents": [
        "52621cb6ed0e0e14358bb317bda7cd5fbd5c2a27"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Sun Nov 20 07:33:38 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:15 2011 -0500"
      },
      "message": "btrfs: fix stat blocks accounting\n\nRound inode bytes and delalloc bytes up to real blocksize before\nconverting to sector size. Otherwise eg. files smaller than 512\nare reported with zero blocks due to incorrect rounding.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "52621cb6ed0e0e14358bb317bda7cd5fbd5c2a27",
      "tree": "5b4bc4c08c9f50e97779fcf527b1a8c7780a9e88",
      "parents": [
        "0f0fbf1d0e188d129756e9508090af4bdbfde00b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sun Nov 20 07:33:38 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:15 2011 -0500"
      },
      "message": "Btrfs: avoid unnecessary bitmap search for cluster setup\n\nsetup_cluster_no_bitmap() searches all the extents and bitmaps starting\nfrom offset. Therefore if it returns -ENOSPC, all the bitmaps starting\nfrom offset are in the bitmaps list, so it\u0027s sufficient to search from\nthis list in setup_cluser_bitmap().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0f0fbf1d0e188d129756e9508090af4bdbfde00b",
      "tree": "1c015e7be1e1ede9b2b654cb6264217fc110e598",
      "parents": [
        "32240a913d9f3a5aad42175d7696590ea1bfdb08"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sun Nov 20 07:33:38 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:14 2011 -0500"
      },
      "message": "Btrfs: fix to search one more bitmap for cluster setup\n\nSuppose there are two bitmaps [0, 256], [256, 512] and one extent\n[100, 120] in the free space cache, and we want to setup a cluster\nwith offset\u003d100, bytes\u003d50.\n\nIn this case, there will be only one bitmap [256, 512] in the temporary\nbitmaps list, and then setup_cluster_bitmap() won\u0027t search bitmap [0, 256].\n\nThe cause is, the list is constructed in setup_cluster_no_bitmap(),\nand only bitmaps with bitmap_entry-\u003eoffset \u003e\u003d offset will be added\ninto the list, and the very bitmap that convers offset has\nbitmap_entry-\u003eoffset \u003c\u003d offset.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "32240a913d9f3a5aad42175d7696590ea1bfdb08",
      "tree": "444fa1d89ac8f58196943efecc96fe453d739de0",
      "parents": [
        "745c4d8e160afaf6c75e887c27ea4b75c8142b26"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Sun Nov 20 07:33:38 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:14 2011 -0500"
      },
      "message": "btrfs: mirror_num should be int, not u64\n\nMy previous patch introduced some u64 for failed_mirror variables, this one\nmakes it consistent again.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "745c4d8e160afaf6c75e887c27ea4b75c8142b26",
      "tree": "b1e5b3725654f4119f06346cef3a1c94d34accf8",
      "parents": [
        "387125fc722a8ed432066b85a552917343bdafca"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Sun Nov 20 07:31:57 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:42:13 2011 -0500"
      },
      "message": "btrfs: Fix up 32/64-bit compatibility for new ioctls\n\n This patch casts to unsigned long before casting to a pointer and fixes\n the following warnings:\nfs/btrfs/extent_io.c:2289:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]\nfs/btrfs/ioctl.c:2933:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]\nfs/btrfs/ioctl.c:2937:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]\nfs/btrfs/ioctl.c:3020:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]\nfs/btrfs/scrub.c:275:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]\nfs/btrfs/backref.c:686:27: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "387125fc722a8ed432066b85a552917343bdafca",
      "tree": "cbb37a682f73f17b9ea728be84dcca135914a294",
      "parents": [
        "f1ebcc74d5b2159f44c96b479b6eb8afc7829095"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Nov 18 15:07:51 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 20 07:21:14 2011 -0500"
      },
      "message": "Btrfs: fix barrier flushes\n\nWhen btrfs is writing the super blocks, it send barrier flushes to make\nsure writeback caching drives get all the metadata on disk in the\nright order.\n\nBut, we have two bugs in the way these are sent down.  When doing\nfull commits (not via the tree log), we are sending the barrier down\nbefore the last super when it should be going down before the first.\n\nIn multi-device setups, we should be waiting for the barriers to\ncomplete on all devices before writing any of the supers.\n\nBoth of these bugs can cause corruptions on power failures.  We fix it\nwith some new code to send down empty barriers to all devices before\nwriting the first super.\n\nAlexandre Oliva found the multi-device bug.  Arne Jansen did the async\nbarrier loop.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nReported-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\n"
    },
    {
      "commit": "f1fd306a91f875e65af0e04855b23adda6831ac9",
      "tree": "3b3c733133f76ff212f81c9b71ea977169cb4fee",
      "parents": [
        "016e8d44bc06dd3322f26712bdd3f3a6973592d0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 26 22:38:50 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Nov 19 11:13:28 2011 -0500"
      },
      "message": "minixfs: kill manual hweight(), simplify\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "016e8d44bc06dd3322f26712bdd3f3a6973592d0",
      "tree": "3e237994b81e284ad58acc75f37b4c8d4aefbdf3",
      "parents": [
        "d633180c20271d3b7c1fabbccbc7c5b30ad12be4"
      ],
      "author": {
        "name": "Josh Boyer",
        "email": "jwboyer@redhat.com",
        "time": "Fri Aug 19 14:50:26 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Nov 19 11:13:26 2011 -0500"
      },
      "message": "fs/minix: Verify bitmap block counts before mounting\n\nNewer versions of MINIX can create filesystems that allocate an extra\nbitmap block.  Mounting of this succeeds, but doing a statfs call will\nresult in an oops in count_free because of a negative number being used\nfor the bh index.\n\nAvoid this by verifying the number of allocated blocks at mount time,\nerroring out if there are not enough and make statfs ignore the extras\nif there are too many.\n\nThis fixes https://bugzilla.kernel.org/show_bug.cgi?id\u003d18792\n\nSigned-off-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "208f6f6068836e10d526e87fef6ca4364f4ec068",
      "tree": "b9558820a176572b529ca6c1473b7c5ddb4b08ec",
      "parents": [
        "ab5c5f639bba89d1103deae447836edf41e37659",
        "ea441d1104cf1efb471fa81bc91e9fd1e6ae29fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 19 06:06:39 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 19 06:06:39 2011 -0500"
      },
      "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  new helper: mount_subtree()\n  switch create_mnt_ns() to saner calling conventions, fix double mntput() in nfs\n  btrfs: fix double mntput() in mount_subvol()\n"
    },
    {
      "commit": "ab5c5f639bba89d1103deae447836edf41e37659",
      "tree": "f7e619c425975e0a022ba2ff2449bf2ce8b6cca4",
      "parents": [
        "c5e0c7825d3a14c2dfc383763393f0bcb5400aa6",
        "c8891329131f791e0ddc422eaf6fc86e9a8cf8f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 19 06:05:17 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 19 06:05:17 2011 -0500"
      },
      "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  MAINTAINERS: update XFS maintainer entry\n  xfs: use doalloc flag in xfs_qm_dqattach_one()\n"
    },
    {
      "commit": "15bd1cfb3055d866614cdaf38e43201936264e50",
      "tree": "020261b5a984684201a39e661934aa5dcdf82f83",
      "parents": [
        "9545eb61e5bb70055fd9358f25f95387f7398cba",
        "019ceb7d5d252ce71001a157cf29f4ac28501b72"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 18 09:34:35 2011 -0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 18 09:34:35 2011 -0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  block: add missed trace_block_plug\n  paride: fix potential information leak in pg_read()\n  bio: change some signed vars to unsigned\n  block: avoid unnecessary plug list flush\n  cciss: auto engage SCSI mid layer at driver load time\n  loop: cleanup set_status interface\n  include/linux/bio.h: use a static inline function for bio_integrity_clone()\n  loop: prevent information leak after failed read\n  block: Always check length of all iov entries in blk_rq_map_user_iov()\n  The Windows driver .inf disables ASPM on all cciss devices. Do the same.\n  backing-dev: ensure wakeup_timer is deleted\n  block: Revert \"[SCSI] genhd: add a new attribute \"alias\" in gendisk\"\n"
    },
    {
      "commit": "f6f8285132907757ef84ef8dae0a1244b8cde6ac",
      "tree": "f3d3b37349e79251cfe16ef0f39e0b4af1a266b1",
      "parents": [
        "cfcfc9eca2bcbd26a8e206baeb005b055dbf8e37"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Nov 17 12:58:07 2011 -0800"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Nov 17 12:58:07 2011 -0800"
      },
      "message": "pstore: pass allocated memory region back to caller\n\nThe buf_lock cannot be held while populating the inodes, so make the backend\npass forward an allocated and filled buffer instead. This solves the following\nbacktrace. The effect is that \"buf\" is only ever used to notify the backends\nthat something was written to it, and shouldn\u0027t be used in the read path.\n\nTo replace the buf_lock during the read path, isolate the open/read/close\nloop with a separate mutex to maintain serialized access to the backend.\n\nNote that is is up to the pstore backend to cope if the (*write)() path is\ncalled in the middle of the read path.\n\n[   59.691019] BUG: sleeping function called from invalid context at .../mm/slub.c:847\n[   59.691019] in_atomic(): 0, irqs_disabled(): 1, pid: 1819, name: mount\n[   59.691019] Pid: 1819, comm: mount Not tainted 3.0.8 #1\n[   59.691019] Call Trace:\n[   59.691019]  [\u003c810252d5\u003e] __might_sleep+0xc3/0xca\n[   59.691019]  [\u003c810a26e6\u003e] kmem_cache_alloc+0x32/0xf3\n[   59.691019]  [\u003c810b53ac\u003e] ? __d_lookup_rcu+0x6f/0xf4\n[   59.691019]  [\u003c810b68b1\u003e] alloc_inode+0x2a/0x64\n[   59.691019]  [\u003c810b6903\u003e] new_inode+0x18/0x43\n[   59.691019]  [\u003c81142447\u003e] pstore_get_inode.isra.1+0x11/0x98\n[   59.691019]  [\u003c81142623\u003e] pstore_mkfile+0xae/0x26f\n[   59.691019]  [\u003c810a2a66\u003e] ? kmem_cache_free+0x19/0xb1\n[   59.691019]  [\u003c8116c821\u003e] ? ida_get_new_above+0x140/0x158\n[   59.691019]  [\u003c811708ea\u003e] ? __init_rwsem+0x1e/0x2c\n[   59.691019]  [\u003c810b67e8\u003e] ? inode_init_always+0x111/0x1b0\n[   59.691019]  [\u003c8102127e\u003e] ? should_resched+0xd/0x27\n[   59.691019]  [\u003c8137977f\u003e] ? _cond_resched+0xd/0x21\n[   59.691019]  [\u003c81142abf\u003e] pstore_get_records+0x52/0xa7\n[   59.691019]  [\u003c8114254b\u003e] pstore_fill_super+0x7d/0x91\n[   59.691019]  [\u003c810a7ff5\u003e] mount_single+0x46/0x82\n[   59.691019]  [\u003c8114231a\u003e] pstore_mount+0x15/0x17\n[   59.691019]  [\u003c811424ce\u003e] ? pstore_get_inode.isra.1+0x98/0x98\n[   59.691019]  [\u003c810a8199\u003e] mount_fs+0x5a/0x12d\n[   59.691019]  [\u003c810b9174\u003e] ? alloc_vfsmnt+0xa4/0x14a\n[   59.691019]  [\u003c810b9474\u003e] vfs_kern_mount+0x4f/0x7d\n[   59.691019]  [\u003c810b9d7e\u003e] do_kern_mount+0x34/0xb2\n[   59.691019]  [\u003c810bb15f\u003e] do_mount+0x5fc/0x64a\n[   59.691019]  [\u003c810912fb\u003e] ? strndup_user+0x2e/0x3f\n[   59.691019]  [\u003c810bb3cb\u003e] sys_mount+0x66/0x99\n[   59.691019]  [\u003c8137b537\u003e] sysenter_do_call+0x12/0x26\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "249ec93c01db8898058899a80ffb537c8d27f86f",
      "tree": "381c22ba9726ac884aa1267b91736fff3836c766",
      "parents": [
        "df295d4a4b3c98af1a2445a82aef169e7e5d96b8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Nov 08 00:20:39 2011 +0100"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 02:18:57 2011 -0800"
      },
      "message": "ocfs2: Use filemap_write_and_wait() instead of write_inode_now()\n\nSince ocfs2 has no -\u003ewrite_inode method, there\u0027s no point in calling\nwrite_inode_now() from ocfs2_cleanup_delete_inode().  Use\nfilemap_write_and_wait() instead. This helps us to cleanup inode writing\ninterfaces...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "df295d4a4b3c98af1a2445a82aef169e7e5d96b8",
      "tree": "e262858cac79bdffe8e139aa5d445e0b4bb9b8a0",
      "parents": [
        "0393afea31874947b1d149b82d17b7dccac4f210"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.de",
        "time": "Wed Nov 16 12:03:10 2011 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 02:15:58 2011 -0800"
      },
      "message": "ocfs2: honor O_(D)SYNC flag in fallocate\n\nWe need to sync the transaction which updates i_size if the file is marked\nas needing sync semantics.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.de\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "0393afea31874947b1d149b82d17b7dccac4f210",
      "tree": "f9eb50279c4a122d9483be097d41e7a4d8f20905",
      "parents": [
        "e41d33af7c037a6f7350f8410b45ce83b50d1b80"
      ],
      "author": {
        "name": "Xiaowei.Hu",
        "email": "xiaowei.hu@oracle.com",
        "time": "Wed Oct 19 09:34:19 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:48 2011 -0800"
      },
      "message": "ocfs2: Add a missing journal credit in ocfs2_link_credits() -v2\n\nWith indexed_dir enabled, ocfs2 maintains a list of dirblocks having\nspace.\n\nThe credit calculation in ocfs2_link_credits() did not correctly account\nfor adding an entry that exactly fills a dirblock that triggers removing\nthat dirblock by changing the pointer in the previous block in the list.\nThe credit calculation did not account for that previous block.\n\nTo expose, do:\n\nmkfs.ocfs2 -b 512 -M local /dev/sdX\nmount /dev/sdX /ocfs2\nmkdir /ocfs2/linkdir\ntouch /ocfs2/linkdir/file1\nfor i in `seq 1 29` ; do link /ocfs2/linkdir/file1\n/ocfs2/linkdir/linklinklinklinklinklink$i; done\nrm -f /ocfs2/linkdir/linklinklinklinklinklink10\nsleep 8\nlink /ocfs2/linkdir/file1\n/ocfs2/linkdir/linklinklinklinklinklinkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n\nNote:\nThe link names have been crafted for a 512 byte blocksize. Reproducing\nwith a larger blocksize will require longer (or more) links. The sleep\nis important. We want jbd2 to commit the transaction so that the missing\nblock does not piggy back on account of the previous transaction.\n\nSigned-off-by: XiaoweiHu \u003cxiaowei.hu at oracle.com\u003e\nReviewed-by: WengangWang \u003cwen.gang.wang at oracle.com\u003e\nReviewed-by: Sunil.Mushran \u003csunil.mushran at oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "e41d33af7c037a6f7350f8410b45ce83b50d1b80",
      "tree": "bbf08c4e9321dd17265f3aa65b96bbf441d23f8f",
      "parents": [
        "b8a0ae579fb8d9b21008ac386be08b9428902455"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Mon Oct 17 16:47:17 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:48 2011 -0800"
      },
      "message": "ocfs2: send correct UUID to cleancache initialization\n\nocfs2: Fix cleancache initialization call to correctly pass uuid\n\nAs reported by Steven Whitehouse in https://lkml.org/lkml/2011/5/27/221\nthe ocfs2 volume UUID is incorrectly passed to cleancache.\nAs a result, shared-ephemeral tmem pools will not actually\nbe created; instead they will be private (unshared) which\nmisses out on a major benefit of tmem.\n\nReported-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "b8a0ae579fb8d9b21008ac386be08b9428902455",
      "tree": "cab8d712ee687c26bd2e1ce8ba7b069be4a7e92a",
      "parents": [
        "8298524803339a9a8df053ebdfebc2975ec55be9"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Wed Oct 12 15:22:15 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:47 2011 -0800"
      },
      "message": "ocfs2: Commit transactions in error cases -v2\n\nThere are three cases found that in error cases, journal transactions are not\ncommitted nor aborted. We should take care of these case by committing the\ntransactions. Otherwise, there would left a journal handle which will lead to\n, in same process context, the comming ocfs2_start_trans() gets wrong credits.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "8298524803339a9a8df053ebdfebc2975ec55be9",
      "tree": "2bea3c08eac9239ea596707fadfefed7f1bab2d7",
      "parents": [
        "fc9f899483435935c1cd7005df29681929d1c99b"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Tue Jul 12 16:43:14 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:46 2011 -0800"
      },
      "message": "ocfs2: make direntry invalid when deleting it\n\nWhen we deleting a direntry from a directory, if it\u0027s the first in a block we\ninvalid it by setting inode to 0; otherwise, we merge the deleted one to the\nprior and contiguous direntry. And we don\u0027t truncate directories.\n\nThere is a problem for the later case since inode is not set to 0.\nThis problem happens when the caller passes a file position as parameter to\nocfs2_dir_foreach_blk(). If the position happens to point to a stale(not\nthe first, deleted in betweens of ocfs2_dir_foreach_blk()s) direntry, we are\nnot able to recognize its staleness. So that we treat it as a live one wrongly.\n\nThe fix is to set inode to 0 in both cases indicating the direntry is stale.\nThis won\u0027t introduce additional IOs.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "fc9f899483435935c1cd7005df29681929d1c99b",
      "tree": "c7ad164cfcfc16e5fb155e0ea3d3039eb47f0def",
      "parents": [
        "99b1bb61b225c3eb4d3b196d4f1d041695b19a7e"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat Jul 09 18:04:39 2011 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:46 2011 -0800"
      },
      "message": "fs/ocfs2/dlm/dlmlock.c: free kmem_cache_zalloc\u0027d data using kmem_cache_free\n\nMemory allocated using kmem_cache_zalloc should be freed using\nkmem_cache_free, not kfree.\n\nThe semantic patch that fixes this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression x,e,e1,e2;\n@@\n\nx \u003d kmem_cache_zalloc(e1,e2)\n... when !\u003d x \u003d e\n?-kfree(x)\n+kmem_cache_free(e1,x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "ea441d1104cf1efb471fa81bc91e9fd1e6ae29fd",
      "tree": "32b7c4f7c78af47936a604e3f4e13e8e61f834a0",
      "parents": [
        "c13344958780b4046305ee6235d686c846535529"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 21:43:59 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 22:00:34 2011 -0500"
      },
      "message": "new helper: mount_subtree()\n\ntakes vfsmount and relative path, does lookup within that vfsmount\n(possibly triggering automounts) and returns the result as root\nof subtree suitable for return by -\u003emount() (i.e. a reference to\ndentry and an active reference to its superblock grabbed, superblock\nlocked exclusive).\n\nbtrfs and nfs switched to it instead of open-coding the sucker.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c13344958780b4046305ee6235d686c846535529",
      "tree": "aed2958283867030aa9e9f742c3fb94c895b2d5c",
      "parents": [
        "8d514bbf37eecf0a3e309284728637816a36764b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 16:12:14 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 16:12:14 2011 -0500"
      },
      "message": "switch create_mnt_ns() to saner calling conventions, fix double mntput() in nfs\n\nLife is much saner if create_mnt_ns(mnt) drops mnt in case of error...\nSwitch it to such calling conventions, switch callers, fix double mntput() in\nfs/nfs/super.c one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8d514bbf37eecf0a3e309284728637816a36764b",
      "tree": "1a7745397b545456a34d9f2fd37464b44b01aeff",
      "parents": [
        "6aaf05f472c97ebceff47d9eef464574f1a55727"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 16:06:09 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 16 16:06:09 2011 -0500"
      },
      "message": "btrfs: fix double mntput() in mount_subvol()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "121f099412bd6576dfb3d94222e89d9341362177",
      "tree": "47b82e98cb879d4cf08f0465ade31d58833cf53c",
      "parents": [
        "3540d5e89b2ac268fcfc9b07a50a9ba4acc2e5e5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Nov 16 09:21:50 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Nov 16 09:21:50 2011 +0100"
      },
      "message": "bio: change some signed vars to unsigned\n\nThis is just a cleanup patch to silence a static checker warning.\n\nThe problem is that we cap \"nr_iovecs\" so it can\u0027t be larger than\n\"UIO_MAXIOV\" but we don\u0027t check for negative values.  It turns out this is\nprevented at other layers, but logically it doesn\u0027t make sense to have\nnegative nr_iovecs so making it unsigned is nicer.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "db3e74b582915d66e10b0c73a62763418f54c340",
      "tree": "e5cdfdedf24c275601e0b197db24dbd52c8e08b9",
      "parents": [
        "810627d9a6d0e8820c798001875bc4e1b7754ebf"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Thu Nov 10 01:33:10 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 15 14:45:09 2011 -0600"
      },
      "message": "xfs: use doalloc flag in xfs_qm_dqattach_one()\n\nThe doalloc arg in xfs_qm_dqattach_one() is a flag that indicates\nwhether a new area to handle quota information will be allocated\nif needed. Originally, it was passed to xfs_qm_dqget(), but has\nbeen removed by the following commit (probably by mistake):\n\n\tcommit 8e9b6e7fa4544ea8a0e030c8987b918509c8ff47\n\tAuthor: Christoph Hellwig \u003chch@lst.de\u003e\n\tDate:   Sun Feb 8 21:51:42 2009 +0100\n\n\txfs: remove the unused XFS_QMOPT_DQLOCK flag\n\nAs the result, xfs_qm_dqget() called from xfs_qm_dqattach_one()\nnever allocates the new area even if it is needed.\n\nThis patch gives the doalloc arg to xfs_qm_dqget() in\nxfs_qm_dqattach_one() to fix this problem.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "bc5b8a9003132ae44559edd63a1623b7b99dfb68",
      "tree": "e5dd06f9262c13daaa3d09f643572f909ba2cdbd",
      "parents": [
        "7f80850d3f9fd8fda23a317044aef3a6bafab06b"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon Nov 14 17:52:08 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 15 14:29:42 2011 -0200"
      },
      "message": "hfs: add sanity check for file name length\n\nOn a corrupted file system the -\u003elen field could be wrong leading to\na buffer overflow.\n\nReported-and-acked-by: Clement LECIGNE \u003cclement.lecigne@netasq.com\u003e\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1ebcc74d5b2159f44c96b479b6eb8afc7829095",
      "tree": "83d949e151f2f7e4a980396538cc0f2356bacfd4",
      "parents": [
        "8965593e41dd2d0e2a2f1e6f245336005ea94a2c"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Mon Nov 14 20:48:06 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Nov 15 09:53:28 2011 -0500"
      },
      "message": "Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush\n\nThe btrfs snapshotting code requires that once a root has been\nsnapshotted, we don\u0027t change it during a commit.\n\nBut there are two cases to lead to tree corruptions:\n\n1) multi-thread snapshots can commit serveral snapshots in a transaction,\n   and this may change the src root when processing the following pending\n   snapshots, which lead to the former snapshots corruptions;\n\n2) the free inode cache was changing the roots when it root the cache,\n   which lead to corruptions.\n\nThis fixes things by making sure we force COW the block after we create a\nsnapshot during commiting a transaction, then any changes to the roots\nwill result in COW, and we get all the fs roots and snapshot roots to be\nconsistent.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c1f4246716392ec8693c23cffb969bd73c1b0910",
      "tree": "6160ac2507b28cf7625be79dd539a286c9fe4e43",
      "parents": [
        "fe10e6f4b24ef8ca12cb4d2368deb4861ab1861b",
        "8965593e41dd2d0e2a2f1e6f245336005ea94a2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 11 23:47:06 2011 -0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 11 23:47:06 2011 -0200"
      },
      "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: rename the option to nospace_cache\n  Btrfs: handle bio_add_page failure gracefully in scrub\n  Btrfs: fix deadlock caused by the race between relocation\n  Btrfs: only map pages if we know we need them when reading the space cache\n  Btrfs: fix orphan backref nodes\n  Btrfs: Abstract similar code for btrfs_block_rsv_add{, _noflush}\n  Btrfs: fix unreleased path in btrfs_orphan_cleanup()\n  Btrfs: fix no reserved space for writing out inode cache\n  Btrfs: fix nocow when deleting the item\n  Btrfs: tweak the delayed inode reservations again\n  Btrfs: rework error handling in btrfs_mount()\n  Btrfs: close devices on all error paths in open_ctree()\n  Btrfs: avoid null dereference and leaks when bailing from open_ctree()\n  Btrfs: fix subvol_name leak on error in btrfs_mount()\n  Btrfs: fix memory leak in btrfs_parse_early_options()\n  Btrfs: fix our reservations for updating an inode when completing io\n  Btrfs: fix oops on NULL trans handle in btrfs_truncate\n  btrfs: fix double-free \u0027tree_root\u0027 in \u0027btrfs_mount()\u0027\n"
    },
    {
      "commit": "53e3ccfd153f0e71352b34a930e231ac1ae07d5e",
      "tree": "b369d99756a8ddf7ebd9b13cc9c011bf9bd32ba4",
      "parents": [
        "5e442a493fc59fa536c76db1fff5b49ca36a88c5",
        "810627d9a6d0e8820c798001875bc4e1b7754ebf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 11 23:37:17 2011 -0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 11 23:37:17 2011 -0200"
      },
      "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 force shutdown handling in xfs_end_io\n  xfs: constify xfs_item_ops\n  xfs: Fix possible memory corruption in xfs_readlink\n"
    },
    {
      "commit": "774ac21da76f5c3018428725074e27a3fd40b128",
      "tree": "3c22879278514494e467e651c918994cd6f359d2",
      "parents": [
        "15a2015fbc692e1c97d7ce12d96e077f5ae7ea6d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 11 09:48:08 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 11 09:50:17 2011 -0800"
      },
      "message": "ceph: initialize root dentry\n\nSet up d_fsdata on the root dentry.  This fixes a NULL pointer dereference\nin ceph_d_prune on umount.  It also means we can eventually strip out all\nof the conditional checks on d_fsdata because it is now set unconditionally\n(prior to setting up the d_ops).\n\nFix the ceph_d_prune debug print while we\u0027re here.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8965593e41dd2d0e2a2f1e6f245336005ea94a2c",
      "tree": "0b8ac73ccccc05f08bd4abb2b8c0099a1383fd3d",
      "parents": [
        "69f4cb526bd02ae5af35846f9a710c099eec3347"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Fri Nov 11 10:14:57 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Nov 11 10:14:57 2011 -0500"
      },
      "message": "btrfs: rename the option to nospace_cache\n\nRename no_space_cache option to nospace_cache to be more consistent with\nthe rest, where the simple prefix \u0027no\u0027 is used to negate an option.\n\nThe option has been introduced during the -rc1 cycle and there are has not been\nwidely used, so it\u0027s safe.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "69f4cb526bd02ae5af35846f9a710c099eec3347",
      "tree": "0fc400c20ab6293603b8b615467893a13426c82c",
      "parents": [
        "62f30c5462374b991e7e3f42d49ce2265c1b82f1"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Fri Nov 11 08:17:10 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Nov 11 08:17:10 2011 -0500"
      },
      "message": "Btrfs: handle bio_add_page failure gracefully in scrub\n\nCurrently scrub fails with ENOMEM when bio_add_page fails. Unfortunately\ndm based targets accept only one page per bio, thus making scrub always\nfails. This patch just submits the current bio when an error is encountered\nand starts a new one.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "62f30c5462374b991e7e3f42d49ce2265c1b82f1",
      "tree": "4d991bd451bcc9e619bb4b775b4acc6a0e3fca8f",
      "parents": [
        "2f120c05e67ae34c93786b1050c6828904314429"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "message": "Btrfs: fix deadlock caused by the race between relocation\n\nWe can not do flushable reservation for the relocation when we create snapshot,\nbecause it may make the transaction commit task and the flush task wait for\neach other and the deadlock happens.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2f120c05e67ae34c93786b1050c6828904314429",
      "tree": "d14dfdb4e94b5b562ed35206a8525cd5908fc0db",
      "parents": [
        "76b9e23d25d5c99f994bee3172de39492e452e93"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "message": "Btrfs: only map pages if we know we need them when reading the space cache\n\nPeople have been running into a warning when loading space cache because the\npage is already mapped when trying to read in a bitmap.  The way we read in\nentries and pages is kind of convoluted, so fix it so that io_ctl_read_entry\nmaps the entries if it needs to, and if it hits the end of the page it simply\nunmaps the page.  That way we can unconditionally unmap the io_ctl before\nreading in the bitmap and we should stop hitting these warnings.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "76b9e23d25d5c99f994bee3172de39492e452e93",
      "tree": "458af244546eb4a131944d2b3a922f027ea15d54",
      "parents": [
        "61b520a9d0083b9b361638e456af45fd75150c87"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "message": "Btrfs: fix orphan backref nodes\n\nIf the root node of a fs/file tree is in the block group that is\nbeing relocated, but the others are not in the other block groups.\nwhen we create a snapshot for this tree between the relocation tree\ncreation ends and -\u003ecreate_reloc_tree is set to 0, Btrfs will create\nsome backref nodes that are the lowest nodes of the backrefs cache.\nBut we forget to add them into -\u003eleaves list of the backref cache\nand deal with them, and at last, they will triggered BUG_ON().\n\n  kernel BUG at fs/btrfs/relocation.c:239!\n\nThis patch fixes it by adding them into -\u003eleaves list of backref cache.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "61b520a9d0083b9b361638e456af45fd75150c87",
      "tree": "9545d5f0a2e606bef5702437a7c4c3eca9f12db4",
      "parents": [
        "3254c87618354e58fa2a7b375c6664f567480c33"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "message": "Btrfs: Abstract similar code for btrfs_block_rsv_add{, _noflush}\n\nbtrfs_block_rsv_add{, _noflush}() have similar code, so abstract that code.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3254c87618354e58fa2a7b375c6664f567480c33",
      "tree": "735c06e860467f567e12c81cabee7956baeee258",
      "parents": [
        "ba38eb4de354d228f2792f93cde2c748a3a3f3b2"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:45:05 2011 -0500"
      },
      "message": "Btrfs: fix unreleased path in btrfs_orphan_cleanup()\n\nWhen we did stress test for the space relocation, the deadlock happened.\nBy debugging, We found it was caused by the carelessness that we forgot\nto unlock the read lock of the extent buffers in btrfs_orphan_cleanup()\nbefore we end the transaction handle, so the transaction commit task waited\nthe task, which called btrfs_orphan_cleanup(), to unlock the extent buffer,\nbut that task waited the commit task to end the transaction commit, and\nthe deadlock happened. Fix it.\n\nSigned-ff-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ba38eb4de354d228f2792f93cde2c748a3a3f3b2",
      "tree": "c88a2903398eae9ccd7f0c755f70ca600bcc162b",
      "parents": [
        "924cd8fbe41851eda2b68bf2ed501b2777fd77b4"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Nov 10 20:45:04 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:45:04 2011 -0500"
      },
      "message": "Btrfs: fix no reserved space for writing out inode cache\n\nI-node cache forgets to reserve the space when writing out it. And when\nwe do some stress test, such as synctest, it will trigger WARN_ON() in\nuse_block_rsv().\n\nWARNING: at fs/btrfs/extent-tree.c:5718 btrfs_alloc_free_block+0xbf/0x281 [btrfs]()\n...\nCall Trace:\n [\u003cffffffff8104df86\u003e] warn_slowpath_common+0x80/0x98\n [\u003cffffffff8104dfb3\u003e] warn_slowpath_null+0x15/0x17\n [\u003cffffffffa0369c60\u003e] btrfs_alloc_free_block+0xbf/0x281 [btrfs]\n [\u003cffffffff810cbcb8\u003e] ? __set_page_dirty_nobuffers+0xfe/0x108\n [\u003cffffffffa035c040\u003e] __btrfs_cow_block+0x118/0x3b5 [btrfs]\n [\u003cffffffffa035c7ba\u003e] btrfs_cow_block+0x103/0x14e [btrfs]\n [\u003cffffffffa035e4c4\u003e] btrfs_search_slot+0x249/0x6a4 [btrfs]\n [\u003cffffffffa036d086\u003e] btrfs_lookup_inode+0x2a/0x8a [btrfs]\n [\u003cffffffffa03788b7\u003e] btrfs_update_inode+0xaa/0x141 [btrfs]\n [\u003cffffffffa036d7ec\u003e] btrfs_save_ino_cache+0xea/0x202 [btrfs]\n [\u003cffffffffa03a761e\u003e] ? btrfs_update_reloc_root+0x17e/0x197 [btrfs]\n [\u003cffffffffa0373867\u003e] commit_fs_roots+0xaa/0x158 [btrfs]\n [\u003cffffffffa03746a6\u003e] btrfs_commit_transaction+0x405/0x731 [btrfs]\n [\u003cffffffff810690df\u003e] ? wake_up_bit+0x25/0x25\n [\u003cffffffffa039d652\u003e] ? btrfs_log_dentry_safe+0x43/0x51 [btrfs]\n [\u003cffffffffa0381c5f\u003e] btrfs_sync_file+0x16a/0x198 [btrfs]\n [\u003cffffffff81122806\u003e] ? mntput+0x21/0x23\n [\u003cffffffff8112d150\u003e] vfs_fsync_range+0x18/0x21\n [\u003cffffffff8112d170\u003e] vfs_fsync+0x17/0x19\n [\u003cffffffff8112d316\u003e] do_fsync+0x29/0x3e\n [\u003cffffffff8112d348\u003e] sys_fsync+0xb/0xf\n [\u003cffffffff81468352\u003e] system_call_fastpath+0x16/0x1b\n\nSometimes it causes BUG_ON() in the reservation code of the delayed inode\nis triggered.\n\nSo we must reserve enough space for inode cache.\n\nNote: If we can not reserve the enough space for inode cache, we will\ngive up writing out it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "924cd8fbe41851eda2b68bf2ed501b2777fd77b4",
      "tree": "c31afbc9ba7dbc27eea43a0319a64732d180a3d2",
      "parents": [
        "f7d572188b7b2a6d07081688f8602dc407186e64"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Nov 10 20:45:04 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:45:04 2011 -0500"
      },
      "message": "Btrfs: fix nocow when deleting the item\n\nbtrfs_previous_item() just search the b+ tree, do not COW the nodes or leaves,\nif we modify the result of it, the meta-data will be broken. fix it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f7d572188b7b2a6d07081688f8602dc407186e64",
      "tree": "d6a386fbe7c44afcb05847e1f9d1405583b0fff9",
      "parents": [
        "2115133f8b9a8dbdb217d14080814df07ce90479",
        "04d21a244fdf79d0ac892eaaa9a46b682467277c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:42:53 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:42:53 2011 -0500"
      },
      "message": "Merge branch \u0027mount-fixes\u0027 of git://github.com/idryomov/btrfs-unstable into integration\n"
    },
    {
      "commit": "2115133f8b9a8dbdb217d14080814df07ce90479",
      "tree": "3b2f3d6839cdb1f6495ae10dd548f7fbfee70266",
      "parents": [
        "7fd2ae21a42d178982679b86086661292b4afe4a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:39:08 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 10 20:39:08 2011 -0500"
      },
      "message": "Btrfs: tweak the delayed inode reservations again\n\nJosef sent along an incremental to the inode reservation\ncode to make sure we try and fall back to directly updating\nthe inode item if things go horribly wrong.\n\nThis reworks that patch slightly, adding a fallback function\nthat will always try to update the inode item directly without\ngoing through the delayed_inode code.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "62e4a76987eab2b7fa952546614bc83e5bfc9d3e",
      "tree": "433ab5bde90a8d2dbeeabc29a6aa0c25deae5732",
      "parents": [
        "2aa13531bbbc6582874bedfcd853e1058b0fb4f9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Nov 10 14:30:37 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Nov 10 14:50:26 2011 -0500"
      },
      "message": "NFS: Revert pnfs ugliness from the generic NFS read code path\n\npNFS-specific code belongs in the pnfs layer. It should not be\nhijacking generic NFS read or write code paths.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5e442a493fc59fa536c76db1fff5b49ca36a88c5",
      "tree": "47fb93c6430ac7b598bf3bdd03d1399dd1467fad",
      "parents": [
        "19e0bafc36abd84a5b4d7c7745b78a6f4626e944"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 09 18:16:00 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 09 18:16:00 2011 -0500"
      },
      "message": "Revert \"proc: fix races against execve() of /proc/PID/fd**\"\n\nThis reverts commit aa6afca5bcaba8101f3ea09d5c3e4100b2b9f0e5.\n\nIt escalates of some of the google-chrome SELinux problems with ptrace\n(\"Check failed: pid_ \u003e 0.  Did not find zygote process\"), and Andrew\nsays that it is also causing mystery lockdep reports.\n\nReported-by: Alex Villacís Lasso \u003ca_villacis@palosanto.com\u003e\nRequested-by: James Morris \u003cjmorris@namei.org\u003e\nRequested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04d21a244fdf79d0ac892eaaa9a46b682467277c",
      "tree": "da0cadb86766bbf34f30c4b3efddde01e3d6d677",
      "parents": [
        "586e46e2813c589d26258a599580421fb6fb576b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 14:41:22 2011 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 22:53:39 2011 +0200"
      },
      "message": "Btrfs: rework error handling in btrfs_mount()\n\nCommits 6c41761f and 45ea6095 introduced the possibility of NULL pointer\ndereference on error paths, also we would leave all devices busy and\nleak fs_info with all sub-structures on error when trying to mount an\nalready mounted fs to a different directory.\n\nFix this by doing all allocations before trying to open any of the\ndevices, adjust error path for mount-already-mounted-fs case.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "586e46e2813c589d26258a599580421fb6fb576b",
      "tree": "dfbdacfd14bec153909e13f8ab23480e292e41f6",
      "parents": [
        "4d34b2789538befa45a68a191dc12e0886a69f7d"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 13:26:37 2011 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 22:53:38 2011 +0200"
      },
      "message": "Btrfs: close devices on all error paths in open_ctree()\n\nFix a bug introduced by 7e662854 where we would leave devices busy on\ncertain error paths in open_ctree().  fs_info is guaranteed to be\nnon-NULL now so it\u0027s safe to dereference it on all error paths.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "4d34b2789538befa45a68a191dc12e0886a69f7d",
      "tree": "83f8e67439f0562ee9d4aa51cf1a3a0166d78f99",
      "parents": [
        "f23c8af8ca2789eeb0ab9ea90c214f9694d96cc5"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 00:08:15 2011 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 22:53:38 2011 +0200"
      },
      "message": "Btrfs: avoid null dereference and leaks when bailing from open_ctree()\n\nFix bugs introduced by 6c41761f.  Firstly, after failing to allocate any\nof the tree roots (first \u0027goto fail\u0027 in open_ctree()) we would\ndereference a NULL fs_info pointer in free_fs_info().  Secondly, after\nfailures from init_srcu_struct(), setup_bdi() and new_inode() we would\nleak all earlier allocated roots: fs_info fields haven\u0027t been\ninitialized yet so free_fs_info() is rendered useless.\n\nFix this by initializing fs_info pointer and fs_info fields before any\nallocations happen.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "f23c8af8ca2789eeb0ab9ea90c214f9694d96cc5",
      "tree": "e1acd02447bc510609f14372d4aa4c1349ed6000",
      "parents": [
        "a90e8b6fb80db43b029e1e76205452afa8bdc77a"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Nov 08 19:15:05 2011 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 22:53:38 2011 +0200"
      },
      "message": "Btrfs: fix subvol_name leak on error in btrfs_mount()\n\nbtrfs_parse_early_options() can fail due to error while scanning devices\n(-o device\u003d option), but still strdup() subvol_name string:\n\nmount -o subvol\u003dSUBV,device\u003dBAD_DEVICE \u003cdev\u003e \u003cmnt\u003e\n\nSo free subvol_name string on error.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "a90e8b6fb80db43b029e1e76205452afa8bdc77a",
      "tree": "98a546a79e439f984f43c15f1cd6fecc8a082412",
      "parents": [
        "7fd2ae21a42d178982679b86086661292b4afe4a"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Nov 08 16:47:55 2011 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Wed Nov 09 22:53:38 2011 +0200"
      },
      "message": "Btrfs: fix memory leak in btrfs_parse_early_options()\n\nDon\u0027t leak subvol_name string in case multiple subvol\u003d options are\ngiven.  \"The lastest option is effective\" behavior (consistent with\nsubvolid\u003d and subvolrootid\u003d options) is preserved.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "7fd2ae21a42d178982679b86086661292b4afe4a",
      "tree": "236c22d807ca5f2419a1b0394bd1092aab730cde",
      "parents": [
        "917c16b2b69fc2eeb432eabca73258f08c58361e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 08 15:47:34 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Nov 08 15:47:34 2011 -0500"
      },
      "message": "Btrfs: fix our reservations for updating an inode when completing io\n\nPeople have been reporting ENOSPC crashes in finish_ordered_io.  This is because\nwe try to steal from the delalloc block rsv to satisfy a reservation to update\nthe inode.  The problem with this is we don\u0027t explicitly save space for updating\nthe inode when doing delalloc.  This is kind of a problem and we\u0027ve gotten away\nwith this because way back when we just stole from the delalloc reserve without\nany questions, and this worked out fine because generally speaking the leaf had\nbeen modified either by the mtime update when we did the original write or\nbecause we just updated the leaf when we inserted the file extent item, only on\nrare occasions had the leaf not actually been modified, and that was still ok\nbecause we\u0027d just use a block or two out of the over-reservation that is\ndelalloc.\n\nThen came the delayed inode stuff.  This is amazing, except it wants a full\nreservation for updating the inode since it may do it at some point down the\nroad after we\u0027ve written the blocks and we have to recow everything again.  This\nworked out because the delayed inode stuff just stole from the global reserve,\nthat is until recently when I changed that because it caused other problems.\n\nSo here we are, we\u0027re doing everything right and being screwed for it.  So take\nan extra reservation for the inode at delalloc reservation time and carry it\nthrough the life of the delalloc reservation.  If we need it we can steal it in\nthe delayed inode stuff.  If we have already stolen it try and do a normal\nmetadata reservation.  If that fails try to steal from the delalloc reservation.\nIf _that_ fails we\u0027ll get a WARN_ON() so I can start thinking of a better way to\nsolve this and in the meantime we\u0027ll steal from the global reserve.\n\nWith this patch I ran xfstests 13 in a loop for a couple of hours and didn\u0027t see\nany problems.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "917c16b2b69fc2eeb432eabca73258f08c58361e",
      "tree": "3eb8b7d59bbb8c7d6cb54876428b485e72878692",
      "parents": [
        "45ea6095c8f0d6caad5658306416a5d254f1205e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Nov 08 14:49:59 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Nov 08 14:49:59 2011 -0500"
      },
      "message": "Btrfs: fix oops on NULL trans handle in btrfs_truncate\n\nIf we fail to reserve space in the transaction during truncate, we can\nerror out with a NULL trans handle.  The cleanup code needs an extra\ncheck to make sure we aren\u0027t trying to use the bad handle.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "810627d9a6d0e8820c798001875bc4e1b7754ebf",
      "tree": "1ebd7b3919f78d117d7ec8b6ec78615e01210448",
      "parents": [
        "272e42b215c52d32e06bf035c1f6b70baa6716bd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Nov 08 08:56:15 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: fix force shutdown handling in xfs_end_io\n\nEnsure ioend-\u003eio_error gets propagated back to e.g. AIO completions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "272e42b215c52d32e06bf035c1f6b70baa6716bd",
      "tree": "b09ad40176f53006d57669255991a42ee38eb488",
      "parents": [
        "b52a360b2aa1c59ba9970fb0f52bbb093fcc7a24"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Oct 28 09:54:24 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: constify xfs_item_ops\n\nThe log item ops aren\u0027t nessecarily the biggest exploit vector, but marking\nthem const is easy enough.  Also remove the unused xfs_item_ops_t typedef\nwhile we\u0027re at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "b52a360b2aa1c59ba9970fb0f52bbb093fcc7a24",
      "tree": "b8710ad524592faac1427d2155aaf4ba29a80cf8",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cmaiolino@redhat.com",
        "time": "Mon Nov 07 16:10:24 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: Fix possible memory corruption in xfs_readlink\n\nFixes a possible memory corruption when the link is larger than\nMAXPATHLEN and XFS_DEBUG is not enabled. This also remove the\nS_ISLNK assert, since the inode mode is checked previously in\nxfs_readlink_by_handle() and via VFS.\n\nUpdated to address concerns raised by Ben Hutchings about the loose\nattention paid to 32- vs 64-bit values, and the lack of handling a\npotentially negative pathlen value:\n - Changed type of \"pathlen\" to be xfs_fsize_t, to match that of\n   ip-\u003ei_d.di_size\n - Added checking for a negative pathlen to the too-long pathlen\n   test, and generalized the message that gets reported in that case\n   to reflect the change\nAs a result, if a negative pathlen were encountered, this function\nwould return EFSCORRUPTED (and would fail an assertion for a debug\nbuild)--just as would a too-long pathlen.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "a3fbbde70a0cec017f2431e8f8de208708c76acc",
      "tree": "f584856e638ca916a8aca32eda58a8fe89722c9f",
      "parents": [
        "54a0f91301950af3d6ae2ff2bf710c9c68a9bfea"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Mon Nov 07 21:21:26 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 14:58:06 2011 -0800"
      },
      "message": "VFS: we need to set LOOKUP_JUMPED on mountpoint crossing\n\nMountpoint crossing is similar to following procfs symlinks - we do\nnot get -\u003ed_revalidate() called for dentry we have arrived at, with\nunpleasant consequences for NFS4.\n\nSimple way to reproduce the problem in mainline:\n\n    cat \u003e/tmp/a.c \u003c\u003c\u0027EOF\u0027\n    #include \u003cunistd.h\u003e\n    #include \u003cfcntl.h\u003e\n    #include \u003cstdio.h\u003e\n    main()\n    {\n            struct flock fl \u003d {.l_type \u003d F_RDLCK, .l_whence \u003d SEEK_SET, .l_len \u003d 1};\n            if (fcntl(0, F_SETLK, \u0026fl))\n                    perror(\"setlk\");\n    }\n    EOF\n    cc /tmp/a.c -o /tmp/test\n\nthen on nfs4:\n\n    mount --bind file1 file2\n    /tmp/test \u003c file1\t\t# ok\n    /tmp/test \u003c file2\t\t# spews \"setlk: No locks available\"...\n\nWhat happens is the missing call of -\u003ed_revalidate() after mountpoint\ncrossing and that\u0027s where NFS4 would issue OPEN request to server.\n\nThe fix is simple - treat mountpoint crossing the same way we deal with\nfollowing procfs-style symlinks.  I.e.  set LOOKUP_JUMPED...\n\nCc: stable@kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6f498a891c730327645a7afa10c5ae977de6fd8",
      "tree": "1b162b3f76a653cc5292f1ca04cf7c04905246df",
      "parents": [
        "0486958f57a496212e3c1e3d9194deebba3dc3d4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 07 15:50:32 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 07 16:20:00 2011 -0500"
      },
      "message": "NFS: Fix a regression in the referral code\n\nFix a regression that was introduced by commit\n0c2e53f11a6dae9e3af5f50f5ad0382e7c3e0cfa (NFS: Remove the unused\n\"lookupfh()\" version of nfs4_proc_lookup()).\n\nIn the case where the lookup gets an NFS4ERR_MOVED, we want to return\nthe result of nfs4_get_referral(). Instead, that value is getting\nclobbered by the call to nfs4_handle_exception()...\n\nReported-by: Tigran Mkrtchyan \u003ctigran.mkrtchyan@desy.de\u003e\nTested-by: Tigran Mkrtchyan \u003ctigran.mkrtchyan@desy.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "45ea6095c8f0d6caad5658306416a5d254f1205e",
      "tree": "84c25fabfb4b0a8e4fdbc16b5d29ba75ebf7a0ce",
      "parents": [
        "7c7e82a77fe3d89ae50824aa7c897454675eb4c4"
      ],
      "author": {
        "name": "slyich@gmail.com",
        "email": "slyich@gmail.com",
        "time": "Mon Nov 07 16:08:01 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 07 16:08:01 2011 -0500"
      },
      "message": "btrfs: fix double-free \u0027tree_root\u0027 in \u0027btrfs_mount()\u0027\n\nOn error path \u0027tree_root\u0027 is treed in \u0027free_fs_info()\u0027.\nNo need to free it explicitely. Noticed by SLUB in debug mode:\n\nComplete reproducer under usermode linux (discovered on real\nmachine):\n\n    bdev\u003d/dev/ubda\n    btr_root\u003d/btr\n    /mkfs.btrfs $bdev\n    mount $bdev $btr_root\n    mkdir $btr_root/subvols/\n    cd $btr_root/subvols/\n    /btrfs su cr foo\n    /btrfs su cr bar\n    mount $bdev -osubvol\u003dsubvols/foo $btr_root/subvols/bar\n    umount $btr_root/subvols/bar\n\nwhich gives\n\ndevice fsid 4d55aa28-45b1-474b-b4ec-da912322195e devid 1 transid 7 /dev/ubda\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nBUG kmalloc-2048: Object already free\n-----------------------------------------------------------------------------\n\nINFO: Allocated in btrfs_mount+0x389/0x7f0 age\u003d0 cpu\u003d0 pid\u003d277\nINFO: Freed in btrfs_mount+0x51c/0x7f0 age\u003d0 cpu\u003d0 pid\u003d277\nINFO: Slab 0x0000000062886200 objects\u003d15 used\u003d9 fp\u003d0x0000000070b4d2d0 flags\u003d0x4081\nINFO: Object 0x0000000070b4d2d0 @offset\u003d21200 fp\u003d0x0000000070b4a968\n...\nCall Trace:\n70b31948:  [\u003c6008c522\u003e] print_trailer+0xe2/0x130\n70b31978:  [\u003c6008c5aa\u003e] object_err+0x3a/0x50\n70b319a8:  [\u003c6008e242\u003e] free_debug_processing+0x142/0x2a0\n70b319e0:  [\u003c600ebf6f\u003e] btrfs_mount+0x55f/0x7f0\n70b319f8:  [\u003c6008e5c1\u003e] __slab_free+0x221/0x2d0\n\nSigned-off-by: Sergei Trofimovich \u003cslyfox@gentoo.org\u003e\nCc: Arne Jansen \u003csensille@gmx.net\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "50e696308c3fb18a4a0dae7b3a4d47469149c919",
      "tree": "16ff458026c1551803b86d9e0f9f02c7a64182fa",
      "parents": [
        "a84450604d0fe08b6a2335efbedede18d3d7cc75"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Mon Nov 07 16:39:57 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:54:10 2011 -0800"
      },
      "message": "vfs: d_invalidate() should leave mountpoints alone\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff4d7fa8c32f6ec513fb792c060809ec82d53ea4",
      "tree": "2b04ad419ff934fd640a97ac8e9df1abdd1e503c",
      "parents": [
        "e0d65113a70f1dc514e625cc4e7a7485a4bf72df",
        "a88b470773bc5b640292d8be7b8e7e1011a86639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 09:56:22 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 09:56:22 2011 -0800"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  CIFS: Cleanup byte-range locking code style\n  CIFS: Simplify setlk error handling for mandatory locking\n"
    },
    {
      "commit": "e0d65113a70f1dc514e625cc4e7a7485a4bf72df",
      "tree": "7320a130dc304623f5cf4b5dd8f67fb1776225ca",
      "parents": [
        "cf5e15fbd72c13977720aa15b7b7e00e1d8fd8f2",
        "48e546b7f281f251893baa40769581fd15f085fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 09:11:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 09:11:16 2011 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (226 commits)\n  mtd: tests: annotate as DANGEROUS in Kconfig\n  mtd: tests: don\u0027t use mtd0 as a default\n  mtd: clean up usage of MTD_DOCPROBE_ADDRESS\n  jffs2: add compr\u003dlzo and compr\u003dzlib options\n  jffs2: implement mount option parsing and compression overriding\n  mtd: nand: initialize ops.mode\n  mtd: provide an alias for the redboot module name\n  mtd: m25p80: don\u0027t probe device which has status of \u0027disabled\u0027\n  mtd: nand_h1900 never worked\n  mtd: Add DiskOnChip G3 support\n  mtd: m25p80: add EON flash EN25Q32B into spi flash id table\n  mtd: mark block device queue as non-rotational\n  mtd: r852: make r852_pm_ops static\n  mtd: m25p80: add support for at25df321a spi data flash\n  mtd: mxc_nand: preset_v1_v2: unlock all NAND flash blocks\n  mtd: nand: switch `check_pattern()\u0027 to standard `memcmp()\u0027\n  mtd: nand: invalidate cache on unaligned reads\n  mtd: nand: do not scan bad blocks with NAND_BBT_NO_OOB set\n  mtd: nand: wait to set BBT version\n  mtd: nand: scrub BBT on ECC errors\n  ...\n\nFix up trivial conflicts:\n - arch/arm/mach-at91/board-usb-a9260.c\n\tMerged into board-usb-a926x.c\n - drivers/mtd/maps/lantiq-flash.c\n\tadd_mtd_partitions -\u003e mtd_device_register vs changed to use\n\tmtd_device_parse_register.\n"
    },
    {
      "commit": "cf5e15fbd72c13977720aa15b7b7e00e1d8fd8f2",
      "tree": "66ecb6f516d33915171682cc602af978c0ae014f",
      "parents": [
        "31555213f03bca37d2c02e10946296052f4ecfcd",
        "7606f85a701ed8feeac065e133ff9a51c267aa0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 08:52:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 08:52:19 2011 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix the dark space calculation\n  UBIFS: introduce a helper to dump scanning info\n"
    },
    {
      "commit": "3c1fcb2c24519febd7ca9cf292fa5bdf513b601f",
      "tree": "9be412cacdd7778fc5826efdda0d135570929991",
      "parents": [
        "2397256d6218e7bf5147a3b01dcc6aec20fd3916"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Mon Nov 07 11:01:13 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 11:01:13 2011 -0500"
      },
      "message": "ext4: add blk_finish_plug in error case of writepages.\n\nblk_finish_plug is needed in error case of writepages.\n\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "2397256d6218e7bf5147a3b01dcc6aec20fd3916"
}
