)]}'
{
  "log": [
    {
      "commit": "18e41da89d55014d25b9a24502ee92b7f50599f9",
      "tree": "5ce8ebd7456f377e4cfbff0ae83e84295617a4a8",
      "parents": [
        "43aa7ac736a4e21aae4882bd8f7c67403aed45b8",
        "5dc6416414fb3ec6e2825fd4d20c8bf1d7fe0395"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 15 12:55:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 15 12:55:31 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: check for read permission on src file in the clone ioctl\n"
    },
    {
      "commit": "5dc6416414fb3ec6e2825fd4d20c8bf1d7fe0395",
      "tree": "e15101a2d1302ff6f2830f282197b34060ec963c",
      "parents": [
        "9f680ce04ea19dabbbafe01b57b61930a9b70741"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "dan.j.rosenberg@gmail.com",
        "time": "Sat May 15 11:27:37 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 15 12:05:50 2010 -0400"
      },
      "message": "Btrfs: check for read permission on src file in the clone ioctl\n\nThe existing code would have allowed you to clone a file that was\nonly open for writing\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e6d086d83cf7f102d48c006f58172a69ec0c15a4",
      "tree": "be8cf9ab5c593982dded8585d1e9961a1e83b1e5",
      "parents": [
        "5129a469a91a91427334c40e29e64c6d0ab68caf"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 26 10:27:54 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 26 10:27:54 2010 +0200"
      },
      "message": "btrfs: convert to using bdi_setup_and_register()\n\nIt\u0027s now a provided helper, so get rid of the internal setup\nand btrfs atomic_t bdi enumerator.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d6cf853d4d73c268fc8920ac4e812ee26a12847c",
      "tree": "c909145638eb5c4897ea7e424759eb9b564ebe18",
      "parents": [
        "6a945f38be5f2c198853069a336c887a51d1a238",
        "9f680ce04ea19dabbbafe01b57b61930a9b70741"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 12 18:37:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 12 18:37:04 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: make sure the chunk allocator doesn\u0027t create zero length chunks\n  Btrfs: fix data enospc check overflow\n"
    },
    {
      "commit": "9f680ce04ea19dabbbafe01b57b61930a9b70741",
      "tree": "30447eb92851fe8542469a69cfd126bec30f9dd2",
      "parents": [
        "ab6e24103cbd215e922938a4f58c75194761a60e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 06 09:37:47 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 06 09:37:47 2010 -0400"
      },
      "message": "Btrfs: make sure the chunk allocator doesn\u0027t create zero length chunks\n\nA recent commit allowed for smaller chunks to be created, but didn\u0027t\nmake sure they were always bigger than a stripe.  After some divides,\nthis led to zero length stripes.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "795d580baec0d5386b83a8b557df47c20810e86b",
      "tree": "d0387c37562e9e27a4f43cf7ae425319cbdad359",
      "parents": [
        "449cedf099b23a250e7d61982e35555ccb871182",
        "109f6aef5fc436f355ad027f4d97bd696df2049a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 13:21:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 13:21:15 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: add check for changed leaves in setup_leaf_for_split\n  Btrfs: create snapshot references in same commit as snapshot\n  Btrfs: fix small race with delalloc flushing waitqueue\u0027s\n  Btrfs: use add_to_page_cache_lru, use __page_cache_alloc\n  Btrfs: fix chunk allocate size calculation\n  Btrfs: kill max_extent mount option\n  Btrfs: fail to mount if we have problems reading the block groups\n  Btrfs: check btrfs_get_extent return for IS_ERR()\n  Btrfs: handle kmalloc() failure in inode lookup ioctl\n  Btrfs: dereferencing freed memory\n  Btrfs: Simplify num_stripes\u0027s calculation logical for __btrfs_alloc_chunk()\n  Btrfs: Add error handle for btrfs_search_slot() in btrfs_read_chunk_tree()\n  Btrfs: Remove unnecessary finish_wait() in wait_current_trans()\n  Btrfs: add NULL check for do_walk_down()\n  Btrfs: remove duplicate include in ioctl.c\n\nFix trivial conflict in fs/btrfs/compression.c due to slab.h include\ncleanups.\n"
    },
    {
      "commit": "ab6e24103cbd215e922938a4f58c75194761a60e",
      "tree": "d54479feddd7fe625888dd62084621d4d0871c4b",
      "parents": [
        "109f6aef5fc436f355ad027f4d97bd696df2049a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 19 14:38:13 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 05 16:04:50 2010 -0400"
      },
      "message": "Btrfs: fix data enospc check overflow\n\nBecause we account for reserved space we get from the allocator before we\nactually account for allocating delalloc space, we can have a small window where\nthe amount of \"used\" space in a space_info is more than the total amount of\nspace in the space_info.  This will cause a overflow in our check, so it will\nseem like we have _tons_ of free space, and we\u0027ll allow reservations to occur\nthat will end up larger than the amount of space we have.  I\u0027ve seen users\nreport ENOSPC panic\u0027s in cow_file_range a few times recently, so I tried to\nreproduce this problem and found I could reproduce it if I ran one of my tests\nin a loop for like 20 minutes.  With this patch my test ran all night without\nissues.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "109f6aef5fc436f355ad027f4d97bd696df2049a",
      "tree": "645cf1752f2c62579f6dfe028d8a5d918c6b6f45",
      "parents": [
        "6bdb72ded1e281cd8844918c39d00cdd0e59f655"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Apr 02 09:20:18 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 05 14:42:01 2010 -0400"
      },
      "message": "Btrfs: add check for changed leaves in setup_leaf_for_split\n\nsetup_leaf_for_split needs to drop the path and search again, and has\nchecks to see if the item we want to split changed size.  But, it misses\nthe case where the leaf changed and now has enough room for the item\nwe want to insert.\n\nThis adds an extra check to make sure the leaf really needs splitting\nbefore we call btrfs_split_leaf(), which keeps us from trying to split\na leaf with a single item.\n\nbtrfs_split_leaf() will blindly split the single item leaf, leaving us\nwith one good leaf and one empty leaf and then a crash.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6bdb72ded1e281cd8844918c39d00cdd0e59f655",
      "tree": "39c25c85ddb1c2eecf7977e7e21a95f1c95ec21f",
      "parents": [
        "b5cb160084fad438c513d0952849e597ffe9e3d9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 15 17:27:13 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 05 14:42:01 2010 -0400"
      },
      "message": "Btrfs: create snapshot references in same commit as snapshot\n\nThis creates the reference to a new snapshot in the same commit as the\nsnapshot itself.  This avoids the need for a second commit in order for a\nsnapshot to be persistent, and also avoids the problem of \"leaking\" a\nnew snapshot tree root if the host crashes before the second commit takes\nplace.\n\nIt is not at all clear to me why it wasn\u0027t always done this way.  If there\nis still a reason for the two-stage {create,finish}_pending_snapshots()\napproach I\u0027m missing something!  :)\n\nI\u0027ve been running this for a couple weeks under pretty heavy usage (a few\nsnapshots per minute) without obvious problems.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b5cb160084fad438c513d0952849e597ffe9e3d9",
      "tree": "91a5a1352cc803695b2ae3b3217c82d423ca5edf",
      "parents": [
        "28ecb60906e86e74e9ad4ac7e0218d8631e73a94"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 12 19:28:18 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 05 14:42:00 2010 -0400"
      },
      "message": "Btrfs: fix small race with delalloc flushing waitqueue\u0027s\n\nEverytime we start a new flushing thread, we init the waitqueue if there isn\u0027t a\nflushing thread running.  The problem with this is we check\nspace_info-\u003eflushing, which we clear right before doing a wake_up on the\nflushing waitqueue, which causes problems if we init the waitqueue in the middle\nof clearing the flushing flagh and calling wake_up.  This is hard to hit, but\nthe code is wrong anyway, so init the flushing/allocating waitqueue when\ncreating the space info and let it be.  I haven\u0027t seen the panic since I\u0027ve been\nusing this patch.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "28ecb60906e86e74e9ad4ac7e0218d8631e73a94",
      "tree": "7214fa7bfb39f789aa4a78e174e39f61ef101b95",
      "parents": [
        "0cad8a1130f77c7c445e3298c0e3593b3c0ef439"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 17 13:31:04 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 05 14:41:51 2010 -0400"
      },
      "message": "Btrfs: use add_to_page_cache_lru, use __page_cache_alloc\n\nPagecache pages should be allocated with __page_cache_alloc, so they\nobey pagecache memory policies.\n\nadd_to_page_cache_lru is exported, so it should be used. Benefits over\nusing a private pagevec: neater code, 128 bytes fewer stack used, percpu\nlru ordering is preserved, and finally don\u0027t need to flush pagevec\nbefore returning so batching may be shared with other LRU insertions.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e:\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0cad8a1130f77c7c445e3298c0e3593b3c0ef439",
      "tree": "1f045f7baccc9dd2c1ac805b94cdedc4bbab618f",
      "parents": [
        "287a0ab91d25ca982f895a76402e5893b47ed7a6"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Mar 17 20:45:56 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: fix chunk allocate size calculation\n\nIf the amount of free space left in a device is less than what we think should\nbe the minimum size, just ignore the minimum size and use the amount we have.  I\nran into this running tests on a 600mb volume, the chunk allocator wouldn\u0027t let\nme allocate the last 52mb of the disk for data because we want to have at least\n64mb chunks for data.  This patch fixes that problem.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "287a0ab91d25ca982f895a76402e5893b47ed7a6",
      "tree": "fcbe35daef2b4cbdc2bfc0c6026e7c45faef0245",
      "parents": [
        "1b1d1f6625e517a08640ddb4b8f8a0e025243fe3"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 19 18:07:23 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: kill max_extent mount option\n\nAs Yan pointed out, theres not much reason for all this complicated math to\naccount for file extents being split up into max_extent chunks, since they are\nlikely to all end up in the same leaf anyway.  Since there isn\u0027t much reason to\nuse max_extent, just remove the option altogether so we have one less thing we\nneed to test.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1b1d1f6625e517a08640ddb4b8f8a0e025243fe3",
      "tree": "d662fe7e7d9ddec1214982b3dcd955228e18562f",
      "parents": [
        "6cf8bfbf5e88edfb09a2bf0631a067060f534592"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 19 20:49:55 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: fail to mount if we have problems reading the block groups\n\nWe don\u0027t actually check the return value of btrfs_read_block_groups, so we can\npossibly succeed to mount, but then fail to say read the superblock xattr for\nselinux which will cause the vfs code to deactivate the super.\n\nThis is a problem because in find_free_extent we just assume that we\nwill find the right space_info for the allocation we want.  But if we\nfailed to read the block groups, we won\u0027t have setup any space_info\u0027s,\nand we\u0027ll hit a NULL pointer deref in find_free_extent.\n\nThis patch fixes that problem by checking the return value of\nbtrfs_read_block_groups, and failing out properly.  I\u0027ve also added a\ncheck in find_free_extent so if for some reason we don\u0027t find an\nappropriate space_info, we just return -ENOSPC.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6cf8bfbf5e88edfb09a2bf0631a067060f534592",
      "tree": "70cc8040189bcd623e72ab1f09c6dc4fb40741e5",
      "parents": [
        "c2b96929e2ca6914cf4a66cd8fe2a34c4a98277f"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Mar 20 11:22:10 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: check btrfs_get_extent return for IS_ERR()\n\nbtrfs_get_extent() never returns NULL, only a valid pointer or ERR_PTR()\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c2b96929e2ca6914cf4a66cd8fe2a34c4a98277f",
      "tree": "acfc0f7c28305f2057e6eed88ffd8b34441ba2e1",
      "parents": [
        "683be16eb6e19a35aca2473668652259ed074094"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Mar 20 11:24:15 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: handle kmalloc() failure in inode lookup ioctl\n\nReturn -ENOMEM if kmalloc() fails.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "683be16eb6e19a35aca2473668652259ed074094",
      "tree": "e6ed753b392a576999140ab9758db9c58dc60926",
      "parents": [
        "f3eae7e8a5ed124bbc781e18ea10c21856017322"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Mar 20 11:24:48 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: dereferencing freed memory\n\nThe original code dereferenced range on the next line.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f3eae7e8a5ed124bbc781e18ea10c21856017322",
      "tree": "5e275277720e220ac3c9c2e3dcc404c39a76bbe8",
      "parents": [
        "ab59381ea43f81c977cbd09add26950aaf6cb9fe"
      ],
      "author": {
        "name": "Zhao Lei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Thu Mar 25 12:32:59 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: Simplify num_stripes\u0027s calculation logical for __btrfs_alloc_chunk()\n\nWe can use this simple method to make source more readable.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ab59381ea43f81c977cbd09add26950aaf6cb9fe",
      "tree": "5c009854f6c04996492b3bcadc538ed9264948b9",
      "parents": [
        "471fa17dff556ad38caf26de097c0630530d8cbe"
      ],
      "author": {
        "name": "Zhao Lei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Thu Mar 25 12:34:49 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:09 2010 -0400"
      },
      "message": "Btrfs: Add error handle for btrfs_search_slot() in btrfs_read_chunk_tree()\n\nWe need to check return value of btrfs_search_slot() in\nbtrfs_read_chunk_tree() and do corresponding error handing.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "471fa17dff556ad38caf26de097c0630530d8cbe",
      "tree": "1a89bf8fa9eb34df3512c1216d5a92a29327a98d",
      "parents": [
        "90d2c51dbb4db05c040bc7db264bb7ab35e35455"
      ],
      "author": {
        "name": "Zhao Lei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Thu Mar 25 12:35:14 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:08 2010 -0400"
      },
      "message": "Btrfs: Remove unnecessary finish_wait() in wait_current_trans()\n\nWe only need to call finish_wait() after wait loop.\n\nBy the way, this patch makes code of waiting loop similar to\nexample in wait.h(no functional change)\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "90d2c51dbb4db05c040bc7db264bb7ab35e35455",
      "tree": "d97b50f0a064366aecce9671b8e1791263999e59",
      "parents": [
        "2f3014fc2ab1e25c36531e19164c48182c168995"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Mar 25 12:37:12 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:08 2010 -0400"
      },
      "message": "Btrfs: add NULL check for do_walk_down()\n\nbtrfs_find_create_tree_block() may return NULL, so we must check the returned\nvalue, or we will access a NULL pointer.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2f3014fc2ab1e25c36531e19164c48182c168995",
      "tree": "84a906ae0d4c963377d768d8ec80a308122a4687",
      "parents": [
        "8ad6fcab564c5bc956bdc3dfa440ab152b6e780f"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Thu Mar 25 17:22:45 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 30 21:19:08 2010 -0400"
      },
      "message": "Btrfs: remove duplicate include in ioctl.c\n\nfs/btrfs/ioctl.c: ctree.h is included more than once.\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "441f4058a04b2943685ff94e0f5f1992b0b3649e",
      "tree": "80a61f6dddcf7d5831a8bd3771ffa2b430af3935",
      "parents": [
        "7c34691abe23741bfc7d2514efd5a39f0e0ecb06",
        "8ad6fcab564c5bc956bdc3dfa440ab152b6e780f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:50:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:50:55 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (30 commits)\n  Btrfs: fix the inode ref searches done by btrfs_search_path_in_tree\n  Btrfs: allow treeid\u003d\u003d0 in the inode lookup ioctl\n  Btrfs: return keys for large items to the search ioctl\n  Btrfs: fix key checks and advance in the search ioctl\n  Btrfs: buffer results in the space_info ioctl\n  Btrfs: use __u64 types in ioctl.h\n  Btrfs: fix search_ioctl key advance\n  Btrfs: fix gfp flags masking in the compression code\n  Btrfs: don\u0027t look at bio flags after submit_bio\n  btrfs: using btrfs_stack_device_id() get devid\n  btrfs: use memparse\n  Btrfs: add a \"df\" ioctl for btrfs\n  Btrfs: cache the extent state everywhere we possibly can V2\n  Btrfs: cache ordered extent when completing io\n  Btrfs: cache extent state in find_delalloc_range\n  Btrfs: change the ordered tree to use a spinlock instead of a mutex\n  Btrfs: finish read pages in the order they are submitted\n  btrfs: fix btrfs_mkdir goto for no free objectids\n  Btrfs: flush data on snapshot creation\n  Btrfs: make df be a little bit more understandable\n  ...\n"
    },
    {
      "commit": "8ad6fcab564c5bc956bdc3dfa440ab152b6e780f",
      "tree": "38670d63e5315650f3e6efe2a2a8025e945b4743",
      "parents": [
        "1b53ac4d1b75b23bdc2b54ace787b8f718a987ef"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:23:10 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:23:10 2010 -0400"
      },
      "message": "Btrfs: fix the inode ref searches done by btrfs_search_path_in_tree\n\nThis is used by the inode lookup ioctl to follow all the backrefs up\nto the subvol root.  But the search being done would sometimes land one\npast the last item in the leaf instead of finding the backref.\n\nThis changes the search to look for the highest possible backref and hop\nback one item.  It also fixes a leaked path on failure to find the root.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1b53ac4d1b75b23bdc2b54ace787b8f718a987ef",
      "tree": "4ba3bf8dc5159d4b382b1e44306eef1875203c6a",
      "parents": [
        "90fdde147fd32d18a20be5b498d5f26e56cca8a3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:17:05 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:17:05 2010 -0400"
      },
      "message": "Btrfs: allow treeid\u003d\u003d0 in the inode lookup ioctl\n\nWhen a root id of 0 is sent to the inode lookup ioctl, it will\nuse the root of the file we\u0027re ioctling and pass the root id\nback to userland along with the results.\n\nThis allows userland to do searches based on that root later on.\n\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "90fdde147fd32d18a20be5b498d5f26e56cca8a3",
      "tree": "ab861e9190145df710345bb1e54c5f3f1d77d296",
      "parents": [
        "abc6e1341bda974e2d0eddb75f57a20ac18e9b33"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:14:54 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:14:54 2010 -0400"
      },
      "message": "Btrfs: return keys for large items to the search ioctl\n\nThe search ioctl was skipping large items entirely (ones that are too\nbig for the results buffer).  This changes things to at least copy\nthe item header so that we can send information about the item back to\nuserland.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "abc6e1341bda974e2d0eddb75f57a20ac18e9b33",
      "tree": "399e587e8e94dd4ec2894f52f377a189a21ece2a",
      "parents": [
        "7fde62bffb576d384ea49a3aed3403d5609ee5bc"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:10:08 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 18 12:10:08 2010 -0400"
      },
      "message": "Btrfs: fix key checks and advance in the search ioctl\n\nThe search ioctl was working well for finding tree roots, but using it for\ngeneric searches requires a few changes to how the keys are advanced.\nThis treats the search control min fields for objectid, type and offset\nmore like a key, where we drop the offset to zero once we bump the type,\netc.\n\nThe downside of this is that we are changing the min_type and min_offset\nfields during the search, and so the ioctl caller needs extra checks to make sure\nthe keys in the result are the ones it wanted.\n\nThis also changes key_in_sk to use btrfs_comp_cpu_keys, just to make\nthings more readable.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7fde62bffb576d384ea49a3aed3403d5609ee5bc",
      "tree": "0fc0be615e657ed385835b56741c3a62c2c76fff",
      "parents": [
        "ce769a2904bf5a9110ef534a7702397e38e2b3e9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 16 15:40:10 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 16 15:40:10 2010 -0400"
      },
      "message": "Btrfs: buffer results in the space_info ioctl\n\nThe space_info ioctl was using copy_to_user inside rcu_read_lock.  This\ncommit changes things to copy into a buffer first and then dump the\nresult down to userland.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ce769a2904bf5a9110ef534a7702397e38e2b3e9",
      "tree": "f783a7e8ca35053f534ad2bc64e52bf0d08442c2",
      "parents": [
        "854d2c3531e6d32e76b94ca5e096ea54c7497e40"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 16 00:02:26 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 16 14:24:27 2010 -0400"
      },
      "message": "Btrfs: use __u64 types in ioctl.h\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "854d2c3531e6d32e76b94ca5e096ea54c7497e40",
      "tree": "50775c23fe46b586b24294217e4eb81fbc0e8365",
      "parents": [
        "ef5780c018ed169a77b623f87c4ba52faa8ad0fe"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 16 00:02:25 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 16 14:24:27 2010 -0400"
      },
      "message": "Btrfs: fix search_ioctl key advance\n\nkey-\u003etype is u8, not u64.\n\nfs/btrfs/ioctl.c: In function \u0027copy_to_sk\u0027:\nfs/btrfs/ioctl.c:1024: warning: comparison is always true due to limited range of data type\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ef5780c018ed169a77b623f87c4ba52faa8ad0fe",
      "tree": "4c93fbaa09ed4b2f4b9713ae462646d149be8550",
      "parents": [
        "5ff7ba3a797a8ffd5299b8477df2dca3c3ebd34e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Mar 15 11:05:29 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:05:57 2010 -0400"
      },
      "message": "Btrfs: fix gfp flags masking in the compression code\n\nGFP_FS must be masked out, NOFS can\u0027t be or\u0027d in.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5ff7ba3a797a8ffd5299b8477df2dca3c3ebd34e",
      "tree": "598f33540071cd31bd7738b5d6246bfbaa0d9b3b",
      "parents": [
        "a343832f1a55c74791a8a37053fc02ad80640710"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 10:21:30 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:15 2010 -0400"
      },
      "message": "Btrfs: don\u0027t look at bio flags after submit_bio\n\nAfter callling submit_bio, the bio can be freed at any time.  The\nbtrfs submission thread helper was checking the bio flags too late,\nwhich might not give the correct answer.\n\nWhen CONFIG_DEBUG_PAGE_ALLOC is turned on, it can lead to oopsen.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a343832f1a55c74791a8a37053fc02ad80640710",
      "tree": "79e920025747703c06ba7a97e433a3ad307d80fe",
      "parents": [
        "91748467a5c5884e44ad5cf58630c0c28474f1f6"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Jan 06 11:48:18 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:14 2010 -0400"
      },
      "message": "btrfs: using btrfs_stack_device_id() get devid\n\nWe can use btrfs_stack_device_id() to get dev_item-\u003edevid\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "91748467a5c5884e44ad5cf58630c0c28474f1f6",
      "tree": "593f2449e069e34fe96ba0e59efa8bf71242ad46",
      "parents": [
        "1406e4327be3a533a2b18582f715ce2cfbcf6804"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Sun Feb 28 10:59:11 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:14 2010 -0400"
      },
      "message": "btrfs: use memparse\n\nUse memparse() instead of its own private implementation.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: linux-btrfs@vger.kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1406e4327be3a533a2b18582f715ce2cfbcf6804",
      "tree": "40cafa639095b1a652cd013746394b7a77e52b69",
      "parents": [
        "2ac55d41b5d6bf49e76bc85db5431240617e2f8f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Jan 13 18:19:06 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:14 2010 -0400"
      },
      "message": "Btrfs: add a \"df\" ioctl for btrfs\n\ndf is a very loaded question in btrfs.  This gives us a way to get the per-space\nusage information so we can tell exactly what is in use where.  This will help\nus figure out ENOSPC problems, and help users better understand where their disk\nspace is going.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2ac55d41b5d6bf49e76bc85db5431240617e2f8f",
      "tree": "ee8e2a716ef0b50388ef5e4a86387ec0499bca89",
      "parents": [
        "5a1a3df1f6c86926cfe8657e6f9b4b4c2f467d60"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Feb 03 19:33:23 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:13 2010 -0400"
      },
      "message": "Btrfs: cache the extent state everywhere we possibly can V2\n\nThis patch just goes through and fixes everybody that does\n\nlock_extent()\nblah\nunlock_extent()\n\nto use\n\nlock_extent_bits()\nblah\nunlock_extent_cached()\n\nand pass around a extent_state so we only have to do the searches once per\nfunction.  This gives me about a 3 mb/s boots on my random write test.  I have\nnot converted some things, like the relocation and ioctl\u0027s, since they aren\u0027t\nheavily used and the relocation stuff is in the middle of being re-written.  I\nalso changed the clear_extent_bit() to only unset the cached state if we are\nclearing EXTENT_LOCKED and related stuff, so we can do things like this\n\nlock_extent_bits()\nclear delalloc bits\nunlock_extent_cached()\n\nwithout losing our cached state.  I tested this thoroughly and turned on\nLEAK_DEBUG to make sure we weren\u0027t leaking extent states, everything worked out\nfine.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5a1a3df1f6c86926cfe8657e6f9b4b4c2f467d60",
      "tree": "bc73836bf0bde137da48eaff72dae75ee729aaba",
      "parents": [
        "c2a128d28a2e78e159e17e8c9274d0a9d9492555"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Feb 02 20:51:14 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:13 2010 -0400"
      },
      "message": "Btrfs: cache ordered extent when completing io\n\nWhen finishing io we run btrfs_dec_test_ordered_pending, and then immediately\nrun btrfs_lookup_ordered_extent, but btrfs_dec_test_ordered_pending does that\nalready, so we\u0027re searching twice when we don\u0027t have to.  This patch lets us\npass a btrfs_ordered_extent in to btrfs_dec_test_ordered_pending so if we do\ncomplete io on that ordered extent we can just use the one we found then instead\nof having to do another btrfs_lookup_ordered_extent.  This made my fio job with\nthe other patch go from 24 mb/s to 29 mb/s.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c2a128d28a2e78e159e17e8c9274d0a9d9492555",
      "tree": "de2a9aab9c2037aa027f598e66006de7b8cf70cd",
      "parents": [
        "49958fd7dbb83cd4d65179d025940e01fe1fbacd"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Feb 02 21:19:11 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:13 2010 -0400"
      },
      "message": "Btrfs: cache extent state in find_delalloc_range\n\nThis patch makes us cache the extent state we find in find_delalloc_range since\nwe\u0027ll have to lock the extent later on in the function.  This will keep us from\nre-searching for the rang when we try to lock the extent.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "49958fd7dbb83cd4d65179d025940e01fe1fbacd",
      "tree": "4a29e47c0935375968971450a2f2949bbd3cdd43",
      "parents": [
        "4125bf761cd0786e1163e024c7c809ce2cc625bc"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Feb 02 21:48:28 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:12 2010 -0400"
      },
      "message": "Btrfs: change the ordered tree to use a spinlock instead of a mutex\n\nThe ordered tree used to need a mutex, but currently all we use it for is to\nprotect the rb_tree, and a spin_lock is just fine for that.  Using a spin_lock\ninstead makes dbench run a little faster, 58 mb/s instead of 51 mb/s, and have\nless latency, 3445.138 ms instead of 3820.633 ms.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4125bf761cd0786e1163e024c7c809ce2cc625bc",
      "tree": "3e1b73b0db29994e8fb56c727c38c1167922f189",
      "parents": [
        "0be2e98173f8badd5ccc7c2e994891746ba1caf4"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 03 18:18:45 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:12 2010 -0400"
      },
      "message": "Btrfs: finish read pages in the order they are submitted\n\nThe endio is done at reverse order of bio vectors.\n\nThat means for a sequential read, the page first submitted will finish\nlast in a bio. Considering we will do checksum (making cache hot) for\nevery page, this does introduce delay (and chance to squeeze cache used\nsoon) for pages submitted at the begining.\n\nI don\u0027t observe obvious performance difference with below patch at my\nsimple test, but seems more natural to finish read in the order they are\nsubmitted.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0be2e98173f8badd5ccc7c2e994891746ba1caf4",
      "tree": "97a8faa272d05e543ac8b26b0a4c6705ababb0c6",
      "parents": [
        "0bdb1db297ab36865a63ee722d35ff0a1f0ae522"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Feb 11 08:06:58 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:11 2010 -0400"
      },
      "message": "btrfs: fix btrfs_mkdir goto for no free objectids\n\nbtrfs_mkdir() must jump to the place of ending transaction after\nbtrfs_find_free_objectid() failed. Or this transaction can\u0027t end.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0bdb1db297ab36865a63ee722d35ff0a1f0ae522",
      "tree": "bd30183300d2ceaa35db1ab59adacf89e8e19d1a",
      "parents": [
        "bd4d10888990f7e3f8029205d27eb155202d6969"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 19 14:13:50 2010 -0800"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:11 2010 -0400"
      },
      "message": "Btrfs: flush data on snapshot creation\n\nFlush any delalloc extents when we create a snapshot, so that recently\nwritten file data is always included in the snapshot.\n\nA later commit will add the ability to snapshot without the flush, but\nmost people expect flushing.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bd4d10888990f7e3f8029205d27eb155202d6969",
      "tree": "dd8bfee4173f6bb5d0170768157e2a024bff34e1",
      "parents": [
        "3a0524dc054791688177544fe510d2868ee20d9f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 05 21:59:21 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:11 2010 -0400"
      },
      "message": "Btrfs: make df be a little bit more understandable\n\nThe way we report df usage is way confusing for everybody, including some other\nutilities (bacula for one).  So this patch makes df a little bit more\nunderstandable.  First we make used actually count the total amount of used\nspace in all space info\u0027s.  This will give us a real view of how much disk space\nis in use.  Second, for blocks available, only count data space.  This makes\nthings like bacula work because it says 0 when you can no longer write anymore\ndata to the disk.  I think this is a nice compromise, since you will end up with\nsomething like the following\n\n[root@alpha ~]# df -h\nFilesystem            Size  Used Avail Use% Mounted on\n/dev/mapper/VolGroup-lv_root\n                      148G   30G  111G  21% /\n/dev/sda1             194M  116M   68M  64% /boot\ntmpfs                 985M   12K  985M   1% /dev/shm\n/dev/mapper/VolGroup-LogVol02\n                      145G  140G     0 100% /mnt/btrfs-test\n\nCompare this with btrfsctl -i output\n\n[root@alpha btrfs-progs-unstable]# ./btrfsctl -i /mnt/btrfs-test/\nMetadata, DUP: total\u003d4.62GB, used\u003d2.46GB\nSystem, DUP: total\u003d8.00MB, used\u003d24.00KB\nData: total\u003d134.80GB, used\u003d134.80GB\nMetadata: total\u003d8.00MB, used\u003d0.00\nSystem: total\u003d4.00MB, used\u003d0.00\noperation complete\n\nThis way we show that there is no more data space to be used, but we have\nanother 5GB of space left for metadata.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3a0524dc054791688177544fe510d2868ee20d9f",
      "tree": "4038b649e33a7f41fd653a16af5766ca9cc6b7c5",
      "parents": [
        "1e701a3292e25a6c4939cad9f24951dc6b6ad853"
      ],
      "author": {
        "name": "TARUISI Hiroaki",
        "email": "taruishi.hiroak@jp.fujitsu.com",
        "time": "Tue Feb 09 06:36:45 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:10 2010 -0400"
      },
      "message": "btrfs: Update existing btrfs_device for renaming device\n\nWhen we scan devices in a multi-device filesystem, we memorize the original\nname.  If the device gets a new name, later scans don\u0027t update the\nin-kernel structures related to it, and we\u0027re not able to mount the\nfilesystem.\n\nThis patch updates device name during scaning.\n\nSigned-off-by: TARUISI Hiroaki \u003ctaruishi.hiroak@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1e701a3292e25a6c4939cad9f24951dc6b6ad853",
      "tree": "899887a99aae82fe113bffedccb90a76e5473f8b",
      "parents": [
        "940100a4a7b78b27e60a3e72340fb9b5397dcdb2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 11 09:42:04 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:10 2010 -0400"
      },
      "message": "Btrfs: add new defrag-range ioctl.\n\nThe btrfs defrag ioctl was limited to doing the entire file.  This\ncommit adds a new interface that can defrag a specific range inside\nthe file.\n\nIt can also force compression on the file, allowing you to selectively\ncompress individual files after they were created, even when mount -o\ncompress isn\u0027t turned on.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "940100a4a7b78b27e60a3e72340fb9b5397dcdb2",
      "tree": "8eec3d4a95cbc530ddaa82f0d2848e14519eec2a",
      "parents": [
        "51684082b11c304829ea22193d4d96a5b1663b97"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 10 10:52:59 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:10 2010 -0400"
      },
      "message": "Btrfs: be more selective in the defrag ioctl\n\nThe btrfs defrag ioctl had some bugs around delalloc accounting, and it\nwasn\u0027t properly skipping pages that were not in the mapping.\n\nIt wasn\u0027t properly clearing the page checked flag, which could make the\nwriteback code ignore the page forever while pinning it as dirty.\n\nThis commit fixes those problems and makes defrag a little smarter.  It\nskips holes and it doesn\u0027t waste time defragging large extents.  If a\ntiny extent comes before a very large extent, it will defrag both of\nthem to make sure the tiny extent ends up next to something big.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "51684082b11c304829ea22193d4d96a5b1663b97",
      "tree": "cfe13e6789c90a817392af490b23a89e7924cbaf",
      "parents": [
        "4849f01d153be0f52b8191ee1be0ce492aa96811"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 10 15:33:32 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:09 2010 -0400"
      },
      "message": "Btrfs: run the backing dev more often in the submit_bio helper\n\nThe submit_bio helper thread can decide to loop back around to\nservice more bios.  This commit forces it to unplug first, which helps\nreduce the latency seen by submitters.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4849f01d153be0f52b8191ee1be0ce492aa96811",
      "tree": "39da0f94d126899f095a9f2b23bb3e38aa90bf46",
      "parents": [
        "6ef5ed0d386be5c43ec66d6f2999919c0893558b"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Dec 14 19:18:38 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:09 2010 -0400"
      },
      "message": "Btrfs: make subvolid\u003d0 mount the original default root\n\nSince theres not a good way to make sure the user sees the original default root\ntree id, and not to mention it\u0027s 5 so is way different than any other volume,\njust make subvol\u003d0 mount the original default root.  This makes it a bit easier\nfor users to handle in the long run.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6ef5ed0d386be5c43ec66d6f2999919c0893558b",
      "tree": "7ec391a0525506eb03bcbb0b5e19709f530b0b74",
      "parents": [
        "73f73415caddbc01d9f10c03e0a677d5b3d11569"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 11 21:11:29 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:08 2010 -0400"
      },
      "message": "Btrfs: add ioctl and incompat flag to set the default mount subvol\n\nThis patch needs to go along with my previous patch.  This lets us set the\ndefault dir item\u0027s location to whatever root we want to use as our default\nmounting subvol.  With this we don\u0027t have to use mount -o subvol\u003d\u003ctree id\u003e\nanymore to mount a different subvol, we can just set the new one and it will\njust magically work.  I\u0027ve done some moderate testing with this, mostly just\nswitching the default mount around, mounting subvols and the default mount at\nthe same time and such, everything seems to work.  Thanks,\n\nOlder kernels would generally be able to still mount the filesystem with the\ndefault subvolume set, but it would result in a different volume being mounted,\nwhich could be an even more unpleasant suprise for users.  So if you set your\ndefault subvolume, you can\u0027t go back to older kernels.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "73f73415caddbc01d9f10c03e0a677d5b3d11569",
      "tree": "249ef103a73e8d99efe409b7988b694537b3d6ad",
      "parents": [
        "12534832cb7b0abc7369298246e8b7af03b863ca"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 04 17:38:27 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 10:58:13 2010 -0400"
      },
      "message": "Btrfs: change how we mount subvolumes\n\nThis work is in preperation for being able to set a different root as the\ndefault mounting root.\n\nThere is currently a problem with how we mount subvolumes.  We cannot currently\nmount a subvolume of a subvolume, you can only mount subvolumes/snapshots of the\ndefault subvolume.  So say you take a snapshot of the default subvolume and call\nit snap1, and then take a snapshot of snap1 and call it snap2, so now you have\n\n/\n/snap1\n/snap1/snap2\n\nas your available volumes.  Currently you can only mount / and /snap1,\nyou cannot mount /snap1/snap2.  To fix this problem instead of passing\nsubvolid\u003d\u003cname\u003e you must pass in subvolid\u003d\u003ctreeid\u003e, where \u003ctreeid\u003e is\nthe tree id that gets spit out via the subvolume listing you get from\nthe subvolume listing patches (btrfs filesystem list).  This allows us\nto mount /, /snap1 and /snap1/snap2 as the root volume.\n\nIn addition to the above, we also now read the default dir item in the\ntree root to get the root key that it points to.  For now this just\npoints at what has always been the default subvolme, but later on I plan\nto change it to point at whatever root you want to be the new default\nroot, so you can just set the default mount and not have to mount with\n-o subvolid\u003d\u003ctreeid\u003e.  I tested this out with the above scenario and it\nworked perfectly.  Thanks,\n\nmount -o subvol operates inside the selected subvolid.  For example:\n\nmount -o subvol\u003dsnap1,subvolid\u003d256 /dev/xxx /mnt\n\n/mnt will have the snap1 directory for the subvolume with id\n256.\n\nmount -o subvol\u003dsnap /dev/xxx /mnt\n\n/mnt will be the snap directory of whatever the default subvolume\nis.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "12534832cb7b0abc7369298246e8b7af03b863ca",
      "tree": "5747e45c8bf9d37bcd5962e6e669934a951a846e",
      "parents": [
        "ac8e9819d71f907a0532b01b22c26b56bbbcbd21"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 17 21:32:27 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 10:55:10 2010 -0400"
      },
      "message": "Btrfs: make set/get functions for the super compat_ro flags use compat_ro\n\nOur set/get functions for compat_ro_flags actually look at compat_flags.  This\nwill mess any attempt to use compat flags up.  The fix is obvious.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ac8e9819d71f907a0532b01b22c26b56bbbcbd21",
      "tree": "5bdebf68182139e664b59286f6f7071e3ada2b18",
      "parents": [
        "98d377a0894e6bcca44eafd4d2eee74e8af4db83"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Feb 28 15:39:26 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 10:55:10 2010 -0400"
      },
      "message": "Btrfs: add search and inode lookup ioctls\n\nThe search ioctl is a generic tool for doing btree searches from\nuserland applications.  The first user of the search ioctl is a\nsubvolume listing feature, but we\u0027ll also use it to find new\nfiles in a subvolume.\n\nThe search ioctl allows you to specify min and max keys to search for,\nalong with min and max transid.  It returns the items along with a\nheader that includes the item key.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "98d377a0894e6bcca44eafd4d2eee74e8af4db83",
      "tree": "02b1b926812a8852397c7c6cd274943c59c65f4b",
      "parents": [
        "da495ecc0fb096b383754952a1c152147bc95b52"
      ],
      "author": {
        "name": "TARUISI Hiroaki",
        "email": "taruishi.hiroak@jp.fujitsu.com",
        "time": "Wed Nov 18 05:42:14 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 10:55:09 2010 -0400"
      },
      "message": "Btrfs: add a function to lookup a directory path by following backrefs\n\nThis will be used by the inode lookup ioctl.\n\nSigned-off-by: TARUISI Hiroaki \u003ctaruishi.hiroak@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "51d0f6d1f50349579f007adf5c0b51aaedd93b94",
      "tree": "6ea3f2683c3017d63101e708309665727eb2a7cc",
      "parents": [
        "57d54889cd00db2752994b389ba714138652e60c",
        "da495ecc0fb096b383754952a1c152147bc95b52"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 08 14:07:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 08 14:07:53 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: kfree correct pointer during mount option parsing\n  Btrfs: use RB_ROOT to intialize rb_trees instead of setting rb_node to NULL\n"
    },
    {
      "commit": "da495ecc0fb096b383754952a1c152147bc95b52",
      "tree": "beec70bea515038c849c1b34836bba2455d90f2b",
      "parents": [
        "6bef4d317193d3badbbfa3f3c593758ace84a629"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Feb 25 20:38:35 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 08 16:26:50 2010 -0500"
      },
      "message": "Btrfs: kfree correct pointer during mount option parsing\n\nWe kstrdup the options string, but then strsep screws with the pointer,\nso when we kfree() it, we\u0027re not giving it the right pointer.\n\nTested-by: Andy Lutomirski \u003cluto@mit.edu\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6bef4d317193d3badbbfa3f3c593758ace84a629",
      "tree": "8aa9fcf3297c69033b9a9a83a27ecccaab0f9d7d",
      "parents": [
        "3f6fae9559225741c91f1320090b285da1413290"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Feb 23 19:43:04 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 08 16:26:50 2010 -0500"
      },
      "message": "Btrfs: use RB_ROOT to intialize rb_trees instead of setting rb_node to NULL\n\nbtrfs inialize rb trees in quite a number of places by settin rb_node \u003d\nNULL;  The problem with this is that 17d9ddc72fb8bba0d4f678 in the\nlinux-next tree adds a new field to that struct which needs to be NULL for\nthe new rbtree library code to work properly.  This patch uses RB_ROOT as\nthe intializer so all of the relevant fields will be NULL\u0027d.  Without the\npatch I get a panic.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0813e22d4e0d618eac9b47bec942bf856adca4c5",
      "tree": "4d2b1a9717e6cdbab7966ce2d0ae698a52d46ae0",
      "parents": [
        "382640b3372405c40b7646c68a50ca91358027e4",
        "3f6fae9559225741c91f1320090b285da1413290"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 15 19:56:21 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 15 19:56:21 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: btrfs_mark_extent_written uses the wrong slot\n"
    },
    {
      "commit": "3f6fae9559225741c91f1320090b285da1413290",
      "tree": "94c1a90aaed740d80cfa701b8c4abad5bbb699df",
      "parents": [
        "23b5c50945f2294add0137799400329c0ebba290"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Feb 11 07:43:00 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 12 16:47:19 2010 -0500"
      },
      "message": "Btrfs: btrfs_mark_extent_written uses the wrong slot\n\nMy test do: fallocate a big file and do write. The file is 512M, but\nafter file write is done btrfs-debug-tree shows:\nitem 6 key (257 EXTENT_DATA 0) itemoff 3516 itemsize 53\n                extent data disk byte 1103101952 nr 536870912\n                extent data offset 0 nr 399634432 ram 536870912\n                extent compression 0\nLooks like a regression introducted by\n6c7d54ac87f338c479d9729e8392eca3f76e11e1, where we set wrong slot.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "adbfbcd12af3d183957622a99ca009b665639b81",
      "tree": "830e5cc6a0dbd5cb590b8484c4234bd65073d1d7",
      "parents": [
        "fc76be434d90bcd57a0ea6b93a2e66a3fec4b664",
        "23b5c50945f2294add0137799400329c0ebba290"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 05 07:23:03 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 05 07:23:03 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: apply updated fallocate i_size fix\n  Btrfs: do not try and lookup the file extent when finishing ordered io\n  Btrfs: Fix oopsen when dropping empty tree.\n  Btrfs: remove BUG_ON() due to mounting bad filesystem\n  Btrfs: make error return negative in btrfs_sync_file()\n  Btrfs: fix race between allocate and release extent buffer.\n"
    },
    {
      "commit": "23b5c50945f2294add0137799400329c0ebba290",
      "tree": "b7bb2ea17bc2244162adef8a288db12cacbf3524",
      "parents": [
        "efd049fb26a162c3830fd3cb1001fdc09b147f3b"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Feb 04 11:33:03 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 04 11:33:03 2010 -0500"
      },
      "message": "Btrfs: apply updated fallocate i_size fix\n\nThis version of the i_size fix for fallocate makes sure we only update\nthe i_size when the current fallocate is really operating outside of\ni_size.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "efd049fb26a162c3830fd3cb1001fdc09b147f3b",
      "tree": "caedb4f8b1133b209360bd25ff3b2ddd1dc737c0",
      "parents": [
        "7a7965f83e89f0be506a96769938a721e4e5ae50"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Feb 02 20:50:10 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 04 11:31:45 2010 -0500"
      },
      "message": "Btrfs: do not try and lookup the file extent when finishing ordered io\n\nWhen running the following fio job\n\n[torrent]\nfilename\u003dtorrent-test\nrw\u003drandwrite\nsize\u003d4g\nfilesize\u003d4g\nbs\u003d4k\nioengine\u003dsync\n\nyou would see long stalls where no work was being done.  That is because we were\ndoing all this extra work to read in the file extent outside of the transaction,\nhowever in the random io case this ends up hurting us because the file extents\nare not there to begin with.  So axe this logic, since we end up reading in the\nfile extent when we go to update it anyway.  This took the fio job from 11 mb/s\nwith several ~10 second stalls to 24 mb/s to a couple of 1-2 second stalls.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7a7965f83e89f0be506a96769938a721e4e5ae50",
      "tree": "be4ffe67af162c6c7cfd0780c507fd5f2d522635",
      "parents": [
        "d7ce5843bb28ada6845ab2ae8510ba3f12d33154"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Feb 01 02:41:17 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 04 11:31:45 2010 -0500"
      },
      "message": "Btrfs: Fix oopsen when dropping empty tree.\n\nWhen dropping a empty tree, walk_down_tree() skips checking\nextent information for the tree root. This will triggers a\nBUG_ON in walk_up_proc().\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d7ce5843bb28ada6845ab2ae8510ba3f12d33154",
      "tree": "c7468abdcaa1d59d789af027984abfdc1bda5248",
      "parents": [
        "014e4ac4f7d9c981750491fa40ea35efadc9ed49"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Feb 02 08:46:44 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 04 11:31:44 2010 -0500"
      },
      "message": "Btrfs: remove BUG_ON() due to mounting bad filesystem\n\nMounting a bad filesystem caused a BUG_ON(). The following is steps to\nreproduce it.\n # mkfs.btrfs /dev/sda2\n # mount /dev/sda2 /mnt\n # mkfs.btrfs /dev/sda1 /dev/sda2\n (the program says that /dev/sda2 was mounted, and then exits. )\n # umount /mnt\n # mount /dev/sda1 /mnt\n\nAt the third step, mkfs.btrfs exited in the way of make filesystem. So the\ninitialization of the filesystem didn\u0027t finish. So the filesystem was bad, and\nit caused BUG_ON() when mounting it. But BUG_ON() should be called by the wrong\ncode, not user\u0027s operation, so I think it is a bug of btrfs.\n\nThis patch fixes it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "014e4ac4f7d9c981750491fa40ea35efadc9ed49",
      "tree": "23f98b1cac63db1f12060d3a2d2dbc77b49019b3",
      "parents": [
        "f044ba7835b84e69c68b620ca8fa27e5ef67759d"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Fri Jan 29 10:42:11 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 04 11:31:44 2010 -0500"
      },
      "message": "Btrfs: make error return negative in btrfs_sync_file()\n\nIt appears the error return should be negative\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f044ba7835b84e69c68b620ca8fa27e5ef67759d",
      "tree": "33c21a5b97a61d584f330618c7428d513e5d8aa2",
      "parents": [
        "035fe03a7ad56982b30ab3a522b7b08d58feccd0"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Feb 04 08:46:56 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 04 11:31:44 2010 -0500"
      },
      "message": "Btrfs: fix race between allocate and release extent buffer.\n\nIncrease extent buffer\u0027s reference count while holding the lock.\nOtherwise it can race with try_release_extent_buffer.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "67f15b06c1a7e5417b7042b515ca2695de30beda",
      "tree": "ba93b80b40ba2a6d89adc74ed4be54b4626c56a3",
      "parents": [
        "94673e968cbcce07fa78dac4b0ae05d24b5816e1",
        "035fe03a7ad56982b30ab3a522b7b08d58feccd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 29 10:27:37 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 29 10:27:37 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: check total number of devices when removing missing\n  Btrfs: check return value of open_bdev_exclusive properly\n  Btrfs: do not mark the chunk as readonly if in degraded mode\n  Btrfs: run orphan cleanup on default fs root\n  Btrfs: fix a memory leak in btrfs_init_acl\n  Btrfs: Use correct values when updating inode i_size on fallocate\n  Btrfs: remove tree_search() in extent_map.c\n  Btrfs: Add mount -o compress-force\n"
    },
    {
      "commit": "035fe03a7ad56982b30ab3a522b7b08d58feccd0",
      "tree": "f3502142234e7d28df3e32b9b2cd26869db4b4d6",
      "parents": [
        "7f59203abeaf18bf3497b308891f95a4489810ad"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Jan 27 02:09:38 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:39 2010 -0500"
      },
      "message": "Btrfs: check total number of devices when removing missing\n\nIf you have a disk failure in RAID1 and then add a new disk to the\narray, and then try to remove the missing volume, it will fail.  The\nreason is the sanity check only looks at the total number of rw devices,\nwhich is just 2 because we have 2 good disks and 1 bad one.  Instead\ncheck the total number of devices in the array to make sure we can\nactually remove the device.  Tested this with a failed disk setup and\nwith this test we can now run\n\nbtrfs-vol -r missing /mount/point\n\nand it works fine.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7f59203abeaf18bf3497b308891f95a4489810ad",
      "tree": "aa10db576f08b2acf4b1f01ac86997311a936727",
      "parents": [
        "f48b90756bd834dda852ff514f2690d3175b1f44"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Jan 27 02:09:00 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:39 2010 -0500"
      },
      "message": "Btrfs: check return value of open_bdev_exclusive properly\n\nHit this problem while testing RAID1 failure stuff.  open_bdev_exclusive\nreturns ERR_PTR(), not NULL.  So change the return value properly.  This\nis important if you accidently specify a device that doesn\u0027t exist when\ntrying to add a new device to an array, you will panic the box\ndereferencing bdev.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f48b90756bd834dda852ff514f2690d3175b1f44",
      "tree": "071f502edbe6668f9451d676ae3a0f751da5e105",
      "parents": [
        "e3acc2a6850efff647f1c5458524eb3a8bcba20a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Jan 27 02:07:59 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:39 2010 -0500"
      },
      "message": "Btrfs: do not mark the chunk as readonly if in degraded mode\n\nIf a RAID setup has chunks that span multiple disks, and one of those\ndisks has failed, btrfs_chunk_readonly will return 1 since one of the\ndisks in that chunk\u0027s stripes is dead and therefore not writeable.  So\ninstead if we are in degraded mode, return 0 so we can go ahead and\nallocate stuff.  Without this patch all of the block groups in a RAID1\nsetup will end up read-only, which will mean we can\u0027t add new disks to\nthe array since we won\u0027t be able to make allocations.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e3acc2a6850efff647f1c5458524eb3a8bcba20a",
      "tree": "a111740f879f5f0cbbcaf079c2500535263c1278",
      "parents": [
        "f858153c367a397235d3e81136741e40e44faf1d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jan 26 14:30:53 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:39 2010 -0500"
      },
      "message": "Btrfs: run orphan cleanup on default fs root\n\nThis patch revert\u0027s commit\n\n6c090a11e1c403b727a6a8eff0b97d5fb9e95cb5\n\nSince it introduces this problem where we can run orphan cleanup on a\nvolume that can have orphan entries re-added.  Instead of my original\nfix, Yan Zheng pointed out that we can just revert my original fix and\nthen run the orphan cleanup in open_ctree after we look up the fs_root.\nI have tested this with all the tests that gave me problems and this\npatch fixes both problems.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f858153c367a397235d3e81136741e40e44faf1d",
      "tree": "bb346105a3e4c9d1cfc4211fe7c3c578e6668d94",
      "parents": [
        "d1ea6a61454e7d7ff0873d0ad1ae27d5807da0d3"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Tue Jan 26 00:48:23 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:39 2010 -0500"
      },
      "message": "Btrfs: fix a memory leak in btrfs_init_acl\n\nIn btrfs_init_acl() cloned acl is not released\n\nSigned-off-by: Yang Hongyang \u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d1ea6a61454e7d7ff0873d0ad1ae27d5807da0d3",
      "tree": "73645e52ffa4a38ea4a2a871489d0e2622e7304e",
      "parents": [
        "b8d9bfeb18f9af794020d96e9bee984d18a8d737"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Jan 20 07:28:54 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:38 2010 -0500"
      },
      "message": "Btrfs: Use correct values when updating inode i_size on fallocate\n\ncommit f2bc9dd07e3424c4ec5f3949961fe053d47bc825\nAuthor: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nDate:   Wed Jan 20 12:57:53 2010 +0530\n\n    Btrfs: Use correct values when updating inode i_size on fallocate\n\n    Even though we allocate more, we should be updating inode i_size\n    as per the arguments passed\n\n    Signed-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b8d9bfeb18f9af794020d96e9bee984d18a8d737",
      "tree": "1f71e31e423562b45c895cc4b24c62541b0b891d",
      "parents": [
        "a555f810af6d63ea5960abaed88e150ad95c3011"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Dec 15 06:54:17 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:38 2010 -0500"
      },
      "message": "Btrfs: remove tree_search() in extent_map.c\n\nThis patch removes tree_search() in extent_map.c because it is not called by\nanything.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a555f810af6d63ea5960abaed88e150ad95c3011",
      "tree": "643fd3e94c352dc0006ff9333de8b7b4dc2b8785",
      "parents": [
        "11dfe35a0108097f2df1f042c485fa7f758c2cdf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:18:15 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:18:15 2010 -0500"
      },
      "message": "Btrfs: Add mount -o compress-force\n\nThe default btrfs mount -o compress mode will quickly back off\ncompressing a file if it notices that compression does not reduce the\nsize of the data being written.  This can save considerable CPU because\nall future writes to the file go through uncompressed.\n\nBut some files are both very large and have mixed data stored in\nthem.  In that case, we want to add the ability to always try\ncompressing data before writing it.\n\nThis commit adds mount -o compress-force.  A later commit will add\na new inode flag that does the same thing.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "30a0f5e1fb510f17c25ff159a9fffbe01ae0f34e",
      "tree": "3392e115d4d5767c8bdaeac8696a2465d65a1e91",
      "parents": [
        "88f5004430babb836cfce886d5d54c82166f8ba4",
        "11dfe35a0108097f2df1f042c485fa7f758c2cdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:05 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix possible panic on unmount\n  Btrfs: deal with NULL acl sent to btrfs_set_acl\n  Btrfs: fix regression in orphan cleanup\n  Btrfs: Fix race in btrfs_mark_extent_written\n  Btrfs, fix memory leaks in error paths\n  Btrfs: align offsets for btrfs_ordered_update_i_size\n  btrfs: fix missing last-entry in readdir(3)\n"
    },
    {
      "commit": "11dfe35a0108097f2df1f042c485fa7f758c2cdf",
      "tree": "83d5af6992db15ee61bc0c960626c378a2f5b436",
      "parents": [
        "a9cc71a60c29a09174bee2fcef8f924c529fd4b7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 13 20:12:59 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:30 2010 -0500"
      },
      "message": "Btrfs: fix possible panic on unmount\n\nWe can race with the unmount of an fs and the stopping of a kthread where we\nwill free the block group before we\u0027re done using it.  The reason for this is\nbecause we do not hold a reference on the block group while its caching, since\nthe allocator drops its reference once it exits or moves on to the next block\ngroup.  This patch fixes the problem by taking a reference to the block group\nbefore we start caching and dropping it when we\u0027re done to make sure all\naccesses to the block group are safe.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a9cc71a60c29a09174bee2fcef8f924c529fd4b7",
      "tree": "d8ae909f351fda769f21ad58ce9fbe211657ecf2",
      "parents": [
        "6c090a11e1c403b727a6a8eff0b97d5fb9e95cb5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:36:18 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:22 2010 -0500"
      },
      "message": "Btrfs: deal with NULL acl sent to btrfs_set_acl\n\nIt is legal for btrfs_set_acl to be sent a NULL acl.  This\nmakes sure we don\u0027t dereference it.  A similar patch was sent by\nJohannes Hirte \u003cjohannes.hirte@fem.tu-ilmenau.de\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6c090a11e1c403b727a6a8eff0b97d5fb9e95cb5",
      "tree": "51ff4a540d71e1cd6421041c3d3ec466e21a860f",
      "parents": [
        "6c7d54ac87f338c479d9729e8392eca3f76e11e1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jan 15 20:08:22 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:21 2010 -0500"
      },
      "message": "Btrfs: fix regression in orphan cleanup\n\nCurrently orphan cleanup only ever gets triggered if we cross subvolumes during\na lookup, which means that if we just mount a plain jane fs that has orphans in\nit, they will never get cleaned up.  This results in panic\u0027s like these\n\nhttp://www.kerneloops.org/oops.php?number\u003d1109085\n\nwhere adding an orphan entry results in -EEXIST being returned and we panic.  In\norder to fix this, we check to see on lookup if our root has had the orphan\ncleanup done, and if not go ahead and do it.  This is easily reproduceable by\nrunning this testcase\n\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstring.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdio.h\u003e\n\nint main(int argc, char **argv)\n{\n\tchar data[4096];\n\tchar newdata[4096];\n\tint fd1, fd2;\n\n\tmemset(data, \u0027a\u0027, 4096);\n\tmemset(newdata, \u0027b\u0027, 4096);\n\n\twhile (1) {\n\t\tint i;\n\n\t\tfd1 \u003d creat(\"file1\", 0666);\n\t\tif (fd1 \u003c 0)\n\t\t\tbreak;\n\n\t\tfor (i \u003d 0; i \u003c 512; i++)\n\t\t\twrite(fd1, data, 4096);\n\n\t\tfsync(fd1);\n\t\tclose(fd1);\n\n\t\tfd2 \u003d creat(\"file2\", 0666);\n\t\tif (fd2 \u003c 0)\n\t\t\tbreak;\n\n\t\tftruncate(fd2, 4096 * 512);\n\n\t\tfor (i \u003d 0; i \u003c 512; i++)\n\t\t\twrite(fd2, newdata, 4096);\n\t\tclose(fd2);\n\n\t\ti \u003d rename(\"file2\", \"file1\");\n\t\tunlink(\"file1\");\n\t}\n\n\treturn 0;\n}\n\nand then pulling the power on the box, and then trying to run that test again\nwhen the box comes back up.  I\u0027ve tested this locally and it fixes the problem.\nThanks to Tomas Carnecky for helping me track this down initially.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6c7d54ac87f338c479d9729e8392eca3f76e11e1",
      "tree": "3815913df585d7cbc8ba6a4c151328daa4720c7c",
      "parents": [
        "2423fdfb96e3f9ff3baeb6c4c78d74145547891d"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Jan 15 08:43:09 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:21 2010 -0500"
      },
      "message": "Btrfs: Fix race in btrfs_mark_extent_written\n\nFix bug reported by Johannes Hirte. The reason of that bug\nis btrfs_del_items is called after btrfs_duplicate_item and\nbtrfs_del_items triggers tree balance. The fix is check that\ncase and call btrfs_search_slot when needed.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2423fdfb96e3f9ff3baeb6c4c78d74145547891d",
      "tree": "a47f7712849dd9ab5c4a1c3371511e072abcdb29",
      "parents": [
        "a038fab0cb873c75d6675e2bcffce8a3935bdce7"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Wed Jan 06 16:57:22 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:20 2010 -0500"
      },
      "message": "Btrfs, fix memory leaks in error paths\n\nStanse found 2 memory leaks in relocate_block_group and\n__btrfs_map_block. cluster and multi are not freed/assigned on all\npaths. Fix that.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: linux-btrfs@vger.kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a038fab0cb873c75d6675e2bcffce8a3935bdce7",
      "tree": "f128cf83728dccb1a5f392acb053ceccb4491aa3",
      "parents": [
        "406266ab9ac8ed8b085c58aacd9e3161480dc5d5"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "yanzheng@21cn.com",
        "time": "Mon Dec 28 05:01:58 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:06:27 2010 -0500"
      },
      "message": "Btrfs: align offsets for btrfs_ordered_update_i_size\n\nSome callers of btrfs_ordered_update_i_size can now pass in\na NULL for the ordered extent to update against.  This makes\nsure we properly align the offset they pass in when deciding\nhow much to bump the on disk i_size.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "406266ab9ac8ed8b085c58aacd9e3161480dc5d5",
      "tree": "811d305c4c4fdf6b19279173959d06698a304416",
      "parents": [
        "3a1abec9f6880cf406593c392636199ea1c6c917"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Dec 09 22:00:38 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:06:27 2010 -0500"
      },
      "message": "btrfs: fix missing last-entry in readdir(3)\n\nparent 49313cdac7b34c9f7ecbb1780cfc648b1c082cd7 (v2.6.32-1-g49313cd)\ncommit ff48c08e1c05c67e8348ab6f8a24de8034e0e34d\nAuthor: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nDate:   Wed Dec 9 22:57:36 2009 +0100\n\nBtrfs: fix missing last-entry in readdir(3)\n\nWhen one does a 32-bit readdir(3), the last entry of a directory is\nmissing. This is however not due to passing a large value to filldir,\nbut it seems to have to do with glibc doing telldir or something\nquirky. In any case, this patch fixes it in practice.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7c508e50be47737b9a72d0f15c3ef1146925e2d2",
      "tree": "767a7b1427e6f150e46ce99fd5b8d2463dda479c",
      "parents": [
        "dcc7cd011220d7425a265c9bbf04c5731dacec1b",
        "7a5d24b1067823e870bf23e62bf8a788bd73818d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 16:01:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 16:01:03 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: make sure fallocate properly starts a transaction\n  Btrfs: make metadata chunks smaller\n  Btrfs: Show discard option in /proc/mounts\n  Btrfs: deny sys_link across subvolumes.\n  Btrfs: fail mount on bad mount options\n  Btrfs: don\u0027t add extent 0 to the free space cache v2\n  Btrfs: Fix per root used space accounting\n  Btrfs: Fix btrfs_drop_extent_cache for skip pinned case\n  Btrfs: Add delayed iput\n  Btrfs: Pass transaction handle to security and ACL initialization functions\n  Btrfs: Make truncate(2) more ENOSPC friendly\n  Btrfs: Make fallocate(2) more ENOSPC friendly\n  Btrfs: Avoid orphan inodes cleanup during committing transaction\n  Btrfs: Avoid orphan inodes cleanup while replaying log\n  Btrfs: Fix disk_i_size update corner case\n  Btrfs: Rewrite btrfs_drop_extents\n  Btrfs: Add btrfs_duplicate_item\n  Btrfs: Avoid superfluous tree-log writeout\n"
    },
    {
      "commit": "b6e3224fb20954f155e41ec5709b2ab70b50ae2d",
      "tree": "96302d1b564c879779b9cc5d7aae7c3c4471ed14",
      "parents": [
        "a2770d86b33024f71df269fde2de096df89d6a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "message": "Revert \"task_struct: make journal_info conditional\"\n\nThis reverts commit e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319, as\nrequested by Alexey:\n\n \"I think I gave a good enough arguments to not merge it.\n  To iterate:\n   * patch makes impossible to start using ext3 on EXT3_FS\u003dn kernels\n     without reboot.\n   * this is done only for one pointer on task_struct\"\n\n  None of config options which define task_struct are tristate directly\n  or effectively.\"\n\nRequested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a5d24b1067823e870bf23e62bf8a788bd73818d",
      "tree": "8b7b32d651f57fe1c12b8826f071b2e196032012",
      "parents": [
        "ebfee3d71d5a29102aac1fb2e756b8258f753592",
        "3a1abec9f6880cf406593c392636199ea1c6c917"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 16:01:41 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 16:01:41 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://master.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable into for-linus\n"
    },
    {
      "commit": "3a1abec9f6880cf406593c392636199ea1c6c917",
      "tree": "280edc4cacb9d14224f7d3da3510d386329a08ae",
      "parents": [
        "83d3c9696fed237a3d96fce18299e2fcf112109f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 15:47:17 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 15:47:17 2009 -0500"
      },
      "message": "Btrfs: make sure fallocate properly starts a transaction\n\nThe recent patch to make fallocate enospc friendly would send\ndown a NULL trans handle to the allocator.  This moves the\ntransaction start to properly fix things.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ebfee3d71d5a29102aac1fb2e756b8258f753592",
      "tree": "fa18938a56d452eb02c24f106dd06cc78f475e4b",
      "parents": [
        "b8a7f3cd7e8212e5c572178ff3b5a514861036a5",
        "83d3c9696fed237a3d96fce18299e2fcf112109f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 15:02:22 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 15:02:22 2009 -0500"
      },
      "message": "Merge branch btrfs-master into for-linus\n\nConflicts:\n\tfs/btrfs/acl.c\n"
    },
    {
      "commit": "83d3c9696fed237a3d96fce18299e2fcf112109f",
      "tree": "cafe54ba7801332c54adab5b1af3e0865bc32386",
      "parents": [
        "20a5239a5d0f340e29827a6a2d28a138001c44b8"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Dec 07 21:45:59 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:38 2009 -0500"
      },
      "message": "Btrfs: make metadata chunks smaller\n\nThis patch makes us a bit less zealous about making sure we have enough free\nmetadata space by pearing down the size of new metadata chunks to 256mb instead\nof 1gb.  Also, we used to try an allocate metadata chunks when allocating data,\nbut that sort of thing is done elsewhere now so we can just remove it.  With my\n-ENOSPC test I used to have 3gb reserved for metadata out of 75gb, now I have\n1.7gb.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "20a5239a5d0f340e29827a6a2d28a138001c44b8",
      "tree": "d7087f74dc609e3ca9d06aeb2714125e51f443cc",
      "parents": [
        "4a8be425a8fb8fbb5d881eb55fa6634c3463b9c9"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Mon Dec 14 22:01:12 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:37 2009 -0500"
      },
      "message": "Btrfs: Show discard option in /proc/mounts\n\nChristoph\u0027s patch e244a0aeb6a599c19a7c802cda6e2d67c847b154 doesn\u0027t display\nthe discard option in /proc/mounts, leading to some confusion for me.\nHere\u0027s the missing bit.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4a8be425a8fb8fbb5d881eb55fa6634c3463b9c9",
      "tree": "c89e0aa1aac790d77f6a29a4bc48384922152d00",
      "parents": [
        "a7a3f7cadd9bdee569243f7ead9550aa16b60e07"
      ],
      "author": {
        "name": "TARUISI Hiroaki",
        "email": "taruishi.hiroak@jp.fujitsu.com",
        "time": "Thu Nov 12 07:14:26 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:37 2009 -0500"
      },
      "message": "Btrfs: deny sys_link across subvolumes.\n\nI rebased Christian Parpart\u0027s patch to deny hard link across\nsubvolumes. Original patch modifies also btrfs_rename, but\nI excluded it because we can move across subvolumes now and\nit make no problem.\n-----------------\n\nHard link across subvolumes should not allowed in Btrfs.\nbtrfs_link checks root of \u0027to\u0027 directory is same as root\nof \u0027from\u0027 file. If not same, btrfs_link returns -EPERM.\n\nSigned-off-by: TARUISI Hiroaki \u003ctaruishi.hiroak@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a7a3f7cadd9bdee569243f7ead9550aa16b60e07",
      "tree": "c9ccc035bf08e6698e1cf56888f563393226d880",
      "parents": [
        "06b2331f8333ec6edf41662757ce8882cc1747d5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Nov 07 06:19:16 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:36 2009 -0500"
      },
      "message": "Btrfs: fail mount on bad mount options\n\nWe shouldn\u0027t silently ignore unrecognized options.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "06b2331f8333ec6edf41662757ce8882cc1747d5",
      "tree": "9b8316a84e2cb5fa5ed4d16cdbfecd965ed7870c",
      "parents": [
        "86b9f2eca5e0984145e3c7698a7cd6dd65c2a93f"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Nov 26 09:31:11 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:36 2009 -0500"
      },
      "message": "Btrfs: don\u0027t add extent 0 to the free space cache v2\n\nIf block group 0 is completely free, btrfs_read_block_groups will\nadd extent [0, BTRFS_SUPER_INFO_OFFSET) to the free space cache.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "86b9f2eca5e0984145e3c7698a7cd6dd65c2a93f",
      "tree": "75dd0a52848b6f5396023f811f1a602f62b9d34e",
      "parents": [
        "55ef68990029fcd8d04d42fc184aa7fb18cf309e"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Nov 12 09:36:50 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:35 2009 -0500"
      },
      "message": "Btrfs: Fix per root used space accounting\n\nThe bytes_used field in root item was originally planned to\ntrace the amount of used data and tree blocks. But it never\nworked right since we can\u0027t trace freeing of data accurately.\nThis patch changes it to only trace the amount of tree blocks.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "55ef68990029fcd8d04d42fc184aa7fb18cf309e",
      "tree": "0487a5d15586e94de29be3c8701cb64eb1ae2f9b",
      "parents": [
        "24bbcf0442ee04660a5a030efdbb6d03f1c275cb"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Nov 12 09:36:44 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:35 2009 -0500"
      },
      "message": "Btrfs: Fix btrfs_drop_extent_cache for skip pinned case\n\nThe check for skip pinned case is wrong, it may breaks the\nwhile loop too soon.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "24bbcf0442ee04660a5a030efdbb6d03f1c275cb",
      "tree": "aa57d77d29cc5150b272cc3f6465f10262fcbaac",
      "parents": [
        "f34f57a3ab4e73304d78c125682f1a53cd3975f2"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Nov 12 09:36:34 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:35 2009 -0500"
      },
      "message": "Btrfs: Add delayed iput\n\niput() can trigger new transactions if we are dropping the\nfinal reference, so calling it in btrfs_commit_transaction\nmay end up deadlock. This patch adds delayed iput to avoid\nthe issue.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f34f57a3ab4e73304d78c125682f1a53cd3975f2",
      "tree": "359aff6491d3e92b3901ea78dc164d41209d3eea",
      "parents": [
        "8082510e7124cc50d728f1b875639cb4e22312cc"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Nov 12 09:35:27 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:34 2009 -0500"
      },
      "message": "Btrfs: Pass transaction handle to security and ACL initialization functions\n\nPass transaction handle down to security and ACL initialization\nfunctions, so we can avoid starting nested transactions\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8082510e7124cc50d728f1b875639cb4e22312cc",
      "tree": "e9f0a0a4504a87689b4765368b508fff5ae2ddf8",
      "parents": [
        "5a303d5d4b8055d2e5a03e92d04745bfc5881a22"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Nov 12 09:35:36 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:34 2009 -0500"
      },
      "message": "Btrfs: Make truncate(2) more ENOSPC friendly\n\ntruncating and deleting regular files are unbound operations,\nso it\u0027s not good to do them in a single transaction. This\npatch makes btrfs_truncate and btrfs_delete_inode start a\nnew transaction after all items in a tree leaf are deleted.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    }
  ],
  "next": "5a303d5d4b8055d2e5a03e92d04745bfc5881a22"
}
