)]}'
{
  "log": [
    {
      "commit": "3d136a1131c66f7d26fb171e4c5b0b8baacd3129",
      "tree": "e09f9a755e05fc2a6e21ef87762f5f1f979320f6",
      "parents": [
        "5bdbeb2187a99d690b374a8c5ec9911fcbcfe739"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Fri Feb 03 11:20:04 2012 +0100"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed May 30 10:23:43 2012 -0400"
      },
      "message": "Btrfs: set ioprio of scrub readahead to idle\n\nReduce ioprio class of scrub readahead threads to idle priority.\nThis setting is fixed. This priority has shown the best performance\nduring all measurements.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\n"
    },
    {
      "commit": "207a232ccac0a8cb79d304bd17298dbc96e2e082",
      "tree": "baed843e078e80d04ff28054751dea22e98bea0b",
      "parents": [
        "8c9c2bf7a3c4f7e9d158c0be9c49f372fb943ad2"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Sat Feb 25 09:09:47 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Apr 18 19:12:44 2012 +0200"
      },
      "message": "btrfs: don\u0027t add both copies of DUP to reada extent tree\n\nNormally when there are 2 copies of a block, we add both to the\nreada extent tree and prefetch only the one that is easier to reach.\nThis way we can better utilize multiple devices.\nIn case of DUP this makes no sense as both copies reside on the\nsame device.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\n"
    },
    {
      "commit": "8c9c2bf7a3c4f7e9d158c0be9c49f372fb943ad2",
      "tree": "6c17b4db9b39cb8eb950c21377f453df18f467c3",
      "parents": [
        "848cce0d4102b5b4b26b0987b43e1919d462afe2"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Sat Feb 25 09:09:30 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Apr 18 19:12:44 2012 +0200"
      },
      "message": "btrfs: fix race in reada\n\nWhen inserting into the radix tree returns EEXIST, get the existing\nentry without giving up the spinlock in between.\nThere was a race for both the zones trees and the extent tree.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\n"
    },
    {
      "commit": "94598ba8d8ff066115508fb99e593d2de1ca67e1",
      "tree": "035dcae1b60f84b5620ab1a9d42b5d1fad4b4862",
      "parents": [
        "ea466794084f55d8fcc100711cf17923bf57e962"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Tue Mar 27 14:21:26 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 27 14:21:26 2012 -0400"
      },
      "message": "Btrfs: introduce common define for max number of mirrors\n\nReadahead already has a define for the max number of mirrors. Scrub\nneeds such a define now, the rest of the code will need something\nlike this soon. Therefore the define was added to ctree.h and removed\nfrom the readahead code.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a175423c831ea582c06784d1e172d2ce1d79923a",
      "tree": "742ca97279da69c981008620a3d2f0c48acdf6f4",
      "parents": [
        "d3b010640e5c59b98d3b11229ba4cc2838dc7cbf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Feb 28 12:42:44 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Mar 03 07:42:35 2012 -0500"
      },
      "message": "Btrfs: fix casting error in scrub reada code\n\nThe reada code from scrub was casting down a u64 to\nan unsigned long so it could insert it into a radix tree.\n\nWhat it really wanted to do was cast down the result of a shift, instead\nof casting down the u64.  The bug resulted in trying to insert our\nreada struct into the wrong place, which caused soft lockups and other\nproblems.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "21ca543efc12674fddb22ddf4ea4906427f4e982",
      "tree": "61cebcafbc7605800b6411ea279f634db9c9da15",
      "parents": [
        "9510dc4c62252e96dca44a94948327c76774f25b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Fri Nov 04 09:41:02 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:11:21 2011 -0500"
      },
      "message": "Btrfs: rename btrfs_bio multi -\u003e bbio for consistency\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9510dc4c62252e96dca44a94948327c76774f25b",
      "tree": "945a5a2df3c4c84cec80dee60c1c67751e5489b8",
      "parents": [
        "306c8b68c82dfe6b7c9e5b61985760ad5d089205"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Fri Nov 04 09:41:02 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:11:08 2011 -0500"
      },
      "message": "Btrfs: stop leaking btrfs_bios on readahead\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "806468f8bf76a3cb2b626dd282946a6c9c0a50f0",
      "tree": "2de54229a5623756417a9bad7f426a2e8b06cad7",
      "parents": [
        "531f4b1ae5e0fc8c9b3f03838218e5ea178f80d3",
        "5da6fcbc4eb50c0f55d520750332f5a6ab13508c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:07:10 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 06 03:07:10 2011 -0500"
      },
      "message": "Merge git://git.jan-o-sch.net/btrfs-unstable into integration\n\nConflicts:\n\tfs/btrfs/Makefile\n\tfs/btrfs/extent_io.c\n\tfs/btrfs/extent_io.h\n\tfs/btrfs/scrub.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7414a03fbf9e75fbbf2a3c16828cd862e572aa44",
      "tree": "cc5fe98478b73281055a471fbce242b40a253490",
      "parents": [
        "90519d66abbccc251d14719ac76f191f70826e40"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Mon May 23 14:33:49 2011 +0200"
      },
      "committer": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Sun Oct 02 08:48:44 2011 +0200"
      },
      "message": "btrfs: initial readahead code and prototypes\n\nThis is the implementation for the generic read ahead framework.\n\nTo trigger a readahead, btrfs_reada_add must be called. It will start\na read ahead for the given range [start, end) on tree root. The returned\nhandle can either be used to wait on the readahead to finish\n(btrfs_reada_wait), or to send it to the background (btrfs_reada_detach).\n\nThe read ahead works as follows:\nOn btrfs_reada_add, the root of the tree is inserted into a radix_tree.\nreada_start_machine will then search for extents to prefetch and trigger\nsome reads. When a read finishes for a node, all contained node/leaf\npointers that lie in the given range will also be enqueued. The reads will\nbe triggered in sequential order, thus giving a big win over a naive\nenumeration. It will also make use of multi-device layouts. Each disk\nwill have its on read pointer and all disks will by utilized in parallel.\nAlso will no two disks read both sides of a mirror simultaneously, as this\nwould waste seeking capacity. Instead both disks will read different parts\nof the filesystem.\nAny number of readaheads can be started in parallel. The read order will be\ndetermined globally, i.e. 2 parallel readaheads will normally finish faster\nthan the 2 started one after another.\n\nChanges v2:\n - protect root-\u003enode by transaction instead of node_lock\n - fix missed branches:\n    The readahead had a too simple check to determine if a branch from\n    a node should be checked or not. It now also records the upper bound\n    of each node to see if the requested RA range lies within.\n - use KERN_CONT to debug output, to avoid line breaks\n - defer reada_start_machine to worker to avoid deadlock\n\nChanges v3:\n - protect root-\u003enode by rcu\n\nChanges v5:\n - changed EIO-semantics of reada_tree_block_flagged\n - remove spin_lock from reada_control and make elems an atomic_t\n - remove unused read_total from reada_control\n - kill reada_key_cmp, use btrfs_comp_cpu_keys instead\n - use kref-style release functions where possible\n - return struct reada_control * instead of void * from btrfs_reada_add\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\n"
    }
  ]
}
