)]}'
{
  "log": [
    {
      "commit": "531f4b1ae5e0fc8c9b3f03838218e5ea178f80d3",
      "tree": "63efdfe9b192243fefb76be3921b9a2aaa26291e",
      "parents": [
        "c06a0e120a4e381a1c291c1fce3c6155c5791cae",
        "7a26285eea8eb92e0088db011571d887d4551b0f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:05:08 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:05:08 2011 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://github.com/sensille/linux into integration\n\nConflicts:\n\tfs/btrfs/ctree.h\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c06a0e120a4e381a1c291c1fce3c6155c5791cae",
      "tree": "a9d1c44610b37c701d25e439b005dacfa0f823c1",
      "parents": [
        "bf0da8c183a15656eee63c54f334c3794320872a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 04 19:56:02 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:04:20 2011 -0500"
      },
      "message": "Btrfs: fix delayed insertion reservation\n\nWe all keep getting those stupid warnings from use_block_rsv when running\nstress.sh, and it\u0027s because the delayed insertion stuff is being stupid.  It\u0027s\nnot the delayed insertion stuffs fault, it\u0027s all just stupid.  When marking an\ninode dirty for oh say updating the time on it, we just do a\nbtrfs_join_transaction, which doesn\u0027t reserve any space.  This is stupid because\nwe\u0027re going to have to have space reserve to make this change, but we do it\nbecause it\u0027s fast because chances are we\u0027re going to call it over and over again\nand it doesn\u0027t matter.  Well thanks to the delayed insertion stuff this is\nmostly the case, so we do actually need to make this reservation.  So if\ntrans-\u003ebytes_reserved is 0 then try to do a normal reservation.  If not return\nENOSPC which will make the btrfs_dirty_inode start a proper transaction which\nwill let it do the whole ENOSPC dance and reserve enough space for the delayed\ninsertion to steal the reservation from the transaction.\n\nThe other stupid thing we do is not reserve space for the inode when writing to\nthe thing.  Usually this is ok since we have to update the time so we\u0027d have\nalready done all this work before we get to the endio stuff, so it doesn\u0027t\nmatter.  But this is stupid because we could write the data after the\ntransaction commits where we changed the mtime of the inode so we have to cow\nall the way down to the inode anyway.  This used to be masked by the delalloc\nreservation stuff, but because we delay the update it doesn\u0027t get masked in this\ncase.  So again the delayed insertion stuff bites us in the ass.  So if our\ntrans-\u003eblock_rsv is delalloc, just steal the reservation from the delalloc\nreserve.  Hopefully this won\u0027t bite us in the ass, but I\u0027ve said that before.\n\nWith this patch stress.sh no longer spits out those stupid warnings (famous last\nwords).  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bf0da8c183a15656eee63c54f334c3794320872a",
      "tree": "dad92ff6ea5cba470d93664b9ea195ecab66b07b",
      "parents": [
        "663350ac38c67ca388acea6e876dc6d668c232b0"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Nov 04 12:29:37 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:04:20 2011 -0500"
      },
      "message": "Btrfs: ClearPageError during writepage and clean_tree_block\n\nFailure testing was tripping up over stale PageError bits in\nmetadata pages.  If we have an io error on a block, and later on\nend up reusing it, nobody ever clears PageError on those pages.\n\nDuring commit, we\u0027ll find PageError and think we had trouble writing\nthe block, which will lead to aborts and other problems.\n\nThis changes clean_tree_block and the btrfs writepage code to\nclear the PageError bit.  In both cases we\u0027re either completely\ndone with the page or the page has good stuff and the error bit\nis no longer valid.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "663350ac38c67ca388acea6e876dc6d668c232b0",
      "tree": "d111c306c5dfd622c04a0568efde089bdc4577b3",
      "parents": [
        "6d668dda0caec537fbf28c4d91e6d18181af3cff"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Nov 03 22:54:25 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:04:19 2011 -0500"
      },
      "message": "Btrfs: be smarter about committing the transaction in reserve_metadata_bytes\n\nBecause of the overcommit stuff I had to make it so that we committed the\ntransaction all the time in reserve_metadata_bytes in case we had overcommitted\nbecause of delayed items.  This was because previously we had no way of knowing\nhow much space was reserved for delayed items.  Now that we have the\ndelayed_block_rsv we can check it to see if committing the transaction would get\nus anywhere.  This patch breaks out the committing logic into a helper function\nthat will check to see if committing the transaction would free enough space for\nus to get anything done.  With this patch xfstests 83 goes from taking 445\nseconds to taking 28 seconds on my box.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6d668dda0caec537fbf28c4d91e6d18181af3cff",
      "tree": "bfc4afce43435e0dc354e58150745fcf2c6072f0",
      "parents": [
        "af31f5e5b84b5bf2bcec464153a5130b170b2770"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Nov 03 22:54:25 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:04:18 2011 -0500"
      },
      "message": "Btrfs: make a delayed_block_rsv for the delayed item insertion\n\nI\u0027ve been hitting warnings in use_block_rsv when running the delayed insertion\nstuff.  It\u0027s because we will readjust global block rsv based on what is in use,\nwhich means we could end up discarding reservations that are for the delayed\ninsertion stuff.  So instead create a seperate block rsv for the delayed\ninsertion stuff.  This will also make it easier to debug problems with the\ndelayed insertion reservations since we will know that only the delayed\ninsertion code touches this block_rsv.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "af31f5e5b84b5bf2bcec464153a5130b170b2770",
      "tree": "f8f5d8f18a115431e8826fa1c46580311dc1e485",
      "parents": [
        "6c41761fc6efe1503103a1afe03a6635c0b5d4ec"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 03 15:17:42 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:04:15 2011 -0500"
      },
      "message": "Btrfs: add a log of past tree roots\n\nThis takes some of the free space in the btrfs super block\nto record information about most of the roots in the last four\ncommits.\n\nIt also adds a -o recovery to use the root history log when\nwe\u0027re not able to read the tree of tree roots, the extent\ntree root, the device tree root or the csum root.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6c41761fc6efe1503103a1afe03a6635c0b5d4ec",
      "tree": "08ad34d43aac48e8f8143a0b1fa07141df8f202a",
      "parents": [
        "c8174313a8102e874aaa321e2fc4c7c460a87151"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Apr 13 15:41:04 2011 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:04:01 2011 -0500"
      },
      "message": "btrfs: separate superblock items out of fs_info\n\nfs_info has now ~9kb, more than fits into one page. This will cause\nmount failure when memory is too fragmented. Top space consumers are\nsuper block structures super_copy and super_for_commit, ~2.8kb each.\nAllocate them dynamically. fs_info will be ~3.5kb. (measured on x86_64)\n\nAdd a wrapper for freeing fs_info and all of it\u0027s dynamically allocated\nmembers.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "c8174313a8102e874aaa321e2fc4c7c460a87151",
      "tree": "366dc804d4b5d0d8c32d70cc554651efa552ba59",
      "parents": [
        "5a77d76c243be18d854aa1b14d697525f60e169a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Nov 02 09:29:35 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:03:50 2011 -0500"
      },
      "message": "Btrfs: use the global reserve when truncating the free space cache inode\n\nWe no longer use the orphan block rsv for holding the reservation for truncating\nthe inode, so instead use the global block rsv and check to make sure it has\nenough space for us to truncate the space.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5a77d76c243be18d854aa1b14d697525f60e169a",
      "tree": "ddf15400e692085b5914297eb2d88989e5246c11",
      "parents": [
        "01d658f2ca3c85c1ffb20b306e30d16197000ce7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 01 14:32:23 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:03:49 2011 -0500"
      },
      "message": "Btrfs: release metadata from global reserve if we have to fallback for unlink\n\nI fixed a problem where we weren\u0027t reserving space for an orphan item when we\nhad to fallback to using the global reserve for an unlink, but I introduced\nanother problem.  I was migrating the bytes from the transaction reserve to the\nglobal reserve and then releasing from the global reserve in\nbtrfs_end_transaction().  The problem with this is that a migrate will jack up\nthe size for the destination, but leave the size alone for the source, with the\nidea that you can do a release normally on the source and it all washes out, and\nthen you can do a release again on the destination and it works out right.  My\nway was skipping the release on the trans_block_rsv which still had the jacked\nup size from our original reservation.  So instead release manually from the\nglobal reserve if this transaction was using it, and then set the\ntrans-\u003eblock_rsv back to the trans_block_rsv so that btrfs_end_transaction\ncleans everything up properly.  With this patch xfstest 83 doesn\u0027t emit warnings\nabout leaking space.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "01d658f2ca3c85c1ffb20b306e30d16197000ce7",
      "tree": "eda62586bb95967a4001f8fb70e6955b531cf801",
      "parents": [
        "e688b7252f784c2479d559f9f70ca8354752c5e7"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Nov 01 10:08:06 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:03:48 2011 -0500"
      },
      "message": "Btrfs: make sure to flush queued bios if write_cache_pages waits\n\nwrite_cache_pages tries to build up a large bio to stuff down the pipe.\nBut if it needs to wait for a page lock, it needs to make sure and send\ndown any pending writes so we don\u0027t deadlock with anyone who has the\npage lock and is waiting for writeback of things inside the bio.\n\nDave Sterba triggered this as a deadlock between the autodefrag code and\nthe extent write_cache_pages\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e688b7252f784c2479d559f9f70ca8354752c5e7",
      "tree": "3934b0a9c348b2900e08e8fc9c0e6819e80d0fff",
      "parents": [
        "1eae31e918972bbeefc119d23c1d67674f49a301"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Oct 31 20:52:39 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:03:48 2011 -0500"
      },
      "message": "Btrfs: fix extent pinning bugs in the tree log\n\nThe tree log had two important bugs that could cause corruptions after a\ncrash.  Sometimes we were allowing tree log blocks to be reused after\nthe tree log was committed but before the transaction commit was done.\n\nThis allowed a future metadata write to overwrite the tree log data.  It\nis fixed by adding a new variant of freeing reserved extents that always\npins them.  Credit goes to Stefan Behrens and Arne Jansen for many many\nhours spent tracking this bug down.\n\nDuring tree log replay, we do a pass through the tree log and pin all\nthe extents we find.  This makes sure the replay code won\u0027t go in and\nuse any of those blocks for new allocations during replay.  The problem\nis the free space cache isn\u0027t honoring these pinned extents.  So the\nallocator can end up handing them out, leading to all kinds of problems\nduring replay.\n\nThe fix here is to force any free space cache to load while we pin the\nextents, and then to make sure we remove the pinned extents from the\nfree space rbtree.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nReported-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\n"
    },
    {
      "commit": "1eae31e918972bbeefc119d23c1d67674f49a301",
      "tree": "b6c1df4d25699812a83f107187b407d53abeb82e",
      "parents": [
        "cd354ad613a393424f85333ceed6b15e07fb94ae"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 14 06:31:20 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:03:47 2011 -0500"
      },
      "message": "Btrfs: make sure btrfs_remove_free_space doesn\u0027t leak EAGAIN\n\nbtrfs_remove_free_space needs to make sure to set ret back to a\nvalid return value after setting it to EAGAIN, otherwise we return\nit to the callers.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cd354ad613a393424f85333ceed6b15e07fb94ae",
      "tree": "98261d8cc0a0f3808fd34037629a92d31a670b19",
      "parents": [
        "dff51cd1c60856c28f5d22a571294c2b70b6b322"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Oct 20 15:45:37 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:03:47 2011 -0500"
      },
      "message": "Btrfs: don\u0027t wait as long for more batches during SSD log commit\n\nWhen we\u0027re doing log commits, we try to wait for more writers to come in\nand make the commit bigger.  This helps improve performance on rotating\ndisks, but on SSDs it adds latencies.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dff51cd1c60856c28f5d22a571294c2b70b6b322",
      "tree": "fe310f20368175086107460a247d5e6aa6d82e36",
      "parents": [
        "a81d3b1ba2f5faae28ba7a092c7598673fa02ac2"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Tue Jun 14 12:52:17 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon Oct 24 14:48:00 2011 +0200"
      },
      "message": "btrfs: ratelimit WARN_ON in use_block_rsv\n\nThe WARN_ON under some circumstances heavily polute log and slow down\nthe machine. This is just a safety, as the warning should be fixed by\nanother patch, nevertheless, it still pops up during testing.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "a81d3b1ba2f5faae28ba7a092c7598673fa02ac2",
      "tree": "8301fefcd9f3d45be9d0030456a86bca5b9ff061",
      "parents": [
        "afd582ac8f10382002a72b4d17d9c2db328ed8b8",
        "f9d9ef62cd3ecbd6cbb7957a253c1e81f69d5586"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon Oct 24 14:47:58 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon Oct 24 14:47:58 2011 +0200"
      },
      "message": "Merge branch \u0027hotfixes-20111024/josef/for-chris\u0027 into btrfs-next-stable\n"
    },
    {
      "commit": "afd582ac8f10382002a72b4d17d9c2db328ed8b8",
      "tree": "91246c1296c06cc0d5add8d10452e7fb110ed920",
      "parents": [
        "c3b92c8787367a8bb53d57d9789b558f1295cc96",
        "016fc6a63e465d5b94e4028f6d05d9703e195428"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon Oct 24 14:47:57 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon Oct 24 14:47:57 2011 +0200"
      },
      "message": "Merge remote-tracking branch \u0027remotes/josef/for-chris\u0027 into btrfs-next-stable\n"
    },
    {
      "commit": "f9d9ef62cd3ecbd6cbb7957a253c1e81f69d5586",
      "tree": "34e9cf9c3c5f2332e2e59500de8c5c1ff4065c7b",
      "parents": [
        "20bcd64934e4eb8f3f90a0dca54fb0ac2edd7795"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Sep 29 13:11:33 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon Oct 24 14:43:25 2011 +0200"
      },
      "message": "btrfs: do not allow mounting non-subvolumes via subvol option\n\nThere\u0027s a missing test whether the path passed to subvol\u003dpath option\nduring mount is a real subvolume, allowing any directory located in\ndefault subovlume to be passed and accepted for mount.\n\n(current btrfs progs prevent this early)\n$ btrfs subvol snapshot . p1-snap\nERROR: \u0027.\u0027 is not a subvolume\n\n(with \"is subvolume?\" test bypassed)\n$ btrfs subvol snapshot . p1-snap\nCreate a snapshot of \u0027.\u0027 in \u0027./p1-snap\u0027\n\n$ btrfs subvol list -p .\nID 258 parent 5 top level 5 path subvol\nID 259 parent 5 top level 5 path subvol1\nID 260 parent 5 top level 5 path default-subvol1\nID 262 parent 5 top level 5 path p1/p1-snapshot\nID 263 parent 259 top level 5 path subvol1/subvol1-snap\n\nThe problem I see is that this makes a false impression of snapshotting the\ngiven subvolume but in fact snapshots the default one: a user expects outcome\nlike ID 263 but in fact gets ID 262 .\n\nThis patch makes mount fail with EINVAL with a message in syslog.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "c3b92c8787367a8bb53d57d9789b558f1295cc96",
      "tree": "7bb7c72c515eaf036c0b4033be82bb4b3c0ce598",
      "parents": [
        "6a0596583fadd15dca293736114abdea306d3d7c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 09:10:05 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 09:10:05 2011 +0200"
      },
      "message": "Linux 3.1\n"
    },
    {
      "commit": "6a0596583fadd15dca293736114abdea306d3d7c",
      "tree": "39ce634c2f9578c548f990215579559ba4dc630d",
      "parents": [
        "15cc91011246fa67f755eb3feea08d57a7692fde",
        "4399c8bf2b9093696fa8160d79712e7346989c46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 07:08:24 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 07:08:24 2011 +0200"
      },
      "message": "Merge git://git.infradead.org/iommu-2.6\n\n* git://git.infradead.org/iommu-2.6:\n  intel-iommu: fix superpage support in pfn_to_dma_pte()\n  intel-iommu: set iommu_superpage on VM domains to lowest common denominator\n  intel-iommu: fix return value of iommu_unmap() API\n  MAINTAINERS: Update VT-d entry for drivers/pci -\u003e drivers/iommu move\n  intel-iommu: Export a flag indicating that the IOMMU is used for iGFX.\n  intel-iommu: Workaround IOTLB hang on Ironlake GPU\n  intel-iommu: Fix AB-BA lockdep report\n"
    },
    {
      "commit": "15cc91011246fa67f755eb3feea08d57a7692fde",
      "tree": "8f6e9ce27337923ff688ed99a7c6d0dcac01a91f",
      "parents": [
        "8548c84da2f47e71bbbe300f55edb768492575f7",
        "d136f2efdf3a4faba47f58603f8ace2207234d75"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 07:05:38 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 07:05:38 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of http://people.redhat.com/agk/git/linux-dm\n\n* \u0027for-linus\u0027 of http://people.redhat.com/agk/git/linux-dm:\n  dm kcopyd: fix job_pool leak\n"
    },
    {
      "commit": "8548c84da2f47e71bbbe300f55edb768492575f7",
      "tree": "dee4aead0c592f64829bb1211c463ad86cce0dfe",
      "parents": [
        "1bf1aacedcda23c75e70fa3394e1caa6d4b5ee49"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sun Oct 23 23:19:12 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 06:55:20 2011 +0200"
      },
      "message": "x86: Fix S4 regression\n\nCommit 4b239f458 (\"x86-64, mm: Put early page table high\") causes a S4\nregression since 2.6.39, namely the machine reboots occasionally at S4\nresume.  It doesn\u0027t happen always, overall rate is about 1/20.  But,\nlike other bugs, once when this happens, it continues to happen.\n\nThis patch fixes the problem by essentially reverting the memory\nassignment in the older way.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Yinghai Lu \u003cyinghai.lu@oracle.com\u003e\n[ We\u0027ll hopefully find the real fix, but that\u0027s too late for 3.1 now ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d136f2efdf3a4faba47f58603f8ace2207234d75",
      "tree": "0b2e94980503cdae7f326219d792d98b10e54a0f",
      "parents": [
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Oct 23 20:55:17 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Oct 23 20:55:17 2011 +0100"
      },
      "message": "dm kcopyd: fix job_pool leak\n\nFix memory leak introduced by commit a6e50b409d3f9e0833e69c3c9cca822e8fa4adbb\n(dm snapshot: skip reading origin when overwriting complete chunk).\n\nWhen allocating a set of jobs from kc-\u003ejob_pool, job-\u003emaster_job must be\nset (to point to itself) so that the mempool item gets freed when the\nmaster_job completes.\n\nmaster_job was introduced by commit c6ea41fbbe08f270a8edef99dc369faf809d1bd6\n(dm kcopyd: preallocate sub jobs to avoid deadlock)\n\nReported-by: Michael Leun \u003cml@newton.leun.net\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1bf1aacedcda23c75e70fa3394e1caa6d4b5ee49",
      "tree": "3628287c740b7150f2808b89b4305a811778acab",
      "parents": [
        "5117cc25fd43add94c04c9d2ace713c69a21bdb1",
        "fb630b9fc902e24209166b1659a8b375bf38099c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 23 10:44:40 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 23 10:44:40 2011 +0300"
      },
      "message": "Merge branch \u0027samsung-fixes-4\u0027 of git://github.com/kgene/linux-samsung\n\n* \u0027samsung-fixes-4\u0027 of git://github.com/kgene/linux-samsung:\n  ARM: S3C24XX: Fix s3c24xx build errors if !CONFIG_PM\n  ARM: S5P: fix offset calculation on gpio-interrupt\n"
    },
    {
      "commit": "5117cc25fd43add94c04c9d2ace713c69a21bdb1",
      "tree": "866ee03e42337edbc1cd41d0e761ca82d0806c83",
      "parents": [
        "2efd7c0fdcbe041173e248ccc2d9c91df7f84ce5",
        "133d324d82e144588939ad25b732b5b6c33b03d9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 23 10:43:31 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 23 10:43:31 2011 +0300"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:\n  hwmon: (w83627ehf) Fix negative 8-bit temperature values\n"
    },
    {
      "commit": "fb630b9fc902e24209166b1659a8b375bf38099c",
      "tree": "6212a56b9fd29ab09a9c943b5e0d9ae75b3d3ea0",
      "parents": [
        "1052cff317e7636456595f2246b9f644c53eccbd"
      ],
      "author": {
        "name": "Domenico Andreoli",
        "email": "cavokz@gmail.com",
        "time": "Sat Oct 22 04:00:53 2011 +0900"
      },
      "committer": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Sat Oct 22 04:00:53 2011 +0900"
      },
      "message": "ARM: S3C24XX: Fix s3c24xx build errors if !CONFIG_PM\n\nv2:\n- register_syscore_ops(\u0026s3c24xx_irq_syscore_ops) does not need to be\n  conditionally compiled out, it is already optimized out on !CONFIG_PM\n- fix also s3c2412 and s3c2416 affected by the same build issue\n\nv1:\ns3c2440.c fails to build if !CONFIG_PM because in such case\ns3c2410_pm_syscore_ops is not defined. Same error should happen also\nin s3c2410.c and s3c2442.c\n\nSigned-off-by: Domenico Andreoli \u003ccavokz@gmail.com\u003e\nSigned-off-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\n"
    },
    {
      "commit": "2efd7c0fdcbe041173e248ccc2d9c91df7f84ce5",
      "tree": "789d66e6e61f09a3fc81a02d4d7a3da77d4702d6",
      "parents": [
        "62ddc0046eae6b8e8374f0ac3b27b12a57baa2f6",
        "7ed47b7d142ec99ad6880bbbec51e9f12b3af74c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 21 17:02:18 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 21 17:02:18 2011 +0300"
      },
      "message": "Merge git://github.com/herbertx/crypto\n\n* git://github.com/herbertx/crypto:\n  crypto: ghash - Avoid null pointer dereference if no key is set\n"
    },
    {
      "commit": "62ddc0046eae6b8e8374f0ac3b27b12a57baa2f6",
      "tree": "bf50f6cfde3021a4f3224874c4ddc24e12348fbc",
      "parents": [
        "fd11e153b82ad1c84ccc71ba1cfedc222465198c",
        "ca201c096269ee2d40037fea96a59fd0695888c4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 21 17:01:21 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 21 17:01:21 2011 +0300"
      },
      "message": "Merge branch \u0027fix/hda\u0027 of git://github.com/tiwai/sound\n\n* \u0027fix/hda\u0027 of git://github.com/tiwai/sound:\n  ALSA: HDA: conexant support for Lenovo T520/W520\n  ALSA: hda - Add position_fix quirk for Dell Inspiron 1010\n"
    },
    {
      "commit": "7ed47b7d142ec99ad6880bbbec51e9f12b3af74c",
      "tree": "0126b7ab0756dee49d6170f1db6accff5c26b793",
      "parents": [
        "d93dc5c4478c1fd5de85a3e8aece9aad7bbae044"
      ],
      "author": {
        "name": "Nick Bowler",
        "email": "nbowler@elliptictech.com",
        "time": "Thu Oct 20 14:16:55 2011 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Oct 21 13:18:42 2011 +0200"
      },
      "message": "crypto: ghash - Avoid null pointer dereference if no key is set\n\nThe ghash_update function passes a pointer to gf128mul_4k_lle which will\nbe NULL if ghash_setkey is not called or if the most recent call to\nghash_setkey failed to allocate memory.  This causes an oops.  Fix this\nup by returning an error code in the null case.\n\nThis is trivially triggered from unprivileged userspace through the\nAF_ALG interface by simply writing to the socket without setting a key.\n\nThe ghash_final function has a similar issue, but triggering it requires\na memory allocation failure in ghash_setkey _after_ at least one\nsuccessful call to ghash_update.\n\n  BUG: unable to handle kernel NULL pointer dereference at 00000670\n  IP: [\u003cd88c92d4\u003e] gf128mul_4k_lle+0x23/0x60 [gf128mul]\n  *pde \u003d 00000000\n  Oops: 0000 [#1] PREEMPT SMP\n  Modules linked in: ghash_generic gf128mul algif_hash af_alg nfs lockd nfs_acl sunrpc bridge ipv6 stp llc\n\n  Pid: 1502, comm: hashatron Tainted: G        W   3.1.0-rc9-00085-ge9308cf #32 Bochs Bochs\n  EIP: 0060:[\u003cd88c92d4\u003e] EFLAGS: 00000202 CPU: 0\n  EIP is at gf128mul_4k_lle+0x23/0x60 [gf128mul]\n  EAX: d69db1f0 EBX: d6b8ddac ECX: 00000004 EDX: 00000000\n  ESI: 00000670 EDI: d6b8ddac EBP: d6b8ddc8 ESP: d6b8dda4\n   DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n  Process hashatron (pid: 1502, ti\u003dd6b8c000 task\u003dd6810000 task.ti\u003dd6b8c000)\n  Stack:\n   00000000 d69db1f0 00000163 00000000 d6b8ddc8 c101a520 d69db1f0 d52aa000\n   00000ff0 d6b8dde8 d88d310f d6b8a3f8 d52aa000 00001000 d88d502c d6b8ddfc\n   00001000 d6b8ddf4 c11676ed d69db1e8 d6b8de24 c11679ad d52aa000 00000000\n  Call Trace:\n   [\u003cc101a520\u003e] ? kmap_atomic_prot+0x37/0xa6\n   [\u003cd88d310f\u003e] ghash_update+0x85/0xbe [ghash_generic]\n   [\u003cc11676ed\u003e] crypto_shash_update+0x18/0x1b\n   [\u003cc11679ad\u003e] shash_ahash_update+0x22/0x36\n   [\u003cc11679cc\u003e] shash_async_update+0xb/0xd\n   [\u003cd88ce0ba\u003e] hash_sendpage+0xba/0xf2 [algif_hash]\n   [\u003cc121b24c\u003e] kernel_sendpage+0x39/0x4e\n   [\u003cd88ce000\u003e] ? 0xd88cdfff\n   [\u003cc121b298\u003e] sock_sendpage+0x37/0x3e\n   [\u003cc121b261\u003e] ? kernel_sendpage+0x4e/0x4e\n   [\u003cc10b4dbc\u003e] pipe_to_sendpage+0x56/0x61\n   [\u003cc10b4e1f\u003e] splice_from_pipe_feed+0x58/0xcd\n   [\u003cc10b4d66\u003e] ? splice_from_pipe_begin+0x10/0x10\n   [\u003cc10b51f5\u003e] __splice_from_pipe+0x36/0x55\n   [\u003cc10b4d66\u003e] ? splice_from_pipe_begin+0x10/0x10\n   [\u003cc10b6383\u003e] splice_from_pipe+0x51/0x64\n   [\u003cc10b63c2\u003e] ? default_file_splice_write+0x2c/0x2c\n   [\u003cc10b63d5\u003e] generic_splice_sendpage+0x13/0x15\n   [\u003cc10b4d66\u003e] ? splice_from_pipe_begin+0x10/0x10\n   [\u003cc10b527f\u003e] do_splice_from+0x5d/0x67\n   [\u003cc10b6865\u003e] sys_splice+0x2bf/0x363\n   [\u003cc129373b\u003e] ? sysenter_exit+0xf/0x16\n   [\u003cc104dc1e\u003e] ? trace_hardirqs_on_caller+0x10e/0x13f\n   [\u003cc129370c\u003e] sysenter_do_call+0x12/0x32\n  Code: 83 c4 0c 5b 5e 5f c9 c3 55 b9 04 00 00 00 89 e5 57 8d 7d e4 56 53 8d 5d e4 83 ec 18 89 45 e0 89 55 dc 0f b6 70 0f c1 e6 04 01 d6 \u003cf3\u003e a5 be 0f 00 00 00 4e 89 d8 e8 48 ff ff ff 8b 45 e0 89 da 0f\n  EIP: [\u003cd88c92d4\u003e] gf128mul_4k_lle+0x23/0x60 [gf128mul] SS:ESP 0068:d6b8dda4\n  CR2: 0000000000000670\n  ---[ end trace 4eaa2a86a8e2da24 ]---\n  note: hashatron[1502] exited with preempt_count 1\n  BUG: scheduling while atomic: hashatron/1502/0x10000002\n  INFO: lockdep is turned off.\n  [...]\n\nSigned-off-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nCc: stable@kernel.org [2.6.37+]\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "1052cff317e7636456595f2246b9f644c53eccbd",
      "tree": "958c9408c22c79ca18b4e29566abada8e18196a8",
      "parents": [
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Fri Oct 21 18:04:54 2011 +0900"
      },
      "committer": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Fri Oct 21 18:05:02 2011 +0900"
      },
      "message": "ARM: S5P: fix offset calculation on gpio-interrupt\n\nOffsets of the irq controller registers were calculated\ncorrectly only for first GPIO bank. This patch fixes\ncalculation of the register offsets for all GPIO banks.\n\nReported-by: Sylwester Nawrocki \u003cs.nawrocki@samsung.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\n"
    },
    {
      "commit": "fd11e153b82ad1c84ccc71ba1cfedc222465198c",
      "tree": "eb62a490ca322d0a41a41ad94820677ef7737b1b",
      "parents": [
        "505f48b53478d3816d1f3b001815703cfd7afa09",
        "aad4564498dcb0aad769a79e5e2aa9a661dfb51f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 20 22:16:28 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 20 22:16:28 2011 +0300"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:\n  sparc: Add alignment flag to PCI expansion resources\n  sparc: Avoid calling sigprocmask()\n  sparc: Use set_current_blocked()\n  sparc32,leon: SRMMU MMU Table probe fix\n"
    },
    {
      "commit": "505f48b53478d3816d1f3b001815703cfd7afa09",
      "tree": "9ed8ce0cf58811c70f064c6862cfb68d98178fd8",
      "parents": [
        "486cf46f3f9be5f2a966016c1a8fe01e32cde09e",
        "afaef734e5f0004916d07ecf7d86292cdd00d59b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 20 22:15:20 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 20 22:15:20 2011 +0300"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  fib_rules: fix unresolved_rules counting\n  r8169: fix wrong eee setting for rlt8111evl\n  r8169: fix driver shutdown WoL regression.\n  ehea: Change maintainer to me\n  pptp: pptp_rcv_core() misses pskb_may_pull() call\n  tproxy: copy transparent flag when creating a time wait\n  pptp: fix skb leak in pptp_xmit()\n  bonding: use local function pointer of bond-\u003erecv_probe in bond_handle_frame\n  smsc911x: Add support for SMSC LAN89218\n  tg3: negate USE_PHYLIB flag check\n  netconsole: enable netconsole can make net_device refcnt incorrent\n  bluetooth: Properly clone LSM attributes to newly created child connections\n  l2tp: fix a potential skb leak in l2tp_xmit_skb()\n  bridge: fix hang on removal of bridge via netlink\n  x25: Prevent skb overreads when checking call user data\n  x25: Handle undersized/fragmented skbs\n  x25: Validate incoming call user data lengths\n  udplite: fast-path computation of checksum coverage\n  IPVS netns shutdown/startup dead-lock\n  netfilter: nf_conntrack: fix event flooding in GRE protocol tracker\n"
    },
    {
      "commit": "20bcd64934e4eb8f3f90a0dca54fb0ac2edd7795",
      "tree": "b3f9d79be8f78ddfec4ab4e2c2aefd27916fd26a",
      "parents": [
        "5f524444c351e145a5f7e28253594688a421bfe8"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Thu Oct 20 00:06:20 2011 +0300"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:20:57 2011 +0200"
      },
      "message": "Btrfs: close all bdevs on mount failure\n\nFix a bug introduced by 20b45077.  We have to return EINVAL on mount\nfailure, but doing that too early in the sequence leaves all of the\ndevices opened exclusively.  This also fixes an issue where under some\nscenarios only a second mount -o degraded \u003cdevices\u003e command would\nsucceed.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "5f524444c351e145a5f7e28253594688a421bfe8",
      "tree": "1a29d2ffe81648da1328a33c3669a2a7eeedba39",
      "parents": [
        "068132bad1de70f85f5f6d12c36d64f8f7848d92"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Thu Oct 13 00:20:43 2011 +0300"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:20:36 2011 +0200"
      },
      "message": "Btrfs: fix a bug when opening seed devices\n\nInitialize fs_info-\u003ebdev_holder a bit earlier to be able to pass a\ncorrect holder id to blkdev_get() when opening seed devices with O_EXCL.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "068132bad1de70f85f5f6d12c36d64f8f7848d92",
      "tree": "7e4a4a164b8153cf463662fbc2ce00f5671f4fa6",
      "parents": [
        "60d2adbb1e7fee1cb4bc67f70bd0bd8ace7b6c3c"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Thu Jun 23 23:01:01 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:50 2011 +0200"
      },
      "message": "btrfs: fix oops on failure path\n\nIf lookup_extent_backref fails, path-\u003enodes[0] reasonably could be\nnull along with other callers of btrfs_print_leaf, so ensure we have a\nvalid extent buffer before dereferencing.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\n"
    },
    {
      "commit": "60d2adbb1e7fee1cb4bc67f70bd0bd8ace7b6c3c",
      "tree": "9a3e5f57204cf41bbf998a1873e870110c2ff5f8",
      "parents": [
        "cfbffc39ac89dbd5197cbeec2599a1128eb928f8"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Sep 09 17:34:35 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:49 2011 +0200"
      },
      "message": "Btrfs: fix race between multi-task space allocation and caching space\n\nThe task may fail to get free space though it is enough when multi-task\nspace allocation and caching space happen at the same time.\n\n\tTask1\t\t\tCaching Thread\t\tTask2\n\t------------------------------------------------------------------------\n\tfind_free_extent\n\t  The space has not\n\t  be cached, and start\n\t  caching thread. And\n\t  wait for it.\n\t\t\t\tcache space, if\n\t\t\t\tthe space is \u003e 2MB\n\t\t\t\twake up Task1\n\t\t\t\t\t\t\tfind_free_extent\n\t\t\t\t\t\t\t  get all the space that\n\t\t\t\t\t\t\t  is cached.\n\t  try to allocate space,\n\t  but there is no space\n\t  now.\n\ttrigger BUG_ON()\n\nThe message is following:\nbtrfs allocation failed flags 1, wanted 4096\nspace_info has 1040187392 free, is not full\nspace_info total\u003d1082130432, used\u003d4096, pinned\u003d41938944, reserved\u003d0, may_use\u003d40828928, readonly\u003d0\nblock group 12582912 has 8388608 bytes, 0 used 8388608 pinned 0 reserved\nblock group has cluster?: no\n0 blocks of free space at or bigger than bytes is\nblock group 1103101952 has 1073741824 bytes, 4096 used 33550336 pinned 0 reserved\nblock group has cluster?: no\n0 blocks of free space at or bigger than bytes is\n------------[ cut here ]------------\nkernel BUG at fs/btrfs/inode.c:835!\n [\u003cffffffffa031261b\u003e] __extent_writepage+0x1bf/0x5ce [btrfs]\n [\u003cffffffff810cbcb8\u003e] ? __set_page_dirty_nobuffers+0xfe/0x108\n [\u003cffffffffa02f8ada\u003e] ? wait_current_trans+0x23/0xec [btrfs]\n [\u003cffffffff810c3fbf\u003e] ? find_get_pages_tag+0x73/0xe2\n [\u003cffffffffa0312d12\u003e] extent_write_cache_pages.clone.0+0x176/0x29a [btrfs]\n [\u003cffffffffa0312e74\u003e] extent_writepages+0x3e/0x53 [btrfs]\n [\u003cffffffff8110ad2c\u003e] ? do_sync_write+0xc6/0x103\n [\u003cffffffffa0302d6e\u003e] ? btrfs_submit_direct+0x414/0x414 [btrfs]\n [\u003cffffffff811380fa\u003e] ? fsnotify+0x236/0x266\n [\u003cffffffffa02fc930\u003e] btrfs_writepages+0x22/0x24 [btrfs]\n [\u003cffffffff810cc215\u003e] do_writepages+0x1c/0x25\n [\u003cffffffff810c4958\u003e] __filemap_fdatawrite_range+0x4e/0x50\n [\u003cffffffff810c4982\u003e] filemap_write_and_wait_range+0x28/0x51\n [\u003cffffffffa0306b2e\u003e] btrfs_sync_file+0x7d/0x198 [btrfs]\n [\u003cffffffff8110aa26\u003e] ? fsnotify_modify+0x5d/0x65\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[SNIP]\nRIP  [\u003cffffffffa02fe08c\u003e] cow_file_range+0x1c4/0x32b [btrfs]\n\nWe fix this bug by trying to allocate the space again if there are block groups\nin caching.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "cfbffc39ac89dbd5197cbeec2599a1128eb928f8",
      "tree": "d544e0c12f565b1f8ff359eca3847fc0e10006c9",
      "parents": [
        "10b2f34d6e7fbe07f498cb2006272e9a561f5e60"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Oct 06 13:37:08 2011 +0900"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:47 2011 +0200"
      },
      "message": "Btrfs: fix return value of btrfs_get_acl()\n\nIn btrfs_get_acl(), when the second __btrfs_getxattr() call fails,\nacl is not correctly set.\nTherefore, a wrong value might return to the caller.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "10b2f34d6e7fbe07f498cb2006272e9a561f5e60",
      "tree": "157a5cd82158e1b9a21423e06e8f074e4654b456",
      "parents": [
        "fee187d9d9ddc382c81370a9a280391132dea2e1"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Sun Oct 02 13:56:53 2011 +0300"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:46 2011 +0200"
      },
      "message": "Btrfs: pass the correct root to lookup_free_space_inode()\n\nFree space items are located in tree of tree roots, not in the extent\ntree.  It didn\u0027t pop up because lookup_free_space_inode() grabs the\ninode all the time instead of actually searching the tree.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "fee187d9d9ddc382c81370a9a280391132dea2e1",
      "tree": "74f67c36c8397985d2ece7c6d58c0190e0878124",
      "parents": [
        "f0dd9592a1aa014b3a01aa2be7e795aae040d65b"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Sep 29 15:55:28 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:45 2011 +0200"
      },
      "message": "Btrfs: do not set EXTENT_DIRTY along with EXTENT_DELALLOC\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "f0dd9592a1aa014b3a01aa2be7e795aae040d65b",
      "tree": "a57eaec0eb40c490254af749c2bda77534002e9e",
      "parents": [
        "560f7d75457f86a43970aa413e334e394082dce4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Sep 08 10:26:51 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:44 2011 +0200"
      },
      "message": "Btrfs: fix direct-io vs nodatacow\n\nTo reproduce the bug:\n\n  # mount -o nodatacow /dev/sda7 /mnt/\n  # dd if\u003d/dev/zero of\u003d/mnt/tmp bs\u003d4K count\u003d1\n  1+0 records in\n  1+0 records out\n  4096 bytes (4.1 kB) copied, 0.000136115 s, 30.1 MB/s\n  # dd if\u003d/dev/zero of\u003d/mnt/tmp bs\u003d4K count\u003d1 conv\u003dnotrunc oflag\u003ddirect\n  dd: writing `/mnt/tmp\u0027: Input/output error\n  1+0 records in\n  0+0 records out\n\nbtrfs_ordered_update_i_size() may return 1, but btrfs_endio_direct_write()\nmistakenly takes it as an error.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "560f7d75457f86a43970aa413e334e394082dce4",
      "tree": "19167f699de731a0c9cc1faf44035e0e958ab9fb",
      "parents": [
        "a05a9bb18ae0abec0b513b5fde876c47905fa13e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Sep 08 10:22:01 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:43 2011 +0200"
      },
      "message": "Btrfs: remove BUG_ON() in compress_file_range()\n\nIt\u0027s not a big deal if we fail to allocate the array, and instead of\npanic we can just give up compressing.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "a05a9bb18ae0abec0b513b5fde876c47905fa13e",
      "tree": "80a74076bdbb86da8f02a209603526e5c0f524bb",
      "parents": [
        "f4c697e6406da5dd445eda8d923c53e1138793dd"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Sep 06 16:55:34 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:41 2011 +0200"
      },
      "message": "Btrfs: fix array bound checking\n\nOtherwise we can execced the array bound of path-\u003eslots[].\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "f4c697e6406da5dd445eda8d923c53e1138793dd",
      "tree": "a572fcd0b9db22177d74c8fd3276ccb6a05c028c",
      "parents": [
        "008873eafbc77deb1702aedece33756c58486c6a"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Sep 05 16:34:54 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:40 2011 +0200"
      },
      "message": "btrfs: return EINVAL if start \u003e total_bytes in fitrim ioctl\n\nWe should retirn EINVAL if the start is beyond the end of the file\nsystem in the btrfs_ioctl_fitrim(). Fix that by adding the appropriate\ncheck for it.\n\nAlso in the btrfs_trim_fs() it is possible that len+start might overflow\nif big values are passed. Fix it by decrementing the len so that start+len\nis equal to the file system size in the worst case.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\n"
    },
    {
      "commit": "008873eafbc77deb1702aedece33756c58486c6a",
      "tree": "2b578bfdb47f8351f33d8ebf29714d4f2e4b15f6",
      "parents": [
        "83c8c9bde0add721f7509aa446455183b040b931"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Sep 02 15:57:07 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:39 2011 +0200"
      },
      "message": "Btrfs: honor extent thresh during defragmentation\n\nWe won\u0027t defrag an extent, if it\u0027s bigger than the threshold we\nspecified and there\u0027s no small extent before it, but actually\nthe code doesn\u0027t work this way.\n\nThere are three bugs:\n\n- When should_defrag_range() decides we should keep on defragmenting\n  an extent, last_len is not incremented. (old bug)\n\n- The length that passes to should_defrag_range() is not the length\n  we\u0027re going to defrag. (new bug)\n\n- We always defrag 256K bytes data, and a big extent can be part of\n  this range. (new bug)\n\nFor a file with 4 extents:\n\n        | 4K | 4K | 256K | 256K |\n\nThe result of defrag with (the default) 256K extent thresh should be:\n\n        | 264K | 256K |\n\nbut with those bugs, we\u0027ll get:\n\n        | 520K |\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "83c8c9bde0add721f7509aa446455183b040b931",
      "tree": "0789b6246eb84e580d7c6eefe2f761314d18870a",
      "parents": [
        "5ca496604b5975d371bb669ee6c2394bcbea818f"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Wed Sep 14 14:11:21 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:38 2011 +0200"
      },
      "message": "btrfs: trivial fix, a potential memory leak in btrfs_parse_early_options()\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\n"
    },
    {
      "commit": "5ca496604b5975d371bb669ee6c2394bcbea818f",
      "tree": "6a99818b0c54b71c706206bf8981e807e2b0a99b",
      "parents": [
        "151a31b25e5c941bdd9fdefed650effca223c716"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Sep 02 15:56:55 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:37 2011 +0200"
      },
      "message": "Btrfs: fix wrong max_to_defrag in btrfs_defrag_file()\n\nIt\u0027s off-by-one, and thus we may skip the last page while defragmenting.\n\nAn example case:\n\n  # create /mnt/file with 2 4K file extents\n  # btrfs fi defrag /mnt/file\n  # sync\n  # filefrag /mnt/file\n  /mnt/file: 2 extents found\n\nSo it\u0027s not defragmented.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "151a31b25e5c941bdd9fdefed650effca223c716",
      "tree": "60c0888c247601fad2b550885c5b430f1fbf02e0",
      "parents": [
        "cbcc83265d929ac71553c1b5dafdb830171af947"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Sep 02 15:56:39 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:35 2011 +0200"
      },
      "message": "Btrfs: use i_size_read() in btrfs_defrag_file()\n\nDon\u0027t use inode-\u003ei_size directly, since we\u0027re not holding i_mutex.\n\nThis also fixes another bug, that i_size can change after it\u0027s checked\nagainst 0 and then (i_size - 1) can be negative.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "cbcc83265d929ac71553c1b5dafdb830171af947",
      "tree": "4628b3eaf8e6d20681814d23a15ba174ae69ccb9",
      "parents": [
        "60ccf82f5b6e26e10d41783464ca469c070c7d49"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Sep 02 15:56:25 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:34 2011 +0200"
      },
      "message": "Btrfs: fix defragmentation regression\n\nThere\u0027s an off-by-one bug:\n\n  # create a file with lots of 4K file extents\n  # btrfs fi defrag /mnt/file\n  # sync\n  # filefrag -v /mnt/file\n  Filesystem type is: 9123683e\n  File size of /mnt/file is 1228800 (300 blocks, blocksize 4096)\n   ext logical physical expected length flags\n     0       0     3372              64\n     1      64     3136     3435      1\n     2      65     3436     3136     64\n     3     129     3201     3499      1\n     4     130     3500     3201     64\n     5     194     3266     3563      1\n     6     195     3564     3266     64\n     7     259     3331     3627      1\n     8     260     3628     3331     40 eof\n\nAfter this patch:\n\n  ...\n  # filefrag -v /mnt/file\n  Filesystem type is: 9123683e\n  File size of /mnt/file is 1228800 (300 blocks, blocksize 4096)\n   ext logical physical expected length flags\n     0       0     3372             300 eof\n  /mnt/file: 1 extent found\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "60ccf82f5b6e26e10d41783464ca469c070c7d49",
      "tree": "b99794e4dc34d6c9f4e51e7ec4def4946055b9c5",
      "parents": [
        "84850e8d8a5ec7b9d3c47d224e9a10c9da52ff1b"
      ],
      "author": {
        "name": "Diego Calleja",
        "email": "diegocg@gmail.com",
        "time": "Thu Sep 01 16:33:57 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:33 2011 +0200"
      },
      "message": "btrfs: fix memory leak in btrfs_defrag_file\n\nkmemleak found this:\nunreferenced object 0xffff8801b64af968 (size 512):\n  comm \"btrfs-cleaner\", pid 3317, jiffies 4306810886 (age 903.272s)\n  hex dump (first 32 bytes):\n    00 82 01 07 00 ea ff ff c0 83 01 07 00 ea ff ff  ................\n    80 82 01 07 00 ea ff ff c0 87 01 07 00 ea ff ff  ................\n  backtrace:\n    [\u003cffffffff816875cc\u003e] kmemleak_alloc+0x5c/0xc0\n    [\u003cffffffff8114aec3\u003e] kmem_cache_alloc_trace+0x163/0x240\n    [\u003cffffffff8127a290\u003e] btrfs_defrag_file+0xf0/0xb20\n    [\u003cffffffff8125d9a5\u003e] btrfs_run_defrag_inodes+0x165/0x210\n    [\u003cffffffff812479d7\u003e] cleaner_kthread+0x177/0x190\n    [\u003cffffffff81075c7d\u003e] kthread+0x8d/0xa0\n    [\u003cffffffff816af5f4\u003e] kernel_thread_helper+0x4/0x10\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\n\"pages\" is not always freed. Fix it removing the unnecesary additional return.\n\nSigned-off-by: Diego Calleja \u003cdiegocg@gmail.com\u003e\n"
    },
    {
      "commit": "84850e8d8a5ec7b9d3c47d224e9a10c9da52ff1b",
      "tree": "799dd9e0b150361dc2a5cdf3772a0ce8395d5f06",
      "parents": [
        "016fc6a63e465d5b94e4028f6d05d9703e195428"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.z.yan@intel.com",
        "time": "Mon Aug 29 09:25:53 2011 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Oct 20 18:10:31 2011 +0200"
      },
      "message": "btrfs: check file extent backref offset underflow\n\nOffset field in data extent backref can underflow if clone range ioctl\nis used. We can reliably detect the underflow because max file size is\nlimited to 2^63 and max data extent size is limited by block group size.\n\nSigned-off-by: Zheng Yan  \u003czheng.z.yan@intel.com\u003e\n"
    },
    {
      "commit": "133d324d82e144588939ad25b732b5b6c33b03d9",
      "tree": "752cba707cf1ea3914a1da31ac4caa8152aa8eeb",
      "parents": [
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 20 03:06:45 2011 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 20 07:17:08 2011 -0700"
      },
      "message": "hwmon: (w83627ehf) Fix negative 8-bit temperature values\n\nSince 8-bit temperature values are now handled in 16-bit struct\nmembers, values have to be cast to s8 for negative temperatures to be\nproperly handled. This is broken since kernel version 2.6.39\n(commit bce26c58df86599c9570cee83eac58bdaae760e4.)\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nCc: stable@kernel.org\t# 2.6.39+\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "486cf46f3f9be5f2a966016c1a8fe01e32cde09e",
      "tree": "98a6e2376507dee6ea89a9b0073511c703d940dc",
      "parents": [
        "e4fcd69c9e4e273352e0f87cabd9648606da0c3e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Oct 19 12:50:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 19 23:42:58 2011 -0700"
      },
      "message": "mm: fix race between mremap and removing migration entry\n\nI don\u0027t usually pay much attention to the stale \"? \" addresses in\nstack backtraces, but this lucky report from Pawel Sikora hints that\nmremap\u0027s move_ptes() has inadequate locking against page migration.\n\n 3.0 BUG_ON(!PageLocked(p)) in migration_entry_to_page():\n kernel BUG at include/linux/swapops.h:105!\n RIP: 0010:[\u003cffffffff81127b76\u003e]  [\u003cffffffff81127b76\u003e]\n                       migration_entry_wait+0x156/0x160\n  [\u003cffffffff811016a1\u003e] handle_pte_fault+0xae1/0xaf0\n  [\u003cffffffff810feee2\u003e] ? __pte_alloc+0x42/0x120\n  [\u003cffffffff8112c26b\u003e] ? do_huge_pmd_anonymous_page+0xab/0x310\n  [\u003cffffffff81102a31\u003e] handle_mm_fault+0x181/0x310\n  [\u003cffffffff81106097\u003e] ? vma_adjust+0x537/0x570\n  [\u003cffffffff81424bed\u003e] do_page_fault+0x11d/0x4e0\n  [\u003cffffffff81109a05\u003e] ? do_mremap+0x2d5/0x570\n  [\u003cffffffff81421d5f\u003e] page_fault+0x1f/0x30\n\nmremap\u0027s down_write of mmap_sem, together with i_mmap_mutex or lock,\nand pagetable locks, were good enough before page migration (with its\nrequirement that every migration entry be found) came in, and enough\nwhile migration always held mmap_sem; but not enough nowadays, when\nthere\u0027s memory hotremove and compaction.\n\nThe danger is that move_ptes() lets a migration entry dodge around\nbehind remove_migration_pte()\u0027s back, so it\u0027s in the old location when\nlooking at the new, then in the new location when looking at the old.\n\nEither mremap\u0027s move_ptes() must additionally take anon_vma lock(), or\nmigration\u0027s remove_migration_pte() must stop peeking for is_swap_entry()\nbefore it takes pagetable lock.\n\nConsensus chooses the latter: we prefer to add overhead to migration\nthan to mremapping, which gets used by JVMs and by exec stack setup.\n\nReported-and-tested-by: Paweł Sikora \u003cpluto@agmk.net\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aad4564498dcb0aad769a79e5e2aa9a661dfb51f",
      "tree": "c78a9d5396c25fd56b43f8531e87b251a12b1431",
      "parents": [
        "27f20dca01b00eac445e5193565dd185548e7e34"
      ],
      "author": {
        "name": "Kjetil Oftedal",
        "email": "oftedal@gmail.com",
        "time": "Wed Oct 19 16:20:50 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 16:20:50 2011 -0700"
      },
      "message": "sparc: Add alignment flag to PCI expansion resources\n\nCurrently no type of alignment is specified for PCI expansion roms while \nparsing the openfirmware tree. This causes calls to pci_map_rom() to fail.\nIORESOURCE_SIZEALIGN is the default alignment used for rom resouces in \npci/probe.c, and has been verified to work with various cards on a ultra 10.\n\nSigned-off-By: Kjetil Oftedal \u003coftedal@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afaef734e5f0004916d07ecf7d86292cdd00d59b",
      "tree": "9ea614b4a5d7457f56fe0b776aef70f3a137cd79",
      "parents": [
        "1b23a3e3d1b969e285c57a2d38f3739283ecfb80"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.z.yan@intel.com",
        "time": "Mon Oct 17 15:20:28 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 19:17:41 2011 -0400"
      },
      "message": "fib_rules: fix unresolved_rules counting\n\nwe should decrease ops-\u003eunresolved_rules when deleting a unresolved rule.\n\nSigned-off-by: Zheng Yan \u003czheng.z.yan@intel.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b23a3e3d1b969e285c57a2d38f3739283ecfb80",
      "tree": "62db8c55d2843d1ddd5cd97e33ec2facd55612e0",
      "parents": [
        "649b3b8c4e8681de443b4dc9e387c3036369e02e"
      ],
      "author": {
        "name": "hayeswang",
        "email": "hayeswang@realtek.com",
        "time": "Thu Oct 13 20:14:37 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 18:48:17 2011 -0400"
      },
      "message": "r8169: fix wrong eee setting for rlt8111evl\n\nCorrect the wrong parameter for setting EEE for RTL8111E-VL.\n\nSigned-off-by: Hayes Wang \u003chayeswang@realtek.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "649b3b8c4e8681de443b4dc9e387c3036369e02e",
      "tree": "2074058f98c291e154f707b0593ca06a09bb70b9",
      "parents": [
        "34b1901abdf8793cd679d0e48012d3d7570f88d6"
      ],
      "author": {
        "name": "françois romieu",
        "email": "romieu@fr.zoreil.com",
        "time": "Fri Oct 14 00:57:45 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 17:08:21 2011 -0400"
      },
      "message": "r8169: fix driver shutdown WoL regression.\n\nDue to commit 92fc43b4159b518f5baae57301f26d770b0834c9 (\"r8169: modify the\nflow of the hw reset.\"), rtl8169_hw_reset stomps during driver shutdown on\nRxConfig bits which are needed for WOL on some versions of the hardware.\n\nAs these bits were formerly set from the r81{0x, 68}_pll_power_down methods,\nfactor them out for use in the driver shutdown (rtl_shutdown) handler.\n\nI favored __rtl8169_get_wol() -hardware state indication- over\nRTL_FEATURE_WOL as the latter has become a good candidate for removal.\n\nSigned-off-by: Francois Romieu \u003cromieu@fr.zoreil.com\u003e\nCc: Hayes \u003chayeswang@realtek.com\u003e\nTested-by: Marc Ballarin \u003cballarin.marc@gmx.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34b1901abdf8793cd679d0e48012d3d7570f88d6",
      "tree": "b37ec54422c11d70035447d7f7e861cb68549ad1",
      "parents": [
        "4ea2739ea89883ddf79980a8aa27d5e57093e464"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@linux.vnet.ibm.com",
        "time": "Thu Oct 13 09:56:19 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 19 16:01:20 2011 -0400"
      },
      "message": "ehea: Change maintainer to me\n\nBreno Leitao has passed the maintainership to me.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@linux.vnet.ibm.com\u003e\nCc: Breno Leitao \u003cleitao@linux.vnet.ibm.com\u003e\nAcked-by: Breno Leitão \u003cleitao@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "016fc6a63e465d5b94e4028f6d05d9703e195428",
      "tree": "5482f54821647aaa10d038459012b9c8fe78e956",
      "parents": [
        "7e355b83efa80e5f5821591c13c17649594d82ac"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 10:31:37 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:13:01 2011 -0400"
      },
      "message": "Btrfs: don\u0027t flush the cache inode before writing it\n\nI noticed we had a little bit of latency when writing out the space cache\ninodes.  It\u0027s because we flush it before we write anything in case we have dirty\npages already there.  This doesn\u0027t matter though since we\u0027re just going to\noverwrite the space, and there really shouldn\u0027t be any dirty pages anyway.  This\nmakes some of my tests run a little bit faster.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7e355b83efa80e5f5821591c13c17649594d82ac",
      "tree": "978b21df0e2a77a16fe8383be28a82378a7d662d",
      "parents": [
        "36ba022ac0b748dd543f43430b03198e899426c9"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Oct 18 13:07:31 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:13:00 2011 -0400"
      },
      "message": "Btrfs: if we have a lot of pinned space, commit the transaction\n\nMitch kept hitting a panic because he was getting ENOSPC.  One of my previous\npatches makes it so we are much better at not allocating new metadata chunks.\nUnfortunately coupled with the overcommit patch this works us into a bit of a\nproblem if we are removing a bunch of space and end up chewing up all of our\nspace with pinned extents.  We can allocate chunks fine and overflow is ok, but\nthe only way to reclaim this space is to commit the transaction.  So if we go to\novercommit, first check and see how much pinned space we have.  If we have more\nthan 80% of the free space chewed up with pinned extents, just commit the\ntransaction, this will free up enough space for our reservation and we won\u0027t\nhave this problem anymore.  With this patch Mitch\u0027s test doesn\u0027t blow up\nanymore.  Thanks,\n\nReported-and-tested-by: Mitch Harder \u003cmitch.harder@sabayonlinux.org\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "36ba022ac0b748dd543f43430b03198e899426c9",
      "tree": "3175872760ac769cde046b3ac43900fc42856bb8",
      "parents": [
        "3880a1b46d87a6b030c31889875befc745d95dff"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Oct 18 12:15:48 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:59 2011 -0400"
      },
      "message": "Btrfs: seperate out btrfs_block_rsv_check out into 2 different functions\n\nCurrently btrfs_block_rsv_check does 2 things, it will either refill a block\nreserve like in the truncate or refill case, or it will check to see if there is\nenough space in the global reserve and possibly refill it.  However because of\novercommit we could be well overcommitting ourselves just to try and refill the\nglobal reserve, when really we should just be committing the transaction.  So\nbreack this out into btrfs_block_rsv_refill and btrfs_block_rsv_check.  Refill\nwill try to reserve more metadata if it can and btrfs_block_rsv_check will not,\nit will only tell you if the factor of the total space is still reserved.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "3880a1b46d87a6b030c31889875befc745d95dff",
      "tree": "b693669e3a58f39e706bca7f2da8a71211be99de",
      "parents": [
        "b24e03db0df3e9164c9649db12fecc8c2d81b0d1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 14 14:46:51 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:59 2011 -0400"
      },
      "message": "Btrfs: reserve some space for an orphan item when unlinking\n\nIn __unlink_start_trans() if we don\u0027t have enough room for a reservation we will\ncheck to see if the unlink will free up space.  If it does that\u0027s great, but we\nwill still could add an orphan item, so we need to reserve enough space to add\nthe orphan item.  Do this and migrate the space the global reserve so it all\nworks out right.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "b24e03db0df3e9164c9649db12fecc8c2d81b0d1",
      "tree": "e7742796bf98c1211babe8d1bdc464ad3e3a98a1",
      "parents": [
        "877da174301dde9062b915da4c8103048be49702"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 14 14:40:17 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:58 2011 -0400"
      },
      "message": "Btrfs: release trans metadata bytes before flushing delayed refs\n\nWe started setting trans-\u003eblock_rsv \u003d NULL to allow the delayed refs flushing\nstuff to use the right block_rsv and then just made\nbtrfs_trans_release_metadata() unconditionally use the trans block rsv.  The\nproblem with this is we need to reserve some space in the transaction and then\nmigrate it to the global block rsv, so we need to be able to free that out\nproperly.  So instead just move btrfs_trans_release_metadata() before the\ndelayed ref flushing and use trans-\u003eblock_rsv for the freeing.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "877da174301dde9062b915da4c8103048be49702",
      "tree": "d7110b64088d6e14e86cfeb02c483dd48c303c56",
      "parents": [
        "f104d044376aadcee74605d66b8d9dc2e145782c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 14 14:02:10 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:58 2011 -0400"
      },
      "message": "Btrfs: allow shrink_delalloc flush the needed reclaimed pages\n\nCurrently we only allow a maximum of 2 megabytes of pages to be flushed at a\ntime.  This was ok before, but now we have overcommit which will screw us in a\nheartbeat if we are quickly filling the disk.  So instead pick either 2\nmegabytes or the number of pages we need to reclaim to be safe again, which ever\nis larger.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "f104d044376aadcee74605d66b8d9dc2e145782c",
      "tree": "b993ee1cae8bd523455f1679f9db4d7e5a004f70",
      "parents": [
        "bbb495c2ed9d34894cb3d6d366866fc92a2e1adc"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 14 13:56:58 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:57 2011 -0400"
      },
      "message": "Btrfs: wait for ordered extents if we\u0027re in trouble when shrinking delalloc\n\nThe only way we actually reclaim delalloc space is waiting for the IO to\ncompletely finish.  Usually we kick off a bunch of IO and wait for a little bit\nand hope we can make our reservation, and usually this works out pretty well.\nWith overcommit however we can get seriously underwater if we\u0027re filling up the\ndisk quickly, so we need to be able to force the delalloc shrinker to wait for\nthe ordered IO to finish to give us a better chance of actually reclaiming\nenough space to get our reservation.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "bbb495c2ed9d34894cb3d6d366866fc92a2e1adc",
      "tree": "862620d1c80d3b46758c04c9f6a0b8b9be202140",
      "parents": [
        "ed3ee9f44ba55eb6acfbfc8caa881e0253710d2a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 14 13:37:45 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:56 2011 -0400"
      },
      "message": "Btrfs: don\u0027t check bytes_pinned to determine if we should commit the transaction\n\nBefore the only reason to commit the transaction to recover space in\nreserve_metadata_bytes() was if there were enough pinned_bytes to satisfy our\nreservation.  But now we have the delayed inode stuff which will hold it\u0027s\nreservations until we commit the transaction.  So say we max out our reservation\nby creating a bunch of files but don\u0027t have any pinned bytes we will ENOSPC out\nearly even though we could commit the transaction and get that space back.  So\nnow just unconditionally commit the transaction since currently there is no way\nto know how much metadata space is being reserved by delayed inode stuff.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "ed3ee9f44ba55eb6acfbfc8caa881e0253710d2a",
      "tree": "c628f4056728e7c42a3a9360f8cb002a159eb6e3",
      "parents": [
        "e70bea5fe0e3d6355fd95674eaff5aa5a32f0564"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Oct 13 13:09:22 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:56 2011 -0400"
      },
      "message": "Btrfs: fix regression in re-setting a large xattr\n\nRecently I changed the xattr stuff to unconditionally set the xattr first in\ncase the xattr didn\u0027t exist yet.  This has introduced a regression when setting\nan xattr that already exists with a large value.  If we find the key we are\nlooking for split_leaf will assume that we\u0027re extending that item.  The problem\nis the size we pass down to btrfs_search_slot includes the size of the item\nalready, so if we have the largest xattr we can possibly have plus the size of\nthe xattr item plus the xattr item that btrfs_search_slot we\u0027d overflow the\nleaf.  Thankfully this is not what we\u0027re doing, but split_leaf doesn\u0027t know this\nso it just returns EOVERFLOW.  So in the xattr code we need to check and see if\nwe got back EOVERFLOW and treat it like EEXIST since that\u0027s really what\nhappened.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "e70bea5fe0e3d6355fd95674eaff5aa5a32f0564",
      "tree": "dad7af7a0d449c43393c9249d4634a8279580534",
      "parents": [
        "4b91c14f913f649d4302b3677b85c4ce87a3d8e7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Oct 11 14:18:24 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:55 2011 -0400"
      },
      "message": "Btrfs: fix the amount of space reserved for unlink\n\nOur unlink reservations were a bit much, we were reserving 10 and I only count 8\npossible items we\u0027re touching, so comment what we\u0027re reserving for and fix the\ncount value.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "4b91c14f913f649d4302b3677b85c4ce87a3d8e7",
      "tree": "3c0c0ce1655985e05ab66440c1b9db7890c3a52a",
      "parents": [
        "5b0e95bf607ddd59b39f52d3d55e6581c817b530"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 07 11:55:34 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:55 2011 -0400"
      },
      "message": "Btrfs: wait for ordered extents if we didn\u0027t reclaim enough\n\nI noticed recently that my overcommit patch was causing one of my enospc tests\nto fail 25% of the time with early ENOSPC.  This is because my overcommit patch\nwas letting us go way over board, but it wasn\u0027t waiting long enough to let the\ndelalloc shrinker do it\u0027s job.  The problem is we just start writeback and wait\na little bit hoping we flush enough, but we only free up delalloc space by\nhaving the writes complete all the way.  We do this by waiting for ordered\nextents, which we do but only if we already free\u0027d enough for the reservation,\nwhich isn\u0027t right, we should flush ordered extents if we didn\u0027t reclaim enough\nin case that will push us over the edge.  With this patch I\u0027ve not seen a\nfailure in this enospc test after running it in a loop for an hour.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "5b0e95bf607ddd59b39f52d3d55e6581c817b530",
      "tree": "da248f5492908ce8b9402beee68c6ee98aa3caed",
      "parents": [
        "9a82ca659d8bfd99afc0e89bbde2202322df5755"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Oct 06 08:58:24 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:54 2011 -0400"
      },
      "message": "Btrfs: inline checksums into the disk free space cache\n\nYeah yeah I know this is how we used to do it and then I changed it, but damnit\nI\u0027m changing it back.  The fact is that writing out checksums will modify\nmetadata, which could cause us to dirty a block group we\u0027ve already written out,\nso we have to truncate it and all of it\u0027s checksums and re-write it which will\nwrite new checksums which could dirty a blockg roup that has already been\nwritten and you see where I\u0027m going with this?  This can cause unmount or really\nanything that depends on a transaction to commit to take it\u0027s sweet damned time\nto happen.  So go back to the way it was, only this time we\u0027re specifically\nsetting NODATACOW because we can\u0027t go through the COW pathway anyway and we\u0027re\ndoing our own built-in cow\u0027ing by truncating the free space cache.  The other\nnew thing is once we truncate the old cache and preallocate the new space, we\ndon\u0027t need to do that song and dance at all for the rest of the transaction, we\ncan just overwrite the existing space with the new cache if the block group\nchanges for whatever reason, and the NODATACOW will let us do this fine.  So\nkeep track of which transaction we last cleared our cache in and if we cleared\nit in this transaction just say we\u0027re all setup and carry on.  This survives\nxfstests and stress.sh.\n\nThe inode cache will continue to use the normal csum infrastructure since it\nonly gets written once and there will be no more modifications to the fs tree in\na transaction commit.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "9a82ca659d8bfd99afc0e89bbde2202322df5755",
      "tree": "965b34fb6e1133d3a198954aa1d97ede017f993a",
      "parents": [
        "549b4fdb8f3c0708bbc0ee12ff955cd206c0f60c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 05 16:35:28 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:53 2011 -0400"
      },
      "message": "Btrfs: take overflow into account in reserving space\n\nMy overcommit stuff can be a little racy when we\u0027re filling up the disk with\nfs_mark and we overcommit into things that quickly get used up for data.  So use\nnum_bytes to see if we have enough available space so we\u0027re less likely to\novercommit ourselves out of the ability to make reservations.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "549b4fdb8f3c0708bbc0ee12ff955cd206c0f60c",
      "tree": "8ee21d81f99dd2efd801c59c1d5eaf800f6b0ec0",
      "parents": [
        "a67509c30079f4c5025fb19ea443fb2906c3a85e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 05 16:33:53 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:53 2011 -0400"
      },
      "message": "Btrfs: check the return value of filemap_write_and_wait in the space cache\n\nWe need to check the return value of filemap_write_and_wait in the space cache\nwriteout code.  Also don\u0027t set the inode\u0027s generation until we\u0027re sure nothing\nelse is going to fail.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a67509c30079f4c5025fb19ea443fb2906c3a85e",
      "tree": "ff8bd615b4fd447c044f06f29e2ad3b65db35ea2",
      "parents": [
        "f75b130e9bb361850787e156c79311adb84f551e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 05 15:18:58 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:52 2011 -0400"
      },
      "message": "Btrfs: add a io_ctl struct and helpers for dealing with the space cache\n\nIn writing and reading the space cache we have one big loop that keeps track of\nwhich page we are on and then a bunch of sizeable loops underneath this big loop\nto try and read/write out properly.  Especially in the write case this makes\nthings hugely complicated and hard to follow, and makes our error checking and\nrecovery equally as complex.  So add a io_ctl struct with a bunch of helpers to\nkeep track of the pages we have, where we are, if we have enough space etc.\nThis unifies how we deal with the pages we\u0027re writing and keeps all the messy\ntracking internal.  This allows us to kill the big loops in both the read and\nwrite case and makes reviewing and chaning the write and read paths much\nsimpler.  I\u0027ve run xfstests and stress.sh on this code and it survives.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "f75b130e9bb361850787e156c79311adb84f551e",
      "tree": "6bc2fdf8c19f36124583774f07550e26b85de7e5",
      "parents": [
        "73bc187680f94bed498f8a669103cad290e41180"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 05 10:00:18 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:51 2011 -0400"
      },
      "message": "Btrfs: don\u0027t skip writing out a empty block groups cache\n\nI noticed a slight bug where we will not bother writing out the block group\ncache\u0027s space cache if it\u0027s space tree is empty.  Since it could have a cluster\nor pinned extents that need to be written out this is just not a valid test.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "73bc187680f94bed498f8a669103cad290e41180",
      "tree": "e4e8c9a6baa656dbeb470032956657b294610c61",
      "parents": [
        "e27425d614d68daa08f60735982a7c3a0230e855"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Oct 03 14:07:49 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:51 2011 -0400"
      },
      "message": "Btrfs: introduce mount option no_space_cache\n\nSome users have requested this and I\u0027ve found I needed a way to disable cache\nloading without actually clearing the cache, so introduce the no_space_cache\noption.  Before we check the super blocks cache generation field and if it was\npopulated we always turned space caching on.  Now we check this and set the\nspace cache option on, and then parse the mount options so that if we want it\noff it get\u0027s turned off.  Then we check the mount option all the places we do\nthe caching work instead of checking the super\u0027s cache generation.  This makes\nthings more consistent and lets us turn space caching off.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "e27425d614d68daa08f60735982a7c3a0230e855",
      "tree": "7f06f5576552498dd902860d77564436a2ef1606",
      "parents": [
        "2bf64758fd6290797a5ce97d4b9c698a4ed1cbad"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Sep 27 11:01:30 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:50 2011 -0400"
      },
      "message": "Btrfs: only inherit btrfs specific flags when creating files\n\nXfstests 79 was failing because we were inheriting the S_APPEND flag when we\nweren\u0027t supposed to.  There isn\u0027t any specific documentation on this so I\u0027m\ntaking the test as the standard of how things work, and having S_APPEND set on a\ndirectory doesn\u0027t mean that S_APPEND gets inherited by its children according to\nthis test.  So only inherit btrfs specific things.  This will let us set\ncompress/nocompress on specific directories and everything in the directories\nwill inherit this flag, same with nodatacow.  With this patch test 79 passes.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "2bf64758fd6290797a5ce97d4b9c698a4ed1cbad",
      "tree": "61c7cedc6d7870d288c11333596da6ec673fae95",
      "parents": [
        "8f6d7f4f45f18a5b669dbbf068c74b3d5be59dbf"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Sep 26 17:12:22 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:50 2011 -0400"
      },
      "message": "Btrfs: allow us to overcommit our enospc reservations\n\nOne of the things that kills us is the fact that our ENOSPC reservations are\nhorribly over the top in most normal cases.  There isn\u0027t too much that can be\ndone about this because when we are completely full we really need them to work\nlike this so we don\u0027t under reserve.  However if there is plenty of unallocated\nchunks on the disk we can use that to gauge how much we can overcommit.  So this\npatch adds chunk free space accounting so we always know how much unallocated\nspace we have.  Then if we fail to make a reservation within our allocated\nspace, check to see if we can overcommit.  In the normal flushing case (like\nwith delalloc metadata reservations) we\u0027ll take the free space and divide it by\n2 if our metadata profile is setup for DUP or any of those, and then divide it\nby 8 to make sure we don\u0027t overcommit too much.  Then if we\u0027re in a non-flushing\ncase (we really need this reservation now!) we only limit ourselves to half of\nthe free space.  This makes this fio test\n\n[torrent]\nfilename\u003dtorrent-test\nrw\u003drandwrite\nsize\u003d4g\nioengine\u003dsync\ndirectory\u003d/mnt/btrfs-test\n\ngo from taking around 45 minutes to 10 seconds on my freshly formatted 3 TiB\nfile system.  This doesn\u0027t seem to break my other enospc tests, but could really\nuse some more testing as this is a super scary change.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "8f6d7f4f45f18a5b669dbbf068c74b3d5be59dbf",
      "tree": "6a43f6ec137c0c491a308ba258552a0b47cbc8c0",
      "parents": [
        "726c35fa0edf1d9b8a88b73255532e73089aedda"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Sep 26 15:55:20 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:49 2011 -0400"
      },
      "message": "Btrfs: break out of orphan cleanup if we can\u0027t make progress\n\nI noticed while running xfstests 83 that if we didn\u0027t have enough space to\ndelete our inode the orphan cleanup would just loop.  This is because it keeps\nfinding the same orphan item and keeps trying to kill it but can\u0027t because we\ndon\u0027t get an error back from iput for deleting the inode.  So keep track of the\nlast guy we tried to kill, if it\u0027s the same as the one we\u0027re trying to kill\ncurrently we know we are having problems and can just error out.  I don\u0027t have a\nway to test this so look hard and make sure it\u0027s right.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "726c35fa0edf1d9b8a88b73255532e73089aedda",
      "tree": "5b2c95df5854b5b5829ce5f88e3e807eb4bc8d4a",
      "parents": [
        "1728366efa5ebf48bd2ed544afa8700cd07ba822"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Sep 26 15:46:06 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:48 2011 -0400"
      },
      "message": "Btrfs: use the global reserve as a backup for deleting inodes\n\nXfstests 83 really stresses our ENOSPC since it uses a 100mb fs which ends up\nwith the mixed block group stuff.  Because of this we can run into a situation\nwhere we don\u0027t have enough space to delete inodes, or even worse we can\u0027t free\nthe inodes when we next mount the fs which causes the orphan code to lose its\nmind.  So if we fail to make our reservation, steal from the global reserve.\nThe global reserve will end up taking up the entire rest of the free space on\nthe fs in this worst case so there really is no other option.  With this patch\ntest 83 doesn\u0027t freak out.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "1728366efa5ebf48bd2ed544afa8700cd07ba822",
      "tree": "1f5d2129f3db9a9e8c3aa96b0c8120a55aac925c",
      "parents": [
        "462d6fac8960a3ba797927adfcbd29d503eb16fd"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Sep 26 13:58:47 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:48 2011 -0400"
      },
      "message": "Btrfs: stop using write_one_page\n\nWhile looking for a performance regression a user was complaining about, I\nnoticed that we had a regression with the varmail test of filebench.  This was\nintroduced by\n\n0d10ee2e6deb5c8409ae65b970846344897d5e4e\n\nwhich keeps us from calling writepages in writepage.  This is a correct change,\nhowever it happens to help the varmail test because we write out in larger\nchunks.  This is largly to do with how we write out dirty pages for each\ntransaction.  If you run filebench with\n\nload varmail\nset $dir\u003d/mnt/btrfs-test\nrun 60\n\nprior to this patch you would get ~1420 ops/second, but with the patch you get\n~1200 ops/second.  This is a 16% decrease.  So since we know the range of dirty\npages we want to write out, don\u0027t write out in one page chunks, write out in\nranges.  So to do this we call filemap_fdatawrite_range() on the range of bytes.\nThen we convert the DIRTY extents to NEED_WAIT extents.  When we then call\nbtrfs_wait_marked_extents() we only have to filemap_fdatawait_range() on that\nrange and clear the NEED_WAIT extents.  This doesn\u0027t get us back to our original\nspeeds, but I\u0027ve been seeing ~1380 ops/second, which is a \u003c5% regression as\nopposed to a \u003e15% regression.  That is acceptable given that the original commit\ngreatly reduces our latency to begin with.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "462d6fac8960a3ba797927adfcbd29d503eb16fd",
      "tree": "82e72468a746b55d09246db8272823c2907633e1",
      "parents": [
        "ef3be45722317f8c2fb0e861065df0c3830ff9ac"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Sep 26 13:56:12 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:47 2011 -0400"
      },
      "message": "Btrfs: introduce convert_extent_bit\n\nIf I have a range where I know a certain bit is and I want to set it to another\nbit the only option I have is to call set and then clear bit, which will result\nin 2 tree searches.  This is inefficient, so introduce convert_extent_bit which\nwill go through and set the bit I want and clear the old bit I don\u0027t want.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "ef3be45722317f8c2fb0e861065df0c3830ff9ac",
      "tree": "961c8bd9a36943c08d0302dd77b8bb512387956a",
      "parents": [
        "a8c9e5769718d47e87cce40c9b84cab421804797"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Sep 22 14:30:02 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:47 2011 -0400"
      },
      "message": "Btrfs: check unused against how much space we actually want\n\nThere is a bug that may lead to early ENOSPC in our reservation code.  We\u0027ve\nbeen checking against num_bytes which may be above and beyond what we want to\nactually reserve, which could give us a false ENOSPC.  Fix this by making sure\nthe unused space is above how much we want to reserve and not how much we\u0027re\ntrying to flush.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a8c9e5769718d47e87cce40c9b84cab421804797",
      "tree": "6bfc08ccb5afa532449741230f5733c4f44499fc",
      "parents": [
        "3b16a4e3c355ee3c790473decfcf83d4faeb8ce0"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Sep 21 16:55:59 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:46 2011 -0400"
      },
      "message": "Btrfs: fix orphan cleanup regression\n\nIn fixing how we deal with bad inodes, we had a regression in the orphan cleanup\ncode, since it expects to get a bad inode back.  So fix it to deal with getting\n-ESTALE back by deleting the orphan item manually and moving on.  Thanks,\n\nReported-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "3b16a4e3c355ee3c790473decfcf83d4faeb8ce0",
      "tree": "5c3dad941468cf6952623cc18d6b1e682ee3f264",
      "parents": [
        "455757c322cc0a0f2a692c5625dd88aaf6a7b889"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Sep 21 15:05:58 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:45 2011 -0400"
      },
      "message": "Btrfs: use the inode\u0027s mapping mask for allocating pages\n\nJohannes pointed out we were allocating only kernel pages for doing writes,\nwhich is kind of a big deal if you are on 32bit and have more than a gig of ram.\nSo fix our allocations to use the mapping\u0027s gfp but still clear __GFP_FS so we\ndon\u0027t re-enter.  Thanks,\n\nReported-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "455757c322cc0a0f2a692c5625dd88aaf6a7b889",
      "tree": "1efe7eccd221b1afdaf406293102022775f68558",
      "parents": [
        "9c8d86db9aee6f85866d480e0f9b37817264814c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Sep 19 12:26:24 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:45 2011 -0400"
      },
      "message": "Btrfs: delay iput when deleting a block group\n\nI kept getting warnings from evict because we were calling\nbtrfs_start_transaction() with a transaction already started when doing a\nbalance.  This is because we remove a block group which requires a transaction,\nand the put the last reference on the cache inode.  Instead of doing this we\nneed to delay the iput so it is done not within a transaction having started.\nThis gets rid of our warnings.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "9c8d86db9aee6f85866d480e0f9b37817264814c",
      "tree": "0f191662ee322e52ed7946390b6fc4bb7c0eb130",
      "parents": [
        "4a92b1b8d2810db4ea0c34616b94c0b3810fa027"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Sep 19 11:58:54 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:44 2011 -0400"
      },
      "message": "Btrfs: make sure to unset trans-\u003eblock_rsv before running delayed refs\n\nChecksums are charged in 2 different ways.  The first case is when we\u0027re writing\nto the disk, we account for the new checksums with the delalloc block rsv.  In\norder for this to work we check if we\u0027re allocating a block for the csum root\nand if trans-\u003eblock_rsv \u003d\u003d the delalloc block rsv.  But when we\u0027re deleting the\ncsums because of cow, this is charged to the global block rsv, and is done when\nwe run the delayed refs.  So we need to make sure that trans-\u003eblock_rsv \u003d\u003d NULL\nwhen running the delayed refs.  So set it to NULL and reset it in\nshould_end_transaction, and set it to NULL in commit_transaction.  This got rid\nof the ridiculous amount of warnings I was seeing when trying to do a balance.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "4a92b1b8d2810db4ea0c34616b94c0b3810fa027",
      "tree": "dd01cff1987b8178be84f8b750951497b7f525a7",
      "parents": [
        "d02c9955ded7fc56dd1edc987558b084ccb03eb4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Aug 30 12:34:28 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:44 2011 -0400"
      },
      "message": "Btrfs: stop passing a trans handle all around the reservation code\n\nThe only thing that we need to have a trans handle for is in\nreserve_metadata_bytes and thats to know how much flushing we can do.  So\ninstead of passing it around, just check current-\u003ejournal_info for a\ntrans_handle so we know if we can commit a transaction to try and free up space\nor not.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "d02c9955ded7fc56dd1edc987558b084ccb03eb4",
      "tree": "ec7c62af5acfa3d8675aeeaa03facfd4f46fcaf3",
      "parents": [
        "4c13d758b7e79c14a0026c1f783f0c79e339b7bb"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Aug 30 11:40:48 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:43 2011 -0400"
      },
      "message": "Btrfs: don\u0027t get the block_rsv in btrfs_free_tree_block\n\nSince the durable block rsv stuff has been killed there is no need to get the\nblock_rsv in btrfs_free_tree_block anymore.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "4c13d758b7e79c14a0026c1f783f0c79e339b7bb",
      "tree": "d1510daf164457d433b5f6219e5d48f2f6720a31",
      "parents": [
        "c09544e07f8cdc455ed8615d4c067d694c33bd18"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Aug 30 11:31:29 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:42 2011 -0400"
      },
      "message": "Btrfs: use the transactions block_rsv for the csum root\n\nThe alloc warnings everybody has been seeing is because we have been reserving\nspace for csums, but we weren\u0027t actually using that space.  So make\nget_block_rsv() return the trans-\u003eblock_rsv if we\u0027re modifying the csum root.\nAlso set the trans-\u003eblock_rsv to NULL so that if we modify the csum root when\nrunning delayed ref\u0027s that comes out of the global reserve like it\u0027s supposed\nto.  With this patch I\u0027m not seeing those alloc warnings anymore.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "c09544e07f8cdc455ed8615d4c067d694c33bd18",
      "tree": "c9943e56457ac64e2223396841e043e4514462e0",
      "parents": [
        "300e4f8a56f263797568c95b71c949f9f02e4534"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Aug 30 10:19:10 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:42 2011 -0400"
      },
      "message": "Btrfs: handle enospc accounting for free space inodes\n\nSince free space inodes now use normal checksumming we need to make sure to\naccount for their metadata use.  So reserve metadata space, and then if we fail\nto write out the metadata we can just release it, otherwise it will be freed up\nwhen the io completes.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "300e4f8a56f263797568c95b71c949f9f02e4534",
      "tree": "ecb4f4ba0cd499f73876476f92c3fc6306aaa140",
      "parents": [
        "4a33854257764c2ec6337ee0c8ecafb64f8e29e1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Aug 29 14:06:00 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:41 2011 -0400"
      },
      "message": "Btrfs: put the block group cache after we commit the super\n\nIn moving some enospc stuff around I noticed that when we unmount we are often\nevicting the free space cache inodes before we do our last commit.  This isn\u0027t\nbad, but it makes us constantly have to re-read the inodes back.  So instead\ndon\u0027t evict the cache until after we do our last commit, this will make things a\nlittle less crappy and makes a future enospc change work properly.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "4a33854257764c2ec6337ee0c8ecafb64f8e29e1",
      "tree": "2070f0d4a53c9124d2ff44c78e13f45ae184298c",
      "parents": [
        "7f70150896ebd1169d9c43484c8c424f755353c4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Aug 29 11:01:31 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:40 2011 -0400"
      },
      "message": "Btrfs: set truncate block rsv\u0027s size\n\nWhile debugging a different issue I noticed that we were always reserving space\nwhen we tried to use our truncate block rsv\u0027s.  This is because they didn\u0027t have\na -\u003esize value, so use_block_rsv just assumes there is nothing reserved and it\ndoes a reserve_metadata_bytes.  This is because btrfs_check_block_rsv() doesn\u0027t\nactually add to the size of the block rsv.  That seems to be the right thing to\ndo so set -\u003esize to the minimum truncate size we need, since we will always only\nrefill to that size anyway, and this way everything works out correctly.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7f70150896ebd1169d9c43484c8c424f755353c4",
      "tree": "40a74b6e9e143fb57cde9920d08aa6b7867b1542",
      "parents": [
        "7ed49f187c82821e35f8869399bcf90822a74a23"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Aug 22 15:23:19 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:40 2011 -0400"
      },
      "message": "Btrfs: don\u0027t increase the block_rsv\u0027s size when emergency allocating space\n\nIf we have to emergency reserve space we need to not increase the block_rsv\nsize, otherwise we\u0027ll leak space.  Take for instance delalloc, say we reserve\n4k, and we use that 4k, and then we have to emergency allocate another 4k, we\nbump the size up to 8k, however we\u0027ve only accounted for 4k in reservations in\nall of our supporting logic, so we\u0027ll go to free the 4k and end up having a size\nof 4k, which will cause us to later not free as much space.  I saw this doing\ntesting where I wasn\u0027t reserving enough space for something but was still\nleaking space, very frustrating.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7ed49f187c82821e35f8869399bcf90822a74a23",
      "tree": "801cdba60d8cfa7c5aa9ecb2b396ba61d5cad9ab",
      "parents": [
        "a9b5fcddce594a408a48d523087b5bb64ce82469"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Aug 19 15:45:52 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:39 2011 -0400"
      },
      "message": "Btrfs: fix space leak when we fail to make an allocation\n\nWhen changing back to using a spin_lock to protect the extent counters I decided\nthat since we would only be dropping our original extent, it was ok to just drop\nthe extent and return.  However since somebody else could have come in and done\na reservation, we need to do the normal song and dance to clear the reservation\nout properly.  So calculate how much space we need to free, and then subtract\nwhat we just attempted to reserve.  If it\u0027s more then we know we need to drop\nthose bytes from the delalloc block rsv.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a9b5fcddce594a408a48d523087b5bb64ce82469",
      "tree": "b146a8c2c9a00012b253c94dc65baa8ecb325e61",
      "parents": [
        "482e6dc5261406fdb921946e70b51467b0305bad"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Aug 19 12:06:12 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:38 2011 -0400"
      },
      "message": "Btrfs: fix call to btrfs_search_slot in free space cache\n\nWe are setting ins_len to 1 even tho we are just modifying an item that should\nbe there already.  This may cause the search stuff to split nodes on the way\ndown needelessly.  Set this to 0 since we aren\u0027t inserting anything.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "482e6dc5261406fdb921946e70b51467b0305bad",
      "tree": "b3acb0574ea5b7a8bd4991c346f5166f0317bbf4",
      "parents": [
        "07127184efb629f1336c0592bfdacec258cab731"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Aug 19 10:31:56 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:38 2011 -0400"
      },
      "message": "Btrfs: allow callers to specify if flushing can occur for btrfs_block_rsv_check\n\nIf you run xfstest 224 it you will get lots of messages about not being able to\ndelete inodes and that they will be cleaned up next mount.  This is because\nbtrfs_block_rsv_check was not calling reserve_metadata_bytes with the ability to\nflush, so if there was not enough space, it simply failed.  But in truncate and\nevict case we could easily flush space to try and get enough space to do our\nwork, so make btrfs_block_rsv_check take a flush argument to pass down to\nreserve_metadata_bytes.  Now xfstests 224 runs fine without all those\ncomplaints.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "07127184efb629f1336c0592bfdacec258cab731",
      "tree": "c527bfd0444cd9a589278873dd78ef185f66d2fc",
      "parents": [
        "1b9c332b6c92e992b1971a08412c6f460a54b514"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Aug 19 10:29:59 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:37 2011 -0400"
      },
      "message": "Btrfs: reduce the amount of space needed for truncates\n\nWith btrfs_truncate_inode_items we always return if we have to go to another\nleaf, which makes us do our reservation again.  This means we will only ever\nmodify one leaf at a time, so we only need 1 items worth of slack space.  Also,\nsince we are deleting we will not be creating nodes as we go down, if anything\nwe\u0027ll be free\u0027ing them as we merge them together, so make a different\ncalculation for truncate which will only have the worst case useage of COW\u0027ing\nthe entire path down to the leaf.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "1b9c332b6c92e992b1971a08412c6f460a54b514",
      "tree": "efdff83971345340faaf57823c0316962445a458",
      "parents": [
        "5e962c7850c273b483acc747b41bd5cddf631049"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Aug 17 10:19:52 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:36 2011 -0400"
      },
      "message": "Btrfs: only reserve space in fallocate if we have to do a preallocate\n\nLukas found a problem where if he tries to fallocate over the same region twice\nand the first fallocate took up all the space we would fail with ENOSPC.  This\nis because we reserve the total space we want to use for fallocate, regardless\nof wether or not we will have to actually preallocate.  So instead move the\ncheck into the loop where we actually have to do the preallocate.  Thanks,\n\nTested-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "5e962c7850c273b483acc747b41bd5cddf631049",
      "tree": "c916196b6eae6c4f56dc46ca5ffad284dc6ecc78",
      "parents": [
        "907cbcebd4e5f641faf08601f216b1ceb6cb3bdf"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Aug 08 14:03:37 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:36 2011 -0400"
      },
      "message": "Btrfs: kill btrfs_truncate_reserve_metadata\n\nSince we\u0027ve optimized the truncate path, we no longer require this function.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "907cbcebd4e5f641faf08601f216b1ceb6cb3bdf",
      "tree": "2f605e19e8d44360c9eb4033adda940e9e5ab007",
      "parents": [
        "13553e5221d6901a33b3f2157a389de085c161fe"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Aug 08 13:46:15 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:35 2011 -0400"
      },
      "message": "Btrfs: optimize how we account for space in truncate\n\nCurrently we\u0027re starting and stopping a transaction for no real reason, so kill\nthat and just reserve enough space as if we can truncate all in one transaction.\nAlso use btrfs_block_rsv_check() for our reserve to minimize the amount of space\nwe may have to allocate for our slack space.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "13553e5221d6901a33b3f2157a389de085c161fe",
      "tree": "47cbcd85dc148eb4948ecb9728178df31ed7644c",
      "parents": [
        "dabdb6408cb801644fa613c7432da012640b348c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Aug 08 13:33:21 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:35 2011 -0400"
      },
      "message": "Btrfs: don\u0027t try to commit in btrfs_block_rsv_check\n\nWe will try and reserve metadata bytes in btrfs_block_rsv_check and if we cannot\nbecause we have a transaction open it will return EAGAIN, so we do not need to\ntry and commit the transaction again.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "dabdb6408cb801644fa613c7432da012640b348c",
      "tree": "846978b48af90315b14bf984d0b0a55a962eff6b",
      "parents": [
        "6ab60601d518d563ca1a47eaa399096e69d3b64a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Aug 08 12:50:18 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Oct 19 15:12:34 2011 -0400"
      },
      "message": "Btrfs: kill unused parts of block_rsv\n\nThe priority and refill_used flags are not used anymore, and neither is the\nusage counter, so just remove them from btrfs_block_rsv.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    }
  ],
  "next": "6ab60601d518d563ca1a47eaa399096e69d3b64a"
}
