)]}'
{
  "log": [
    {
      "commit": "914ee295af418e936ec20a08c1663eaabe4cd07a",
      "tree": "2e880ea913b8cbadf22b2288b5c278c2e5eadb60",
      "parents": [
        "f106e82caaa0d943e47cacc184f5b40d538e0044"
      ],
      "author": {
        "name": "Xin Zhong",
        "email": "xin.zhong@intel.com",
        "time": "Thu Dec 09 09:30:14 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 10 16:29:10 2010 -0500"
      },
      "message": "Btrfs: pwrite blocked when writing from the mmaped buffer of the same page\n\nThis problem is found in meego testing:\nhttp://bugs.meego.com/show_bug.cgi?id\u003d6672\nA file in btrfs is mmaped and the mmaped buffer is passed to pwrite to write to the same page\nof the same file. In btrfs_file_aio_write(), the pages is locked by prepare_pages(). So when\nbtrfs_copy_from_user() is called, page fault happens and the same page needs to be locked again\nin filemap_fault(). The fix is to move iov_iter_fault_in_readable() before prepage_pages() to make page\nfault happen before pages are locked. And also disable page fault in critical region in\nbtrfs_copy_from_user().\n\nReviewed-by: Yan, Zheng\u003czheng.z.yan@intel.com\u003e\nSigned-off-by: Zhong, Xin \u003cxin.zhong@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f106e82caaa0d943e47cacc184f5b40d538e0044",
      "tree": "5e8b6c5e0b0b35c65ed509029cda85bd54a8aab8",
      "parents": [
        "75eaa0e22c055e38982df267d0f84cc510ba38bf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 07 01:51:26 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 10 16:29:10 2010 -0500"
      },
      "message": "Btrfs: Fix a crash when mounting a subvolume\n\nWe should drop dentry before deactivating the superblock, otherwise\nwe can hit this bug:\n\nBUG: Dentry f349a690{i\u003d100,n\u003d/} still in use (1) [unmount of btrfs loop1]\n...\n\nSteps to reproduce the bug:\n\n  # mount /dev/loop1 /mnt\n  # mkdir save\n  # btrfs subvolume snapshot /mnt save/snap1\n  # umount /mnt\n  # mount -o subvol\u003dsave/snap1 /dev/loop1 /mnt\n  (crash)\n\nReported-by: Michael Niederle \u003cmniederle@gmx.at\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "75eaa0e22c055e38982df267d0f84cc510ba38bf",
      "tree": "073828ec809c95dbae9368b7f83a3734dad82b45",
      "parents": [
        "24ae63656a165c870c0d69fcc8aac1dc35e25e34"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 10 00:36:28 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 10 16:29:10 2010 -0500"
      },
      "message": "Btrfs: fix sync subvol/snapshot creation\n\nWe were incorrectly taking the async path even for the sync ioctls by\npassing in \u0026transid unconditionally.\n\nThere\u0027s ample room for further cleanup here, but this keeps the fix simple.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "24ae63656a165c870c0d69fcc8aac1dc35e25e34",
      "tree": "8833bfeba51ef45e0acc42f3a23838f528e6a37e",
      "parents": [
        "84cd948cb11041f205242de457e680b9bb872a36"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.z.yan@linux.intel.com",
        "time": "Mon Dec 06 07:02:36 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 10 16:29:09 2010 -0500"
      },
      "message": "Btrfs: Fix page leak in compressed writeback path\n\n\"start + num_bytes \u003e\u003d actual_end\" can happen when compressed page writeback races\nwith file truncation. In that case we need unlock and release pages past the end\nof file.\n\nSigned-off-by: Yan, Zheng \u003czheng.z.yan@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "84cd948cb11041f205242de457e680b9bb872a36",
      "tree": "479ac0dc057044a8b399c8c32f1c78641bd33740",
      "parents": [
        "7e1fea731da8c1b5fcf5d8e157befd389b030760"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Dec 08 12:24:01 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 10 16:29:04 2010 -0500"
      },
      "message": "Btrfs: do not BUG if we fail to remove the orphan item for dead snapshots\n\nNot being able to delete an orphan item isn\u0027t a horrible thing.  The worst that\nhappens is the next time around we try and do the orphan cleanup and we can\u0027t\nfind the referenced object and just delete the item and move on.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7e1fea731da8c1b5fcf5d8e157befd389b030760",
      "tree": "85800034e3b0f8262dd51e128264bec5ce30aed2",
      "parents": [
        "b8399dee478db7939cd0d6fda8ecacddf2facd03"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Dec 08 12:22:34 2010 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 09 13:57:15 2010 -0500"
      },
      "message": "Btrfs: fixup return code for btrfs_del_orphan_item\n\nIf the orphan item doesn\u0027t exist, we return 1, which doesn\u0027t make any sense to\nthe callers.  Instead return -ENOENT if we didn\u0027t find the item.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "b8399dee478db7939cd0d6fda8ecacddf2facd03",
      "tree": "418a67d8d2de13739f3b14518917c8aaadafe3b8",
      "parents": [
        "2b20982e3154266106573beac2a4d4ba57a2789a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Dec 08 09:15:11 2010 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 09 13:57:13 2010 -0500"
      },
      "message": "Btrfs: do not do fast caching if we are allocating blocks for tree_root\n\nSince the fast caching uses normal tree locking, we can possibly deadlock if we\nget to the caching via a btrfs_search_slot() on the tree_root.  So just check to\nsee if the root we are on is the tree root, and just don\u0027t do the fast caching.\n\nReported-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "2b20982e3154266106573beac2a4d4ba57a2789a",
      "tree": "13539703ccb713385b4c7ff7eac508bb8f3b1e18",
      "parents": [
        "955256f2c3e25c94ad373c43fbc38d2ac8af2a71"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 03 13:17:53 2010 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 09 13:57:12 2010 -0500"
      },
      "message": "Btrfs: deal with space cache errors better\n\nCurrently if the space cache inode generation number doesn\u0027t match the\ngeneration number in the space cache header we will just fail to load the space\ncache, but we won\u0027t mark the space cache as an error, so we\u0027ll keep getting that\nerror each time somebody tries to cache that block group until we actually clear\nthe thing.  Fix this by marking the space cache as having an error so we only\nget the message once.  This patch also makes it so that we don\u0027t try and setup\nspace cache for a block group that isn\u0027t cached, since we won\u0027t be able to write\nit out anyway.  None of these problems are actual problems, they are just\nannoying and sub-optimal.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "955256f2c3e25c94ad373c43fbc38d2ac8af2a71",
      "tree": "f8a6074a34e988e613eb308d4aeb91fd8fb2e968",
      "parents": [
        "5a92bc88cef279261d3f138e25850c122df67045"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 19 09:41:10 2010 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Dec 09 13:57:10 2010 -0500"
      },
      "message": "Btrfs: fix use after free in O_DIRECT\n\nThis fixes a bug where we use dip after we have freed it.  Instead just use the\nfile_offset that was passed to the function.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "5a92bc88cef279261d3f138e25850c122df67045",
      "tree": "22bc186bda2d2a61343bed473c3e606b43a49a18",
      "parents": [
        "163cf09c2a0ee5cac6285f9347975bd1e97725da"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 29 09:49:11 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 29 09:49:11 2010 -0500"
      },
      "message": "Btrfs: don\u0027t use migrate page without CONFIG_MIGRATION\n\nFixes compile error\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "163cf09c2a0ee5cac6285f9347975bd1e97725da",
      "tree": "5a83cd42d57fcc4d92d12965b5eafdb472e89b02",
      "parents": [
        "450ba0ea06b6ed3612d27f2b7127a9de4160f285"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 28 19:56:33 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 28 19:56:33 2010 -0500"
      },
      "message": "Btrfs: deal with DIO bios that span more than one ordered extent\n\nThe new DIO bio splitting code has problems when the bio\nspans more than one ordered extent.  This will happen as the\ngeneric DIO code merges our get_blocks calls together into\na bigger single bio.\n\nThis fixes things by walking forward in the ordered extent\ncode finding all the overlapping ordered extents and completing them\nall at once.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "450ba0ea06b6ed3612d27f2b7127a9de4160f285",
      "tree": "2276ddbcb65d7656416cdce69432a5858b35c413",
      "parents": [
        "975f84fee2e8a77ee5f41bfe7c5682bf29366b10"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 19 14:59:15 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:37:51 2010 -0500"
      },
      "message": "Btrfs: setup blank root and fs_info for mount time\n\nThere is a problem with how we use sget, it searches through the list of supers\nattached to the fs_type looking for a super with the same fs_devices as what\nwe\u0027re trying to mount.  This depends on sb-\u003es_fs_info being filled, but we don\u0027t\nfill that in until we get to btrfs_fill_super, so we could hit supers on the\nfs_type super list that have a null s_fs_info.  In order to fix that we need to\ngo ahead and setup a blank root with a blank fs_info to hold fs_devices, that\nway our test will work out right and then we can set s_fs_info in\nbtrfs_set_super, and then open_ctree will simply use our pre-allocated root and\nfs_info when setting everything up.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "975f84fee2e8a77ee5f41bfe7c5682bf29366b10",
      "tree": "e7e20e775fa4c126273c28d0c7f0ee05b5bb7f5b",
      "parents": [
        "619c8c763928841b1112e1d417f88bc1d44daecb"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 23 19:36:57 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:37:50 2010 -0500"
      },
      "message": "Btrfs: fix fiemap\n\nThere are two big problems currently with FIEMAP\n\n1) We return extents for holes.  This isn\u0027t supposed to happen, we just don\u0027t\nreturn extents for holes and then userspace interprets the lack of an extent as\na hole.\n\n2) We sometimes don\u0027t set FIEMAP_EXTENT_LAST properly.  This is because we wait\nto see a EXTENT_FLAG_VACANCY flag on the em, but this won\u0027t happen if say we ask\nfiemap to map up to the last extent in a file, and there is nothing but holes up\nto the i_size.  To fix this we need to lookup the last extent in this file and\nsave the logical offset, so if we happen to try and map that extent we can be\nsure to set FIEMAP_EXTENT_LAST.\n\nWith this patch we now pass xfstest 225, which we never have before.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "619c8c763928841b1112e1d417f88bc1d44daecb",
      "tree": "23fc73cf043faac2cdb15a0b22e6e9e29a69797a",
      "parents": [
        "bc1cbf1f86aa2501efa9ca637c736fce6bcc4b1d"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Mon Nov 22 02:21:38 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:37:44 2010 -0500"
      },
      "message": "Btrfs - fix race between btrfs_get_sb() and umount\n\nWhen mounting a btrfs file system btrfs_test_super() may attempt to\nuse sb-\u003es_fs_info, the btrfs root, of a super block that is going away\nand that has had the btrfs root set to NULL in its -\u003eput_super(). But\nif the super block is going away it cannot be an existing super block\nso we can return false in this case.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bc1cbf1f86aa2501efa9ca637c736fce6bcc4b1d",
      "tree": "af17fcd439f67eafc534e894168b397c563e2366",
      "parents": [
        "0ed42a63f3edb144b091d9528401fce95c3c4d8d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 23 19:50:59 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:00:07 2010 -0500"
      },
      "message": "Btrfs: update inode ctime when using links\n\nCurrently we fail xfstest 236 because we\u0027re not updating the inode ctime on\nlink.  This is a simple fix, and makes it so we pass 236 now.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0ed42a63f3edb144b091d9528401fce95c3c4d8d",
      "tree": "d98573473d916eecbeb949d45f8ac9b530440080",
      "parents": [
        "55a61d1d06a3dc443d0db8aaa613365dcb83b98a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Nov 22 18:55:39 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:00:07 2010 -0500"
      },
      "message": "Btrfs: make sure new inode size is ok in fallocate\n\nWe have been failing xfstest 228 forever, because we don\u0027t check to make sure\nthe new inode size is acceptable as far as RLIMIT is concerned.  Just check to\nmake sure it\u0027s ok to create a inode with this new size and error out if not.\nWith this patch we now pass 228.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "55a61d1d06a3dc443d0db8aaa613365dcb83b98a",
      "tree": "39f59ec200674081b086f9e25393401d08848ffd",
      "parents": [
        "45f49bce99d008d6864a20324548f35936ba46fb"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Nov 22 18:50:32 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 12:59:16 2010 -0500"
      },
      "message": "Btrfs: fix typo in fallocate to make it honor actual size\n\nThere is a typo in __btrfs_prealloc_file_range() where we set the i_size to\nactual_len/cur_offset, and then just set it to cur_offset again, and do the same\nwith btrfs_ordered_update_i_size().  This fixes it back to keeping i_size in a\nlocal variable and then updating i_size properly.  Tested this with\n\nxfs_io -F -f -c \"falloc 0 1\" -c \"pwrite 0 1\" foo\n\nstat\u0027ing foo gives us a size of 1 instead of 4096 like it was.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "45f49bce99d008d6864a20324548f35936ba46fb",
      "tree": "9bae14a5fa0b68573758dcc1aaaa176f4a62c6b8",
      "parents": [
        "a1b075d28da563c5e2325577f282c042494254ba"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:27:44 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:27:44 2010 -0500"
      },
      "message": "Btrfs: avoid NULL pointer deref in try_release_extent_buffer\n\nIf we fail to find a pointer in the radix tree, don\u0027t try\nto deref the NULL one we do have.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a1b075d28da563c5e2325577f282c042494254ba",
      "tree": "0699a0490e11efb6fc2b1a2e99fa6419e9e568fa",
      "parents": [
        "495e86779f4f319828bc10dfc0c9ac2161868077"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 19 20:36:11 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:10 2010 -0500"
      },
      "message": "Btrfs: make btrfs_add_nondir take parent inode as an argument\n\nEverybody who calls btrfs_add_nondir just passes in the dentry of the new file\nand then dereference dentry-\u003ed_parent-\u003ed_inode, but everybody who calls\nbtrfs_add_nondir() are already passed the parent\u0027s inode.  So instead of\ndereferencing dentry-\u003ed_parent, just make btrfs_add_nondir take the dir inode as\nan argument and pass that along so we don\u0027t have to worry about d_parent.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "495e86779f4f319828bc10dfc0c9ac2161868077",
      "tree": "62729f2b65c9565fadb551bd8d343d6c57d7cb85",
      "parents": [
        "6a912213046ecb6511fdf35531a0c7de3de963c9"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 19 20:36:10 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:09 2010 -0500"
      },
      "message": "Btrfs: hold i_mutex when calling btrfs_log_dentry_safe\n\nSince we walk up the path logging all of the parts of the inode\u0027s path, we need\nto hold i_mutex to make sure that the inode is not renamed while we\u0027re logging\neverything.  btrfs_log_dentry_safe does dget_parent and all of that jazz, but we\nmay get unexpected results if the rename changes the inode\u0027s location while\nwe\u0027re higher up the path logging those dentries, so do this for safety reasons.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6a912213046ecb6511fdf35531a0c7de3de963c9",
      "tree": "b745a07d0ad5c5bedf68c55739200093f9d96c1b",
      "parents": [
        "76195853903ca613ba722203db9b747d70478fc7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Nov 20 09:48:00 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:09 2010 -0500"
      },
      "message": "Btrfs: use dget_parent where we can UPDATED\n\nThere are lots of places where we do dentry-\u003ed_parent-\u003ed_inode without holding\nthe dentry-\u003ed_lock.  This could cause problems with rename.  So instead we need\nto use dget_parent() and hold the reference to the parent as long as we are\ngoing to use it\u0027s inode and then dput it at the end.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nCc: raven@themaw.net\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "76195853903ca613ba722203db9b747d70478fc7",
      "tree": "d3c7af7f141566a1ca2acfdf1efccd374b5e349f",
      "parents": [
        "2ede0daf01549cecf4bb0962c46dc47382047523"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 19 02:18:02 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:08 2010 -0500"
      },
      "message": "Btrfs: fix more ESTALE problems with NFS\n\nWhen creating new inodes we don\u0027t setup inode-\u003ei_generation.  So if we generate\nan fh with a newly created inode we save the generation of 0, but if we flush\nthe inode to disk and have to read it back when getting the inode on the server\nwe\u0027ll have the right i_generation, so gens wont match and we get ESTALE.  This\npatch properly sets inode-\u003ei_generation when we create the new inode and now I\u0027m\nno longer getting ESTALE.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2ede0daf01549cecf4bb0962c46dc47382047523",
      "tree": "3d02b4445b8657ac402a64772dd80ca517967557",
      "parents": [
        "0410c94aff109c02b6774a0ed00114987cda7ce5"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Nov 17 18:54:54 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:08 2010 -0500"
      },
      "message": "Btrfs: handle NFS lookups properly\n\nPeople kept reporting NFS issues, specifically getting ESTALE alot.  I figured\nout how to reproduce the problem\n\nSERVER\nmkfs.btrfs /dev/sda1\nmount /dev/sda1 /mnt/btrfs-test\n\u003cadd /mnt/btrfs-test to /etc/exports\u003e\nbtrfs subvol create /mnt/btrfs-test/foo\nservice nfs start\n\nCLIENT\nmount server:/mnt/btrfs /mnt/test\ncd /mnt/test/foo\nls\n\nSERVER\necho 3 \u003e /proc/sys/vm/drop_caches\n\nCLIENT\nls\t\t\t\u003c-- get an ESTALE here\n\nThis is because the standard way to lookup a name in nfsd is to use readdir, and\nwhat it does is do a readdir on the parent directory looking for the inode of\nthe child.  So in this case the parent being / and the child being foo.  Well\nsubvols all have the same inode number, so doing a readdir of / looking for\ninode 256 will return \u0027.\u0027, which obviously doesn\u0027t match foo.  So instead we\nneed to have our own .get_name so that we can find the right name.\n\nOur .get_name will either lookup the inode backref or the root backref,\nwhichever we\u0027re looking for, and return the name we find.  Running the above\nreproducer with this patch results in everything acting the way its supposed to.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0410c94aff109c02b6774a0ed00114987cda7ce5",
      "tree": "d36f25febc48d836420acfa93f2b4b97b63c9ceb",
      "parents": [
        "f209561ad83c5ffd561dc4bc3a3c90b704fe9231"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "mk@lab.zgora.pl",
        "time": "Sat Nov 20 12:03:07 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:07 2010 -0500"
      },
      "message": "btrfs: make 1-bit signed fileds unsigned\n\nFixes these sparse warnings:\nfs/btrfs/ctree.h:811:17: error: dubious one-bit signed bitfield\nfs/btrfs/ctree.h:812:20: error: dubious one-bit signed bitfield\nfs/btrfs/ctree.h:813:19: error: dubious one-bit signed bitfield\n\nSigned-off-by: Mariusz Kozlowski \u003cmk@lab.zgora.pl\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f209561ad83c5ffd561dc4bc3a3c90b704fe9231",
      "tree": "9241e4251c8e73cdbb8b9e4abf279afd61694a8d",
      "parents": [
        "5f3888ff6f0b9dce60705765752b788a92557644"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Nov 19 02:05:24 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:07 2010 -0500"
      },
      "message": "btrfs: Show device attr correctly for symlinks\n\nSymlinks and files of other types show different device numbers, though\nthey are on the same partition:\n\n $ touch tmp; ln -s tmp tmp2; stat tmp tmp2\n   File: `tmp\u0027\n   Size: 0         \tBlocks: 0          IO Block: 4096   regular empty file\n Device: 15h/21d\tInode: 984027      Links: 1\n --- snip ---\n   File: `tmp2\u0027 -\u003e `tmp\u0027\n   Size: 3         \tBlocks: 0          IO Block: 4096   symbolic link\n Device: 13h/19d\tInode: 984028      Links: 1\n\nReported-by: Toke Høiland-Jørgensen \u003ctoke@toke.dk\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5f3888ff6f0b9dce60705765752b788a92557644",
      "tree": "c7745507d85f68b188f0c9b11cc6f783f0d0cb86",
      "parents": [
        "2a6b8daedaf3682bed3fc1d4e2390491f6e19c49"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Nov 19 01:36:34 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:06 2010 -0500"
      },
      "message": "btrfs: Set file size correctly in file clone\n\nSet src_offset \u003d 0, src_length \u003d 20K, dest_offset \u003d 20K. And the\noriginal filesize of the dest file \u0027file2\u0027 is 30K:\n\n  # ls -l /mnt/file2\n  -rw-r--r-- 1 root root 30720 Nov 18 16:42 /mnt/file2\n\nNow clone file1 to file2, the dest file should be 40K, but it\nstill shows 30K:\n\n  # ls -l /mnt/file2\n  -rw-r--r-- 1 root root 30720 Nov 18 16:42 /mnt/file2\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2a6b8daedaf3682bed3fc1d4e2390491f6e19c49",
      "tree": "76f418aa17a1e3e690d5c1fb164e0c4b96ca1e8d",
      "parents": [
        "0de90876c6cb774d4a424dafc1fc9ec50071b81b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Nov 19 01:36:10 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:05 2010 -0500"
      },
      "message": "btrfs: Check if dest_offset is block-size aligned before cloning file\n\nWe\u0027ve done the check for src_offset and src_length, and We should\nalso check dest_offset, otherwise we\u0027ll corrupt the destination\nfile:\n\n  (After cloning file1 to file2 with unaligned dest_offset)\n  # cat /mnt/file2\n  cat: /mnt/file2: Input/output error\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0de90876c6cb774d4a424dafc1fc9ec50071b81b",
      "tree": "a3edae0a3873c959a94f45ee035de83bb85c379c",
      "parents": [
        "6f33434850ed87dc5e56b60ebbad3d3cf405f296"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 19 13:40:41 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:05 2010 -0500"
      },
      "message": "Btrfs: handle the space_cache option properly\n\nWhen I added the clear_cache option I screwed up and took the break out of\nthe space_cache case statement, so whenever you mount with space_cache you also\nget clear_cache, which does you no good if you say set space_cache in fstab so\nit always gets set.  This patch adds the break back in properly.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6f33434850ed87dc5e56b60ebbad3d3cf405f296",
      "tree": "e70433c2c1fe59180bb8a92341f73931eff7ddb0",
      "parents": [
        "e65e1535542931e51189832264cd282e5899e4b9"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Fri Nov 12 23:17:56 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:04 2010 -0500"
      },
      "message": "btrfs: Fix early enospc because \u0027unused\u0027 calculated with wrong sign.\n\n\u0027unused\u0027 calculated with wrong sign in reserve_metadata_bytes().\nThis might have lead to unwanted over-reservations.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e65e1535542931e51189832264cd282e5899e4b9",
      "tree": "cc3cda0f658cad9f69c351d0735150958a1b0147",
      "parents": [
        "88f794ede7fadd4b63135b94d1561c1f2d5eb5f5"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon Nov 22 03:04:43 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:04 2010 -0500"
      },
      "message": "btrfs: fix panic caused by direct IO\n\nbtrfs paniced when we write \u003e64KB data by direct IO at one time.\n\nReproduce steps:\n # mkfs.btrfs /dev/sda5 /dev/sda6\n # mount /dev/sda5 /mnt\n # dd if\u003d/dev/zero of\u003d/mnt/tmpfile bs\u003d100K count\u003d1 oflag\u003ddirect\n\nThen btrfs paniced:\nmapping failed logical 1103155200 bio len 69632 len 12288\n------------[ cut here ]------------\nkernel BUG at fs/btrfs/volumes.c:3010!\n[SNIP]\nPid: 1992, comm: btrfs-worker-0 Not tainted 2.6.37-rc1 #1 D2399/PRIMERGY\nRIP: 0010:[\u003cffffffffa03d1462\u003e]  [\u003cffffffffa03d1462\u003e] btrfs_map_bio+0x202/0x210 [btrfs]\n[SNIP]\nCall Trace:\n [\u003cffffffffa03ab3eb\u003e] __btrfs_submit_bio_done+0x1b/0x20 [btrfs]\n [\u003cffffffffa03a35ff\u003e] run_one_async_done+0x9f/0xb0 [btrfs]\n [\u003cffffffffa03d3d20\u003e] run_ordered_completions+0x80/0xc0 [btrfs]\n [\u003cffffffffa03d45a4\u003e] worker_loop+0x154/0x5f0 [btrfs]\n [\u003cffffffffa03d4450\u003e] ? worker_loop+0x0/0x5f0 [btrfs]\n [\u003cffffffffa03d4450\u003e] ? worker_loop+0x0/0x5f0 [btrfs]\n [\u003cffffffff81083216\u003e] kthread+0x96/0xa0\n [\u003cffffffff8100cec4\u003e] kernel_thread_helper+0x4/0x10\n [\u003cffffffff81083180\u003e] ? kthread+0x0/0xa0\n [\u003cffffffff8100cec0\u003e] ? kernel_thread_helper+0x0/0x10\n\nWe fix this problem by splitting bios when we submit bios.\n\nReported-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nTested-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "88f794ede7fadd4b63135b94d1561c1f2d5eb5f5",
      "tree": "04e4fede4aa520bd4dfb7de7ab28f5ad38d215cc",
      "parents": [
        "0c56fa9662927354255f2f64617d1de61fc03db9"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon Nov 22 03:02:55 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:03 2010 -0500"
      },
      "message": "btrfs: cleanup duplicate bio allocating functions\n\nextent_bio_alloc() and compressed_bio_alloc() are similar, cleanup\nsimilar source code.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0c56fa9662927354255f2f64617d1de61fc03db9",
      "tree": "d3e4afe5596c6ac844b8f84fbb5cd89c9a8d0cf8",
      "parents": [
        "784b4e29a26617589edd290dd2919735e190c06e"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon Nov 22 03:01:39 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:02 2010 -0500"
      },
      "message": "btrfs: fix free dip and dip-\u003ecsums twice\n\nbio_endio() will free dip and dip-\u003ecsums, so dip and dip-\u003ecsums twice will\nbe freed twice. Fix it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "784b4e29a26617589edd290dd2919735e190c06e",
      "tree": "1c1806afb3aa5a7f82b272b8b38dc1e13e45d16b",
      "parents": [
        "6418c96107a2b399848bb8cfc6e29f11ca74fb94"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:20:49 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 21 22:26:02 2010 -0500"
      },
      "message": "Btrfs: add migrate page for metadata inode\n\nMigrate page will directly call the btrfs btree writepage function,\nwhich isn\u0027t actually allowed.\n\nOur writepage assumes that you have locked the extent_buffer and\nflagged the block as written.  Without doing these steps, we can\ncorrupt metadata blocks.\n\nA later commit will remove the btree writepage function since\nit is really only safely used internally by btrfs.  We\nuse writepages for everything else.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6418c96107a2b399848bb8cfc6e29f11ca74fb94",
      "tree": "38064798bde148760a7a3b555c0eb097bfd29fb2",
      "parents": [
        "4260f7c7516f4c209cf0ca34fda99cc9a0847772"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Oct 30 07:34:24 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Oct 30 07:34:24 2010 -0400"
      },
      "message": "Btrfs: deal with errors from updating the tree log\n\nDuring unlink we remove any references to the inode from\nthe tree log.  It can return -ENOENT and other errors,\nand this changes the unlink code to deal with it.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4260f7c7516f4c209cf0ca34fda99cc9a0847772",
      "tree": "7feb5ab81d074b17a7c5b12bcc019c2e1bb010e2",
      "parents": [
        "531cb13f1e417c060b54f979e1659ecd69bea650"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:46:43 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 21:42:10 2010 -0400"
      },
      "message": "Btrfs: allow subvol deletion by unprivileged user with -o user_subvol_rm_allowed\n\nAdd a mount option user_subvol_rm_allowed that allows users to delete a\n(potentially non-empty!) subvol when they would otherwise we allowed to do\nan rmdir(2).  We duplicate the may_delete() checks from the core VFS code\nto implement identical security checks (minus the directory size check).\nWe additionally require that the user has write+exec permission on the\nsubvol root inode.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "531cb13f1e417c060b54f979e1659ecd69bea650",
      "tree": "6b421ac1ddf7cad271cd0c767f0c19e6c4f826df",
      "parents": [
        "72fd032e94240d001b1d22f2c1dfd2592b02e44e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 21:42:10 2010 -0400"
      },
      "message": "Btrfs: make SNAP_DESTROY async\n\nThere is no reason to force an immediate commit when deleting a snapshot.\nUsers have some expectation that space from a deleted snapshot be freed\nimmediately, but even if we do commit the reclaim is a background process.\n\nIf users _do_ want the deletion to be durable, they can call \u0027sync\u0027.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "72fd032e94240d001b1d22f2c1dfd2592b02e44e",
      "tree": "7671ea5585f79a8cecc9708e869aa37e24eb74de",
      "parents": [
        "462045928bda777c86919a396a42991fcf235378"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 21:41:57 2010 -0400"
      },
      "message": "Btrfs: add SNAP_CREATE_ASYNC ioctl\n\nCreate a snap without waiting for it to commit to disk.  The ioctl is\nordered such that subsequent operations will not be contained by the\ncreated snapshot, and the commit is initiated, but the ioctl does not\nwait for the snapshot to commit to disk.\n\nWe return the specific transid to userspace so that an application can wait\nfor this specific snapshot creation to commit via the WAIT_SYNC ioctl.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "462045928bda777c86919a396a42991fcf235378",
      "tree": "c2b12ff8e9ef1951b5960b853034bd4165578f99",
      "parents": [
        "bb9c12c945cbd1b0eaa1589546dde772ccabeeba"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "message": "Btrfs: add START_SYNC, WAIT_SYNC ioctls\n\nSTART_SYNC will start a sync/commit, but not wait for it to\ncomplete.  Any modification started after the ioctl returns is\nguaranteed not to be included in the commit.  If a non-NULL\npointer is passed, the transaction id will be returned to\nuserspace.\n\nWAIT_SYNC will wait for any in-progress commit to complete.  If a\ntransaction id is specified, the ioctl will block and then\nreturn (success) when the specified transaction has committed.\nIf it has already committed when we call the ioctl, it returns\nimmediately.  If the specified transaction doesn\u0027t exist, it\nreturns EINVAL.\n\nIf no transaction id is specified, WAIT_SYNC will wait for the\ncurrently committing transaction to finish it\u0027s commit to disk.\nIf there is no currently committing transaction, it returns\nsuccess.\n\nThese ioctls are useful for applications which want to impose an\nordering on when fs modifications reach disk, but do not want to\nwait for the full (slow) commit process to do so.\n\nPicky callers can take the transid returned by START_SYNC and\nfeed it to WAIT_SYNC, and be certain to wait only as long as\nnecessary for the transaction _they_ started to reach disk.\n\nSloppy callers can START_SYNC and WAIT_SYNC without a transid,\nand provided they didn\u0027t wait too long between the calls, they\nwill get the same result.  However, if a second commit starts\nbefore they call WAIT_SYNC, they may end up waiting longer for\nit to commit as well.  Even so, a START_SYNC+WAIT_SYNC still\nguarantees that any operation completed before the START_SYNC\nreaches disk.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bb9c12c945cbd1b0eaa1589546dde772ccabeeba",
      "tree": "92f0bb01dce5125547c590d7c06b3e02d5c9d4fa",
      "parents": [
        "99d16cbcaf694c803a1b6bf7e851694ffe1d255d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "message": "Btrfs: async transaction commit\n\nAdd support for an async transaction commit that is ordered such that any\nsubsequent operations will join the following transaction, but does not\nwait until the current commit is fully on disk.  This avoids much of the\nlatency associated with the btrfs_commit_transaction for callers concerned\nwith serialization and not safety.\n\nThe wait_for_unblock flag controls whether we wait for the \u0027middle\u0027 portion\nof commit_transaction to complete, which is necessary if the caller expects\nsome of the modifications contained in the commit to be available (this is\nthe case for subvol/snapshot creation).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "99d16cbcaf694c803a1b6bf7e851694ffe1d255d",
      "tree": "dacf7f8eca75dc0d92566b5d3876f3efe8196e35",
      "parents": [
        "fccdae435c1b295cca546f23f6f43126a28ffac3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "message": "Btrfs: fix deadlock in btrfs_commit_transaction\n\nWe calculate timeout (either 1 or MAX_SCHEDULE_TIMEOUT) based on whether\nnum_writers \u003e 1 or should_grow at the top of the loop.  Then, much much\nlater, we wait for that timeout if either num_writers or should_grow is\ntrue.  However, it\u0027s possible for a racing process (calling\nbtrfs_end_transaction()) to decrement num_writers such that we wait\nforever instead of for 1.\n\nFix this by deciding how long to wait when we wait.  Include a smp_mb()\nbefore checking if the waitqueue is active to ensure the num_writers\nis visible.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fccdae435c1b295cca546f23f6f43126a28ffac3",
      "tree": "e5c84325114cd554c62e7e275e85596200b45d19",
      "parents": [
        "050006a753bab8ba05f2113cc57ba49398cd5521"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "message": "Btrfs: fix lockdep warning on clone ioctl\n\nI\u0027m no lockdep expert, but this appears to make the lockdep warning go\naway for the i_mutex locking in the clone ioctl.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "050006a753bab8ba05f2113cc57ba49398cd5521",
      "tree": "43b8bdc0ce9f76d2726096dbfbc72a04c141afa6",
      "parents": [
        "9a019196ecaa57780141ef5d1f0bb31050d6ed5b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "message": "Btrfs: fix clone ioctl where range is adjacent to extent\n\nWe had an edge case issue where the requested range was just\nfollowing an existing extent. Instead of skipping to the next\nextent, we used the previous one which lead to having zero\nsized extents.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9a019196ecaa57780141ef5d1f0bb31050d6ed5b",
      "tree": "abd838acff1d6407d2d91efeb38e76e53271aadb",
      "parents": [
        "d8e39c457bc1ca2a7304bc086c7b0f0c10854921"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "message": "Btrfs: fix delalloc checks in clone ioctl\n\nThe lookup_first_ordered_extent() was done on the wrong inode, and the\n-\u003edelalloc_bytes test was wrong, as the following\nbtrfs_wait_ordered_range() would only invoke a range write and wouldn\u0027t\nwrite the entire file data range. Also, a bad parameter was passed to\nbtrfs_wait_ordered_range().\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d8e39c457bc1ca2a7304bc086c7b0f0c10854921",
      "tree": "da2f37292b8021dfe90aa9803ee85f9f95acedf5",
      "parents": [
        "559af8211433b8c0b20e6c43c61409cb9c9c2996"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:17:41 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:17:41 2010 -0400"
      },
      "message": "Btrfs: drop unused variable in block_alloc_rsv\n\nThe alloc_target variable is not really used.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "559af8211433b8c0b20e6c43c61409cb9c9c2996",
      "tree": "702ebd4c4f5b610daa36f65d814a518356a9a46b",
      "parents": [
        "411fc6bcef54f828a5458f4730c68abdf13c6bf0"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Oct 29 15:14:37 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:37 2010 -0400"
      },
      "message": "Btrfs: cleanup warnings from gcc 4.6 (nonbugs)\n\nThese are all the cases where a variable is set, but not read which are\nnot bugs as far as I can see, but simply leftovers.\n\nStill needs more review.\n\nFound by gcc 4.6\u0027s new warnings\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "411fc6bcef54f828a5458f4730c68abdf13c6bf0",
      "tree": "89b91cd7e0d7633e9d6e386e388bd0493165f66c",
      "parents": [
        "d0b678cb0a26783ab7238784f1e7e608e5caafa3"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Oct 29 15:14:31 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:31 2010 -0400"
      },
      "message": "Btrfs: Fix variables set but not read (bugs found by gcc 4.6)\n\nThese are all the cases where a variable is set, but not\nread which are really bugs.\n\n- Couple of incorrect error handling fixed.\n- One incorrect use of a allocation policy\n- Some other things\n\nStill needs more review.\n\nFound by gcc 4.6\u0027s new warnings.\n\n[akpm@linux-foundation.org: fix build.  Might have been bitrot]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d0b678cb0a26783ab7238784f1e7e608e5caafa3",
      "tree": "a912b938a6558550960f6b07139bd119d86f89eb",
      "parents": [
        "2354d08fe9aeec3e451b85cb5387a6b28dbca0b1"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Oct 29 15:14:23 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:23 2010 -0400"
      },
      "message": "Btrfs: Use ERR_CAST helpers\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2354d08fe9aeec3e451b85cb5387a6b28dbca0b1",
      "tree": "7a3f43dfac81fc54faf231400a4b871ca24bb031",
      "parents": [
        "18e503d695ff8ff9a43768555aa74575bf6b77f3"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Oct 29 15:14:18 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:18 2010 -0400"
      },
      "message": "Btrfs: use memdup_user helpers\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "18e503d695ff8ff9a43768555aa74575bf6b77f3",
      "tree": "c17c34762dcf9988e9739ae0cdf5628885bf8828",
      "parents": [
        "19fe0a8b787d7c7f9318975b5a8c6e7e5e54e925"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Oct 28 15:30:42 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:46 2010 -0400"
      },
      "message": "Btrfs: fix raid code for removing missing drives\n\nWhen btrfs is mounted in degraded mode, it has some internal structures\nto track the missing devices.  This missing device is setup as readonly,\nbut the mapping code can get upset when we try to write to it.\n\nThis changes the mapping code to return -EIO instead of oops when we try\nto write to the readonly device.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "19fe0a8b787d7c7f9318975b5a8c6e7e5e54e925",
      "tree": "78aea56ede5735ae3183f2c4b846773b8fd8155b",
      "parents": [
        "897ca6e9b4fef86d5dfb6b31fd9f592ce6a47a42"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Oct 26 20:57:29 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:45 2010 -0400"
      },
      "message": "Btrfs: Switch the extent buffer rbtree into a radix tree\n\nThis patch reduces the CPU time spent in the extent buffer search by using the\nradix tree instead of the rbtree and using the rcu lock instead of the spin\nlock.\n\nI did a quick test by the benchmark tool[1] and found the patch improve the\nfile creation/deletion performance problem that I have reported[2].\n\nBefore applying this patch:\nCreate files:\n\tTotal files: 50000\n\tTotal time: 0.971531\n\tAverage time: 0.000019\nDelete files:\n\tTotal files: 50000\n\tTotal time: 1.366761\n\tAverage time: 0.000027\n\nAfter applying this patch:\nCreate files:\n\tTotal files: 50000\n\tTotal time: 0.927455\n\tAverage time: 0.000019\nDelete files:\n\tTotal files: 50000\n\tTotal time: 1.292280\n\tAverage time: 0.000026\n\n[1] http://marc.info/?l\u003dlinux-btrfs\u0026m\u003d128212635122920\u0026q\u003dp3\n[2] http://marc.info/?l\u003dlinux-btrfs\u0026m\u003d128212635122920\u0026w\u003d2\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "897ca6e9b4fef86d5dfb6b31fd9f592ce6a47a42",
      "tree": "8cb79f54090e84290122652aa9fbd1c51c642526",
      "parents": [
        "bf9022e06af553553bc8f4e21ce36147ca6eae68"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Oct 26 20:57:29 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:45 2010 -0400"
      },
      "message": "Btrfs: restructure try_release_extent_buffer()\n\nrestructure try_release_extent_buffer() and write a function to release the\nextent buffer. It will be used later.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bf9022e06af553553bc8f4e21ce36147ca6eae68",
      "tree": "e33d9a25fc5ec8e03c1f0d5a4775c865e0520811",
      "parents": [
        "e5bc2458293b2af6c0b94435965c68cc70974b56"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 26 13:40:45 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:36 2010 -0400"
      },
      "message": "Btrfs: use the flusher threads for delalloc throttling\n\nWe have a fairly complex set of loops around walking our list of\ndelalloc inodes when we find metadata delalloc space running low.\nIt doesn\u0027t work very well, can use large amounts of CPU and doesn\u0027t\ndo very efficient writeback.\n\nThis switches us to kick the bdi flusher threads instead.  All dirty\ndata in btrfs is accounted as delalloc data, so this is very similar\nin terms of what it writes, but we\u0027re able to just kick off the IO\nand wait for progress.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e5bc2458293b2af6c0b94435965c68cc70974b56",
      "tree": "d4b79f61f2ff236b080583345b4dfd617b0fca07",
      "parents": [
        "3259f8bed2f0f57c2fdcdac1b510c3fa319ef97e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 26 13:37:56 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:35 2010 -0400"
      },
      "message": "Btrfs: tune the chunk allocation to 5% of the FS as metadata\n\nAn earlier commit tried to keep us from allocating too many\nempty metadata chunks.  It was somewhat too restrictive and could\nlead to ENOSPC errors on empty filesystems.\n\nThis increases the limits to about 5% of the FS size, allowing more\nmetadata chunks to be preallocated.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3259f8bed2f0f57c2fdcdac1b510c3fa319ef97e",
      "tree": "5f06f6c83413ca2fc7aec85ba0811a8c91904097",
      "parents": [
        "cb44921a09221f0a90217b44044448f63190f3e5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:16:17 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:29 2010 -0400"
      },
      "message": "Add new functions for triggering inode writeback\n\nWhen btrfs is running low on metadata space, it needs to force delayed\nallocation pages to disk.  It currently does this with a suboptimal walk\nof a private list of inodes with delayed allocation, and it would be\nmuch better if we used the generic flusher threads.\n\nwriteback_inodes_sb_if_idle would be ideal, but it waits for the flusher\nthread to start IO on all the dirty pages in the FS before it returns.\nThis adds variants of writeback_inodes_sb* that allow the caller to\ncontrol how many pages get sent down.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cb44921a09221f0a90217b44044448f63190f3e5",
      "tree": "5580522b6db6868c02d3072320e338442272cb2b",
      "parents": [
        "6b5b817f103450444f3f658a498f435d92a197e5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Oct 24 11:01:27 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:31:30 2010 -0400"
      },
      "message": "Btrfs: don\u0027t loop forever on bad btree blocks\n\nWhen btrfs discovers the generation number in a btree block is\nincorrect, it can loop forever without forcing the RAID\ncode to try a valid mirror, and without returning EIO.\n\nThis changes things to properly kick out the EIO.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6b5b817f103450444f3f658a498f435d92a197e5",
      "tree": "2896588127c4dd6c2867ef09e7e3cdd83391f8ae",
      "parents": [
        "8216ef866df1119fd5a72372b8b29bce49c18590",
        "e9bb7f10d3617304ef94ff7aa8fefbce3078f08b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:27:49 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:27:49 2010 -0400"
      },
      "message": "Merge branch \u0027bug-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work\n\nConflicts:\n\tfs/btrfs/extent-tree.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8216ef866df1119fd5a72372b8b29bce49c18590",
      "tree": "8536ec3e5a308639eeef15ac7d6cb55b655fa0fb",
      "parents": [
        "88c2ba3b069f1e0f4694124d02985fa7620a19f1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Oct 28 16:55:47 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:37 2010 -0400"
      },
      "message": "Btrfs: let the user know space caching is enabled\n\nIf you mount -o space_cache, the option will be persistent across mounts, but to\nmake sure the user knows that they did this, emit a message telling them if they\ndidn\u0027t mount with -o space_cache but the feature is still used.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "88c2ba3b069f1e0f4694124d02985fa7620a19f1",
      "tree": "e41859aca299e14e2658d75e2bf1ef2aea9ab077",
      "parents": [
        "67377734fd24c32cbdfeb697c2e2bd7fed519e75"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Sep 21 14:21:34 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:36 2010 -0400"
      },
      "message": "Btrfs: Add a clear_cache mount option\n\nIf something goes wrong with the free space cache we need a way to make sure\nit\u0027s not loaded on mount and that it\u0027s cleared for everybody.  When you pass the\nclear_cache option it will make it so all block groups are setup to be cleared,\nwhich keeps them from being loaded and then they will be truncated when the\ntransaction is committed.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "67377734fd24c32cbdfeb697c2e2bd7fed519e75",
      "tree": "5b295333ab943d24b190bd3fef2486dfffa7de47",
      "parents": [
        "dde5abee12327d59f968bbfc8151e1b04082a2c4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Sep 16 16:19:09 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:36 2010 -0400"
      },
      "message": "Btrfs: add support for mixed data+metadata block groups\n\nThere are just a few things that need to be fixed in the kernel to support mixed\ndata+metadata block groups.  Mostly we just need to make sure that if we are\nusing mixed block groups that we continue to allocate mixed block groups as we\nneed them.  Also we need to make sure __find_space_info will find our space info\nif we search for DATA or METADATA only.  Tested this with xfstests and it works\nnicely.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "dde5abee12327d59f968bbfc8151e1b04082a2c4",
      "tree": "eba52b161a83f77c902ecb365ad661d317499717",
      "parents": [
        "9d66e233c7042da27ec699453770f41e567a0442"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Sep 16 16:17:03 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:35 2010 -0400"
      },
      "message": "Btrfs: check cache-\u003ecaching_ctl before returning if caching has started\n\nWith the free space disk caching we can mark the block group as started with the\ncaching, but we don\u0027t have a caching ctl.  This can race with anybody else who\ntries to get the caching ctl before we cache (this is very hard to do btw).  So\ninstead check to see if cache-\u003ecaching_ctl is set, and if not return NULL.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "9d66e233c7042da27ec699453770f41e567a0442",
      "tree": "27fd70c6c07cb96a48123bdec07e9c2feed90f13",
      "parents": [
        "0cb59c9953171e9adf6da8142a5c85ceb77bb60d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Aug 25 16:54:15 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:35 2010 -0400"
      },
      "message": "Btrfs: load free space cache if it exists\n\nThis patch actually loads the free space cache if it exists.  The only thing\nthat really changes here is that we need to cache the block group if we\u0027re going\nto remove an extent from it.  Previously we did not do this since the caching\nkthread would pick it up.  With the on disk cache we don\u0027t have this luxury so\nwe need to make sure we read the on disk cache in first, and then remove the\nextent, that way when the extent is unpinned the free space is added to the\nblock group.  This has been tested with all sorts of things.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0cb59c9953171e9adf6da8142a5c85ceb77bb60d",
      "tree": "f72af47fa18815491814290a1b4907082bd9316d",
      "parents": [
        "0af3d00bad38d3bb9912a60928ad0669f17bdb76"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jul 02 12:14:14 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:29 2010 -0400"
      },
      "message": "Btrfs: write out free space cache\n\nThis is a simple bit, just dump the free space cache out to our preallocated\ninode when we\u0027re writing out dirty block groups.  There are a bunch of changes\nin inode.c in order to account for special cases.  Mostly when we\u0027re doing the\nwriteout we\u0027re holding trans_mutex, so we need to use the nolock transacation\nfunctions.  Also we can\u0027t do asynchronous completions since the async thread\ncould be blocked on already completed IO waiting for the transaction lock.  This\nhas been tested with xfstests and btrfs filesystem balance, as well as my ENOSPC\ntests.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0af3d00bad38d3bb9912a60928ad0669f17bdb76",
      "tree": "abbf4c773138a33dcde483ac60f016c4b5e55dcc",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jun 21 14:48:16 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Oct 28 15:59:09 2010 -0400"
      },
      "message": "Btrfs: create special free space cache inode\n\nIn order to save free space cache, we need an inode to hold the data, and we\nneed a special item to point at the right inode for the right block group.  So\nfirst, create a special item that will point to the right inode, and the number\nof extent entries we will have and the number of bitmaps we will have.  We\ntruncate and pre-allocate space everytime to make sure it\u0027s uptodate.\n\nThis feature will be turned on as soon as you mount with -o space_cache, however\nit is safe to boot into old kernels, they will just generate the cache the old\nfashion way.  When you boot back into a newer kernel we will notice that we\nmodified and not the cache and automatically discard the cache.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "e9bb7f10d3617304ef94ff7aa8fefbce3078f08b",
      "tree": "0e56ad5bd8b4914aa82103d72531f8c95b35ce80",
      "parents": [
        "382279336f428c80f344edfc30d53797e3e76146"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Oct 26 12:55:03 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Oct 26 12:55:03 2010 -0400"
      },
      "message": "Btrfs: remove warn_on from use_block_rsv\n\nBecause btrfs_dirty_inode does a btrfs_join_transaction, it doesn\u0027t actually\nreserve space.  It does this so we can try and dirty the inode quickly without\nhaving to deal with the ENOSPC problems.  But if it does get back ENOSPC it\nhandles it properly.  The problem is use_block_rsv does a WARN_ON whenever this\ncase happens, even tho btrfs_dirty_inode takes it into account and actually\nexpects to get -ENOSPC if things are particularly tight.  So instead just remove\nthe warning.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "382279336f428c80f344edfc30d53797e3e76146",
      "tree": "91b1acbc1f60430742ace0b9155c4a014b7dbbaf",
      "parents": [
        "0e78340f3c1fc603e8016c8ac304766bcc65506e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Oct 26 12:52:53 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Oct 26 12:52:53 2010 -0400"
      },
      "message": "Btrfs: set trans to null in reserve_metadata_bytes if we commit the transaction\n\nbtrfs_commit_transaction will free our trans, but because we pass trans to\nshrink_delalloc we could possibly have a use after free situation.  So instead\nif we commit the transaction, set trans to null and set committed to true so we\ndon\u0027t keep trying to commit a transaction.  This fixes a panic I could reproduce\nat will.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0e78340f3c1fc603e8016c8ac304766bcc65506e",
      "tree": "a86dfd1d78a577e8d799e90f105ccfdc881dec0a",
      "parents": [
        "8bb8ab2e93f9c3c9453e13be0f37d344a32a3a6d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:26:53 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:55:03 2010 -0400"
      },
      "message": "Btrfs: fix error handling in btrfs_get_sb\n\nIf we failed to find the root subvol id, or the subvol\u003d\u003cname\u003e, we would\ndeactivate the locked super and close the devices.  The problem is at this point\nwe have gotten the SB all setup, which includes setting super_operations, so\nwhen we\u0027d deactiveate the super, we\u0027d do a close_ctree() which closes the\ndevices, so we\u0027d end up closing the devices twice.  So if you do something like\nthis\n\nmount /dev/sda1 /mnt/test1\nmount /dev/sda1 /mnt/test2 -o subvol\u003dxxx\numount /mnt/test1\n\nit would blow up (if subvol xxx doesn\u0027t exist).  This patch fixes that problem.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "8bb8ab2e93f9c3c9453e13be0f37d344a32a3a6d",
      "tree": "619600c7458a3af18555f189d53efc4c092b9280",
      "parents": [
        "14ed0ca6e8236f2d264c4a8faec9e3a2b3d04377"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 15 16:52:49 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:55:01 2010 -0400"
      },
      "message": "Btrfs: rework how we reserve metadata bytes\n\nWith multi-threaded writes we were getting ENOSPC early because somebody would\ncome in, start flushing delalloc because they couldn\u0027t make their reservation,\nand in the meantime other threads would come in and use the space that was\ngetting freed up, so when the original thread went to check to see if they had\nspace they didn\u0027t and they\u0027d return ENOSPC.  So instead if we have some free\nspace but not enough for our reservation, take the reservation and then start\ndoing the flushing.  The only time we don\u0027t take reservations is when we\u0027ve\nalready overcommitted our space, that way we don\u0027t have people who come late to\nthe party way overcommitting ourselves.  This also moves all of the retrying and\nflushing code into reserve_metdata_bytes so it\u0027s all uniform.  This keeps my\nfs_mark test from returning -ENOSPC as soon as it starts and actually lets me\nfill up the disk.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "14ed0ca6e8236f2d264c4a8faec9e3a2b3d04377",
      "tree": "1477718d4ab61c258c2a514afec5bfc36e89acf7",
      "parents": [
        "0019f10db6f596f3e14a19f9bd7059a1b85b0853"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 15 15:23:48 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:55:00 2010 -0400"
      },
      "message": "Btrfs: don\u0027t allocate chunks as aggressively\n\nBecause the ENOSPC code over reserves super aggressively we end up allocating\nchunks way more often than we should.  For example with my fs_mark tests on a\n2gb fs I can end up reserved 1gb just for metadata, when only 34mb of that is\nbeing used.  So instead check to see if the amount of space actually used is\nless than 30% of the total space, and if so don\u0027t allocate a chunk, but only if\nwe have at least 256mb of free space to make sure we don\u0027t put too much pressure\non free space.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0019f10db6f596f3e14a19f9bd7059a1b85b0853",
      "tree": "9f295bc2e335a6890ea29bc0830bda43903671d9",
      "parents": [
        "6d48755d02b150de7f47e7b4753202f2fc9f990f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 15 15:18:40 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:54:58 2010 -0400"
      },
      "message": "Btrfs: re-work delalloc flushing\n\nCurrently we try and flush delalloc, but we only do that in a sort of weak way,\nwhich works fine in most cases but if we\u0027re under heavy pressure we need to be\nable to wait for flushing to happen.  Also instead of checking the bytes\nreserved in the block_rsv, check the space info since it is more accurate.  The\nsync option will be used in a future patch.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "6d48755d02b150de7f47e7b4753202f2fc9f990f",
      "tree": "82bfa3265acbec93df92c9e0a5dced4e9b224208",
      "parents": [
        "89a55897a2fbbceb94480952784004bf23911d38"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 15 15:13:32 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:54:56 2010 -0400"
      },
      "message": "Btrfs: fix reservation code for mixed block groups\n\nThe global reservation stuff tries to add together DATA and METADATA used in\norder to figure out how much to reserve for everything, but this doesn\u0027t work\nright for mixed block groups.  Instead if we have mixed block groups just set\ndata used to 0.  Also with mixed block groups we will use bytes_may_use for\nkeeping track of delalloc bytes, so we need to take that into account in our\nreservation calculations.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "89a55897a2fbbceb94480952784004bf23911d38",
      "tree": "e62ea1ced4c7941ab53e7aa7047ce8f0af0add9f",
      "parents": [
        "bf5fc093c5b625e4259203f1cee7ca73488a5620"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Oct 14 14:52:27 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:54:55 2010 -0400"
      },
      "message": "Btrfs: fix df regression\n\nThe new ENOSPC stuff breaks out the raid types which breaks the way we were\nreporting df to the system.  This fixes it back so that Available is the total\nspace available to data and used is the actual bytes used by the filesystem.\nThis means that Available is Total - data used - all of the metadata space.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "bf5fc093c5b625e4259203f1cee7ca73488a5620",
      "tree": "099385541c534c1adcdb4251277ee4364562d5ec",
      "parents": [
        "a1f765061e1491d5ec467429d0d6adfd9df2f6d9"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Sep 29 11:22:36 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:54:53 2010 -0400"
      },
      "message": "Btrfs: fix the df ioctl to report raid types\n\nThe new ENOSPC stuff broke the df ioctl since we no longer create seperate space\ninfo\u0027s for each RAID type.  So instead, loop through each space info\u0027s raid\nlists so we can get the right RAID information which will allow the df ioctl to\ntell us RAID types again.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a1f765061e1491d5ec467429d0d6adfd9df2f6d9",
      "tree": "0263688d261b69aedf2dad690ac1d93f875eec78",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Sep 16 14:29:55 2010 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Oct 22 15:54:51 2010 -0400"
      },
      "message": "Btrfs: stop trying to shrink delalloc if there are no inodes to reclaim\n\nIn very severe ENOSPC cases we can run out of inodes to do delalloc on, which\nmeans we\u0027ll just keep looping trying to shrink delalloc.  Instead, if we fail to\nshrink delalloc 3 times in a row break out since we\u0027re not likely to make any\nprogress.  Tested this with a 100mb fs an xfstests test 13.  Before the patch it\nwould hang the box, with the patch we get -ENOSPC like we should.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "f6f94e2ab1b33f0082ac22d71f66385a60d8157f",
      "tree": "579865877539ddc598d6b5916cb509e85a972268",
      "parents": [
        "7d7c4d06be246b249f0f7e0b7df2f73d09cc6376"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 13:30:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 13:30:22 2010 -0700"
      },
      "message": "Linux 2.6.36\n"
    },
    {
      "commit": "7d7c4d06be246b249f0f7e0b7df2f73d09cc6376",
      "tree": "7c7d3314b7bea5fe932eb76d80d9a102ffcda204",
      "parents": [
        "531295e63be8c2b8b909d7400739e8b8df60d61f",
        "e2cc502c3f71d8de812893527dc435e61b7fe604"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 13:18:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 13:18:21 2010 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus:\n  MIPS: O32 compat/N32: Fix to use compat syscall wrappers for AIO syscalls.\n  MAINTAINERS: Change list for ioc_serial to linux-serial.\n  SERIAL: ioc3_serial: Return -ENOMEM on memory allocation failure\n  MIPS: jz4740: Fix Kbuild Platform file.\n  MIPS: Repair Kbuild make clean breakage.\n"
    },
    {
      "commit": "531295e63be8c2b8b909d7400739e8b8df60d61f",
      "tree": "1ae5e6429e3fb52104220e543534049a6832ba1a",
      "parents": [
        "30c278192f9ab06125fb042f6e46763e0fd7140a"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Wed Oct 20 13:45:43 2010 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 13:18:04 2010 -0700"
      },
      "message": "virtio: console: Don\u0027t block entire guest if host doesn\u0027t read data\n\nIf the host is slow in reading data or doesn\u0027t read data at all,\nblocking write calls not only blocked the program that called write()\nbut the entire guest itself.\n\nTo overcome this, let\u0027s not block till the host signals it has given\nback the virtio ring element we passed it.  Instead, send the buffer to\nthe host and return to userspace.  This operation then becomes similar\nto how non-blocking writes work, so let\u0027s use the existing code for this\npath as well.\n\nThis code change also ensures blocking write calls do get blocked if\nthere\u0027s not enough room in the virtio ring as well as they don\u0027t return\n-EAGAIN to userspace.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nAcked-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nCC: stable@kernel.org\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30c278192f9ab06125fb042f6e46763e0fd7140a",
      "tree": "eb457072fec9bed01d89a71ab61257785a24a66a",
      "parents": [
        "ef2533dae5a93527f2aac9449c0b1564c5ed2c2f",
        "478971600e47cb83ff2d3c63c5c24f2b04b0d6a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 13:13:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 13:13:09 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:\n  [SCSI] bsg: fix incorrect device_status value\n  [SCSI] Fix VPD inquiry page wrapper\n"
    },
    {
      "commit": "ef2533dae5a93527f2aac9449c0b1564c5ed2c2f",
      "tree": "fa9185aec76d836db929a782c87cab70e352f0a9",
      "parents": [
        "51ea8a88aae425915b458bfe295f1f10a3d52781",
        "9581d442b9058d3699b4be568b6e5eae38a41493"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 09:00:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 20 09:00:44 2010 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/2.6.36\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/2.6.36\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm:\n  KVM: Fix fs/gs reload oops with invalid ldt\n"
    },
    {
      "commit": "e2cc502c3f71d8de812893527dc435e61b7fe604",
      "tree": "e0955ddaa628821ae92f0163a2c519564bfdd44a",
      "parents": [
        "d39e072166493cbae3840ecfcf2b34bea0d2bebe"
      ],
      "author": {
        "name": "Michel Thebeau",
        "email": "michel.thebeau@windriver.com",
        "time": "Tue Sep 28 14:15:37 2010 -0400"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 19 18:32:41 2010 +0100"
      },
      "message": "MIPS: O32 compat/N32: Fix to use compat syscall wrappers for AIO syscalls.\n\n[Ralf: Michel\u0027s original patch only fixed N32; I replicated the same fix\nfor O32.]\n\nSigned-off-by: Michel Thebeau \u003cmichel.thebeau@windriver.com\u003e\nCc: paul.gortmaker@windriver.com\nCc: bruce.ashfield@windriver.com\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "d39e072166493cbae3840ecfcf2b34bea0d2bebe",
      "tree": "34d09502d8f1fe372f01a4ccf5e4825925ed0588",
      "parents": [
        "6cc0cc4a35337b48e09c82c5f3fb83534884fca8"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 19 18:32:41 2010 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 19 18:32:41 2010 +0100"
      },
      "message": "MAINTAINERS: Change list for ioc_serial to linux-serial.\n\nIOC3 is also being used on SGI MIPS systems but this particular driver is\nonly being used on IA64 systems so linux-mips made no sense as a list.  Pat\nalso thinks linux-serial@vger.kernel.org is the better list.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "6cc0cc4a35337b48e09c82c5f3fb83534884fca8",
      "tree": "67ea9e34e23f102bb67730bf7a690981831f5756",
      "parents": [
        "08be7b2bc7393d5cf4beb00aecb5eb9e5cde5f85"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Oct 15 15:00:09 2010 +0200"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 19 18:32:40 2010 +0100"
      },
      "message": "SERIAL: ioc3_serial: Return -ENOMEM on memory allocation failure\n\nIn this code, 0 is returned on memory allocation failure, even though other\nfailures return -ENOMEM or other similar values.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression ret;\nexpression x,e1,e2,e3;\n@@\n\nret \u003d 0\n... when !\u003d ret \u003d e1\n*x \u003d \\(kmalloc\\|kcalloc\\|kzalloc\\)(...)\n... when !\u003d ret \u003d e2\nif (x \u003d\u003d NULL) { ... when !\u003d ret \u003d e3\n  return ret;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nTo: Pat Gefre \u003cpfg@sgi.com\u003e\nCc: kernel-janitors@vger.kernel.org\nCc: linux-ia64@vger.kernel.org\nCc: linux-mips@linux-mips.org\nCc: linux-kernel@vger.kernel.org\nPatchwork: https://patchwork.linux-mips.org/patch/1704/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "08be7b2bc7393d5cf4beb00aecb5eb9e5cde5f85",
      "tree": "df211c4bdc87be23de9f5bcf27fefd6cd73b73de",
      "parents": [
        "ad4b2b627c8ac479e842bf586108c7a7fd63264b"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Mon Oct 18 18:05:49 2010 -0700"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 19 18:32:39 2010 +0100"
      },
      "message": "MIPS: jz4740: Fix Kbuild Platform file.\n\nThe platform specific files should be included via the platform-y\nvariable.\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/1719/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "ad4b2b627c8ac479e842bf586108c7a7fd63264b",
      "tree": "063c9b7e588850d003dc753a625d396516478106",
      "parents": [
        "c6ea21e35bf3691cad59647c771e6606067f627d"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Mon Oct 18 17:51:26 2010 -0700"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 19 18:32:39 2010 +0100"
      },
      "message": "MIPS: Repair Kbuild make clean breakage.\n\nWhen running make clean, Kbuild doesn\u0027t process the .config file, so nothing\ngenerates a platform-y variable.  We can get it to descend into the platform\ndirectories by setting $(obj-).\n\nThe dec Platform file was unconditionally setting platform-, obliterating\nits previous contents and preventing some directories from being cleaned.\nThis is change to an append operation \u0027+\u003d\u0027 to allow cavium-octeon to be\ncleaned.\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/1718/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "51ea8a88aae425915b458bfe295f1f10a3d52781",
      "tree": "e991da2ebc93660d18407775983c79c1181bbfe1",
      "parents": [
        "547af560ddbfe469ada2cad3009cbcfde313d73c",
        "6a2a11dbea5db417d200d38dda53c30a2e5603e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 19 10:10:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 19 10:10:20 2010 -0700"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm/radeon/kms: avivo cursor workaround applies to evergreen as well\n"
    },
    {
      "commit": "9581d442b9058d3699b4be568b6e5eae38a41493",
      "tree": "76d1b596d873514fdb9b3bf75d6d7b3cbfada85d",
      "parents": [
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Oct 19 16:46:55 2010 +0200"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Tue Oct 19 14:21:45 2010 -0200"
      },
      "message": "KVM: Fix fs/gs reload oops with invalid ldt\n\nkvm reloads the host\u0027s fs and gs blindly, however the underlying segment\ndescriptors may be invalid due to the user modifying the ldt after loading\nthem.\n\nFix by using the safe accessors (loadsegment() and load_gs_index()) instead\nof home grown unsafe versions.\n\nThis is CVE-2010-3698.\n\nKVM-Stable-Tag.\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "547af560ddbfe469ada2cad3009cbcfde313d73c",
      "tree": "1f97e215de2d88d90ed34db24212dab69eb300b2",
      "parents": [
        "b0579fc089808b68c53a6a95d043db034468116c",
        "a35bee8a2748abe9a40865f477aba0a9b85965fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:10:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:10:36 2010 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus:\n  MIPS: Enable ISA_DMA_API config to fix build failure\n  MIPS: 32-bit: Fix build failure in asm/fcntl.h\n  MIPS: Remove all generated vmlinuz* files on \"make clean\"\n  MIPS: do_sigaltstack() expects userland pointers\n  MIPS: Fix error values in case of bad_stack\n  MIPS: Sanitize restart logics\n  MIPS: secure_computing, syscall audit: syscall number should in r2, not r0.\n  MIPS: Don\u0027t block signals if we\u0027d failed to setup a sigframe\n"
    },
    {
      "commit": "b0579fc089808b68c53a6a95d043db034468116c",
      "tree": "f04f256392cec7325664ab6aeaef202c003cc31d",
      "parents": [
        "7f81c56cf29c0af66a1d0cdbce48441cdaf9fa16",
        "f9ce6eb5b6fa8cbcf0a0fb7c5f4203f94730fc52"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:10:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:10:08 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: evdev - fix EVIOCSABS regression\n  Input: evdev - fix Ooops in EVIOCGABS/EVIOCSABS\n"
    },
    {
      "commit": "7f81c56cf29c0af66a1d0cdbce48441cdaf9fa16",
      "tree": "4b3a1574e29d5e08ec2717345adabb6c157e2f1b",
      "parents": [
        "63f1474c69c061f923068a25f136dca0c49cd478",
        "aa0170fff3c26bf2b42159af2dd9cf86444c292a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:09:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:09:26 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: fix TI TSB82AA2 regression since 2.6.35\n"
    },
    {
      "commit": "63f1474c69c061f923068a25f136dca0c49cd478",
      "tree": "2506d897c28391ffacd9ff0f32fa4f1de7126a7e",
      "parents": [
        "f68c834b045afc8c80ec167cccf48934c8970022"
      ],
      "author": {
        "name": "Sascha Hauer",
        "email": "s.hauer@pengutronix.de",
        "time": "Mon Oct 18 10:16:26 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:09:05 2010 -0700"
      },
      "message": "mxc_nand: do not depend on disabling the irq in the interrupt handler\n\nThis patch reverts the driver to enabling/disabling the NFC interrupt\nmask rather than enabling/disabling the system interrupt.  This cleans\nup the driver so that it doesn\u0027t rely on interrupts being disabled\nwithin the interrupt handler.\n\nFor i.MX21 we keep the current behaviour, that is calling\nenable_irq/disable_irq_nosync to enable/disable interrupts.  This patch\nis based on earlier work by John Ogness.\n\nSigned-off-by: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\nAcked-by: John Ogness \u003cjohn.ogness@linutronix.de\u003e\nTested-by: John Ogness \u003cjohn.ogness@linutronix.de\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f68c834b045afc8c80ec167cccf48934c8970022",
      "tree": "c1f6b0e3e71146cd1abf41ae6f39f207246aec16",
      "parents": [
        "822a2e452423e71fd9743cedf0b0fa8ac1ee6d12",
        "e39428d53d080ad2615b772d7f99d2a70c2aaab2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:05:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:05:10 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus/i2c/2636-rc8\u0027 of git://git.fluff.org/bjdooks/linux\n\n* \u0027for-linus/i2c/2636-rc8\u0027 of git://git.fluff.org/bjdooks/linux:\n  i2c-imx: do not allow interruptions when waiting for I2C to complete\n  i2c-davinci: Fix TX setup for more SoCs\n"
    },
    {
      "commit": "822a2e452423e71fd9743cedf0b0fa8ac1ee6d12",
      "tree": "560086641836bafb7b528115f2a00415c68d5965",
      "parents": [
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e",
        "3e645d6b485446c54c6745c5e2cf5c528fe4deec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:04:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 18 13:04:33 2010 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027\n\n* fixes:\n  v4l1: fix 32-bit compat microcode loading translation\n  De-pessimize rds_page_copy_user\n"
    },
    {
      "commit": "a35bee8a2748abe9a40865f477aba0a9b85965fd",
      "tree": "7c49e6acf40ebe95824ecb55315702bd115b6d89",
      "parents": [
        "063c13a5adbd0ab3110cbefcf9ba5aeb103a84ac"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Oct 18 12:55:21 2010 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:04 2010 +0100"
      },
      "message": "MIPS: Enable ISA_DMA_API config to fix build failure\n\nAdd ISA_DMA_API config item and select it when GENERIC_ISA_DMA enabled.\nThis fixes build failure on allmodconfig like following:\n\n  CC      sound/isa/es18xx.o\nsound/isa/es18xx.c: In function \u0027snd_es18xx_playback1_prepare\u0027:\nsound/isa/es18xx.c:501:9: error: implicit declaration of function \u0027snd_dma_program\u0027\nsound/isa/es18xx.c: In function \u0027snd_es18xx_playback_pointer\u0027:\nsound/isa/es18xx.c:818:3: error: implicit declaration of function \u0027snd_dma_pointer\u0027\nmake[3]: *** [sound/isa/es18xx.o] Error 1\nmake[2]: *** [sound/isa/es18xx.o] Error 2\nmake[1]: *** [sub-make] Error 2\nmake: *** [all] Error 2\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: linux-mips@linux-mips.org\nCc: linux-kernel@vger.kernel.org\nPatchwork: https://patchwork.linux-mips.org/patch/1717/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "063c13a5adbd0ab3110cbefcf9ba5aeb103a84ac",
      "tree": "01e2f683c7fd955cacd26717bf18832640390f4b",
      "parents": [
        "ec3352925b74df8043131b535794f39e2516f614"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Oct 18 01:41:39 2010 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:04 2010 +0100"
      },
      "message": "MIPS: 32-bit: Fix build failure in asm/fcntl.h\n\n  CC      security/integrity/ima/ima_fs.o\nIn file included from linux/include/linux/fcntl.h:4:0,\n                 from linux/security/integrity/ima/ima_fs.c:18:\nlinux/arch/mips/include/asm/fcntl.h:63:2: error: expected specifier-qualifier-list before \u0027off_t\u0027\nmake[3]: *** [security/integrity/ima/ima_fs.o] Error 1\nmake[2]: *** [security/integrity/ima/ima_fs.o] Error 2\nmake[1]: *** [sub-make] Error 2\nmake: *** [all] Error 2\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: linux-kernel@vger.kernel.org\nPatchwork: https://patchwork.linux-mips.org/patch/1715/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "ec3352925b74df8043131b535794f39e2516f614",
      "tree": "be9295cbe5d4f4c6e12b8a5be57d31d496ff1757",
      "parents": [
        "4bfb8c5c87bd167640ef5789b22e058e339df804"
      ],
      "author": {
        "name": "Wu Zhangjin",
        "email": "wuzhangjin@gmail.com",
        "time": "Wed Sep 22 14:03:57 2010 +0800"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:04 2010 +0100"
      },
      "message": "MIPS: Remove all generated vmlinuz* files on \"make clean\"\n\n[Ralf: I changed the patch to explicitly list all files to be deleted out\nof paranoia.]\n\nSigned-off-by: Wu Zhangjin \u003cwuzhangjin@gmail.com\u003e\nPatchwork: http://patchwork.linux-mips.org/patch/1590/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "4bfb8c5c87bd167640ef5789b22e058e339df804",
      "tree": "1f4e497e6923793366865eeb14b41c4f787d5b64",
      "parents": [
        "5b89c0044e048842245193b200b61e5f998abd9a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Sep 28 18:50:57 2010 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:03 2010 +0100"
      },
      "message": "MIPS: do_sigaltstack() expects userland pointers\n\no32 compat does the right thing, native and n32 compat do not...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-arch@vger.kernel.org\nCc: linux-mips@linux-mips.org\nPatchwork: http://patchwork.linux-mips.org/patch/1700/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "5b89c0044e048842245193b200b61e5f998abd9a",
      "tree": "d2908dcdfaf8903b6af5d5731f5ec2a87fc50b67",
      "parents": [
        "8f5a00eb422ed86e77bb8f67e08b9fe6d30f679a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Sep 28 18:50:47 2010 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:03 2010 +0100"
      },
      "message": "MIPS: Fix error values in case of bad_stack\n\nWe want EFAULT, not -\u003csyscall number\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-arch@vger.kernel.org\nCc: linux-mips@linux-mips.org\nPatchwork: https://patchwork.linux-mips.org/patch/1699/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "8f5a00eb422ed86e77bb8f67e08b9fe6d30f679a",
      "tree": "6b625361c9581fb71fd2d005b5de54804d4f9798",
      "parents": [
        "e5b377a8fb7b05f27647698ac739a0504cb2bf80"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Sep 28 18:50:37 2010 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:02 2010 +0100"
      },
      "message": "MIPS: Sanitize restart logics\n\nPut the original syscall number into -\u003eregs[0] when we leave syscall\nwith error.  Use it in restart logics.  Everything else will have\nit 0 since we pass through SAVE_SOME on all the ways in.  Note that\nin places like bad_stack and inllegal_syscall we leave it 0 - it\u0027s not\nrestartable.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-arch@vger.kernel.org\nCc: linux-mips@linux-mips.org\nPatchwork: https://patchwork.linux-mips.org/patch/1698/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "e5b377a8fb7b05f27647698ac739a0504cb2bf80",
      "tree": "709838474a29aa0b7e763fda587a875c4e98a824",
      "parents": [
        "062ab57b2f8439ab506645cf6f29432e7c61497c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Sep 28 18:50:27 2010 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:02 2010 +0100"
      },
      "message": "MIPS: secure_computing, syscall audit: syscall number should in r2, not r0.\n\nAs it is, audit_syscall_entry() and secure_computing() get the\nbogus value (0, in fact)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-arch@vger.kernel.org\nCc: linux-mips@linux-mips.org\nPatchwork: https://patchwork.linux-mips.org/patch/1697/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "062ab57b2f8439ab506645cf6f29432e7c61497c",
      "tree": "0e7fb21965b416c80525ca622d06fdc7386d0e0f",
      "parents": [
        "c6ea21e35bf3691cad59647c771e6606067f627d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Sep 28 18:50:17 2010 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Oct 18 16:59:02 2010 +0100"
      },
      "message": "MIPS: Don\u0027t block signals if we\u0027d failed to setup a sigframe\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-arch@vger.kernel.org\nCc: linux-mips@linux-mips.org\nPatchwork: https://patchwork.linux-mips.org/patch/1696/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "f9ce6eb5b6fa8cbcf0a0fb7c5f4203f94730fc52",
      "tree": "9bc3e516e458a7982e608c4dd0cb7cf3080dd6cc",
      "parents": [
        "0a74a1df3c13655b66b1908d76f2159654216326"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "zonque@gmail.com",
        "time": "Mon Oct 18 08:43:50 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Oct 18 08:45:08 2010 -0700"
      },
      "message": "Input: evdev - fix EVIOCSABS regression\n\n448cd16 (\"Input: evdev - rearrange ioctl handling\") broke EVIOCSABS by\nchecking for the wrong direction bit.\n\nSigned-off-by: Daniel Mack \u003czonque@gmail.com\u003e\nReported-by: Sven Neumann \u003cs.neumann@raumfeld.com\u003e\nTested-by: Sven Neumann \u003cs.neumann@raumfeld.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    }
  ],
  "next": "0a74a1df3c13655b66b1908d76f2159654216326"
}
