)]}'
{
  "log": [
    {
      "commit": "2cac13e41bf5b99ffc426bd28dfd2248df1dfa67",
      "tree": "b74e7e863b7d7c2e116dc6754d8faf701c0aa3c9",
      "parents": [
        "6af021d8fc3bcce790e7fbb391e39c5920fa3f71"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Feb 09 18:17:41 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:23 2012 +0100"
      },
      "message": "Btrfs: fix trim 0 bytes after a device delete\n\nA user reported a bug of btrfs\u0027s trim, that is we will trim 0 bytes\nafter a device delete.\n\nThe reproducer:\n\n$ mkfs.btrfs disk1\n$ mkfs.btrfs disk2\n$ mount disk1 /mnt\n$ fstrim -v /mnt\n$ btrfs device add disk2 /mnt\n$ btrfs device del disk1 /mnt\n$ fstrim -v /mnt\n\nThis is because after we delete the device, the block group may start from\na non-zero place, which will confuse trim to discard nothing.\n\nReported-by: Lutz Euler \u003clutz.euler@freenet.de\u003e\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "6af021d8fc3bcce790e7fbb391e39c5920fa3f71",
      "tree": "9b3e3f49627aed11fa3105c469b1719c71a39636",
      "parents": [
        "8f24b49688281a77e8331894ed407f0cfe732303"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Thu Feb 09 14:25:50 2012 +0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:23 2012 +0100"
      },
      "message": "Btrfs: return the internal error unchanged if btrfs_get_extent_fiemap() call failed for SEEK_DATA/SEEK_HOLE inquiry\n\nGiven that ENXIO only means \"offset beyond EOF\" for either SEEK_DATA or SEEK_HOLE inquiry\nin a desired file range, so we should return the internal error unchanged if btrfs_get_extent_fiemap()\ncall failed, rather than ENXIO.\n\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\n"
    },
    {
      "commit": "8f24b49688281a77e8331894ed407f0cfe732303",
      "tree": "22d5c69f57713ee25a4a3e38404d675c488a91cf",
      "parents": [
        "941b2ddf71987ef369389517a7e215dd505fe01e"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Feb 08 16:01:01 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:23 2012 +0100"
      },
      "message": "Btrfs: avoid positive number with ERR_PTR\n\ninode_ref_info() returns 1 when the element wasn\u0027t found and \u003c 0 on error,\njust like btrfs_search_slot(). In iref_to_path() it\u0027s an error when the\ninode ref can\u0027t be found, thus we return ERR_PTR(ret) in that case. In order\nto avoid ERR_PTR(1), we now set ret to -ENOENT in that case.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "941b2ddf71987ef369389517a7e215dd505fe01e",
      "tree": "c41936dbc4201d118cc145265d0343e3b93d46f6",
      "parents": [
        "d98456fcafa6f3fd1985f9b7429aaa3531c6bfa0"
      ],
      "author": {
        "name": "Keith Mannthey",
        "email": "kmannth@us.ibm.com",
        "time": "Tue Nov 29 17:44:12 2011 -0800"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 15 16:40:22 2012 +0100"
      },
      "message": "btrfs: Sector Size check during Mount\n\nGracefully fail when trying to mount a BTRFS file system that has a\nsectorsize smaller than PAGE_SIZE.\n\nOn PPC it is possible to build a FS while using a 4k PAGE_SIZE kernel\nthen boot into a 64K PAGE_SIZE kernel.  Presently open_ctree fails in an\nendless loop and hangs the machine in this situation.\n\nMy debugging has show this Sector size \u003c Page size to be a non trivial\nsituation and a graceful exit from the situation would be nice for the\ntime being.\n\nSigned-off-by: Keith Mannthey \u003ckmannth@us.ibm.com\u003e\n"
    },
    {
      "commit": "d98456fcafa6f3fd1985f9b7429aaa3531c6bfa0",
      "tree": "7cf01b839f68a612b8d612e7eb6315955f792d73",
      "parents": [
        "9998eb703490589c3e8f1bf09b15203156776edb"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 31 20:27:41 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 31 20:27:41 2012 -0500"
      },
      "message": "Btrfs: don\u0027t reserve data with extents locked in btrfs_fallocate\n\nbtrfs_fallocate tries to allocate space only if ranges in the file don\u0027t\nalready exist.  But the enospc checks it does are not allowed with\nextents locked.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9998eb703490589c3e8f1bf09b15203156776edb",
      "tree": "5d01f0e7efae049b9be80292c93fe30f11eeefd1",
      "parents": [
        "9b23062840e7c685ef0a0b561285d6e3a3b6811b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 25 13:47:40 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 27 10:44:44 2012 -0500"
      },
      "message": "Btrfs: fix reservations in btrfs_page_mkwrite\n\nJosef fixed btrfs_page_mkwrite to properly release reserved\nextents if there was an error.  But if we fail to get a reservation\nand we fail to dirty the inode (for ENOSPC reasons), we\u0027ll end up\ntrying to release a reservation we never had.\n\nThis makes sure we only release if we were able to reserve.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9b23062840e7c685ef0a0b561285d6e3a3b6811b",
      "tree": "47c00ad85dced3c4712b03de926b77c4aad99a77",
      "parents": [
        "0c4e538bccc106872d31b1514570b4dac95fb7f2"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "Btrfs: advance window_start if we\u0027re using a bitmap\n\nIf we span a long area in a bitmap we could end up taking a lot of time\nsearching to the next free area if we\u0027re searching from the original\nwindow_start, so advance window_start in order to make sure we don\u0027t do any\nsuperficial searching.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0c4e538bccc106872d31b1514570b4dac95fb7f2",
      "tree": "094ecf6900b15dc8fd9e2a46cd0875e2c14cdcb9",
      "parents": [
        "9e622d6bea0202e9fe267955362c01918562c09b"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "btrfs: mask out gfp flags in releasepage\n\nbtree_releasepage is a callback and can be passed unknown gfp flags and then\nthey may end up in kmem_cache_alloc called from alloc_extent_state, slab\nallocator will BUG_ON when there is HIGHMEM or DMA32 flag set.\n\nThis may happen when btrfs is mounted from a loop device, which masks out\n__GFP_IO flag. The check in try_release_extent_state\n\n3399                 if ((mask \u0026 GFP_NOFS) \u003d\u003d GFP_NOFS)\n3400                         mask \u003d GFP_NOFS;\n\nwill not work and passes unfiltered flags further resulting in crash at\nmm/slab.c:2963\n\n [\u003c000000000024ae4c\u003e] cache_alloc_refill+0x3b4/0x5c8\n [\u003c000000000024c810\u003e] kmem_cache_alloc+0x204/0x294\n [\u003c00000000001fd3c2\u003e] mempool_alloc+0x52/0x170\n [\u003c000003c000ced0b0\u003e] alloc_extent_state+0x40/0xd4 [btrfs]\n [\u003c000003c000cee5ae\u003e] __clear_extent_bit+0x38a/0x4cc [btrfs]\n [\u003c000003c000cee78c\u003e] try_release_extent_state+0x9c/0xd4 [btrfs]\n [\u003c000003c000cc4c66\u003e] btree_releasepage+0x7e/0xd0 [btrfs]\n [\u003c0000000000210d84\u003e] shrink_page_list+0x6a0/0x724\n [\u003c0000000000211394\u003e] shrink_inactive_list+0x230/0x578\n [\u003c0000000000211bb8\u003e] shrink_list+0x6c/0x120\n [\u003c0000000000211e4e\u003e] shrink_zone+0x1e2/0x228\n [\u003c0000000000211f24\u003e] shrink_zones+0x90/0x254\n [\u003c0000000000213410\u003e] do_try_to_free_pages+0xac/0x420\n [\u003c0000000000213ae0\u003e] try_to_free_pages+0x13c/0x1b0\n [\u003c0000000000204e6c\u003e] __alloc_pages_nodemask+0x5b4/0x9a8\n [\u003c00000000001fb04a\u003e] grab_cache_page_write_begin+0x7e/0xe8\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9e622d6bea0202e9fe267955362c01918562c09b",
      "tree": "75b73fbfec2c56ba9ccbe909586cf0f27aba96e1",
      "parents": [
        "7ec31b548a17f773ab6289e795ed3a6820e8b56e"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "Btrfs: fix enospc error caused by wrong checks of the chunk\n\nWhen we did sysbench test for inline files, enospc error happened easily though\nthere was lots of free disk space which could be allocated for new chunks.\n\nReproduce steps:\n # mkfs.btrfs -b $((2 * 1024 * 1024 * 1024)) \u003ctest partition\u003e\n # mount \u003ctest partition\u003e /mnt\n # ulimit -n 102400\n # cd /mnt\n # sysbench --num-threads\u003d1 --test\u003dfileio --file-num\u003d81920 \\\n \u003e --file-total-size\u003d80M --file-block-size\u003d1K --file-io-mode\u003dsync \\\n \u003e --file-test-mode\u003dseqwr prepare\n # sysbench --num-threads\u003d1 --test\u003dfileio --file-num\u003d81920 \\\n \u003e --file-total-size\u003d80M --file-block-size\u003d1K --file-io-mode\u003dsync \\\n \u003e --file-test-mode\u003dseqwr run\n \u003csoon later, BUG_ON() was triggered by enospc error\u003e\n\nThe reason of this bug is:\nNow, we can reserve space which is larger than the free space in the chunks if\nwe have enough free disk space which can be used for new chunks. By this way,\nthe space allocator should allocate a new chunk by force if there is no free\nspace in the free space cache. But there are two wrong checks which break this\noperation.\n\nOne is\n\tif (ret \u003d\u003d -ENOSPC \u0026\u0026 num_bytes \u003e min_alloc_size)\nin btrfs_reserve_extent(), it is wrong, we should try to allocate a new chunk\neven we fail to allocate free space by minimum allocable size.\n\nThe other is\n\tif (space_info-\u003eforce_alloc)\n\t\tforce \u003d space_info-\u003eforce_alloc;\nin do_chunk_alloc(). It makes the allocator ignore CHUNK_ALLOC_FORCE If someone\nsets -\u003eforce_alloc to CHUNK_ALLOC_LIMITED, and makes the enospc error happen.\n\nFix these two wrong checks. Especially the second one, we fix it by changing\nthe value of CHUNK_ALLOC_LIMITED and CHUNK_ALLOC_FORCE, and make\nCHUNK_ALLOC_FORCE greater than CHUNK_ALLOC_LIMITED since CHUNK_ALLOC_FORCE has\nhigher priority. And if the value which is passed in by the caller is greater\nthan -\u003eforce_alloc, use the passed value.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7ec31b548a17f773ab6289e795ed3a6820e8b56e",
      "tree": "c0c738e7c27e4ac6185f02acd76de64986218906",
      "parents": [
        "0b485143d835c019cddc45f46e4b3873dcc9aa4e"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:12 2012 -0500"
      },
      "message": "Btrfs: do not defrag a file partially\n\nxfstests 218 complains that btrfs defrags a file partially:\n After: 1\n Write backwards sync, but contiguous - should defrag to 1 extent\n Before: 10\n-After: 1\n+After: 2\n\nTo fix this, we need to set max_to_defrag count properly.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0b485143d835c019cddc45f46e4b3873dcc9aa4e",
      "tree": "bda30ddfa281c2841ea4b54922b701ea31509cc9",
      "parents": [
        "0b4a9d248f88e6773312f262e8185f23863d984a"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: fix warning for 32-bit build of fs/btrfs/check-integrity.c\n\nThere have been 4 warnings on 32-bit build, they are herewith fixed.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0b4a9d248f88e6773312f262e8185f23863d984a",
      "tree": "bd822950b56730d6be409c98291c4f2ba19678dc",
      "parents": [
        "8bedd51b6121c4607784d75f852828d25d119c52"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: use cluster-\u003ewindow_start when allocating from a cluster bitmap\n\nWe specifically set window_start in the cluster struct to indicate where the\ncluster starts in a bitmap, but we\u0027ve been using min_start to indicate where\nwe\u0027re searching from.  This is usually the start of the blockgroup, so\nessentially means we\u0027re constantly searching from the start of any bitmap we\nfind, which completely negates all the trouble we go to in order to setup a\ncluster.  So start using window_start to make sure we actually use the area we\nfound.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8bedd51b6121c4607784d75f852828d25d119c52",
      "tree": "e9299eb7b70a1d2f0ea5a4e23b53c7a6496eea59",
      "parents": [
        "6dd70ce4eb7429c2ba6dd9fa46f78a0a2a254038"
      ],
      "author": {
        "name": "Mitch Harder",
        "email": "mitch.harder@sabayonlinux.org",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: Check for NULL page in extent_range_uptodate\n\nA user has encountered a NULL pointer kernel oops in btrfs when\nencountering media errors.  The problem has been identified\nas an unhandled NULL pointer returned from find_get_page().\nThis modification simply checks for a NULL page, and returns\nwith an error if found (the extent_range_uptodate() function\nreturns 1 on errors).\n\nAfter testing this patch, the user reported that the error with\nthe NULL pointer oops was solved.  However, there is still a\nremaining problem with a thread becoming stuck in\nwait_on_page_locked(page) in the read_extent_buffer_pages(...)\nfunction in extent_io.c\n\n       for (i \u003d start_i; i \u003c num_pages; i++) {\n               page \u003d extent_buffer_page(eb, i);\n               wait_on_page_locked(page);\n               if (!PageUptodate(page))\n                       ret \u003d -EIO;\n       }\n\nThis patch leaves the issue with the locked page yet to be resolved.\n\nSigned-off-by: Mitch Harder \u003cmitch.harder@sabayonlinux.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6dd70ce4eb7429c2ba6dd9fa46f78a0a2a254038",
      "tree": "d527b7a18a05183b9826d42f42e74811d5793cef",
      "parents": [
        "357b9784b79924a31ccded5d9a0c688f48cc28f2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "btrfs: Fix busyloops in transaction waiting code\n\nwait_log_commit() and wait_for_writer() were using slightly different\nconditions for deciding whether they should call schedule() and whether they\nshould continue in the wait loop. Thus it could happen that we busylooped when\nthe first condition was not true while the second one was. That is burning CPU\ncycles needlessly and is deadly on UP machines...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "357b9784b79924a31ccded5d9a0c688f48cc28f2",
      "tree": "ba47dcbcc40b956b30e4b27c790547cb5d3fc563",
      "parents": [
        "b1375d64c539c5b76794be759b62d3f178e67c32"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: make sure a bitmap has enough bytes\n\nWe have only been checking for min_bytes available in bitmap entries, but we\nwon\u0027t successfully setup a bitmap cluster unless it has at least bytes in the\nbitmap, so in the common case min_bytes is 4k and we want something like 2MB, so\nif there are a bunch of bitmap entries with less than 2mb\u0027s in them, we\u0027ll\nsearch all them anyway, which is suboptimal.  Fix this check.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b1375d64c539c5b76794be759b62d3f178e67c32",
      "tree": "da4f29173700701bc1aa0ad17fdb436305fd3513",
      "parents": [
        "96bdc7dc61fb1b1e8e858dafb13abee8482ba064"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 26 15:01:11 2012 -0500"
      },
      "message": "Btrfs: fix uninit warning in backref.c\n\nAdded initialization with the declaration of ret. It isn\u0027t set later on the\nswitch-default branch (which should never be taken).\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "96bdc7dc61fb1b1e8e858dafb13abee8482ba064",
      "tree": "eddbfc7a931c7063ded4505c99d11d1702117064",
      "parents": [
        "f248679e86fead40cc78e724c7181d6bec1a2046"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 08:13:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:38:24 2012 -0500"
      },
      "message": "Btrfs: use larger system chunks\n\nsystem chunks by default are very small.  This makes them slightly\nlarger and also fixes the conditional checks to make sure we don\u0027t\nallocate a billion of them at once.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f248679e86fead40cc78e724c7181d6bec1a2046",
      "tree": "88abeee0b2a87c0f0377509525c92d3c9ec15a15",
      "parents": [
        "8c2a3ca20f6233677ac3222c6506174010eb414f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jan 13 12:09:22 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:43 2012 -0500"
      },
      "message": "Btrfs: add a delalloc mutex to inodes for delalloc reservations\n\nI was using i_mutex for this, but we\u0027re getting bogus lockdep warnings by doing\nthat and theres no real way to get rid of those, so just stop using i_mutex to\nprotect delalloc metadata reservations and use a delalloc mutex instead.  This\nshouldn\u0027t be contended often at all, only if you are writing and mmap writing to\nthe file at the same time.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "8c2a3ca20f6233677ac3222c6506174010eb414f",
      "tree": "88d1105c665d355b363929557ed0c5489795e348",
      "parents": [
        "90290e19820e3323ce6b9c2888eeb68bf29c278b"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jan 10 10:31:31 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:43 2012 -0500"
      },
      "message": "Btrfs: space leak tracepoints\n\nThis in addition to a script in my btrfs-tracing tree will help track down space\nleaks when we\u0027re getting space left over in block groups on umount.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "90290e19820e3323ce6b9c2888eeb68bf29c278b",
      "tree": "cdac13a9718d326cdcd9f4b215a5739906a2325a",
      "parents": [
        "3f7de037fb3727b20bc27332cdcf2488b702394c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 02 15:44:12 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:42 2012 -0500"
      },
      "message": "Btrfs: protect orphan block rsv with spin_lock\n\nWe\u0027ve been seeing warnings coming out of the orphan commit stuff forever from\nceph.  Turns out it\u0027s because we\u0027re racing with checking if the orphan block\nreserve is set, because we clear it outside of the spin_lock.  So leave the\nnormal fastpath checks where they are, but take the spin_lock and _recheck_ to\nmake sure we haven\u0027t had an orphan block rsv added in the meantime.  Then clear\nthe root\u0027s orphan block rsv and release the lock.  With this patch a user said\nthe warnings went away and they usually showed up pretty soon after he started\nceph.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "3f7de037fb3727b20bc27332cdcf2488b702394c",
      "tree": "7e355b7e60b584ca7aaaf7c8abfa1f2408c15ff2",
      "parents": [
        "45a8090e626ab470c91142954431a93846030b0d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Nov 10 08:29:20 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:42 2012 -0500"
      },
      "message": "Btrfs: add allocator tracepoints\n\nI used these tracepoints when figuring out what the cluster stuff was doing, so\nadd them to mainline in case we need to profile this stuff again.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "45a8090e626ab470c91142954431a93846030b0d",
      "tree": "2a13259734f99cbc8f176ed395a2d1f35e36ad27",
      "parents": [
        "ec39e180fd3188c983c94603634bfcd019f42ae7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:55 2012 -0500"
      },
      "message": "Btrfs: don\u0027t call btrfs_throttle in file write\n\nBtrfs_throttle will make us wait if there is a currently committing transaction\nuntil we can open new transactions, which is ridiculous since we don\u0027t actually\nstart any transactions within the file write path anyway, so all this does is\nintroduce big latencies if we have a sync/fsync heavy workload going on while\nsomebody else is trying to do work.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ec39e180fd3188c983c94603634bfcd019f42ae7",
      "tree": "baf6a56fb98735cc533b6a5bb9c29a364a6c0cf3",
      "parents": [
        "f70a9a6b94af86fca069a7552ab672c31b457786"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:54 2012 -0500"
      },
      "message": "Btrfs: release space on error in page_mkwrite\n\nIf updating the inode gave us an ENOSPC we were just returning in page_mkwrite,\nwhich is a problem since we make our reservation right before trying to update\nthe inode, so fix the out label so that we actually free our reservation.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f70a9a6b94af86fca069a7552ab672c31b457786",
      "tree": "0a62930b2540e11b877a1ead4050c55638bbd874",
      "parents": [
        "7ad85bb76a61801362701b77c5cee5aa09f35369"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:54 2012 -0500"
      },
      "message": "Btrfs: fix btrfsck error 400 when truncating a compressed\n\nReproduce steps:\n # mkfs.btrfs /dev/sdb5\n # mount /dev/sdb5 -o compress\u003dlzo /mnt\n # dd if\u003d/dev/zero of\u003d/mnt/tmpfile bs\u003d128K count\u003d1\n # sync\n # truncate -s 64K /mnt/tmpfile\n root 5 inode 257 errors 400\n\nThis is because of the wrong if condition, which is used to check if we should\nsubtract the bytes of the dropped range from i_blocks/i_bytes of i-node or not.\nWhen we truncate a compressed extent, btrfs substracts the bytes of the whole\nextent, it\u0027s wrong. We should substract the real size that we truncate, no\nmatter it is a compressed extent or not. 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": "7ad85bb76a61801362701b77c5cee5aa09f35369",
      "tree": "e03f4ced4f7c84e9828e4f4a4cbe894369300800",
      "parents": [
        "c126dea771be1b3c370c0ffc4a09e6a82d492a49"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:54 2012 -0500"
      },
      "message": "Btrfs: do not use btrfs_end_transaction_throttle everywhere\n\nA user reported a problem where things like open with O_CREAT would take up to\n30 seconds when he had nfs activity on the same mount.  This is because all of\nour quick metadata operations, like create, symlink etc all do\nbtrfs_end_transaction_throttle, which if the transaction is blocked will wait\nfor the commit to complete before it returns.  This adds a ridiculous amount of\nlatency and isn\u0027t really needed.  The normal btrfs_end_transaction will mark the\ntransaction as blocked and wake the transaction kthread up if it thinks the\ntransaction needs to end (this being in the running out of global reserve space\nscenario), and this is all that is really needed since we\u0027ve already done\neverything we\u0027re going to do, we just need to return.  This should help people\nwith the latency they were seeing when using synchronous heavy workloads.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c126dea771be1b3c370c0ffc4a09e6a82d492a49",
      "tree": "99fc723ba2e89d767e260244cf8d19467bc68c8b",
      "parents": [
        "9785dbdf265ddc47d5c88267d89a97648c0dc14b",
        "21adbd5cbb5344a3fca6bb7ddb2ab6cb03c44546"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:27:58 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:27:58 2012 -0500"
      },
      "message": "Merge branch \u0027integrity-check-patch-v2\u0027 of git://btrfs.giantdisaster.de/git/btrfs into integration\n\nConflicts:\n\tfs/btrfs/ctree.h\n\tfs/btrfs/super.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9785dbdf265ddc47d5c88267d89a97648c0dc14b",
      "tree": "3a97a48d6f282f9e06c5446beeb886fcd86c4798",
      "parents": [
        "d756bd2d9339447c29bde950910586df8f8941ec",
        "6bf7e080d5bcb0d399ee38ce3dabbfad64448192"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:31 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:31 2012 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://git.jan-o-sch.net/btrfs-unstable into integration\n"
    },
    {
      "commit": "d756bd2d9339447c29bde950910586df8f8941ec",
      "tree": "f96aeb682bcc4fdcf75d080f260c809b9fbc4a1a",
      "parents": [
        "27263e28321db438bc43dc0c0be432ce91526224",
        "b367e47fb3a70f5d24ebd6faf7d42436d485fb2d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:17 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:17 2012 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://repo.or.cz/linux-btrfs-devel into integration\n\nConflicts:\n\tfs/btrfs/volumes.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "27263e28321db438bc43dc0c0be432ce91526224",
      "tree": "b7571dd52d6c1d48528e383d273b330da94439bd",
      "parents": [
        "64e05503ab5c73b2ffb8d55d2f7aab74f34fc691",
        "19a39dce3b9bf0244d19a446718ad6f7605ff099"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:02 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:02 2012 -0500"
      },
      "message": "Merge branch \u0027restriper\u0027 of git://github.com/idryomov/btrfs-unstable into integration\n"
    },
    {
      "commit": "64e05503ab5c73b2ffb8d55d2f7aab74f34fc691",
      "tree": "a754d3790b8dd59ecaed54095c6e09e04f0d1dd2",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610",
        "1bb91902dc90e25449893e693ad45605cb08fbe5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:25:42 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:25:42 2012 -0500"
      },
      "message": "Merge branch \u0027allocation-fixes\u0027 into integration\n"
    },
    {
      "commit": "19a39dce3b9bf0244d19a446718ad6f7605ff099",
      "tree": "4834e177b8b64405aa858bfdcfbabd890277102b",
      "parents": [
        "de322263d3a6d4ffd4ed7c4d0c6536e9497aec9b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: add balance progress reporting\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "de322263d3a6d4ffd4ed7c4d0c6536e9497aec9b",
      "tree": "26761c92c8d135aa62702562bae3337ccad9f74d",
      "parents": [
        "a7e99c691af553fc15ac46a51f130b7c59a65f76"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for resuming restriper after it was paused\n\nRecognize BTRFS_BALANCE_RESUME flag passed from userspace.  We use the\nsame heuristics used when recovering balance after a crash to try to\nstart where we left off last time.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "a7e99c691af553fc15ac46a51f130b7c59a65f76",
      "tree": "55491f285683951d509819a66e614ac6f12659dd",
      "parents": [
        "837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for canceling restriper\n\nImplement an ioctl for canceling restriper.  Currently we wait until\nrelocation of the current block group is finished, in future this can be\ndone by triggering a commit.  Balance item is deleted and no memory\nabout the interrupted balance is kept.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961",
      "tree": "4ef87d05240e90480749c345274a83094caf66f0",
      "parents": [
        "9555c6c180600b40f6e86bd4dc53bf47e06ed663"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for pausing restriper\n\nImplement an ioctl for pausing restriper.  This pauses the relocation,\nbut balance is still considered to be \"in progress\": balance item is\nnot deleted, other volume operations cannot be started, etc.  If paused\nin the middle of profile changing operation we will continue making\nallocations with the target profile.\n\nAdd a hook to close_ctree() to pause restriper and free its data\nstructures on unmount.  (It\u0027s safe to unmount when restriper is in\n\"paused\" state, we will resume with the same parameters on the next\nmount)\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "9555c6c180600b40f6e86bd4dc53bf47e06ed663",
      "tree": "74f95edee2368e183a2a054c24725d2940632a8f",
      "parents": [
        "596410151ed71819b9e8a8018c6c9992796b256d"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: add skip_balance mount option\n\nSince restriper kthread starts involuntarily on mount and can suck cpu\nand memory bandwidth add a mount option to forcefully skip it.  The\nrestriper in that case hangs around in paused state and can be resumed\nfrom userspace when it\u0027s convenient.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "596410151ed71819b9e8a8018c6c9992796b256d",
      "tree": "ff697d01a6dd8cf50b37b3855e40764335be044d",
      "parents": [
        "0940ebf6b92ea10a6f30ae5ac3993a3b75745da6"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: recover balance on mount\n\nOn mount, if balance item is found, resume balance in a separate\nkernel thread.\n\nTry to be smart to continue roughly where previous balance (or convert)\nwas interrupted.  For chunk types that were being converted to some\nprofile we turn on soft convert, in case of a simple balance we turn on\nusage filter and relocate only less-than-90%-full chunks of that type.\nThese are just heuristics but they help quite a bit, and can be improved\nin future.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "0940ebf6b92ea10a6f30ae5ac3993a3b75745da6",
      "tree": "30942cd4eaa259951b549abf7c5c972abc8ab289",
      "parents": [
        "cfa4c961cc69ffb7bda450972320a25cbd413e19"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: save balance parameters to disk\n\nIntroduce a new btree objectid for storing balance item.  The reason is\nto be able to resume restriper after a crash with the same parameters.\nBalance item has a very high objectid and goes into tree of tree roots.\n\nThe key for the new item is as follows:\n\n\t[ BTRFS_BALANCE_OBJECTID ; BTRFS_BALANCE_ITEM_KEY ; 0 ]\n\nOlder kernels simply ignore it so it\u0027s safe to mount with an older\nkernel and then go back to the newer one.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "cfa4c961cc69ffb7bda450972320a25cbd413e19",
      "tree": "68ed15b8303d8aa7385df5383aebbef47debea4f",
      "parents": [
        "e4d8ec0f65b91bfb4984a4927632ded95f9825ad"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: soft profile changing mode (aka soft convert)\n\nWhen doing convert from one profile to another if soft mode is on\nrestriper won\u0027t touch chunks that already have the profile we are\nconverting to.  This is useful if e.g. half of the FS was converted\nearlier.\n\nThe soft mode switch is (like every other filter) per-type.  This means\nthat we can convert for example meta chunks the \"hard\" way while\nconverting data chunks selectively with soft switch.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "e4d8ec0f65b91bfb4984a4927632ded95f9825ad",
      "tree": "4727c977803093ec5cdf93da4fcab34cc8de8ecf",
      "parents": [
        "70922617b0099f420deceb53d5dc7f4fb30d08d0"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: implement online profile changing\n\nProfile changing is done by launching a balance with\nBTRFS_BALANCE_CONVERT bits set and target fields of respective\nbtrfs_balance_args structs initialized.  Profile reducing code in this\ncase will pick restriper\u0027s target profile if it\u0027s available instead of\ndoing a blind reduce.  If target profile is not yet available it goes\nback to a plain reduce.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "70922617b0099f420deceb53d5dc7f4fb30d08d0",
      "tree": "6353dff7355863b92b48001e76c3f00bf180916b",
      "parents": [
        "ea67176ae8c024f64d85ec33873e5eadf1af7247"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: do not reduce profile in do_chunk_alloc()\n\nEvery caller of do_chunk_alloc() feeds it the reduced allocation\nprofile, so stop trying to reduce it one more time.  Instead check the\nvalidity of the passed profile.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "ea67176ae8c024f64d85ec33873e5eadf1af7247",
      "tree": "d3674d6a4807074dbaadfdd260e2aaa3011eab5e",
      "parents": [
        "94e60d5a5c4b98a32b1077dec88df09ada712376"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: virtual address space subset filter\n\nSelect chunks which have at least one byte located inside a given\n[vstart, vend) virtual address space range.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "94e60d5a5c4b98a32b1077dec88df09ada712376",
      "tree": "149b9c9f68b64c7aa6e4b07bf12940a6e27591ca",
      "parents": [
        "409d404b461afa9738619f249fd7f62a366b68c2"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: devid subset filter\n\nSelect chunks which have at least one byte of at least one stripe\nlocated on a device with devid X in a given [pstart,pend) physical\naddress range.\n\nThis filter only works when devid filter is turned on.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "409d404b461afa9738619f249fd7f62a366b68c2",
      "tree": "38092a3be26e6bcedc5202c04c5915e12b1d64a8",
      "parents": [
        "5ce5b3c0916ba3a2e34cf648b94044adc5ef9e76"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: devid filter\n\nRelocate chunks which have at least one stripe located on a device with\ndevid X.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "5ce5b3c0916ba3a2e34cf648b94044adc5ef9e76",
      "tree": "0cfbc8eeea18b9491275c59b8a7eed1471a2abd3",
      "parents": [
        "ed25e9b26f898d8d63ae4a836489f1923534143b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: usage filter\n\nSelect chunks that are less than X percent full.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "ed25e9b26f898d8d63ae4a836489f1923534143b",
      "tree": "89ee253d15ef46b430de0435c068b66267ce829b",
      "parents": [
        "f43ffb60fd94e98be02780944e182ade6653b916"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: profiles filter\n\nSelect chunks based on a given profile mask.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "f43ffb60fd94e98be02780944e182ade6653b916",
      "tree": "50cab47a03c223d0641d8fe62805e71f5cffef1a",
      "parents": [
        "c9e9f97bdfb64d06e9520f8e4f37674ac21cc9bc"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add basic infrastructure for selective balancing\n\nThis allows to have a separate set of filters for each chunk type\n(data,meta,sys).  The code however is generic and switch on chunk type\nis only done once.\n\nThis commit also adds a type filter: it allows to balance for example\nmeta and system chunks w/o touching data ones.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "c9e9f97bdfb64d06e9520f8e4f37674ac21cc9bc",
      "tree": "22d695a7a461068c773b327e5c89a045ade5d8a3",
      "parents": [
        "10ea00f55a07f8f9536d9112b95108a86f700bab"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add basic restriper infrastructure\n\nAdd basic restriper infrastructure: extended balancing ioctl and all\nrelated ioctl data structures, add data structure for tracking\nrestriper\u0027s state to fs_info, etc.  The semantics of the old balancing\nioctl are fully preserved.\n\nExplicitly disallow any volume operations when balance is in progress.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "10ea00f55a07f8f9536d9112b95108a86f700bab",
      "tree": "83887f41d8a876d919f74f83cda26eb18b10deca",
      "parents": [
        "a46d11a8b06dd0431a3888fbc4856ea13a8e634f"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: make avail_*_alloc_bits fields dynamic\n\nCurrently when new chunks are created respective avail_alloc_bits field\nis updated to reflect profiles of all chunks present in the system.\nHowever when chunks are removed profile bits are never cleared.\n\nThis patch clears profile bit of respective avail_alloc_bits field when\nthe last chunk with that profile is removed.  Restriper needs this to\nproperly operate when \"downgrading\".\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "a46d11a8b06dd0431a3888fbc4856ea13a8e634f",
      "tree": "2aebc4d3ef2318a08cb067bb4a597a51e2455a65",
      "parents": [
        "52ba692972532f8d652080214b6599ece3dd51b9"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add BTRFS_AVAIL_ALLOC_BIT_SINGLE bit\n\nRight now on-disk BTRFS_BLOCK_GROUP_* profile bits are used for\navail_{data,metadata,system}_alloc_bits fields, which gather info about\navailable allocation profiles in the FS.  When chunk is created or read\nfrom disk, its profile is OR\u0027ed with the corresponding avail_alloc_bits\nfield.  Since SINGLE is denoted by 0 in the on-disk format, currently\nthere is no way to tell when such chunks become avaialble.  Restriper\nneeds that information, so add a separate bit for SINGLE profile.\n\nThis bit is going to be in-memory only, it should never be written out\nto disk, so it\u0027s not a disk format change.  However to avoid remappings\nin future, reserve corresponding on-disk bit.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "52ba692972532f8d652080214b6599ece3dd51b9",
      "tree": "d4c60bad0a7813d964988c7c40aeceadfb54cc1d",
      "parents": [
        "6fef8df1dcb9b586268caff66df1d71ce8610132"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: introduce masks for chunk type and profile\n\nChunk\u0027s type and profile are encoded in u64 flags field.  Introduce\nmasks to easily access them.  Also fix the type of BTRFS_BLOCK_GROUP_*\nconstants, it should be ULL.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "6fef8df1dcb9b586268caff66df1d71ce8610132",
      "tree": "03488bc99771dda6354a3cb3113bee96f55aac47",
      "parents": [
        "08c422c27f855d27b0b3d9fa30ebd938d4ae6f1f"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: get rid of *_alloc_profile fields\n\n{data,metadata,system}_alloc_profile fields have been unused for a long\ntime now.  Get rid of them.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "b367e47fb3a70f5d24ebd6faf7d42436d485fb2d",
      "tree": "5acc05bae14070f2dad3433a1482fe3a7bab0744",
      "parents": [
        "c7c144db531fda414e532adac56e965ce332e2a5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 07 11:38:24 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:54 2012 +0800"
      },
      "message": "Btrfs: fix possible deadlock when opening a seed device\n\nThe correct lock order is uuid_mutex -\u003e volume_mutex -\u003e chunk_mutex,\nbut when we mount a filesystem which has backing seed devices, we have\nthis lock chain:\n\n    open_ctree()\n        lock(chunk_mutex);\n        read_chunk_tree();\n            read_one_dev();\n                open_seed_devices();\n                    lock(uuid_mutex);\n\nand then we hit a lockdep splat.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "c7c144db531fda414e532adac56e965ce332e2a5",
      "tree": "8dc29815a0821e7441ebaa41f15adba0699ef730",
      "parents": [
        "7fe1e641502616220437079258506196bc4d8cbf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 07 10:39:22 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:52 2012 +0800"
      },
      "message": "Btrfs: update global block_rsv when creating a new block group\n\nA bug was triggered while using seed device:\n\n    # mkfs.btrfs /dev/loop1\n    # btrfstune -S 1 /dev/loop1\n    # mount -o /dev/loop1 /mnt\n    # btrfs dev add /dev/loop2 /mnt\n\nbtrfs: block rsv returned -28\n------------[ cut here ]------------\nWARNING: at fs/btrfs/extent-tree.c:5969 btrfs_alloc_free_block+0x166/0x396 [btrfs]()\n...\nCall Trace:\n...\n[\u003cf7b7c31c\u003e] btrfs_cow_block+0x101/0x147 [btrfs]\n[\u003cf7b7eaa6\u003e] btrfs_search_slot+0x1b8/0x55f [btrfs]\n[\u003cf7b7f844\u003e] btrfs_insert_empty_items+0x42/0x7f [btrfs]\n[\u003cf7b7f8c1\u003e] btrfs_insert_item+0x40/0x7e [btrfs]\n[\u003cf7b8ac02\u003e] btrfs_make_block_group+0x243/0x2aa [btrfs]\n[\u003cf7bb3f53\u003e] __btrfs_alloc_chunk+0x672/0x70e [btrfs]\n[\u003cf7bb41ff\u003e] init_first_rw_device+0x77/0x13c [btrfs]\n[\u003cf7bb5a62\u003e] btrfs_init_new_device+0x664/0x9fd [btrfs]\n[\u003cf7bbb65a\u003e] btrfs_ioctl+0x694/0xdbe [btrfs]\n[\u003cc04f55f7\u003e] do_vfs_ioctl+0x496/0x4cc\n[\u003cc04f5660\u003e] sys_ioctl+0x33/0x4f\n[\u003cc07b9edf\u003e] sysenter_do_call+0x12/0x38\n---[ end trace 906adac595facc7d ]---\n\nSince seed device is readonly, there\u0027s no usable space in the filesystem.\nAfterwards we add a sprout device to it, and the kernel creates a METADATA\nblock group and a SYSTEM block group where comes free space we can reserve,\nbut we still get revervation failure because the global block_rsv hasn\u0027t\nbeen updated accordingly.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "7fe1e641502616220437079258506196bc4d8cbf",
      "tree": "da48e34d3e826f1bfe87bf7f7743bbb0e47ab2c3",
      "parents": [
        "ec9ef7a13be4dcce964c8503e8999087945e5b9e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 29 14:47:27 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:48 2012 +0800"
      },
      "message": "Btrfs: rewrite btrfs_trim_block_group()\n\nThere are various bugs in block group trimming:\n\n- It may trim from offset smaller than user-specified offset.\n- It may trim beyond user-specified range.\n- It may leak free space for extents smaller than specified minlen.\n- It may truncate the last trimmed extent thus leak free space.\n- With mixed extents+bitmaps, some extents may not be trimmed.\n- With mixed extents+bitmaps, some bitmaps may not be trimmed (even\nnone will be trimmed). Even for those trimmed, not all the free space\nin the bitmaps will be trimmed.\n\nI rewrite btrfs_trim_block_group() and break it into two functions.\nOne is to trim extents only, and the other is to trim bitmaps only.\n\nBefore patching:\n\n\t# fstrim -v /mnt/\n\t/mnt/: 1496465408 bytes were trimmed\n\nAfter patching:\n\n\t# fstrim -v /mnt/\n\t/mnt/: 2193768448 bytes were trimmed\n\nAnd this matches the total free space:\n\n\t# btrfs fi df /mnt\n\tData: total\u003d3.58GB, used\u003d1.79GB\n\tSystem, DUP: total\u003d8.00MB, used\u003d4.00KB\n\tSystem: total\u003d4.00MB, used\u003d0.00\n\tMetadata, DUP: total\u003d205.12MB, used\u003d97.14MB\n\tMetadata: total\u003d8.00MB, used\u003d0.00\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "ec9ef7a13be4dcce964c8503e8999087945e5b9e",
      "tree": "afd97976c76c45fca7b659f8d81cbcd4995d2a7e",
      "parents": [
        "de11cc12df17337979e0929d2831887432f236ca"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 01 14:06:42 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:46 2012 +0800"
      },
      "message": "Btrfs: simplfy calculation of stripe length for discard operation\n\nFor btrfs raid, while discarding a range of space, we\u0027ll need to know\nthe start offset and length to discard for each device, and it\u0027s done\nin btrfs_map_block().\n\nHowever the calculation is a bit complex for raid0 and raid10, so I\nreimplement it based on a fact that:\n\n        dev1          dev2           dev3    (raid0)\n        -----------------------------------\n        s0 s3 s6      s1 s4 s7       s2 s5\n\nEach device has (total_stripes / nr_dev) stripes, or plus one.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "de11cc12df17337979e0929d2831887432f236ca",
      "tree": "a9232dd3531707f49c5e56523019a1e0ce081876",
      "parents": [
        "125ccb0ae6806dbec31abf4a85448971df3b4e39"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 01 12:55:47 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:44 2012 +0800"
      },
      "message": "Btrfs: don\u0027t pre-allocate btrfs bio\n\nWe pre-allocate a btrfs bio with fixed size, and then may re-allocate\nmemory if we find stripes are bigger than the fixed size. But this\npre-allocation is not necessary.\n\nAlso we don\u0027t have to calcuate the stripe number twice.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "125ccb0ae6806dbec31abf4a85448971df3b4e39",
      "tree": "f530e85bea0639379997000a37e914d180e9e5b4",
      "parents": [
        "4da6f1a332f6c16b6594c7892f13c31459b9b1c8"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 08 15:07:24 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:42 2012 +0800"
      },
      "message": "Btrfs: don\u0027t pass a trans handle unnecessarily in volumes.c\n\nSome functions never use the transaction handle passed to them.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "4da6f1a332f6c16b6594c7892f13c31459b9b1c8",
      "tree": "e647af08d851ccb13e89312394c9dd1fdaa785c6",
      "parents": [
        "f062abf089ff705e09bbaa6fa1e2fd7688a0f2ea"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 29 13:39:50 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:39 2012 +0800"
      },
      "message": "Btrfs: reserve metadata space in btrfs_ioctl_setflags()\n\nCheck and reserve space for btrfs_update_inode().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "f062abf089ff705e09bbaa6fa1e2fd7688a0f2ea",
      "tree": "02ed40f0c73ed1d6f8dbdaf5ce725b520036a9b7",
      "parents": [
        "706efc6630c2722602541a6a2fc5900a4e38456a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 29 13:36:45 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:38 2012 +0800"
      },
      "message": "Btrfs: remove BUG_ON()s in btrfs_ioctl_setflags()\n\nWe can recover from errors and return -errno to user space.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "706efc6630c2722602541a6a2fc5900a4e38456a",
      "tree": "bba227c9b49146e6c1bb6b529224088dbb9b8811",
      "parents": [
        "a1ee5a45818acc7f9c13e560827cf3e8735ac919"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jan 09 14:36:28 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:36 2012 +0800"
      },
      "message": "Btrfs: check the return value of io_ctl_init()\n\nIt can return -ENOMEM.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "a1ee5a45818acc7f9c13e560827cf3e8735ac919",
      "tree": "984505e8c99a6965453819651ff0ea91a4ca8d4b",
      "parents": [
        "db804f23a72bada58f083dfad6a65d019ddb3bd4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jan 09 14:27:42 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:34 2012 +0800"
      },
      "message": "Btrfs: avoid possible NULL deref in io_ctl_drop_pages()\n\nIf we run into some failure path in io_ctl_prepare_pages(),\nio_ctl-\u003epages[] array may have some NULL pointers.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "db804f23a72bada58f083dfad6a65d019ddb3bd4",
      "tree": "24c7a53995b61b5f98d87b8db136fc908a3a035f",
      "parents": [
        "d25223a0d22f7ec4203ec285dc6e51f696591ba3"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jan 10 16:41:01 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:31 2012 +0800"
      },
      "message": "Btrfs: add pinned extents to on-disk free space cache correctly\n\nI got this while running xfstests:\n\n[24256.836098] block group 317849600 has an wrong amount of free space\n[24256.836100] btrfs: failed to load free space cache for block group 317849600\n\nWe should clamp the extent returned by find_first_extent_bit(),\nso the start of the extent won\u0027t smaller than the start of the\nblock group.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "d25223a0d22f7ec4203ec285dc6e51f696591ba3",
      "tree": "f54428e64f692edfa5bf75f8eb301329e32a895f",
      "parents": [
        "396e6e49c58bb23d1814d3c240c736c9f01523c5",
        "08c422c27f855d27b0b3d9fa30ebd938d4ae6f1f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 09:54:49 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 09:54:49 2012 +0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs into for-linus\n"
    },
    {
      "commit": "1bb91902dc90e25449893e693ad45605cb08fbe5",
      "tree": "17f514fb0f2c1b0de7681638ba3b2cc69cf28d01",
      "parents": [
        "fc7c1077ceb99c35e5f9d0ce03dc7740565bb2bf"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "lxoliva@fsfla.org",
        "time": "Fri Oct 14 12:10:36 2011 -0300"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jan 07 19:15:15 2012 -0500"
      },
      "message": "Btrfs: revamp clustered allocation logic\n\nParameterize clusters on minimum total size, minimum chunk size and\nminimum contiguous size for at least one chunk, without limits on\ncluster, window or gap sizes.  Don\u0027t tolerate any fragmentation for\nSSD_SPREAD; accept it for metadata, but try to keep data dense.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fc7c1077ceb99c35e5f9d0ce03dc7740565bb2bf",
      "tree": "ae10e2989f33b45529c2474a5668b5cecc65bf08",
      "parents": [
        "a5f6f719a5cd7caeee8ed8137cf3f94c3bbebc65"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "lxoliva@fsfla.org",
        "time": "Mon Nov 28 12:36:17 2011 -0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jan 07 19:15:14 2012 -0500"
      },
      "message": "Btrfs: don\u0027t set up allocation result twice\n\nWe store the allocation start and length twice in ins, once right\nafter the other, but with intervening calls that may prevent the\nduplicate from being optimized out by the compiler.  Remove one of the\nassignments.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a5f6f719a5cd7caeee8ed8137cf3f94c3bbebc65",
      "tree": "622a4a4399eae8e81b152670aa71c621d31b1878",
      "parents": [
        "1100373f8aa69e377386499350496e3d8565605f"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "lxoliva@fsfla.org",
        "time": "Mon Dec 12 04:48:19 2011 -0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:48:21 2012 -0500"
      },
      "message": "Btrfs: test free space only for unclustered allocation\n\nSince the clustered allocation may be taking extents from a different\nblock group, there\u0027s no point in spin-locking and testing the current\nblock group free space before attempting to allocate space from a\ncluster, even more so when we might refrain from even trying the\ncluster in the current block group because, after the cluster was set\nup, not enough free space remained.  Furthermore, cluster creation\nattempts fail fast when the block group doesn\u0027t have enough free\nspace, so the test was completely superfluous.\n\nI\u0027ve move the free space test past the cluster allocation attempt,\nwhere it is more useful, and arranged for a cluster in the current\nblock group to be released before trying an unclustered allocation,\nwhen we reach the LOOP_NO_EMPTY_SIZE stage, so that the free space in\nthe cluster stands a chance of being combined with additional free\nspace in the block group so as to succeed in the allocation attempt.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1100373f8aa69e377386499350496e3d8565605f",
      "tree": "e090858231ee4f3bf0b51ba4cf3dc592f4e007e8",
      "parents": [
        "cf1d72c9ceec391d34c48724da57282e97f01122"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:47:38 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:47:38 2012 -0500"
      },
      "message": "Btrfs: use bigger metadata chunks on bigger filesystems\n\nThe 256MB chunk is a little small on a huge FS.  This scales up the\nchunk size.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cf1d72c9ceec391d34c48724da57282e97f01122",
      "tree": "addcb347d4c00d724f86d309ad26b75438b7a814",
      "parents": [
        "203bf287cb01a5dc26c20bd3737cecf3aeba1d48"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:41:34 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:41:34 2012 -0500"
      },
      "message": "Btrfs: lower the bar for chunk allocation\n\nThe chunk allocation code has tried to keep a pretty tight lid on creating new\nmetadata chunks.  This is partially because in the past the reservation\ncode didn\u0027t give us an accurate idea of how much space was being used.\n\nThe new code is much more accurate, so we\u0027re able to get rid of some of these\nchecks.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "203bf287cb01a5dc26c20bd3737cecf3aeba1d48",
      "tree": "f9ce9d7c82360bd6059b5ef16166cf79d16b1380",
      "parents": [
        "c1111b1fcee6359922ad8e5f6d72ed43815ad8f9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:23:57 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:23:57 2012 -0500"
      },
      "message": "Btrfs: run chunk allocations while we do delayed refs\n\nBtrfs tries to batch extent allocation tree changes to improve performance\nand reduce metadata trashing.  But it doesn\u0027t allocate new metadata chunks\nwhile it is doing allocations for the extent allocation tree.\n\nThis commit changes the delayed refence code to do chunk allocations if we\u0027re\ngetting low on room.  It prevents crashes and improves performance.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6bf7e080d5bcb0d399ee38ce3dabbfad64448192",
      "tree": "954fc4c3ae899b1bb4b89af03582a81546eda4bf",
      "parents": [
        "4692cf58aa7b81f721c1653d48db99ea41421d58"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Dec 01 14:35:19 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Jan 05 15:11:55 2012 +0100"
      },
      "message": "Btrfs: make sure we\u0027re not using obsolete code in btrfs_get_extent\n\nThere\u0027s code in btrfs_get_extent that should never be used. This patch turns\na WARN_ON(1) into a BUG(), hoping we can remove the transaction code from\nbtrfs_get_extent soon.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "4692cf58aa7b81f721c1653d48db99ea41421d58",
      "tree": "0a5bf889142252d91bcc8df33a9c63c18024fe70",
      "parents": [
        "8da6d5815c592b713ecaf4f4f8b631f8359c96c4"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Fri Dec 02 14:56:41 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Jan 05 10:49:43 2012 +0100"
      },
      "message": "Btrfs: new backref walking code\n\nThe old backref iteration code could only safely be used on commit roots.\nBesides this limitation, it had bugs in finding the roots for these\nreferences. This commit replaces large parts of it by btrfs_find_all_roots()\nwhich a) really finds all roots and the correct roots, b) works correctly\nunder heavy file system load, c) considers delayed refs.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "805a6af8dba5dfdd35ec35dc52ec0122400b2610",
      "tree": "f6f7009c0b6a896ff1ea22aac7f17f23bd5a9e4f",
      "parents": [
        "869682384e78605897f9332700fe26c358ecf21c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:55:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:55:44 2012 -0800"
      },
      "message": "Linux 3.2\n"
    },
    {
      "commit": "869682384e78605897f9332700fe26c358ecf21c",
      "tree": "8b0654cec2ccfbf70f163caa66c98f6316b91f0d",
      "parents": [
        "d6042eac44b54dc5c7cb839175eb51dfd03d7633",
        "d8f46ff11081f03b09efe82245a3257bab6bf60e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:03:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:03:49 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  fix CAN MAINTAINERS SCM tree type\n  mwifiex: fix crash during simultaneous scan and connect\n  b43: fix regression in PIO case\n  ath9k: Fix kernel panic in AR2427 in AP mode\n  CAN MAINTAINERS update\n  net: fsl: fec: fix build for mx23-only kernel\n  sch_qfq: fix overflow in qfq_update_start()\n  Revert \"Bluetooth: Increase HCI reset timeout in hci_dev_do_close\"\n"
    },
    {
      "commit": "d6042eac44b54dc5c7cb839175eb51dfd03d7633",
      "tree": "b2a1c5878771f4d7a5aada868bdbc7eafc4eba3b",
      "parents": [
        "8a88951b5878dc475dcd841cefc767e36397d14e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed Jan 04 10:51:03 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:03:06 2012 -0800"
      },
      "message": "minixfs: misplaced checks lead to dentry leak\n\nbitmap size sanity checks should be done *before* allocating -\u003es_root;\nthere their cleanup on failure would be correct.  As it is, we do iput()\non root inode, but leak the root dentry...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a88951b5878dc475dcd841cefc767e36397d14e",
      "tree": "c31fd8cdfa08dce4768f42e556d97929deac2343",
      "parents": [
        "50b8d257486a45cba7b65ca978986ed216bbcc10"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jan 04 17:29:20 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:01:59 2012 -0800"
      },
      "message": "ptrace: ensure JOBCTL_STOP_SIGMASK is not zero after detach\n\nThis is the temporary simple fix for 3.2, we need more changes in this\narea.\n\n1. do_signal_stop() assumes that the running untraced thread in the\n   stopped thread group is not possible. This was our goal but it is\n   not yet achieved: a stopped-but-resumed tracee can clone the running\n   thread which can initiate another group-stop.\n\n   Remove WARN_ON_ONCE(!current-\u003eptrace).\n\n2. A new thread always starts with -\u003ejobctl \u003d 0. If it is auto-attached\n   and this group is stopped, __ptrace_unlink() sets JOBCTL_STOP_PENDING\n   but JOBCTL_STOP_SIGMASK part is zero, this triggers WANR_ON(!signr)\n   in do_jobctl_trap() if another debugger attaches.\n\n   Change __ptrace_unlink() to set the artificial SIGSTOP for report.\n\n   Alternatively we could change ptrace_init_task() to copy signr from\n   current, but this means we can copy it for no reason and hide the\n   possible similar problems.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[3.1]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50b8d257486a45cba7b65ca978986ed216bbcc10",
      "tree": "0bcbb7eefaaf3da47a23c259e91baf414319ff96",
      "parents": [
        "8d9cbf8240023f5b6d19f2106aff3d7077fc4a3b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jan 04 17:29:02 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:01:59 2012 -0800"
      },
      "message": "ptrace: partially fix the do_wait(WEXITED) vs EXIT_DEAD-\u003eEXIT_ZOMBIE race\n\nTest-case:\n\n\tint main(void)\n\t{\n\t\tint pid, status;\n\n\t\tpid \u003d fork();\n\t\tif (!pid) {\n\t\t\tfor (;;) {\n\t\t\t\tif (!fork())\n\t\t\t\t\treturn 0;\n\t\t\t\tif (waitpid(-1, \u0026status, 0) \u003c 0) {\n\t\t\t\t\tprintf(\"ERR!! wait: %m\\n\");\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tassert(ptrace(PTRACE_ATTACH, pid, 0,0) \u003d\u003d 0);\n\t\tassert(waitpid(-1, NULL, 0) \u003d\u003d pid);\n\n\t\tassert(ptrace(PTRACE_SETOPTIONS, pid, 0,\n\t\t\t\t\tPTRACE_O_TRACEFORK) \u003d\u003d 0);\n\n\t\tdo {\n\t\t\tptrace(PTRACE_CONT, pid, 0, 0);\n\t\t\tpid \u003d waitpid(-1, NULL, 0);\n\t\t} while (pid \u003e 0);\n\n\t\treturn 1;\n\t}\n\nIt fails because -\u003ereal_parent sees its child in EXIT_DEAD state\nwhile the tracer is going to change the state back to EXIT_ZOMBIE\nin wait_task_zombie().\n\nThe offending commit is 823b018e which moved the EXIT_DEAD check,\nbut in fact we should not blame it. The original code was not\ncorrect as well because it didn\u0027t take ptrace_reparented() into\naccount and because we can\u0027t really trust -\u003eptrace.\n\nThis patch adds the additional check to close this particular\nrace but it doesn\u0027t solve the whole problem. We simply can\u0027t\nrely on -\u003eptrace in this case, it can be cleared if the tracer\nis multithreaded by the exiting -\u003eparent.\n\nI think we should kill EXIT_DEAD altogether, we should always\nremove the soon-to-be-reaped child from -\u003echildren or at least\nwe should never do the DEAD-\u003eZOMBIE transition. But this is too\ncomplex for 3.2.\n\nReported-and-tested-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nTested-by: Lukasz Michalik \u003clmi@ift.uni.wroc.pl\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[3.0+]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d9cbf8240023f5b6d19f2106aff3d7077fc4a3b",
      "tree": "f795383da4de9b99efb933f02b26d2bdf2746f0d",
      "parents": [
        "f423fc627b05f47bc9305f9661630fce30f208f9",
        "225de11e31c1cecd04839b859a0b8f81d490a50b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 14:57:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 14:57:55 2012 -0800"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  [CIFS] default ntlmv2 for cifs mount delayed to 3.3\n  cifs: fix bad buffer length check in coalesce_t2\n"
    },
    {
      "commit": "d8f46ff11081f03b09efe82245a3257bab6bf60e",
      "tree": "fe47a5fe5ef62920ee3e1ffe5a2fd7a29918c6b0",
      "parents": [
        "405cc2736527bd506fd8f652308b03b2c8a1e8b9",
        "b015dbc0f95eef34819515bd403a62569bca23df"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 04 11:37:30 2012 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 04 11:37:30 2012 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem\n"
    },
    {
      "commit": "f423fc627b05f47bc9305f9661630fce30f208f9",
      "tree": "f2d9589bc443e99c8843a8ca18c44956d61fcf28",
      "parents": [
        "157e8bf8b4823bfcdefa6c1548002374b61f61df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 07:57:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 07:57:22 2012 -0800"
      },
      "message": "Revert \"rtc: Expire alarms after the time is set.\"\n\nThis reverts commit 93b2ec0128c431148b216b8f7337c1a52131ef03.\n\nThe call to \"schedule_work()\" in rtc_initialize_alarm() happens too\nearly, and can cause oopses at bootup\n\nNeil Brown explains why we do it:\n\n  \"If you set an alarm in the future, then shutdown and boot again after\n   that time, then you will end up with a timer_queue node which is in\n   the past.\n\n   When this happens the queue gets stuck.  That entry-in-the-past won\u0027t\n   get removed until and interrupt happens and an interrupt won\u0027t happen\n   because the RTC only triggers an interrupt when the alarm is \"now\".\n\n   So you\u0027ll find that e.g.  \"hwclock\" will always tell you that\n   \u0027select\u0027 timed out.\n\n   So we force the interrupt work to happen at the start just in case.\"\n\nand has a patch that convert it to do things in-process rather than with\nthe worker thread, but right now it\u0027s too late to play around with this,\nso we just revert the patch that caused problems for now.\n\nReported-by: Sander Eikelenboom \u003clinux@eikelenboom.it\u003e\nRequested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nRequested-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8da6d5815c592b713ecaf4f4f8b631f8359c96c4",
      "tree": "1dac6f55dd37193eee821b9d29ff59ee61edb853",
      "parents": [
        "a168650c08300434e1456abe7b6451f1448230d3"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Nov 23 18:55:04 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:26:38 2012 +0100"
      },
      "message": "Btrfs: added btrfs_find_all_roots()\n\nThis function gets a byte number (a data extent), collects all the leafs\npointing to it and walks up the trees to find all fs roots pointing to those\nleafs. It also returns the list of all leafs pointing to that extent.\n\nIt does proper locking for the involved trees, can be used on busy file\nsystems and honors delayed refs.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "a168650c08300434e1456abe7b6451f1448230d3",
      "tree": "addddb060b018eb569e97c11e1a1451feef11c7a",
      "parents": [
        "d1270cd91f308c9d22b2804720c36ccd32dbc35e"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Mon Dec 12 16:10:07 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:48 2012 +0100"
      },
      "message": "Btrfs: add waitqueue instead of doing busy waiting for more delayed refs\n\nNow that we may be holding back delayed refs for a limited period, we\nmight end up having no runnable delayed refs. Without this commit, we\u0027d\ndo busy waiting in that thread until another (runnable) ref arives.\nInstead, we\u0027re detecting this situation and use a waitqueue, such that\nwe only try to run more refs after\n\ta) another runnable ref was added  or\n\tb) delayed refs are no longer held back\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "d1270cd91f308c9d22b2804720c36ccd32dbc35e",
      "tree": "3dfa3109f7df9983ce88dad5bcb4515f7d4b26b5",
      "parents": [
        "00f04b88791ff49dc64ada18819d40a5b0671709"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Tue Sep 13 15:16:43 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:45 2012 +0100"
      },
      "message": "Btrfs: put back delayed refs that are too new\n\nWhen processing a delayed ref, first check if there are still old refs in\nthe process of being added. If so, put this ref back to the tree. To avoid\nlooping on this ref, choose a newer one in the next loop.\nbtrfs_find_ref_cluster has to take care of that.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "00f04b88791ff49dc64ada18819d40a5b0671709",
      "tree": "fd85a5f4b374aac035388b0cbf8ef572578d5578",
      "parents": [
        "5b25f70f4200766355cdabda604e131d2fb6010d"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Wed Sep 14 12:37:00 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:42 2012 +0100"
      },
      "message": "Btrfs: add sequence numbers to delayed refs\n\nSequence numbers are needed to reconstruct the backrefs of a given extent to\na certain point in time. The total set of backrefs consist of the set of\nbackrefs recorded on disk plus the enqueued delayed refs for it that existed\nat that moment.\n\nThis patch also adds a list that records all delayed refs which are\ncurrently in the process of being added.\n\nWhen walking all refs of an extent in btrfs_find_all_roots(), we freeze the\ncurrent state of delayed refs, honor anythinh up to this point and prevent\nprocessing newer delayed refs to assert consistency.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "5b25f70f4200766355cdabda604e131d2fb6010d",
      "tree": "20749d5e90763e8c1746d36b00c5beec5e3660b9",
      "parents": [
        "eebe063b7f916087cd5c61de57b20a3a30894a96"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Tue Sep 13 10:55:48 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:29 2012 +0100"
      },
      "message": "Btrfs: add nested locking mode for paths\n\nThis patch adds the possibilty to read-lock an extent even if it is already\nwrite-locked from the same thread. btrfs_find_all_roots() needs this\ncapability.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "225de11e31c1cecd04839b859a0b8f81d490a50b",
      "tree": "1d4ac4f71cad1ff9be6dd122b0bd388153189ff1",
      "parents": [
        "497728e11a9deeaea18be19fadcf7f1c85efbcf7"
      ],
      "author": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 03 23:08:24 2012 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Wed Jan 04 07:54:40 2012 -0600"
      },
      "message": "[CIFS] default ntlmv2 for cifs mount delayed to 3.3\n\nTurned out the ntlmv2 (default security authentication)\nupgrade was harder to test than expected, and we ran\nout of time to test against Apple and a few other servers\nthat we wanted to.  Delay upgrade of default security\nfrom ntlm to ntlmv2 (on mount) to 3.3.  Still works\nfine to specify it explicitly via \"sec\u003dntlmv2\" so this\nshould be fine.\n\nAcked-by: Jeff Layton \u003cjlayton@samba.org\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "497728e11a9deeaea18be19fadcf7f1c85efbcf7",
      "tree": "426b57623483588f7bdc15dc01cbd0930949fac1",
      "parents": [
        "f9fab10bbd768b0e5254e53a4a8477a94bfc4b96"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sun Jan 01 10:34:39 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 03 20:34:17 2012 -0600"
      },
      "message": "cifs: fix bad buffer length check in coalesce_t2\n\nThe current check looks to see if the RFC1002 length is larger than\nCIFSMaxBufSize, and fails if it is. The buffer is actually larger than\nthat by MAX_CIFS_HDR_SIZE.\n\nThis bug has been around for a long time, but the fact that we used to\ncap the clients MaxBufferSize at the same level as the server tended\nto paper over it. Commit c974befa changed that however and caused this\nbug to bite in more cases.\n\nReported-and-Tested-by: Konstantinos Skarlatos \u003ck.skarlatos@gmail.com\u003e\nTested-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "157e8bf8b4823bfcdefa6c1548002374b61f61df",
      "tree": "fb3918eeb8635b7ea6662ef2290dc834efc81b70",
      "parents": [
        "f9fab10bbd768b0e5254e53a4a8477a94bfc4b96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 17:32:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 17:32:13 2012 -0800"
      },
      "message": "Revert \"rtc: Disable the alarm in the hardware\"\n\nThis reverts commit c0afabd3d553c521e003779c127143ffde55a16f.\n\nIt causes failures on Toshiba laptops - instead of disabling the alarm,\nit actually seems to enable it on the affected laptops, resulting in\n(for example) the laptop powering on automatically five minutes after\nshutdown.\n\nThere\u0027s a patch for it that appears to work for at least some people,\nbut it\u0027s too late to play around with this, so revert for now and try\nagain in the next merge window.\n\nSee for example\n\n\thttp://bugs.debian.org/652869\n\nReported-and-bisected-by: Andreas Friedrich \u003cafrie@gmx.net\u003e (Toshiba Tecra)\nReported-by: Antonio-M. Corbi Bellot \u003cantonio.corbi@ua.es\u003e (Toshiba Portege R500)\nReported-by: Marco Santos \u003cmarco.santos@waynext.com\u003e (Toshiba Portege Z830)\nReported-by: Christophe Vu-Brugier \u003ccvubrugier@yahoo.fr\u003e  (Toshiba Portege R830)\nCc: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nRequested-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: stable@kernel.org  # for the versions that applied this\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9fab10bbd768b0e5254e53a4a8477a94bfc4b96",
      "tree": "7f4efb5c46582765c12249f652a8975a1956f781",
      "parents": [
        "30e053248da178cf6154bb7e950dc8713567e3fa"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Jan 03 14:41:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 16:14:32 2012 -0800"
      },
      "message": "hung_task: fix false positive during vfork\n\nvfork parent uninterruptibly and unkillably waits for its child to\nexec/exit. This wait is of unbounded length. Ignore such waits\nin the hung_task detector.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nLKML-Reference: \u003c1325344394.28904.43.camel@lappy\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30e053248da178cf6154bb7e950dc8713567e3fa",
      "tree": "3ef4cb7f85f581fe53361ea0eb2586a8b6e696c2",
      "parents": [
        "4376eee92e5a8332b470040e672ea99cd44c826a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jan 03 13:14:29 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 16:12:19 2012 -0800"
      },
      "message": "security: Fix security_old_inode_init_security() when CONFIG_SECURITY is not set\n\nCommit 1e39f384bb01 (\"evm: fix build problems\") makes the stub version\nof security_old_inode_init_security() return 0 when CONFIG_SECURITY is\nnot set.\n\nBut that makes callers such as reiserfs_security_init() assume that\nsecurity_old_inode_init_security() has set name, value, and len\narguments properly - but security_old_inode_init_security() left them\nuninitialized which then results in interesting failures.\n\nRevert security_old_inode_init_security() to the old behavior of\nreturning EOPNOTSUPP since both callers (reiserfs and ocfs2) handle this\njust fine.\n\n[ Also fixed the S_PRIVATE(inode) case of the actual non-stub\n  security_old_inode_init_security() function to return EOPNOTSUPP\n  for the same reason, as pointed out by Mimi Zohar.\n\n  It got incorrectly changed to match the new function in commit\n  fb88c2b6cbb1: \"evm: fix security/security_old_init_security return\n  code\".   - Linus ]\n\nReported-by: Jorge Bastos \u003cmysql.jorge@decimal.pt\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "405cc2736527bd506fd8f652308b03b2c8a1e8b9",
      "tree": "970d3df10ee1b51bbf6fff872623be1585d9ae8c",
      "parents": [
        "ec78213acd6de3e9fa83c78b1046ebbe1d0ca8bf"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Jan 03 14:57:43 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 14:57:43 2012 -0500"
      },
      "message": "fix CAN MAINTAINERS SCM tree type\n\nAs pointed out by Joe Perches the SCM tree type was missing in my patch.\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\n\nCC: Oliver Hartkopp \u003coliver.hartkopp@volkswagen.de\u003e\nCC: Urs Thuermann \u003curs.thuermann@volkswagen.de\u003e\nCC: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nCC: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCC: linux-can@vger.kernel.org\n"
    },
    {
      "commit": "b015dbc0f95eef34819515bd403a62569bca23df",
      "tree": "628a5820226435e6f3b2e302c5dda8a80368c1d7",
      "parents": [
        "09009512e5e7ab341b1554a256f81dd512c1f4bf"
      ],
      "author": {
        "name": "Amitkumar Karwar",
        "email": "akarwar@marvell.com",
        "time": "Mon Jan 02 16:18:40 2012 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:40:45 2012 -0500"
      },
      "message": "mwifiex: fix crash during simultaneous scan and connect\n\nIf \u0027iw connect\u0027 command is fired when driver is already busy in\nserving \u0027iw scan\u0027 command, ssid specific scan operation for connect\nis skipped. In this case cmd wait queue handler gets called with no\ncommand in queue (i.e. adapter-\u003ecmd_queued \u003d NULL).\n\nThis patch adds a NULL check in mwifiex_wait_queue_complete()\nroutine to fix crash observed during simultaneous scan and assoc\noperations.\n\nSigned-off-by: Amitkumar Karwar \u003cakarwar@marvell.com\u003e\nSigned-off-by: Bing Zhao \u003cbzhao@marvell.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "09009512e5e7ab341b1554a256f81dd512c1f4bf",
      "tree": "58d8b7a6ab90137138dc4d22ec4b4d85be708b2c",
      "parents": [
        "b25bfda38236f349cde0d1b28952f4eea2148d3f"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Mon Dec 26 18:28:08 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:40:45 2012 -0500"
      },
      "message": "b43: fix regression in PIO case\n\nThis patch fixes the regression, introduced by\n\ncommit 17030f48e31adde5b043741c91ba143f5f7db0fd\nFrom: Rafał Miłecki \u003czajec5@gmail.com\u003e\nDate: Thu, 11 Aug 2011 17:16:27 +0200\nSubject: [PATCH] b43: support new RX header, noticed to be used in 598.314+ fw\n\nin PIO case.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b25bfda38236f349cde0d1b28952f4eea2148d3f",
      "tree": "1718455482594b815df027f44065abbdc71550b0",
      "parents": [
        "f9dc73e541348288b530c62c21d0fb8fdc7bbd0f"
      ],
      "author": {
        "name": "Mohammed Shafi Shajakhan",
        "email": "mohammed@qca.qualcomm.com",
        "time": "Mon Dec 26 10:42:15 2011 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:40:45 2012 -0500"
      },
      "message": "ath9k: Fix kernel panic in AR2427 in AP mode\n\ndon\u0027t do aggregation related stuff for \u0027AP mode client power save\nhandling\u0027 if aggregation is not enabled in the driver, otherwise it\nwill lead to panic because those data structures won\u0027t be never\nintialized in \u0027ath_tx_node_init\u0027 if aggregation is disabled\n\n\tEIP is at ath_tx_aggr_wakeup+0x37/0x80 [ath9k]\n\tEAX: e8c09a20 EBX: f2a304e8 ECX: 00000001 EDX: 00000000\n\tESI: e8c085e0 EDI: f2a304ac EBP: f40e1ca4 ESP: f40e1c8c\n\tDS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\n\tProcess swapper/1 (pid: 0, ti\u003df40e0000 task\u003df408e860\n\ttask.ti\u003df40dc000)\n\tStack:\n\t0001e966 e8c09a20 00000000 f2a304ac e8c085e0 f2a304ac\n\tf40e1cb0 f8186741\n\tf8186700 f40e1d2c f922988d f2a304ac 00000202 00000001\n\tc0b4ba43 00000000\n\t0000000f e8eb75c0 e8c085e0 205b0001 34383220 f2a304ac\n\tf2a30000 00010020\n\tCall Trace:\n\t[\u003cf8186741\u003e] ath9k_sta_notify+0x41/0x50 [ath9k]\n\t[\u003cf8186700\u003e] ? ath9k_get_survey+0x110/0x110 [ath9k]\n\t[\u003cf922988d\u003e] ieee80211_sta_ps_deliver_wakeup+0x9d/0x350\n\t[mac80211]\n\t[\u003cc018dc75\u003e] ? __module_address+0x95/0xb0\n\t[\u003cf92465b3\u003e] ap_sta_ps_end+0x63/0xa0 [mac80211]\n\t[\u003cf9246746\u003e] ieee80211_rx_h_sta_process+0x156/0x2b0\n\t[mac80211]\n\t[\u003cf9247d1e\u003e] ieee80211_rx_handlers+0xce/0x510 [mac80211]\n\t[\u003cc018440b\u003e] ? trace_hardirqs_on+0xb/0x10\n\t[\u003cc056936e\u003e] ? skb_queue_tail+0x3e/0x50\n\t[\u003cf9248271\u003e] ieee80211_prepare_and_rx_handle+0x111/0x750\n\t[mac80211]\n\t[\u003cf9248bf9\u003e] ieee80211_rx+0x349/0xb20 [mac80211]\n\t[\u003cf9248949\u003e] ? ieee80211_rx+0x99/0xb20 [mac80211]\n\t[\u003cf818b0b8\u003e] ath_rx_tasklet+0x818/0x1d00 [ath9k]\n\t[\u003cf8187a75\u003e] ? ath9k_tasklet+0x35/0x1c0 [ath9k]\n\t[\u003cf8187a75\u003e] ? ath9k_tasklet+0x35/0x1c0 [ath9k]\n\t[\u003cf8187b33\u003e] ath9k_tasklet+0xf3/0x1c0 [ath9k]\n\t[\u003cc0151b7e\u003e] tasklet_action+0xbe/0x180\n\nCc: stable@kernel.org\nCc: Senthil Balasubramanian \u003csenthilb@qca.qualcomm.com\u003e\nCc: Rajkumar Manoharan \u003crmanohar@qca.qualcomm.com\u003e\nReported-by: Ashwin Mendonca \u003cashwinloyal@gmail.com\u003e\nTested-by: Ashwin Mendonca \u003cashwinloyal@gmail.com\u003e\nSigned-off-by: Mohammed Shafi Shajakhan \u003cmohammed@qca.qualcomm.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f9dc73e541348288b530c62c21d0fb8fdc7bbd0f",
      "tree": "caf6201912169f847c0a2b6ab85c4ac1ca65f0dd",
      "parents": [
        "96f1f05af76b601ab21a7dc603ae0a1cea4efc3d",
        "cad44c2bf6165e46e309d4db0ffd286a9259aa2a"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:26:56 2012 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:26:56 2012 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth\n"
    },
    {
      "commit": "ec78213acd6de3e9fa83c78b1046ebbe1d0ca8bf",
      "tree": "1d5e547d31f3ba6560a6a745c873f774bab66710",
      "parents": [
        "0d9032477f4ba2323079466efef0c1419613eebf"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Jan 03 08:40:28 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 13:55:15 2012 -0500"
      },
      "message": "CAN MAINTAINERS update\n\nUpdate the CAN MAINTAINERS section:\n\n- point out active maintainers\n- pull the CAN driver discussion away from netdev ML\n- point to the new CAN web site on gitorious.org\n- add CAN development git repository URL to submit patches\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\n\nCC: Oliver Hartkopp \u003coliver.hartkopp@volkswagen.de\u003e\nCC: Urs Thuermann \u003curs.thuermann@volkswagen.de\u003e\nCC: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nCC: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCC: linux-can@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d9032477f4ba2323079466efef0c1419613eebf",
      "tree": "7a3ebd8e4d6acaf48d5f5b45f93fab473ffc6ca7",
      "parents": [
        "6bafcac3238758203703bdd4abe9c1f38d259584"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Tue Jan 03 03:46:47 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 13:48:41 2012 -0500"
      },
      "message": "net: fsl: fec: fix build for mx23-only kernel\n\nIf one only selects mx23-based boards, compile fails:\n\ndrivers/net/ethernet/freescale/fec.c:410:2: error: \u0027FEC_HASH_TABLE_HIGH\u0027 undeclared (first use in this function)\ndrivers/net/ethernet/freescale/fec.c:411:2: error: \u0027FEC_HASH_TABLE_LOW\u0027 undeclared (first use in this function)\n\nThis is because fec.h uses CONFIG_SOC_IMX28 to determine the register\nlayout of the core which makes sense since the MX23 does not have a fec.\nHowever, Kconfig uses the broader ARCH_MXS symbol and this way even\nmakes the fec-driver default for MX23. Adapt Kconfig to use the more\nprecise SOC_IMX28 as well.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nCc: Fabio Estevam \u003cfabio.estevam@freescale.com\u003e\nCc: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Fabio Estevam \u003cfabio.estevam@freescale.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6bafcac3238758203703bdd4abe9c1f38d259584",
      "tree": "b5413ecd31f0fa3229b04bd415c870041fe30d95",
      "parents": [
        "115e8e705e4be071b9e06ff72578e3b603f2ba65"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jan 02 05:47:57 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 12:58:23 2012 -0500"
      },
      "message": "sch_qfq: fix overflow in qfq_update_start()\n\ngrp-\u003eslot_shift is between 22 and 41, so using 32bit wide variables is\nprobably a typo.\n\nThis could explain QFQ hangs Dave reported to me, after 2^23 packets ?\n\n(23 \u003d 64 - 41)\n\nReported-by: Dave Taht \u003cdave.taht@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCC: Dave Taht \u003cdave.taht@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4376eee92e5a8332b470040e672ea99cd44c826a",
      "tree": "d26e398b57d3d907423eb709f9e221d9fe1ab616",
      "parents": [
        "115e8e705e4be071b9e06ff72578e3b603f2ba65"
      ],
      "author": {
        "name": "Alexander Müller",
        "email": "serveralex@gmail.com",
        "time": "Fri Dec 30 12:55:48 2011 -0500"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Jan 03 09:17:16 2012 +0000"
      },
      "message": "drm/radeon/kms/atom: fix possible segfault in pm setup\n\nIf we end up with no power states, don\u0027t look up\ncurrent vddc.\n\nfixes:\nhttps://bugs.freedesktop.org/show_bug.cgi?id\u003d44130\n\nagd5f: fix patch formatting\n\nSigned-off-by: Alex Deucher \u003calexander.deucher@amd.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "115e8e705e4be071b9e06ff72578e3b603f2ba65",
      "tree": "8ef96f62ed5239442cd55ad54ea5c97b0441e613",
      "parents": [
        "733bbb7e1c3acb8fabc55595bf1df8973dde7736",
        "f88e1ae8acb8affac29034ed79d4fff95ac8c29d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 02 12:34:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 02 12:34:03 2012 -0800"
      },
      "message": "Merge branch \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  dt/device: Fix auxdata matching to handle entries without a name override\n"
    },
    {
      "commit": "733bbb7e1c3acb8fabc55595bf1df8973dde7736",
      "tree": "779bc62fda19d2176ff7059fa59b0932c9ebc4c5",
      "parents": [
        "c7f46b7aa4ae5cbef32eb5e016512a14f936affa",
        "c121638277a71c1e1fb44c3e654ea353357bbc2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 01 19:36:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 01 19:36:08 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  netfilter: ctnetlink: fix timeout calculation\n  ipvs: try also real server with port 0 in backup server\n  skge: restore rx multicast filter on resume and after config changes\n  mlx4_en: nullify cq-\u003evector field when closing completion queue\n"
    }
  ],
  "next": "c7f46b7aa4ae5cbef32eb5e016512a14f936affa"
}
