)]}'
{
  "log": [
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "884b8267d5f13bdcdc7e675ecbd0dbb0257689bb",
      "tree": "637c734a7466e43d3786968891e746c5b70d6a4b",
      "parents": [
        "d14f5b810b49c7dbd1a01be1c6d3641d46090080",
        "c9ddec74aa950a220cc4caa5215cfc5d886050b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 05 12:29:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 05 12:29:25 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: don\u0027t warn in btrfs_add_orphan\n  Btrfs: fix free space cache when there are pinned extents and clusters V2\n  Btrfs: Fix uninitialized root flags for subvolumes\n  btrfs: clear __GFP_FS flag in the space cache inode\n  Btrfs: fix memory leak in start_transaction()\n  Btrfs: fix memory leak in btrfs_ioctl_start_sync()\n  Btrfs: fix subvol_sem leak in btrfs_rename()\n  Btrfs: Fix oops for defrag with compression turned on\n  Btrfs: fix /proc/mounts info.\n  Btrfs: fix compiler warning in file.c\n"
    },
    {
      "commit": "c9ddec74aa950a220cc4caa5215cfc5d886050b7",
      "tree": "b8e40481dfe5f7e3bd749a29c6f0df70f1efd171",
      "parents": [
        "43be21462d8c263e2449b52b23326232fd710bee"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 28 13:43:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:20:24 2011 -0400"
      },
      "message": "Btrfs: don\u0027t warn in btrfs_add_orphan\n\nWhen I moved the orphan adding to btrfs_truncate I missed the fact that during\norphan cleanup we just add the orphan items to the orphan list without going\nthrough btrfs_orphan_add, which results in lots of warnings on mount if you have\nany orphan items that need to be truncated.  Just remove this warning since it\u0027s\nok, this will allow all of the normal space accounting take place.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "43be21462d8c263e2449b52b23326232fd710bee",
      "tree": "096a8cf240ffa7aa83625245ccdba08970e46612",
      "parents": [
        "08fe4db170b4193603d9d31f40ebaf652d07ac9c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Apr 01 14:55:00 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:20:24 2011 -0400"
      },
      "message": "Btrfs: fix free space cache when there are pinned extents and clusters V2\n\nI noticed a huge problem with the free space cache that was presenting\nas an early ENOSPC.  Turns out when writing the free space cache out I\nforgot to take into account pinned extents and more importantly\nclusters.  This would result in us leaking free space everytime we\nunmounted the filesystem and remounted it.\n\nI fix this by making sure to check and see if the current block group\nhas a cluster and writing out any entries that are in the cluster to the\ncache, as well as writing any pinned extents we currently have to the\ncache since those will be available for us to use the next time the fs\nmounts.\n\nThis patch also adds a check to the end of load_free_space_cache to make\nsure we got the right amount of free space cache, and if not make sure\nto clear the cache and re-cache the old fashioned way.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "08fe4db170b4193603d9d31f40ebaf652d07ac9c",
      "tree": "2d0d2abe40b77266600653e399d4973a679716a9",
      "parents": [
        "adae52b94e18afa1f84fab67df2a8a872c2f5533"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Mar 28 02:01:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:20:24 2011 -0400"
      },
      "message": "Btrfs: Fix uninitialized root flags for subvolumes\n\nroot_item-\u003eflags and root_item-\u003ebyte_limit are not initialized when\na subvolume is created. This bug is not revealed until we added\nreadonly snapshot support - now you mount a btrfs filesystem and you\nmay find the subvolumes in it are readonly.\n\nTo work around this problem, we steal a bit from root_item-\u003einode_item-\u003eflags,\nand use it to indicate if those fields have been properly initialized.\nWhen we read a tree root from disk, we check if the bit is set, and if\nnot we\u0027ll set the flag and initialize the two fields of the root item.\n\nReported-by: Andreas Philipp \u003cphilipp.andreas@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Andreas Philipp \u003cphilipp.andreas@gmail.com\u003e\ncc: stable@kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "adae52b94e18afa1f84fab67df2a8a872c2f5533",
      "tree": "fb9259b9eac14ac950d127faf1788392081010b0",
      "parents": [
        "6e8df2ae89ab37730c0062782f844c66ecfc97a7"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Mar 31 09:43:23 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:43 2011 -0400"
      },
      "message": "btrfs: clear __GFP_FS flag in the space cache inode\n\nthe object id of the space cache inode\u0027s key is allocated from the relative\nroot, just like the regular file. So we can\u0027t identify space cache inode by\nchecking the object id of the inode\u0027s key, and we have to clear __GFP_FS flag\nat the time we look up the space cache inode.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6e8df2ae89ab37730c0062782f844c66ecfc97a7",
      "tree": "4172619b01d817440d43807da8baec77a14d39d2",
      "parents": [
        "8b2b2d3cbefb605501342adaf64d601b545ed154"
      ],
      "author": {
        "name": "Yoshinori Sano",
        "email": "yoshinori.sano@gmail.com",
        "time": "Sun Apr 03 12:31:28 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:43 2011 -0400"
      },
      "message": "Btrfs: fix memory leak in start_transaction()\n\nFree btrfs_trans_handle when join_transaction() fails\nin start_transaction()\n\nSigned-off-by: Yoshinori Sano \u003cyoshinori.sano@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8b2b2d3cbefb605501342adaf64d601b545ed154",
      "tree": "244e724c20bbdc639f06a7a59a108b1eedd55f10",
      "parents": [
        "b44c59a80ded004e1a82712e5f9e17b131c03221"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Apr 04 01:52:13 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:42 2011 -0400"
      },
      "message": "Btrfs: fix memory leak in btrfs_ioctl_start_sync()\n\nCall btrfs_end_transaction() if btrfs_commit_transaction_async() fails.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b44c59a80ded004e1a82712e5f9e17b131c03221",
      "tree": "36588193bf5cc91d80d9d8376d5bad78f2babd0c",
      "parents": [
        "fe3f566cd19bb6d787c92b2e202c85f929abf3ac"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann@whamcloud.com",
        "time": "Thu Mar 31 13:23:47 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:42 2011 -0400"
      },
      "message": "Btrfs: fix subvol_sem leak in btrfs_rename()\n\nbtrfs_rename() does not release the subvol_sem if the transaction failed to start.\n\nSigned-off-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fe3f566cd19bb6d787c92b2e202c85f929abf3ac",
      "tree": "216c33bb0ed94e7791141939ea763620576d82b0",
      "parents": [
        "200da64e0b039f873f0f20481e6a7d056e7cc6c9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Mar 28 08:30:38 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:42 2011 -0400"
      },
      "message": "Btrfs: Fix oops for defrag with compression turned on\n\nWhen we defrag a file, whose size can be fit into an inline extent,\nwith compression enabled, the compress type is set to be\nfs_info-\u003ecompress_type, which is 0 if the btrfs filesystem is mounted\nwithout compress option. This leads to oops.\n\nReported-by: Daniel Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "200da64e0b039f873f0f20481e6a7d056e7cc6c9",
      "tree": "11cd911aa441efdde26260b72a642daef0fd61f0",
      "parents": [
        "c9149235a42ab93914434fff45c44b45023363f3"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Mar 31 00:44:29 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:41 2011 -0400"
      },
      "message": "Btrfs: fix /proc/mounts info.\n\nSome mount options are not displayed by /proc/mounts.\nThis patch displays the option such as compress_type by /proc/mounts.\n\nEx.\n  [before]\n    $ mount | grep sdc2\n    /dev/sdc2 on /test12 type btrfs (rw,space_cache,compress\u003dlzo)\n    $ cat /proc/mounts | grep sdc2\n    /dev/sdc2 /test12 btrfs rw,relatime,compress 0 0\n\n  [after]\n    $ mount | grep sdc2\n    /dev/sdc2 on /test12 type btrfs (rw,space_cache,compress\u003dlzo)\n    $ cat /proc/mounts | grep sdc2\n    /dev/sdc2 /test12 btrfs rw,relatime,compress\u003dlzo,space_cache 0 0\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c9149235a42ab93914434fff45c44b45023363f3",
      "tree": "827035f0710a01bf35c5c365387f650addfe647f",
      "parents": [
        "d9d04879321af570ea7285c6dad92d9c3cd108a1"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Wed Mar 30 00:57:23 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:19:41 2011 -0400"
      },
      "message": "Btrfs: fix compiler warning in file.c\n\nWhile compiling Btrfs, I got following messages:\n\n  CC [M]  fs/btrfs/file.o\nfs/btrfs/file.c: In function \u0027__btrfs_buffered_write\u0027:\nfs/btrfs/file.c:909: warning: \u0027ret\u0027 may be used uninitialized in this function\n  CC [M]  fs/btrfs/tree-defrag.o\n\nThis patch fixes compiler warning.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "212a17ab878305600e607f637d2d8a49d9f7ef25",
      "tree": "64ad97fcc3d5c49ebd735f5508643c798aeecddf",
      "parents": [
        "baaca1a61497d97cec595fedce03b0a23b983e64",
        "d9d04879321af570ea7285c6dad92d9c3cd108a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:31:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 15:31:05 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus-unmerged\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus-unmerged\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (45 commits)\n  Btrfs: fix __btrfs_map_block on 32 bit machines\n  btrfs: fix possible deadlock by clearing __GFP_FS flag\n  btrfs: check link counter overflow in link(2)\n  btrfs: don\u0027t mess with i_nlink of unlocked inode in rename()\n  Btrfs: check return value of btrfs_alloc_path()\n  Btrfs: fix OOPS of empty filesystem after balance\n  Btrfs: fix memory leak of empty filesystem after balance\n  Btrfs: fix return value of setflags ioctl\n  Btrfs: fix uncheck memory allocations\n  btrfs: make inode ref log recovery faster\n  Btrfs: add btrfs_trim_fs() to handle FITRIM\n  Btrfs: adjust btrfs_discard_extent() return errors and trimmed bytes\n  Btrfs: make btrfs_map_block() return entire free extent for each device of RAID0/1/10/DUP\n  Btrfs: make update_reserved_bytes() public\n  btrfs: return EXDEV when linking from different subvolumes\n  Btrfs: Per file/directory controls for COW and compression\n  Btrfs: add datacow flag in inode flag\n  btrfs: use GFP_NOFS instead of GFP_KERNEL\n  Btrfs: check return value of read_tree_block()\n  btrfs: properly access unaligned checksum buffer\n  ...\n\nFix up trivial conflicts in fs/btrfs/volumes.c due to plug removal in\nthe block layer.\n"
    },
    {
      "commit": "d9d04879321af570ea7285c6dad92d9c3cd108a1",
      "tree": "5a861897ca626d7bfa95ffc82a8448da2987533d",
      "parents": [
        "1561deda687eef0e95065f1268d680ddc5976ee7"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Mar 27 21:23:21 2011 -0400"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:59 2011 -0400"
      },
      "message": "Btrfs: fix __btrfs_map_block on 32 bit machines\n\nRecent changes for discard support didn\u0027t compile,\nthis fixes them not to try and % 64 bit numbers.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1561deda687eef0e95065f1268d680ddc5976ee7",
      "tree": "3ad8a8305fc3ca960cf7ef472f64d9cfef246ffd",
      "parents": [
        "c055e99eea6e4f614267632fac546e7896c0227b"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Sun Mar 27 16:07:36 2011 +0800"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:58 2011 -0400"
      },
      "message": "btrfs: fix possible deadlock by clearing __GFP_FS flag\n\nUsing the GFP_HIGHUSER_MOVABLE flag to allocate the metadata\u0027s page may cause\ndeadlock.\n  Task1\n  open()\n    ...\n    btrfs_search_slot()\n      ...\n      btrfs_cow_block()\n\t...\n\talloc_page()\n\t  wait for reclaiming\n\t\t\t\t\tshrink_slab()\n\t\t\t\t\t  ...\n\t\t\t\t\t  shrink_icache_memory()\n\t\t\t\t\t    ...\n\t\t\t\t\t    btrfs_evict_inode()\n\t\t\t\t\t      ...\n\t\t\t\t\t      btrfs_search_slot()\n\nIf the path is locked by task1, the deadlock happens.\n\nSo the btree\u0027s page cache is different with the file\u0027s page cache, it can not\nallocate pages by GFP_HIGHUSER_MOVABLE flag, we must clear __GFP_FS flag in\nGFP_HIGHUSER_MOVABLE flag.\n\nReported-by: Itaru Kitayama \u003ckitayama@cl.bb4u.ne.jp\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c055e99eea6e4f614267632fac546e7896c0227b",
      "tree": "df65ff7c1a3b0c4301edffbadd9f23f9023e5159",
      "parents": [
        "92986796d84ef939e304099dece32572a755b280"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Mar 04 17:15:18 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:56 2011 -0400"
      },
      "message": "btrfs: check link counter overflow in link(2)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "92986796d84ef939e304099dece32572a755b280",
      "tree": "d3356c2aa2bbc64166b09647c8760f7a6941df44",
      "parents": [
        "c2db1073fdf9757e6fd8b4a59d15b6ecc7a2af8a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Mar 04 17:14:37 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:55 2011 -0400"
      },
      "message": "btrfs: don\u0027t mess with i_nlink of unlocked inode in rename()\n\nold_inode is not locked; it\u0027s not safe to play with its link\ncount.  Instead of bumping it and calling btrfs_unlink_inode(),\nadd a variant of the latter that does not do btrfs_drop_nlink()/\nbtrfs_update_inode(), call it instead of btrfs_inc_nlink()/\nbtrfs_unlink_inode() and do btrfs_update_inode() ourselves.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c2db1073fdf9757e6fd8b4a59d15b6ecc7a2af8a",
      "tree": "024264b2d27f75b967efbde01060ebb8626fa39d",
      "parents": [
        "c59021f846881a957ac5afe456d0f59d6a517b61"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Tue Mar 01 06:48:31 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:54 2011 -0400"
      },
      "message": "Btrfs: check return value of btrfs_alloc_path()\n\nAdding the check on the return value of btrfs_alloc_path() to several places.\nAnd, some of callers are modified by this change.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c59021f846881a957ac5afe456d0f59d6a517b61",
      "tree": "63e0552f2850b55dcc6bde31e0610e5f22046675",
      "parents": [
        "9f7c43c96727a53bea45f7f2549d897f0a6117b8"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Mon Mar 07 02:13:14 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:53 2011 -0400"
      },
      "message": "Btrfs: fix OOPS of empty filesystem after balance\n\nbtrfs will remove unused block groups after balance.\nWhen a empty filesystem is balanced, the block group with tag \"DATA\" may be\ndropped, and after umount and mount again, it will not find \"DATA\" space_info\nand lead to OOPS.\nSo we initial the necessary space_infos(DATA, SYSTEM, METADATA) to avoid OOPS.\n\nReported-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9f7c43c96727a53bea45f7f2549d897f0a6117b8",
      "tree": "92037cbb39566fa8ba1b8a7644c8cb445be2c48a",
      "parents": [
        "2d4e6f6ad2b9f84f568d07dae4bdbc7f48a70ad1"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Mon Mar 07 02:13:33 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:52 2011 -0400"
      },
      "message": "Btrfs: fix memory leak of empty filesystem after balance\n\nAfter Josef\u0027s patch(commit 3c14874acc71180553fb5aba528e3cf57c5b958b),\nbtrfs will exclude super bytes when reading block groups(by marking a extent\nstate UPTODATE).  However, these bytes do not get freed while balance remove\nunused block groups, and we won\u0027t process those removed ones any more, when\nwe do umount and unload the btrfs module,  btrfs hits a memory leak.\n\nThis patch add the missing free operation.\n\nReproduce steps:\n$ mkfs.btrfs disk\n$ mount disk /mnt/btrfs -o loop\n$ btrfs filesystem balance /mnt/btrfs\n$ umount /mnt/btrfs\n$ rmmod btrfs\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2d4e6f6ad2b9f84f568d07dae4bdbc7f48a70ad1",
      "tree": "eb1490b2b5383fc92eaf276ef31011ec206a2439",
      "parents": [
        "dac97e516c617f9c797f64b0224050b70aea30c7"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 24 09:38:16 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:51 2011 -0400"
      },
      "message": "Btrfs: fix return value of setflags ioctl\n\nsetflags ioctl should return error when any checks fail.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nReviewed-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dac97e516c617f9c797f64b0224050b70aea30c7",
      "tree": "c5c7e7a40e649ee9beb9014b284d3a6e66fb94f2",
      "parents": [
        "c622ae6085d0c6ad834213bbf1477eb311359078"
      ],
      "author": {
        "name": "Yoshinori Sano",
        "email": "yoshinori.sano@gmail.com",
        "time": "Tue Feb 15 12:01:42 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:49 2011 -0400"
      },
      "message": "Btrfs: fix uncheck memory allocations\n\nTo make Btrfs code more robust, several return value checks where memory\nallocation can fail are introduced. I use BUG_ON where I don\u0027t know how\nto handle the error properly, which increases the number of using the\nnotorious BUG_ON, though.\n\nSigned-off-by: Yoshinori Sano \u003cyoshinori.sano@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c622ae6085d0c6ad834213bbf1477eb311359078",
      "tree": "27e12a77c1759d17102c702606d535e78d7c3003",
      "parents": [
        "f7039b1d5c32241f87a513e33120db36bf30264d"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Sat Mar 26 08:01:12 2011 -0400"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:48 2011 -0400"
      },
      "message": "btrfs: make inode ref log recovery faster\n\nWhen we recover from crash via write-ahead log tree and process\nthe inode refs, for each btrfs_inode_ref item, we will\n1) check if we already have a perfect match in fs/file tree, if\n   we have, then we\u0027re done.\n2) search the corresponding back reference in fs/file tree, and\n   check all the names in this back reference to see if they are\n   also in the log to avoid conflict corners.\n3) recover the logged inode refs to fs/file tree.\n\nIn current btrfs, however,\n- for 2)\u0027s check, once is enough, since the checked back reference\n  will remain unchanged after processing all the inode refs belonged\n  to the key.\n- it has no need to do another 1) between 2) and 3).\n\nI\u0027ve made a small test to show how it improves,\n\n$dd if\u003d/dev/zero of\u003dfoobar bs\u003d4K count\u003d1\n$sync\n$make 100 hard links continuously, like ln foobar link_i\n$fsync foobar\n$echo b \u003e /proc/sysrq-trigger\nafter reboot\n$time mount DEV PATH\n\nwithout patch:\nreal    0m0.285s\nuser    0m0.001s\nsys     0m0.009s\n\nwith patch:\nreal    0m0.123s\nuser    0m0.000s\nsys     0m0.010s\n\nChangelog v1-\u003ev2:\n- fix double free - pointed by David Sterba\nChangelog v2-\u003ev3:\n- adjust free order\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f7039b1d5c32241f87a513e33120db36bf30264d",
      "tree": "e911bc79c795fceb3e9a618d8f18571c2a776307",
      "parents": [
        "5378e60734f5b7bfe1b43dc191aaf6131c1befe7"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:28 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:47 2011 -0400"
      },
      "message": "Btrfs: add btrfs_trim_fs() to handle FITRIM\n\nWe take an free extent out from allocator, trim it, then put it back,\nbut before we trim the block group, we should make sure the block group is\ncached, so plus a little change to make cache_block_group() run without a\ntransaction.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5378e60734f5b7bfe1b43dc191aaf6131c1befe7",
      "tree": "b02c78e744a2a148b60a9c8046abef3f4381f544",
      "parents": [
        "fce3bb9a1bd492793170e117c60d5718b7896af4"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:27 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:46 2011 -0400"
      },
      "message": "Btrfs: adjust btrfs_discard_extent() return errors and trimmed bytes\n\nCallers of btrfs_discard_extent() should check if we are mounted with -o discard,\nas we want to make fitrim to work even the fs is not mounted with -o discard.\nAlso we should use REQ_DISCARD to map the free extent to get a full mapping,\nlast we only return errors if\n1. the error is not a EOPNOTSUPP\n2. no device supports discard\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fce3bb9a1bd492793170e117c60d5718b7896af4",
      "tree": "6704e735635531438bdc7dda074ad5e89d89d8eb",
      "parents": [
        "b4d00d569a49fcef02195635dbf8d15904b1fb63"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:26 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:45 2011 -0400"
      },
      "message": "Btrfs: make btrfs_map_block() return entire free extent for each device of RAID0/1/10/DUP\n\nbtrfs_map_block() will only return a single stripe length, but we want the\nfull extent be mapped to each disk when we are trimming the extent,\nso we add length to btrfs_bio_stripe and fill it if we are mapping for REQ_DISCARD.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4d00d569a49fcef02195635dbf8d15904b1fb63",
      "tree": "fc2414cdb122d4c4c5d1c0a37f9217ad3e2d5e3f",
      "parents": [
        "3ab3564f018b9b265d0258e4a231794bacd5ad85"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Mar 24 10:24:25 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:43 2011 -0400"
      },
      "message": "Btrfs: make update_reserved_bytes() public\n\nMake the function public as we should update the reserved extents calculations\nafter taking out an extent for trimming.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3ab3564f018b9b265d0258e4a231794bacd5ad85",
      "tree": "53bb771dbb18194a9d13ce2c84c81f2ab834b7e5",
      "parents": [
        "75e7cb7fe0c391561bd3af36515be3f3c64a04c6"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Mar 22 17:20:26 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:42 2011 -0400"
      },
      "message": "btrfs: return EXDEV when linking from different subvolumes\n\nbtrfs_link returns EPERM if a cross-subvolume link is attempted.\n\nHowever, in this case I believe EXDEV to be the more appropriate value.\n\u003eFrom the link(2) man page:\n\nEXDEV  oldpath and newpath are not on the same mounted file system.  (Linux\n       permits a file system to be mounted at multiple points, but link()\n       does not work across different mount points, even if the same file\n       system is mounted on both.)\n\nThis matters because an application may have different behaviors based on\nreturn codes.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "75e7cb7fe0c391561bd3af36515be3f3c64a04c6",
      "tree": "3738481e2db10b2904a4434e4ca42d326da02be7",
      "parents": [
        "32471f6e1983922473573da62cbee58699574aa4"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Tue Mar 22 10:12:20 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:41 2011 -0400"
      },
      "message": "Btrfs: Per file/directory controls for COW and compression\n\nData compression and data cow are controlled across the entire FS by mount\noptions right now.  ioctls are needed to set this on a per file or per\ndirectory basis.  This has been proposed previously, but VFS developers\nwanted us to use generic ioctls rather than btrfs-specific ones.\n\nAccording to Chris\u0027s comment, there should be just one true compression\nmethod(probably LZO) stored in the super.  However, before this, we would\nwait for that one method is stable enough to be adopted into the super.\nSo I list it as a long term goal, and just store it in ram today.\n\nAfter applying this patch, we can use the generic \"FS_IOC_SETFLAGS\" ioctl to\ncontrol file and directory\u0027s datacow and compression attribute.\n\nNOTE:\n - The compression type is selected by such rules:\n   If we mount btrfs with compress options, ie, zlib/lzo, the type is it.\n   Otherwise, we\u0027ll use the default compress type (zlib today).\n\nv1-\u003ev2:\n- rebase to the latest btrfs.\nv2-\u003ev3:\n- fix a problem, i.e. when a file is set NOCOW via mount option, then this NOCOW\n  will be screwed by inheritance from parent directory.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fc0e4a314e361af3b13d9320e92c64118f9a3e61",
      "tree": "5bb9f51968375e5a7e19751da028bb5a8b74c624",
      "parents": [
        "97d9a8a420444eb5b5c071d4b3b9c4100a7ae015"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Mar 24 11:41:21 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:39 2011 -0400"
      },
      "message": "btrfs: use GFP_NOFS instead of GFP_KERNEL\n\nIn the filesystem context, we must allocate memory by GFP_NOFS,\nor we may start another filesystem operation and make kswap thread hang up.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "97d9a8a420444eb5b5c071d4b3b9c4100a7ae015",
      "tree": "4ed3e77541ebcc4885c4a10630e2f6bf94d3cef2",
      "parents": [
        "7e75bf3ff3a716d7b21d8fb43bf823115801c1e9"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Mar 24 06:33:21 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:37 2011 -0400"
      },
      "message": "Btrfs: check return value of read_tree_block()\n\nThis patch is checking return value of read_tree_block(),\nand if it is NULL, error processing.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7e75bf3ff3a716d7b21d8fb43bf823115801c1e9",
      "tree": "98509e562fe9577001f60e1035283c5cb4e076ea",
      "parents": [
        "db5b493ac78e46c7b6bad22cd25d8041564cd8ea"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dave@jikos.cz",
        "time": "Fri Mar 18 22:56:43 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:36 2011 -0400"
      },
      "message": "btrfs: properly access unaligned checksum buffer\n\nOn Fri, Mar 18, 2011 at 11:56:53AM -0400, Chris Mason wrote:\n\u003e Thanks for fielding this one.  Does put_unaligned_le32 optimize away on\n\u003e platforms with efficient access?  It would be great if we didn\u0027t need\n\u003e the #ifdef.\n\n(quicktest: assembly output is same for put_unaligned_le32 and direct\nassignment on my x86_64)\nI was originally following examples in\nDocumentation/unaligned-memory-access.txt. From other code it seems to me that\nthe define CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is intended for larger\nportions of code. Macros/wrappers for {put,get}_unaligned* are chosen via\narch/\u003carch\u003e/include/asm/unaligned.h accordingly, therefore it\u0027s safe to use\nput_unaligned_le32 without the ifdef.\n\ndave\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "db5b493ac78e46c7b6bad22cd25d8041564cd8ea",
      "tree": "18f484c3d8194b80165e5400831931a3ac5c58ba",
      "parents": [
        "1abe9b8a138c9988ba8f7bfded6453649a31541f"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Wed Mar 23 08:14:16 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:35 2011 -0400"
      },
      "message": "Btrfs: cleanup some BUG_ON()\n\nThis patch changes some BUG_ON() to the error return.\n(but, most callers still use BUG_ON())\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1abe9b8a138c9988ba8f7bfded6453649a31541f",
      "tree": "9fe0c181e78b075b65f6b1802f0a5092e7afbc6a",
      "parents": [
        "240f62c8756df285da11469259b3900f32883168"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Mar 24 11:18:59 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:33 2011 -0400"
      },
      "message": "Btrfs: add initial tracepoint support for btrfs\n\nTracepoints can provide insight into why btrfs hits bugs and be greatly\nhelpful for debugging, e.g\n              dd-7822  [000]  2121.641088: btrfs_inode_request: root \u003d 5(FS_TREE), gen \u003d 4, ino \u003d 256, blocks \u003d 8, disk_i_size \u003d 0, last_trans \u003d 8, logged_trans \u003d 0\n              dd-7822  [000]  2121.641100: btrfs_inode_new: root \u003d 5(FS_TREE), gen \u003d 8, ino \u003d 257, blocks \u003d 0, disk_i_size \u003d 0, last_trans \u003d 0, logged_trans \u003d 0\n btrfs-transacti-7804  [001]  2146.935420: btrfs_cow_block: root \u003d 2(EXTENT_TREE), refs \u003d 2, orig_buf \u003d 29368320 (orig_level \u003d 0), cow_buf \u003d 29388800 (cow_level \u003d 0)\n btrfs-transacti-7804  [001]  2146.935473: btrfs_cow_block: root \u003d 1(ROOT_TREE), refs \u003d 2, orig_buf \u003d 29364224 (orig_level \u003d 0), cow_buf \u003d 29392896 (cow_level \u003d 0)\n btrfs-transacti-7804  [001]  2146.972221: btrfs_transaction_commit: root \u003d 1(ROOT_TREE), gen \u003d 8\n   flush-btrfs-2-7821  [001]  2155.824210: btrfs_chunk_alloc: root \u003d 3(CHUNK_TREE), offset \u003d 1103101952, size \u003d 1073741824, num_stripes \u003d 1, sub_stripes \u003d 0, type \u003d DATA\n   flush-btrfs-2-7821  [001]  2155.824241: btrfs_cow_block: root \u003d 2(EXTENT_TREE), refs \u003d 2, orig_buf \u003d 29388800 (orig_level \u003d 0), cow_buf \u003d 29396992 (cow_level \u003d 0)\n   flush-btrfs-2-7821  [001]  2155.824255: btrfs_cow_block: root \u003d 4(DEV_TREE), refs \u003d 2, orig_buf \u003d 29372416 (orig_level \u003d 0), cow_buf \u003d 29401088 (cow_level \u003d 0)\n   flush-btrfs-2-7821  [000]  2155.824329: btrfs_cow_block: root \u003d 3(CHUNK_TREE), refs \u003d 2, orig_buf \u003d 20971520 (orig_level \u003d 0), cow_buf \u003d 20975616 (cow_level \u003d 0)\n btrfs-endio-wri-7800  [001]  2155.898019: btrfs_cow_block: root \u003d 5(FS_TREE), refs \u003d 2, orig_buf \u003d 29384704 (orig_level \u003d 0), cow_buf \u003d 29405184 (cow_level \u003d 0)\n btrfs-endio-wri-7800  [001]  2155.898043: btrfs_cow_block: root \u003d 7(CSUM_TREE), refs \u003d 2, orig_buf \u003d 29376512 (orig_level \u003d 0), cow_buf \u003d 29409280 (cow_level \u003d 0)\n\nHere is what I have added:\n\n1) ordere_extent:\n        btrfs_ordered_extent_add\n        btrfs_ordered_extent_remove\n        btrfs_ordered_extent_start\n        btrfs_ordered_extent_put\n\nThese provide critical information to understand how ordered_extents are\nupdated.\n\n2) extent_map:\n        btrfs_get_extent\n\nextent_map is used in both read and write cases, and it is useful for tracking\nhow btrfs specific IO is running.\n\n3) writepage:\n        __extent_writepage\n        btrfs_writepage_end_io_hook\n\nPages are cirtical resourses and produce a lot of corner cases during writeback,\nso it is valuable to know how page is written to disk.\n\n4) inode:\n        btrfs_inode_new\n        btrfs_inode_request\n        btrfs_inode_evict\n\nThese can show where and when a inode is created, when a inode is evicted.\n\n5) sync:\n        btrfs_sync_file\n        btrfs_sync_fs\n\nThese show sync arguments.\n\n6) transaction:\n        btrfs_transaction_commit\n\nIn transaction based filesystem, it will be useful to know the generation and\nwho does commit.\n\n7) back reference and cow:\n\tbtrfs_delayed_tree_ref\n\tbtrfs_delayed_data_ref\n\tbtrfs_delayed_ref_head\n\tbtrfs_cow_block\n\nBtrfs natively supports back references, these tracepoints are helpful on\nunderstanding btrfs\u0027s COW mechanism.\n\n8) chunk:\n\tbtrfs_chunk_alloc\n\tbtrfs_chunk_free\n\nChunk is a link between physical offset and logical offset, and stands for space\ninfomation in btrfs, and these are helpful on tracing space things.\n\n9) reserved_extent:\n\tbtrfs_reserved_extent_alloc\n\tbtrfs_reserved_extent_free\n\nThese can show how btrfs uses its space.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "240f62c8756df285da11469259b3900f32883168",
      "tree": "eb973ef95389a9511c137c7c26248dfd04a2495f",
      "parents": [
        "c0da7aa1a2d8fcafe271a7077599253c8ed94bb2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 23 14:54:42 2011 -0400"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:22 2011 -0400"
      },
      "message": "Btrfs: use RCU instead of a spinlock to protect the root node\n\nThe pointer to the extent buffer for the root of each tree\nis protected by a spinlock so that we can safely read the pointer\nand take a reference on the extent buffer.\n\nBut now that the extent buffers are freed via RCU, we can safely\nuse rcu_read_lock instead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c0da7aa1a2d8fcafe271a7077599253c8ed94bb2",
      "tree": "232a22b93eb56090c5a0ecdba377ffb761d5549c",
      "parents": [
        "98bc3149fad639c8f50c7110b961a2a2fe085eed"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 22 11:05:07 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 25 19:08:19 2011 -0400"
      },
      "message": "Btrfs: mark the bio with an error if we have a failure in dio\n\nI noticed that dio_end_io calls the appropriate endio function with an error,\nbut the endio functions don\u0027t actually do anything with that error, they assume\nthat if there was an error then the bio will not be uptodate.  So if we had\nchecksum failures we would never pass back EIO.  So if there is an error in our\nendio functions make sure to clear the uptodate flag on the bio.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "98bc3149fad639c8f50c7110b961a2a2fe085eed",
      "tree": "76b102e79a9adde87c4e93f475db643567c393da",
      "parents": [
        "4e69b598f6cfb0940b75abf7e179d6020e94ad1e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 22 11:00:46 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 25 19:08:18 2011 -0400"
      },
      "message": "Btrfs: don\u0027t allocate dip-\u003ecsums when doing writes\n\nWhen doing direct writes we store the checksums in the ordered sum stuff in the\nordered extent for writing them when the write completes, so we don\u0027t even use\nthe dip-\u003ecsums array.  So if we\u0027re writing, don\u0027t bother allocating dip-\u003ecsums\nsince we won\u0027t use it anyway.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "4e69b598f6cfb0940b75abf7e179d6020e94ad1e",
      "tree": "ae14c7078bd7540200ffe32726e33dd8ff64f5d5",
      "parents": [
        "32cb0840ce8e13901fe71a9a8e834a531802ffc4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 21 10:11:24 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 25 19:08:08 2011 -0400"
      },
      "message": "Btrfs: cleanup how we setup free space clusters\n\nThis patch makes the free space cluster refilling code a little easier to\nunderstand, and fixes some things with the bitmap part of it.  Currently we\neither want to refill a cluster with\n\n1) All normal extent entries (those without bitmaps)\n2) A bitmap entry with enough space\n\nThe current code has this ugly jump around logic that will first try and fill up\nthe cluster with extent entries and then if it can\u0027t do that it will try and\nfind a bitmap to use.  So instead split this out into two functions, one that\ntries to find only normal entries, and one that tries to find bitmaps.\n\nThis also fixes a suboptimal thing we would do with bitmaps.  If we used a\nbitmap we would just tell the cluster that we were pointing at a bitmap and it\nwould do the tree search in the block group for that entry every time we tried\nto make an allocation.  Instead of doing that now we just add it to the clusters\ngroup.\n\nI tested this with my ENOSPC tests and xfstests and it survived.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "565d76cb7d5fd7cb010fd690602280a69ab116ef",
      "tree": "beff4279da00976e10145820c22e699192056973",
      "parents": [
        "b12d12596992f608f5506a8dabe4d1299594bd1e"
      ],
      "author": {
        "name": "Jim Keniston",
        "email": "jkenisto@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:35:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:17 2011 -0700"
      },
      "message": "zlib: slim down zlib_deflate() workspace when possible\n\nInstead of always creating a huge (268K) deflate_workspace with the\nmaximum compression parameters (windowBits\u003d15, memLevel\u003d8), allow the\ncaller to obtain a smaller workspace by specifying smaller parameter\nvalues.\n\nFor example, when capturing oops and panic reports to a medium with\nlimited capacity, such as NVRAM, compression may be the only way to\ncapture the whole report.  In this case, a small workspace (24K works\nfine) is a win, whether you allocate the workspace when you need it (i.e.,\nduring an oops or panic) or at boot time.\n\nI\u0027ve verified that this patch works with all accepted values of windowBits\n(positive and negative), memLevel, and compression level.\n\nSigned-off-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32cb0840ce8e13901fe71a9a8e834a531802ffc4",
      "tree": "397b22d872a7074fc64b13b507354ce248eb298e",
      "parents": [
        "d0a365e84a886ce6b5b7f7a76be0bb24934ec8f0"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 18 16:16:21 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 21 10:26:03 2011 -0400"
      },
      "message": "Btrfs: don\u0027t be as aggressive about using bitmaps\n\nWe have been creating bitmaps for small extents unconditionally forever.  This\nwas great when testing to make sure the bitmap stuff was working, but is\noverkill normally.  So instead of always adding small chunks of free space to\nbitmaps, only start doing it if we go past half of our extent threshold.  This\nwill keeps us from creating a bitmap for just one small free extent at the front\nof the block group, and will make the allocator a little faster as a result.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "d0a365e84a886ce6b5b7f7a76be0bb24934ec8f0",
      "tree": "5e46221ccd86bb44a1fec70fb7ec7e1801601164",
      "parents": [
        "7d0d2e8e6b6f7da221a25238cf490a095c8c4788"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 18 15:27:43 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 21 10:25:56 2011 -0400"
      },
      "message": "Btrfs: deal with min_bytes appropriately when looking for a cluster\n\nWe do all this fun stuff with min_bytes, but either don\u0027t use it in the case of\njust normal extents, or use it completely wrong in the case of bitmaps.  So fix\nthis for both cases\n\n1) In the extent case, stop looking for space with window_free \u003e\u003d min_bytes\ninstead of bytes + empty_size.\n\n2) In the bitmap case, we were looking for streches of free space that was at\nleast min_bytes in size, which was not right at all.  So instead search for\nstretches of free space that are at least bytes in size (this will make a\ndifference when we have \u003e page size blocks) and then only search for min_bytes\namount of free space.\n\nThanks,\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7d0d2e8e6b6f7da221a25238cf490a095c8c4788",
      "tree": "a2bce1c429f9efb9d3cc41390afa73839787c96c",
      "parents": [
        "22a94d44bd6876a90630338229da6c0436d46593"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 18 15:13:42 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 21 10:25:48 2011 -0400"
      },
      "message": "Btrfs: check free space in block group before searching for a cluster\n\nThe free space cluster stuff is heavy duty, so there is no sense in going\nthrough the entire song and dance if there isn\u0027t enough space in the block group\nto begin with.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "e16b396ce314b2bcdfe6c173fe075bf8e3432368",
      "tree": "640f0f56f2ea676647af4eb42d32fa56be2ee549",
      "parents": [
        "7fd23a24717a327a66f3c32d11a20a2f169c824f",
        "e6e8dd5055a974935af1398c8648d4a9359b0ecb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)\n  doc: CONFIG_UNEVICTABLE_LRU doesn\u0027t exist anymore\n  Update cpuset info \u0026 webiste for cgroups\n  dcdbas: force SMI to happen when expected\n  arch/arm/Kconfig: remove one to many l\u0027s in the word.\n  asm-generic/user.h: Fix spelling in comment\n  drm: fix printk typo \u0027sracth\u0027\n  Remove one to many n\u0027s in a word\n  Documentation/filesystems/romfs.txt: fixing link to genromfs\n  drivers:scsi Change printk typo initate -\u003e initiate\n  serial, pch uart: Remove duplicate inclusion of linux/pci.h header\n  fs/eventpoll.c: fix spelling\n  mm: Fix out-of-date comments which refers non-existent functions\n  drm: Fix printk typo \u0027failled\u0027\n  coh901318.c: Change initate to initiate.\n  mbox-db5500.c Change initate to initiate.\n  edac: correct i82975x error-info reported\n  edac: correct i82975x mci initialisation\n  edac: correct commented info\n  fs: update comments to point correct document\n  target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c\n  ...\n\nTrivial conflict in fs/eventpoll.c (spelling vs addition)\n"
    },
    {
      "commit": "22a94d44bd6876a90630338229da6c0436d46593",
      "tree": "50e5c7dd52ccf9292240de995e5b42b1619bcd82",
      "parents": [
        "41415730a1050499fbd63b3f7dd59b3a4c3bb91a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Mar 16 16:47:17 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:41 2011 -0400"
      },
      "message": "Btrfs: add checks to verify dir items are correct\n\nWe need to make sure the dir items we get are valid dir items.  So any time we\ntry and read one check it with verify_dir_item, which will do various sanity\nchecks to make sure it looks sane.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "41415730a1050499fbd63b3f7dd59b3a4c3bb91a",
      "tree": "f379a75ded5241e303fd78bcfe5d6ca257058dc1",
      "parents": [
        "a826d6dcb32d811b4c81df57a5ef1367516586b0"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Mar 16 13:59:32 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:39 2011 -0400"
      },
      "message": "Btrfs: check return value of btrfs_search_slot properly\n\nDoing an audit of where we use btrfs_search_slot only showed one place where we\ndon\u0027t check the return value of btrfs_search_slot properly.  Just fix\nmark_extent_written to see if btrfs_search_slot failed and act accordingly.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a826d6dcb32d811b4c81df57a5ef1367516586b0",
      "tree": "4853d5acf6cde4dfb0eeb19f5c74dc3d7934359b",
      "parents": [
        "850265335f792f5d39ab24e5fb7160bac28d77e5"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Mar 16 13:42:43 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:37 2011 -0400"
      },
      "message": "Btrfs: check items for correctness as we search\n\nCurrently if we have corrupted items things will blow up in spectacular ways.\nSo as we read in blocks and they are leaves, check the entire leaf to make sure\nall of the items are correct and point to valid parts in the leaf for the item\ndata the are responsible for.  If the item is corrupt we will kick back EIO and\nnot read any of the copies since they are likely to not be correct either.  This\nwill catch generic corruptions, it will be up to the individual callers of\nbtrfs_search_slot to make sure their items are right.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "850265335f792f5d39ab24e5fb7160bac28d77e5",
      "tree": "8ecc731b9b03e32e067961bc30e6a824ed946187",
      "parents": [
        "695a0d0da09e75c4475bbb303def159023ef72ca"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 15 14:52:12 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:35 2011 -0400"
      },
      "message": "Btrfs: return error if the range we want to map is bogus\n\nCurrently if we have corrupt metadata map_extent_buffer will complain about it,\nbut not return an error so the caller has no idea a problem was hit.  Fix this.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "695a0d0da09e75c4475bbb303def159023ef72ca",
      "tree": "96f9d223a3395bd015d2922b5e797634be27b161",
      "parents": [
        "930f028abe39dfd0849b53131d19c4b67aacbe67"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 04 15:46:53 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:33 2011 -0400"
      },
      "message": "Btrfs: add a comment explaining what btrfs_cont_expand does\n\nEverytime I have to deal with btrfs_cont_expand I stare at it for 20 minutes\ntrying to remember what exactly it does and why the hell we need it.  So add a\ncomment to save future-Josef some time.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "930f028abe39dfd0849b53131d19c4b67aacbe67",
      "tree": "a7dc6cd1c09e351a88f43bd353000310745045d7",
      "parents": [
        "f0cd846e9221811d87047f1428cf5226e7236efe"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 04 14:41:41 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:32 2011 -0400"
      },
      "message": "Btrfs: use mark_inode_dirty when expanding the file\n\nMark_inode_dirty will call btrfs_dirty_inode which will take care of updating\nthe inode.  This makes setsize a little cleaner since we don\u0027t have to start a\ntransaction and update the inode in there, we can just call mark_inode_dirty.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "f0cd846e9221811d87047f1428cf5226e7236efe",
      "tree": "7621f631bc39b92decaab53ca0fcd2f43b4ab072",
      "parents": [
        "ded5db9de78f963979e1605f859de67626f54693"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 04 14:37:08 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:30 2011 -0400"
      },
      "message": "Btrfs: only add orphan items when truncating\n\nWe don\u0027t need an orphan item when expanding files, we just need them for\ntruncating them, so only add the orphan item in btrfs_truncate instead of in\nbtrfs_setsize.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "ded5db9de78f963979e1605f859de67626f54693",
      "tree": "d52b91b659b22f5f24ba8b8bf42a3a829e335010",
      "parents": [
        "66b4ffd110f9b48b8d8c1319ee446b53b8d073bf"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Mar 04 14:09:46 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:28 2011 -0400"
      },
      "message": "Btrfs: make sure to remove the orphan item from the in-memory list\n\nThis fixes a problem where if truncate fails the inode will still be on the in\nmemory orphan list.  This is will make us complain when the inode gets destroyed\nbecause it\u0027s still on the orphan list.  So if we fail just remove us from the in\nmemory list and carry on.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "66b4ffd110f9b48b8d8c1319ee446b53b8d073bf",
      "tree": "690b14cda46b47c0d71be15a82019c35729afa75",
      "parents": [
        "3893e33b0bebee2f67d96b6c15259dc884523c20"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jan 31 16:22:42 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:26 2011 -0400"
      },
      "message": "Btrfs: handle errors in btrfs_orphan_cleanup\n\nIf we cannot truncate an inode for some reason we will never delete the orphan\nitem associated with that inode, which means that we will loop forever in\nbtrfs_orphan_cleanup.  Instead of doing this just return error so we fail to\nmount.  It sucks, but hey it\u0027s better than hanging.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "3893e33b0bebee2f67d96b6c15259dc884523c20",
      "tree": "3c04879bcd5a269252615c56a765cede5ba1004e",
      "parents": [
        "a41ad394a03b802497958d7c98a9dcf607266645"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jan 31 16:03:11 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:24 2011 -0400"
      },
      "message": "Btrfs: cleanup error handling in the truncate path\n\nNow that we can handle having errors in the truncate path lets make sure we\nreturn errors instead of doing BUG_ON() and such.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a41ad394a03b802497958d7c98a9dcf607266645",
      "tree": "f18d97b7feb5c3dcf0d3c1a670d4eaf6b94e8b79",
      "parents": [
        "dc89e9824464e91fa0b06267864ceabe3186fd8b"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jan 31 15:30:16 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:22 2011 -0400"
      },
      "message": "Btrfs: convert to the new truncate sequence\n\n-\u003etruncate() is going away, instead all of the work needs to be done in\n-\u003esetattr().  So this converts us over to do this.  It\u0027s fairly straightforward,\njust get rid of our .truncate inode operation and call btrfs_truncate() directly\nfrom btrfs_setsize.  This works out better for us since truncate can technically\nreturn ENOSPC, and before we had no way of letting anybody know.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "dc89e9824464e91fa0b06267864ceabe3186fd8b",
      "tree": "82952195464518dce48cb613c74d2326f228669b",
      "parents": [
        "57a45ced94fe48a701361d64230fc16eefa189dd"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jan 28 17:05:48 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:20 2011 -0400"
      },
      "message": "Btrfs: use a slab for the free space entries\n\nSince we alloc/free free space entries a whole lot, lets use a slab to keep\ntrack of them.  This makes some of my tests slightly faster.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "57a45ced94fe48a701361d64230fc16eefa189dd",
      "tree": "8f0cfe52ba0b3fb8a6ed3cc5d3e7449369b0b9a5",
      "parents": [
        "4a64001f0047956e283f7ada9843dfc3f3b5d8c8"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jan 25 16:30:38 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:18 2011 -0400"
      },
      "message": "Btrfs: change reserved_extents to an atomic_t\n\nWe track delayed allocation per inodes via 2 counters, one is\noutstanding_extents and reserved_extents.  Outstanding_extents is already an\natomic_t, but reserved_extents is not and is protected by a spinlock.  So\nconvert this to an atomic_t and instead of using a spinlock, use atomic_cmpxchg\nwhen releasing delalloc bytes.  This makes our inode 72 bytes smaller, and\nreduces locking overhead (albiet it was minimal to begin with).  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "4a64001f0047956e283f7ada9843dfc3f3b5d8c8",
      "tree": "f45d7b09808ef70cf31e7da4e5e8b1c0c7521f4a",
      "parents": [
        "d0215f3e5ebb5803cd6ec067b10c5e00a3ad7cfc"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jan 25 15:10:08 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:16 2011 -0400"
      },
      "message": "Btrfs: fix how we deal with the pages array in the write path\n\nReally we don\u0027t need to memset the pages array at all, since we know how many\npages we\u0027re going to use in the array and pass that around.  So don\u0027t memset,\njust trust we\u0027re not idiots and we pass num_pages around properly.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "d0215f3e5ebb5803cd6ec067b10c5e00a3ad7cfc",
      "tree": "790070af3c6c05b0599e26c7ce93516192a04a94",
      "parents": [
        "9f570b8d48b6677b5557d86fb3ca148215e295f2"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jan 25 14:57:24 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:15 2011 -0400"
      },
      "message": "Btrfs: simplify our write path\n\nOur aio_write function is huge and kind of hard to follow at times.  So this\npatch fixes this by breaking out the buffered and direct write paths out into\nseperate functions so it\u0027s a little clearer what\u0027s going on.  I\u0027ve also fixed\nsome wrong typing that we had and added the ability to handle getting an error\nback from btrfs_set_extent_delalloc.  Tested this with xfstests and everything\ncame out fine.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "9f570b8d48b6677b5557d86fb3ca148215e295f2",
      "tree": "d4cfb2622bad6559bd6afb2a3b3fe19f1cc274fa",
      "parents": [
        "521cb40b0c44418a4fd36dc633f575813d59a43d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jan 25 12:42:37 2011 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 17 14:21:13 2011 -0400"
      },
      "message": "Btrfs: fix formatting in file.c\n\nSorry, but these were bugging me.  Just cleanup some of the formatting in\nfile.c.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0f6e0e8448a16d8d22119ce91d8dd24b44865b51",
      "tree": "7c295c02db035fc6a0b867465911a2bc9dc6b1ef",
      "parents": [
        "0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4",
        "a002951c97ff8da49938c982a4c236bf2fafdc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits)\n  AppArmor: kill unused macros in lsm.c\n  AppArmor: cleanup generated files correctly\n  KEYS: Add an iovec version of KEYCTL_INSTANTIATE\n  KEYS: Add a new keyctl op to reject a key with a specified error code\n  KEYS: Add a key type op to permit the key description to be vetted\n  KEYS: Add an RCU payload dereference macro\n  AppArmor: Cleanup make file to remove cruft and make it easier to read\n  SELinux: implement the new sb_remount LSM hook\n  LSM: Pass -o remount options to the LSM\n  SELinux: Compute SID for the newly created socket\n  SELinux: Socket retains creator role and MLS attribute\n  SELinux: Auto-generate security_is_socket_class\n  TOMOYO: Fix memory leak upon file open.\n  Revert \"selinux: simplify ioctl checking\"\n  selinux: drop unused packet flow permissions\n  selinux: Fix packet forwarding checks on postrouting\n  selinux: Fix wrong checks for selinux_policycap_netpeer\n  selinux: Fix check for xfrm selinux context algorithm\n  ima: remove unnecessary call to ima_must_measure\n  IMA: remove IMA imbalance checking\n  ...\n"
    },
    {
      "commit": "422e6c4bc4b48c15b3cb57a1ca71431abfc57e54",
      "tree": "81ceb21f84a79e796ee33b5d17e17406f096abcb",
      "parents": [
        "c83ce989cb5ff86575821992ea82c4df5c388ebc",
        "574197e0de46a8a4db5c54ef7b65e43ffa8873a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 15:48:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 15:48:13 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (57 commits)\n  tidy the trailing symlinks traversal up\n  Turn resolution of trailing symlinks iterative everywhere\n  simplify link_path_walk() tail\n  Make trailing symlink resolution in path_lookupat() iterative\n  update nd-\u003einode in __do_follow_link() instead of after do_follow_link()\n  pull handling of one pathname component into a helper\n  fs: allow AT_EMPTY_PATH in linkat(), limit that to CAP_DAC_READ_SEARCH\n  Allow passing O_PATH descriptors via SCM_RIGHTS datagrams\n  readlinkat(), fchownat() and fstatat() with empty relative pathnames\n  Allow O_PATH for symlinks\n  New kind of open files - \"location only\".\n  ext4: Copy fs UUID to superblock\n  ext3: Copy fs UUID to superblock.\n  vfs: Export file system uuid via /proc/\u003cpid\u003e/mountinfo\n  unistd.h: Add new syscalls numbers to asm-generic\n  x86: Add new syscalls for x86_64\n  x86: Add new syscalls for x86_32\n  fs: Remove i_nlink check from file system link callback\n  fs: Don\u0027t allow to create hardlink for deleted file\n  vfs: Add open by file handle support\n  ...\n"
    },
    {
      "commit": "a002951c97ff8da49938c982a4c236bf2fafdc9f",
      "tree": "d43e7885ea7376df0a47a0fc8ceca66dc5bfa357",
      "parents": [
        "521cb40b0c44418a4fd36dc633f575813d59a43d",
        "c151694b2c48d956ac8c8c59c6927f89cc29ef70"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 16 09:41:17 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 16 09:41:17 2011 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "f17b6042073e7000a90063f7edbca59a5bd1caa2",
      "tree": "e893485df882c770da602030c6c1098b11ea3d56",
      "parents": [
        "aae8a97d3ec30788790d1720b71d76fd8eb44b73"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:30 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:44 2011 -0400"
      },
      "message": "fs: Remove i_nlink check from file system link callback\n\nNow that VFS check for inode-\u003ei_nlink \u003d\u003d 0 and returns proper\nerror, remove similar check from file system\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5fe0c2378884e68beb532f5890cc0e3539ac747b",
      "tree": "be25414052184e146049ea6466854366559d5528",
      "parents": [
        "c8b91accfa1059d5565443193d89572eca2f5dd6"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:25 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:28 2011 -0400"
      },
      "message": "exportfs: Return the minimum required handle size\n\nThe exportfs encode handle function should return the minimum required\nhandle size. This helps user to find out the handle size by passing 0\nhandle size in the first step and then redoing to the call again with\nthe returned handle size value.\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0e5b88cd9975dca6c191cc9bd11f233fac4ca882",
      "tree": "6302317acfb24d6b5ad7924aceaa0dd1c4a7a371",
      "parents": [
        "eebea5d13d391981061d6ef069a841002eba4a7a",
        "36e39c40b3facc9b489a13f1d301fc53ff6960a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 13 16:00:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 13 16:00:49 2011 -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: break out of shrink_delalloc earlier\n  btrfs: fix not enough reserved space\n  btrfs: fix dip leak\n  Btrfs: make sure not to return overlapping extents to fiemap\n  Btrfs: deal with short returns from copy_from_user\n  Btrfs: fix regressions in copy_from_user handling\n"
    },
    {
      "commit": "36e39c40b3facc9b489a13f1d301fc53ff6960a3",
      "tree": "e009d85998f89ef06d1d96515e3856fa074c4f4f",
      "parents": [
        "7e6b6465e6efbca3985258996be9c189da96c8bf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Mar 12 07:08:42 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Mar 12 07:08:42 2011 -0500"
      },
      "message": "Btrfs: break out of shrink_delalloc earlier\n\nJosef had changed shrink_delalloc to exit after three shrink\nattempts, which wasn\u0027t quite enough because new writers could\nrace in and steal free space.\n\nBut it also fixed deadlocks and stalls as we tried to recover\ndelalloc reservations.  The code was tweaked to loop 1024\ntimes, and would reset the counter any time a small amount\nof progress was made.  This was too drastic, and with a\nlot of writers we can end up stuck in shrink_delalloc forever.\n\nThe shrink_delalloc loop is fairly complex because the caller is looping\ntoo, and the caller will go ahead and force a transaction commit to make\nsure we reclaim space.\n\nThis reworks things to exit shrink_delalloc when we\u0027ve forced some\nwriteback and the delalloc reservations have gone down.  This means\nthe writeback has not just started but has also finished at\nleast some of the metadata changes required to reclaim delalloc\nspace.\n\nIf we\u0027ve got this wrong, we\u0027re returning ENOSPC too early, which\nis a big improvement over the current behavior of hanging the machine.\n\nTest 224 in xfstests hammers on this nicely, and with 1000 writers\ntrying to fill a 1GB drive we get our first ENOSPC at 93% full.  The\nother writers are able to continue until we get 100%.\n\nThis is a worst case test for btrfs because the 1000 writers are doing\nsmall IO, and the small FS size means we don\u0027t have a lot of room\nfor metadata chunks.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7e6b6465e6efbca3985258996be9c189da96c8bf",
      "tree": "d4cde91d45865effa20fca9a789813321808c129",
      "parents": [
        "b4966b7770349deb05e3dd2bd2c65d2d044abbbb"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Feb 18 09:21:17 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 10 11:21:49 2011 -0500"
      },
      "message": "btrfs: fix not enough reserved space\n\nbtrfs_link() will insert 3 items(inode ref, dir name item and dir index item)\ninto the b+ tree and update 2 items(its inode, and parent\u0027s inode) in the b+\ntree. So we should reserve space for these 5 items, not 3 items.\n\nReported-by: Tsutomu Itoh \u003ct-itoh@jp.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": "b4966b7770349deb05e3dd2bd2c65d2d044abbbb",
      "tree": "79e281fde97b792eb732b5bde167c56939a6c67f",
      "parents": [
        "ea8efc74bd0402b4d5f663d007b4e25fa29ea778"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Wed Mar 09 16:46:42 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 10 11:21:49 2011 -0500"
      },
      "message": "btrfs: fix dip leak\n\nThe btrfs DIO code leaks dip structs when dip-\u003ecsums allocation\nfails; bio-\u003ebi_end_io isn\u0027t set at the point where the free_ordered\nbranch is consequently taken, thus bio_endio doesn\u0027t call the function\nwhich would free it in the normal case. Fix.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nAcked-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ea8efc74bd0402b4d5f663d007b4e25fa29ea778",
      "tree": "ad3f19c4281877767f6dce99f0e003284a159e71",
      "parents": [
        "31339acd07b4ba687906702085127895a56eb920"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 08 11:54:40 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 08 11:58:09 2011 -0500"
      },
      "message": "Btrfs: make sure not to return overlapping extents to fiemap\n\nThe btrfs fiemap code was incorrectly returning duplicate or overlapping\nextents in some cases.  cp was blindly trusting this result and we would\nend up with a destination file that was bigger than the original because\nsome bytes were copied twice.\n\nThe fix here adjusts our offsets to make sure we\u0027re always moving\nforward in the fiemap results.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fe3fa43039d47ee4e22caf460b79b62a14937f79",
      "tree": "9eab8d00f1227b9fe0959f32a62d892ed35803ba",
      "parents": [
        "ee009e4a0d4555ed522a631bae9896399674f064",
        "026eb167ae77244458fa4b4b9fc171209c079ba7"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.infradead.org/users/eparis/selinux into next\n"
    },
    {
      "commit": "31339acd07b4ba687906702085127895a56eb920",
      "tree": "c1f2d464acfc97e8c5faecf57e644578cccce94d",
      "parents": [
        "b1bf862e9dad431175a1174379476299dbfdc017"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 07 11:10:24 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 07 11:10:24 2011 -0500"
      },
      "message": "Btrfs: deal with short returns from copy_from_user\n\nWhen copy_from_user is only able to copy some of the bytes we requested,\nwe may end up creating a partially up to date page.  To avoid garbage in\nthe page, we need to treat a partial copy as a zero length copy.\n\nThis makes the rest of the file_write code drop the page and\nretry the whole copy instead of marking the partially up to\ndate page as dirty.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "b1bf862e9dad431175a1174379476299dbfdc017",
      "tree": "a53811b2112fbe2a0106e3ac051fffc63872d317",
      "parents": [
        "ec29ed5b407d618a8128f5942aade9e1758aa14b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 28 09:52:08 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 07 10:42:27 2011 -0500"
      },
      "message": "Btrfs: fix regressions in copy_from_user handling\n\nCommit 914ee295af418e936ec20a08c1663eaabe4cd07a fixed deadlocks in\nbtrfs_file_write where we would catch page faults on pages we had\nlocked.\n\nBut, there were a few problems:\n\n1) The x86-32 iov_iter_copy_from_user_atomic code always fails to copy\ndata when the amount to copy is more than 4K and the offset to start\ncopying from is not page aligned.  The result was btrfs_file_write\nlooping forever retrying the iov_iter_copy_from_user_atomic\n\nWe deal with this by changing btrfs_file_write to drop down to single\npage copies when iov_iter_copy_from_user_atomic starts returning failure.\n\n2) The btrfs_file_write code was leaking delalloc reservations when\niov_iter_copy_from_user_atomic returned zero.  The looping above would\nresult in the entire filesystem running out of delalloc reservations and\nconstantly trying to flush things to disk.\n\n3) btrfs_file_write will lock down page cache pages, make sure\nany writeback is finished, do the copy_from_user and then release them.\nBefore the loop runs we check the first and last pages in the write to\nsee if they are only being partially modified.  If the start or end of\nthe write isn\u0027t aligned, we make sure the corresponding pages are\nup to date so that we don\u0027t introduce garbage into the file.\n\nWith the copy_from_user changes, we\u0027re allowing the VM to reclaim the\npages after a partial update from copy_from_user, but we\u0027re not\nmaking sure the page cache page is up to date when we loop around to\nresume the write.\n\nWe deal with this by pushing the up to date checks down into the page\nprep code.  This fits better with how the rest of file_write works.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nReported-by: Mitch Harder \u003cmitch.harder@sabayonlinux.org\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "ae0e47f02aaedbfdd5e4bec73f79b714d758223d",
      "tree": "348f99385f42a2f698bddb4ced3e6c472e5d68cc",
      "parents": [
        "ddf12286951aee1e7763112cf26629de3fabe6ae"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Tue Mar 01 15:06:02 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Mar 01 15:47:58 2011 +0100"
      },
      "message": "Remove one to many n\u0027s in a word\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4660ba63f1c4e07c20a435e084f12ba48a82bd2b",
      "tree": "494973a1dd4102eede20298f478574801af31b86",
      "parents": [
        "958ede7f1b72b29cd0d29ec88ee2bcb4c87dab61",
        "ec29ed5b407d618a8128f5942aade9e1758aa14b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 14:03:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 14:03:39 2011 -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 fiemap bugs with delalloc\n  Btrfs: set FMODE_EXCL in btrfs_device-\u003emode\n  Btrfs: make btrfs_rm_device() fail gracefully\n  Btrfs: Avoid accessing unmapped kernel address\n  Btrfs: Fix BTRFS_IOC_SUBVOL_SETFLAGS ioctl\n  Btrfs: allow balance to explicitly allocate chunks as it relocates\n  Btrfs: put ENOSPC debugging under a mount option\n"
    },
    {
      "commit": "ec29ed5b407d618a8128f5942aade9e1758aa14b",
      "tree": "19b3c13f15504cf9de116f0bd55045ebcf0d0cfc",
      "parents": [
        "fb01aa85b8b29c1a4e1f4a28ea54175de6bf7559"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 23 16:23:20 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 23 16:23:20 2011 -0500"
      },
      "message": "Btrfs: fix fiemap bugs with delalloc\n\nThe Btrfs fiemap code wasn\u0027t properly returning delalloc extents,\nso applications that trust fiemap to decide if there are holes in the\nfile see holes instead of delalloc.\n\nThis reworks the btrfs fiemap code, adding a get_extent helper that\nsearches for delalloc ranges and also adding a helper for extent_fiemap\nthat skips past holes in the file.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fb01aa85b8b29c1a4e1f4a28ea54175de6bf7559",
      "tree": "af7fc0623980c03c3f808f9ec157341d8549133d",
      "parents": [
        "9b3517e9136824346227b7b04f8f7ea1f3a726cc"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Feb 15 18:12:57 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 16:34:00 2011 -0500"
      },
      "message": "Btrfs: set FMODE_EXCL in btrfs_device-\u003emode\n\nThis fixes a bug introduced in d4d77629, where the device added online\n(and therefore initialized via btrfs_init_new_device()) would be left\nwith the positive bdev-\u003ebd_holders after unmount.  Since d4d77629 we no\nlonger OR FMODE_EXCL explicitly on blkdev_put(), set it in\nbtrfs_device-\u003emode.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9b3517e9136824346227b7b04f8f7ea1f3a726cc",
      "tree": "b317f5ed612c5adae478a7acd48f6d8096a1656d",
      "parents": [
        "ca9b688c1c9a21635cfc8af8b68565b154185196"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Feb 15 18:14:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:37:59 2011 -0500"
      },
      "message": "Btrfs: make btrfs_rm_device() fail gracefully\n\nIf shrinking done as part of the online device removal fails add that\ndevice back to the allocation list and increment the rw_devices counter.\nThis fixes two bugs:\n\n1) we could have a perfectly good device out of alloc list for no good\nreason;\n\n2) in the btrfs consisting of two devices, failure in btrfs_rm_device()\ncould lead to a situation where it was impossible to remove any of the\ndevices because of the \"unable to remove the only writeable device\"\nerror.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ca9b688c1c9a21635cfc8af8b68565b154185196",
      "tree": "bfc9eed8a9099503645b467733707246b246ed19",
      "parents": [
        "b4dc2b8c694ead005b828f5fb7fa1134db5b6275"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 16 06:06:41 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:37:58 2011 -0500"
      },
      "message": "Btrfs: Avoid accessing unmapped kernel address\n\nWhen decompressing a chunk of data, we\u0027ll copy the data out to\na working buffer if the data is stored in more than one page,\notherwise we\u0027ll use the mapped page directly to avoid memory\ncopy.\n\nIn the latter case, we\u0027ll end up accessing the kernel address\nafter we\u0027ve unmapped the page in a corner case.\n\nReported-by: Juan Francisco Cantero Hurtado \u003ciam@juanfra.info\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4dc2b8c694ead005b828f5fb7fa1134db5b6275",
      "tree": "ba01c2bb5381ab9a34c4152ed4dd83c1797f780c",
      "parents": [
        "c87f08ca44e83b2c8d28f63f9c33f3a270a04bbe"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 16 06:06:34 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:37:58 2011 -0500"
      },
      "message": "Btrfs: Fix BTRFS_IOC_SUBVOL_SETFLAGS ioctl\n\n- Check user-specified flags correctly\n- Check the inode owership\n- Search root item in root tree but not fs tree\n\nReported-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c87f08ca44e83b2c8d28f63f9c33f3a270a04bbe",
      "tree": "05cebe37380861a89faaea50c1ccb360ffb0f975",
      "parents": [
        "91435650c233b93e0da389db74f4b2c11c5ad2d4"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 13:57:04 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:28:47 2011 -0500"
      },
      "message": "Btrfs: allow balance to explicitly allocate chunks as it relocates\n\nBtrfs device shrinking and balancing ends up reallocating all the blocks\nin order to allow COW to move them to new destinations.  It is somewhat\nawkward in terms of ENOSPC because most of the enospc code is built\naround the idea that some operation on a reference counted tree triggers\nallocations in the non-reference counted trees.\n\nThis commit changes the balancing code to deal with enospc by trying to\nallocate a new chunk.  If that allocation succeeds, we go ahead and\nretry whatever failed due to enospc.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "91435650c233b93e0da389db74f4b2c11c5ad2d4",
      "tree": "c4f8fef1348a0ac188dca47020d86b206ed5d41f",
      "parents": [
        "c26a920373a983b52223eed5a13b97404d8b4158"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 13:10:41 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:28:36 2011 -0500"
      },
      "message": "Btrfs: put ENOSPC debugging under a mount option\n\nENOSPC in btrfs is getting to the point where the extra debugging isn\u0027t\nrequired.  I\u0027ve put it under mount -o enospc_debug just in case someone\nis having difficult problems.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "007a14af2649c9ac77f38cd23469518ffb8b355a",
      "tree": "d6bc4477c11d7c8fd892f059acf0fc1ed547ba52",
      "parents": [
        "261cd298a8c363d7985e3482946edb4bfedacf98",
        "c26a920373a983b52223eed5a13b97404d8b4158"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 08:00:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 08:00:35 2011 -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 return value of alloc_extent_map()\n  Btrfs - Fix memory leak in btrfs_init_new_device()\n  btrfs: prevent heap corruption in btrfs_ioctl_space_info()\n  Btrfs: Fix balance panic\n  Btrfs: don\u0027t release pages when we can\u0027t clear the uptodate bits\n  Btrfs: fix page-\u003eprivate races\n"
    },
    {
      "commit": "c26a920373a983b52223eed5a13b97404d8b4158",
      "tree": "a7f76fe1b0cecbc712f0b152ff537805f126b113",
      "parents": [
        "67100f255dba284bcbb5ce795355dad1cff35658"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Feb 14 00:45:29 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:21:37 2011 -0500"
      },
      "message": "Btrfs: check return value of alloc_extent_map()\n\nI add the check on the return value of alloc_extent_map() to several places.\nIn addition, alloc_extent_map() returns only the address or NULL.\nTherefore, check by IS_ERR() is unnecessary. So, I remove IS_ERR() checking.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "67100f255dba284bcbb5ce795355dad1cff35658",
      "tree": "f343a1c2bb24b4a4cc965933b41e6d0271fe05fb",
      "parents": [
        "51788b1bdd0d68345bab0af4301e7fa429277228"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Sun Feb 06 19:58:21 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:21:31 2011 -0500"
      },
      "message": "Btrfs - Fix memory leak in btrfs_init_new_device()\n\nMemory allocated by calling kstrdup() should be freed.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "51788b1bdd0d68345bab0af4301e7fa429277228",
      "tree": "52895ef3c348c2dfa1f1ef2c4557d9f7515dfc3b",
      "parents": [
        "6848ad6461e551849ba3c32d945d4f45e96453a6"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Mon Feb 14 16:04:23 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:04:23 2011 -0500"
      },
      "message": "btrfs: prevent heap corruption in btrfs_ioctl_space_info()\n\nCommit bf5fc093c5b625e4259203f1cee7ca73488a5620 refactored\nbtrfs_ioctl_space_info() and introduced several security issues.\n\nspace_args.space_slots is an unsigned 64-bit type controlled by a\npossibly unprivileged caller.  The comparison as a signed int type\nallows providing values that are treated as negative and cause the\nsubsequent allocation size calculation to wrap, or be truncated to 0.\nBy providing a size that\u0027s truncated to 0, kmalloc() will return\nZERO_SIZE_PTR.  It\u0027s also possible to provide a value smaller than the\nslot count.  The subsequent loop ignores the allocation size when\ncopying data in, resulting in a heap overflow or write to ZERO_SIZE_PTR.\n\nThe fix changes the slot count type and comparison typecast to u64,\nwhich prevents truncation or signedness errors, and also ensures that we\ndon\u0027t copy more data than we\u0027ve allocated in the subsequent loop.  Note\nthat zero-size allocations are no longer possible since there is already\nan explicit check for space_args.space_slots being 0 and truncation of\nthis value is no longer an issue.\n\nSigned-off-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6848ad6461e551849ba3c32d945d4f45e96453a6",
      "tree": "86ab53a68e0b3181594808b43ef9fec333ea61f2",
      "parents": [
        "e3f24cc521cb7ba60ac137abd1939e4e03435e80"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.z.yan@linux.intel.com",
        "time": "Mon Feb 14 16:00:03 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:00:03 2011 -0500"
      },
      "message": "Btrfs: Fix balance panic\n\nMark the cloned backref_node as checked in clone_backref_node()\n\nSigned-off-by: Yan, Zheng \u003czheng.z.yan@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e3f24cc521cb7ba60ac137abd1939e4e03435e80",
      "tree": "e054136e5b2cf6a2bc9a62dd616393676cd316dd",
      "parents": [
        "eb14ab8ed24a0405fd056068b28c33a1cd846024"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 12:52:08 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 13:04:01 2011 -0500"
      },
      "message": "Btrfs: don\u0027t release pages when we can\u0027t clear the uptodate bits\n\nBtrfs tracks uptodate state in an rbtree as well as in the\npage bits.  This is supposed to enable us to use block sizes other than\nthe page size, but there are a few parts still missing before that\ncompletely works.\n\nBut, our readpage routine trusts this additional range based tracking\nof uptodateness, much in the same way the buffer head up to date bits\nare trusted for the other filesystems.\n\nThe problem is that sometimes we need to allocate memory in order to\nsplit records in the rbtree, even when we are just clearing bits.  This\ncan be difficult when our clearing function is called GFP_ATOMIC, which\ncan happen in the releasepage path.\n\nSo, what happens today looks like this:\n\nreleasepage called with GFP_ATOMIC\nbtrfs_releasepage calls clear_extent_bit\nclear_extent_bit fails to allocate ram, leaving the up to date bit set\nbtrfs_releasepage returns success\n\nThe end result is the page being gone, but btrfs thinking the range is\nup to date.   Later on if someone tries to read that same page, the\nbtrfs readpage code will return immediately thinking the page is already\nup to date.\n\nThis commit fixes things to fail the releasepage when we can\u0027t clear the\nextent state bits.  It covers both data pages and metadata tree blocks.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "eb14ab8ed24a0405fd056068b28c33a1cd846024",
      "tree": "1451cad453a3ff66bc5369dc83daf7e3a50c4897",
      "parents": [
        "3a90983dbdcb2f4f48c0d771d8e5b4d88f27fae6"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 10 12:35:00 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 13:03:52 2011 -0500"
      },
      "message": "Btrfs: fix page-\u003eprivate races\n\nThere is a race where btrfs_releasepage can drop the\npage-\u003eprivate contents just as alloc_extent_buffer is setting\nup pages for metadata.  Because of how the Btrfs page flags work,\nthis results in us skipping the crc on the page during IO.\n\nThis patch sovles the race by waiting until after the extent buffer\nis inserted into the radix tree before it sets page private.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cb5520f02c010e3cb974b9ac06f30aafa2eebc38",
      "tree": "8342407cebb6420f04f46694b8d812552a14cb49",
      "parents": [
        "eee4da2cef8e2dc2b15066e9ebb5b2ff63396eb3",
        "3a90983dbdcb2f4f48c0d771d8e5b4d88f27fae6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 07 14:06:18 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 07 14:06:18 2011 -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: (33 commits)\n  Btrfs: Fix page count calculation\n  btrfs: Drop __exit attribute on btrfs_exit_compress\n  btrfs: cleanup error handling in btrfs_unlink_inode()\n  Btrfs: exclude super blocks when we read in block groups\n  Btrfs: make sure search_bitmap finds something in remove_from_bitmap\n  btrfs: fix return value check of btrfs_start_transaction()\n  btrfs: checking NULL or not in some functions\n  Btrfs: avoid uninit variable warnings in ordered-data.c\n  Btrfs: catch errors from btrfs_sync_log\n  Btrfs: make shrink_delalloc a little friendlier\n  Btrfs: handle no memory properly in prepare_pages\n  Btrfs: do error checking in btrfs_del_csums\n  Btrfs: use the global block reserve if we cannot reserve space\n  Btrfs: do not release more reserved bytes to the global_block_rsv than we need\n  Btrfs: fix check_path_shared so it returns the right value\n  btrfs: check return value of btrfs_start_ioctl_transaction() properly\n  btrfs: fix return value check of btrfs_join_transaction()\n  fs/btrfs/inode.c: Add missing IS_ERR test\n  btrfs: fix missing break in switch phrase\n  btrfs: fix several uncheck memory allocations\n  ...\n"
    },
    {
      "commit": "3a90983dbdcb2f4f48c0d771d8e5b4d88f27fae6",
      "tree": "3179f5e834e482cc3f782e709a53b08591416c76",
      "parents": [
        "8e4eef7a60eeca0fe7503e5cbd3b24ff4941c732"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.z.yan@linux.intel.com",
        "time": "Tue Jan 18 13:34:40 2011 +0800"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 07 14:13:51 2011 -0500"
      },
      "message": "Btrfs: Fix page count calculation\n\ntake offset of start position into account when calculating page count.\n\nSigned-off-by: Yan, Zheng \u003czheng.z.yan@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8e4eef7a60eeca0fe7503e5cbd3b24ff4941c732",
      "tree": "63c578ff52407f073f89342780a48c95b17ac1ea",
      "parents": [
        "554233a6e0e8557e8e81e54cc70628d101291122"
      ],
      "author": {
        "name": "Alexey Charkov",
        "email": "alchark@gmail.com",
        "time": "Wed Feb 02 21:15:35 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Feb 06 07:19:19 2011 -0500"
      },
      "message": "btrfs: Drop __exit attribute on btrfs_exit_compress\n\nAs this function is called in some error paths while not\nremoving the module, the __exit attribute prevents the kernel\nimage from linking when btrfs is compiled in statically.\n\nSigned-off-by: Alexey Charkov \u003calchark@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "554233a6e0e8557e8e81e54cc70628d101291122",
      "tree": "9cd7c8fe5dddbdd7255192468daa9cc9a48ea208",
      "parents": [
        "3c14874acc71180553fb5aba528e3cf57c5b958b"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Feb 03 03:16:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Feb 06 07:17:45 2011 -0500"
      },
      "message": "btrfs: cleanup error handling in btrfs_unlink_inode()\n\nWhen btrfs_alloc_path() fails, btrfs_free_path() need not be called.\nTherefore, it changes the branch ahead.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3c14874acc71180553fb5aba528e3cf57c5b958b",
      "tree": "6fe93b4c4d0048cbabf6b7887f33020fd89f46b1",
      "parents": [
        "13dbc08987f25d9dba488a34b44b43e3844b027c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Feb 02 15:53:47 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Feb 06 07:17:44 2011 -0500"
      },
      "message": "Btrfs: exclude super blocks when we read in block groups\n\nThis has been resulting in a BUT_ON(ret) after btrfs_reserve_extent in\nbtrfs_cow_file_range.  The reason is we don\u0027t actually calculate the bytes_super\nfor a block group until we go to cache it, which means that the space_info can\nhand out reservations for space that it doesn\u0027t actually have, and we can run\nout of data space.  This is also a problem if you are using space caching since\nwe don\u0027t ever calculate bytes_super for the block groups.  So instead everytime\nwe read a block group call exclude_super_stripes, which calculates the\nbytes_super for the block group so it can be left out of the space_info.  Then\nwhenever caching completes we just call free_excluded_extents so that the super\nexcluded extents are freed up.  Also if we are unmounting and we hit any block\ngroups that haven\u0027t been cached we still need to call free_excluded_extents to\nmake sure things are cleaned up properly.  Thanks,\n\nReported-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "13dbc08987f25d9dba488a34b44b43e3844b027c",
      "tree": "f1ccabbf2c8bc676be0dacacc3da86c62cf1b19f",
      "parents": [
        "98d5dc13e7e74b77ca3b4c3cbded9f48d2dbbbb7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Feb 03 02:39:52 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Feb 06 07:13:12 2011 -0500"
      },
      "message": "Btrfs: make sure search_bitmap finds something in remove_from_bitmap\n\nWhen we\u0027re cleaning up the tree log we need to be able to remove free space from\nthe block group.  The problem is if that free space spans bitmaps we would not\nfind the space since we\u0027re looking for too many bytes.  So make sure the amount\nof bytes we search for is limited to either the number of bytes we want, or the\nnumber of bytes left in the bitmap.  This was tested by a user who was hitting\nthe BUG() after search_bitmap.  With this patch he can now mount his fs.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    }
  ],
  "next": "2a7dba391e5628ad665ce84ef9a6648da541ebab"
}
