)]}'
{
  "log": [
    {
      "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": "da5c81356426c476112f2b59fe64bdb1b37f079d",
      "tree": "1df740632805d7883490197aab904acaf0f7081e",
      "parents": [
        "f4a8e6563ea5366f563cb741a27fe90c5fa7f0fc"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Tue Sep 13 12:29:12 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Dec 22 16:22:24 2011 +0100"
      },
      "message": "Btrfs: generic data structure to build unique lists\n\nulist is a generic data structures to hold a collection of unique u64\nvalues. The only operations it supports is adding to the list and\nenumerating it.\n\nIt is possible to store an auxiliary value along with the key. The\nimplementation is preliminary and can probably be sped up significantly.\n\nIt is used by btrfs_find_all_roots() quota to translate recursions into\niterative loops.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "f11e4d7f533249ddfa110116200c5c3a509f9218",
      "tree": "6c053f7a3d23baaab5b21a63b2fd937a2f0b5c2a",
      "parents": [
        "c975dd469d748ce619c510050d4fb407c2398591"
      ],
      "author": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Tue Nov 01 17:06:39 2011 +0100"
      },
      "committer": {
        "name": "Stefan Behrens",
        "email": "sbehrens@giantdisaster.de",
        "time": "Wed Dec 21 19:14:16 2011 +0100"
      },
      "message": "Btrfs: Makefile changes to optionally include btrfs integrity check\n\nIf the btrfs integrity check is enabled, the files required to\nimplement the checks are included in the build.\n\nSigned-off-by: Stefan Behrens \u003csbehrens@giantdisaster.de\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"
    },
    {
      "commit": "a542ad1bafc7df9fc16de8a6894b350a4df75572",
      "tree": "ece4cabbed85ceea326233735134863b2feec0e6",
      "parents": [
        "0a7a0519d1789f3a222849421dbe91b6bddb88f5"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Mon Jun 13 19:52:59 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Sep 29 12:54:27 2011 +0200"
      },
      "message": "btrfs: added helper functions to iterate backrefs\n\nThese helper functions iterate back references and call a function for each\nbackref. There is also a function to resolve an inode to a path in the\nfile system.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "9b89d95a143bb0a9abc4ba0fdcdda78211930f1a",
      "tree": "353768825b985753b23fda0ec88e7cc85bf83346",
      "parents": [
        "15de900d08bb132833c8622610ddb1be660a6018"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 14 03:17:39 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 01 14:30:48 2011 -0400"
      },
      "message": "Btrfs: make acl functions really no-op if acl is not enabled\n\nSo there\u0027s no overhead for something we don\u0027t use.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "712673339a0d085358fd1cd3a6477cc7979bb69f",
      "tree": "b2e268685e3cbba19a4adb2a47d853e4e461fcfc",
      "parents": [
        "aa2dfb372a2a647beedac163ce6f8b0fcbefac29",
        "8628764e1a5e1998a42b9713e9edea7753653d01"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 06:30:52 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 06:30:52 2011 -0400"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arne/btrfs-unstable-arne into inode_numbers\n\nConflicts:\n\tfs/btrfs/Makefile\n\tfs/btrfs/ctree.h\n\tfs/btrfs/volumes.h\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "16cdcec736cd214350cdb591bf1091f8beedefa0",
      "tree": "5598d4561660c4d7a1d4de8b3703d6dd3cc7f9e7",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Apr 22 18:12:22 2011 +0800"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 21 09:30:56 2011 -0400"
      },
      "message": "btrfs: implement delayed inode items operation\n\nChangelog V5 -\u003e V6:\n- Fix oom when the memory load is high, by storing the delayed nodes into the\n  root\u0027s radix tree, and letting btrfs inodes go.\n\nChangelog V4 -\u003e V5:\n- Fix the race on adding the delayed node to the inode, which is spotted by\n  Chris Mason.\n- Merge Chris Mason\u0027s incremental patch into this patch.\n- Fix deadlock between readdir() and memory fault, which is reported by\n  Itaru Kitayama.\n\nChangelog V3 -\u003e V4:\n- Fix nested lock, which is reported by Itaru Kitayama, by updating space cache\n  inode in time.\n\nChangelog V2 -\u003e V3:\n- Fix the race between the delayed worker and the task which does delayed items\n  balance, which is reported by Tsutomu Itoh.\n- Modify the patch address David Sterba\u0027s comment.\n- Fix the bug of the cpu recursion spinlock, reported by Chris Mason\n\nChangelog V1 -\u003e V2:\n- break up the global rb-tree, use a list to manage the delayed nodes,\n  which is created for every directory and file, and used to manage the\n  delayed directory name index items and the delayed inode item.\n- introduce a worker to deal with the delayed nodes.\n\nCompare with Ext3/4, the performance of file creation and deletion on btrfs\nis very poor. the reason is that btrfs must do a lot of b+ tree insertions,\nsuch as inode item, directory name item, directory name index and so on.\n\nIf we can do some delayed b+ tree insertion or deletion, we can improve the\nperformance, so we made this patch which implemented delayed directory name\nindex insertion/deletion and delayed inode update.\n\nImplementation:\n- introduce a delayed root object into the filesystem, that use two lists to\n  manage the delayed nodes which are created for every file/directory.\n  One is used to manage all the delayed nodes that have delayed items. And the\n  other is used to manage the delayed nodes which is waiting to be dealt with\n  by the work thread.\n- Every delayed node has two rb-tree, one is used to manage the directory name\n  index which is going to be inserted into b+ tree, and the other is used to\n  manage the directory name index which is going to be deleted from b+ tree.\n- introduce a worker to deal with the delayed operation. This worker is used\n  to deal with the works of the delayed directory name index items insertion\n  and deletion and the delayed inode update.\n  When the delayed items is beyond the lower limit, we create works for some\n  delayed nodes and insert them into the work queue of the worker, and then\n  go back.\n  When the delayed items is beyond the upper bound, we create works for all\n  the delayed nodes that haven\u0027t been dealt with, and insert them into the work\n  queue of the worker, and then wait for that the untreated items is below some\n  threshold value.\n- When we want to insert a directory name index into b+ tree, we just add the\n  information into the delayed inserting rb-tree.\n  And then we check the number of the delayed items and do delayed items\n  balance. (The balance policy is above.)\n- When we want to delete a directory name index from the b+ tree, we search it\n  in the inserting rb-tree at first. If we look it up, just drop it. If not,\n  add the key of it into the delayed deleting rb-tree.\n  Similar to the delayed inserting rb-tree, we also check the number of the\n  delayed items and do delayed items balance.\n  (The same to inserting manipulation)\n- When we want to update the metadata of some inode, we cached the data of the\n  inode into the delayed node. the worker will flush it into the b+ tree after\n  dealing with the delayed insertion and deletion.\n- We will move the delayed node to the tail of the list after we access the\n  delayed node, By this way, we can cache more delayed items and merge more\n  inode updates.\n- If we want to commit transaction, we will deal with all the delayed node.\n- the delayed node will be freed when we free the btrfs inode.\n- Before we log the inode items, we commit all the directory name index items\n  and the delayed inode update.\n\nI did a quick test by the benchmark tool[1] and found we can improve the\nperformance of file creation by ~15%, and file deletion by ~20%.\n\nBefore applying this patch:\nCreate files:\n        Total files: 50000\n        Total time: 1.096108\n        Average time: 0.000022\nDelete files:\n        Total files: 50000\n        Total time: 1.510403\n        Average time: 0.000030\n\nAfter applying this patch:\nCreate files:\n        Total files: 50000\n        Total time: 0.932899\n        Average time: 0.000019\nDelete files:\n        Total files: 50000\n        Total time: 1.215732\n        Average time: 0.000024\n\n[1] http://marc.info/?l\u003dlinux-btrfs\u0026m\u003d128212635122920\u0026q\u003dp3\n\nMany thanks for Kitayama-san\u0027s help!\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nReviewed-by: David Sterba \u003cdave@jikos.cz\u003e\nTested-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nTested-by: Itaru Kitayama \u003ckitayama@cl.bb4u.ne.jp\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a2de733c78fa7af51ba9670482fa7d392aa67c57",
      "tree": "d88817bc7aba94e7efea530efac5ef190c1b799c",
      "parents": [
        "7cf96da3ec7ca225acf4f284b0e904a1f5f98821"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Tue Mar 08 14:14:00 2011 +0100"
      },
      "committer": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Thu May 12 14:45:20 2011 +0200"
      },
      "message": "btrfs: scrub\n\nThis adds an initial implementation for scrub. It works quite\nstraightforward. The usermode issues an ioctl for each device in the\nfs. For each device, it enumerates the allocated device chunks. For\neach chunk, the contained extents are enumerated and the data checksums\nfetched. The extents are read sequentially and the checksums verified.\nIf an error occurs (checksum or EIO), a good copy is searched for. If\none is found, the bad copy will be rewritten.\nAll enumerations happen from the commit roots. During a transaction\ncommit, the scrubs get paused and afterwards continue from the new\nroots.\n\nThis commit is based on the series originally posted to linux-btrfs\nwith some improvements that resulted from comments from David Sterba,\nIlya Dryomov and Jan Schmidt.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\n"
    },
    {
      "commit": "a6fa6fae40ec336c7df6155255ae64ebef43a8bc",
      "tree": "6cda8aa6a60967206614a941f034249e3017913e",
      "parents": [
        "261507a02ccba9afda919852263b6bc1581ce1ef"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Oct 25 15:12:26 2010 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 22 23:15:47 2010 +0800"
      },
      "message": "btrfs: Add lzo compression support\n\nLzo is a much faster compression algorithm than gzib, so would allow\nmore users to enable transparent compression, and some users can\nchoose from compression ratio and speed for different applications\n\nUsage:\n\n # mount -t btrfs -o compress[\u003d\u003czlib,lzo\u003e] dev /mnt\nor\n # mount -t btrfs -o compress-force[\u003d\u003czlib,lzo\u003e] dev /mnt\n\n\"-o compress\" without argument is still allowed for compatability.\n\nCompatibility:\n\nIf we mount a filesystem with lzo compression, it will not be able be\nmounted in old kernels. One reason is, otherwise btrfs will directly\ndump compressed data, which sits in inline extent, to user.\n\nPerformance:\n\nThe test copied a linux source tarball (~400M) from an ext4 partition\nto the btrfs partition, and then extracted it.\n\n(time in second)\n           lzo        zlib        nocompress\ncopy:      10.6       21.7        14.9\nextract:   70.1       94.4        66.6\n\n(data size in MB)\n           lzo        zlib        nocompress\ncopy:      185.87     108.69      394.49\nextract:   193.80     132.36      381.21\n\nChangelog:\n\nv1 -\u003e v2:\n- Select LZO_COMPRESS and LZO_DECOMPRESS in btrfs Kconfig.\n- Add incompability flag.\n- Fix error handling in compress code.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "5d4f98a28c7d334091c1b7744f48a1acdd2a4ae0",
      "tree": "c611d7d824cbcdb777dd2d8e33e2ed1c5df8a9c6",
      "parents": [
        "5c939df56c3ea018b58e5aa76181284c2053d699"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed Jun 10 10:45:14 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 10 11:29:46 2009 -0400"
      },
      "message": "Btrfs: Mixed back reference  (FORWARD ROLLING FORMAT CHANGE)\n\nThis commit introduces a new kind of back reference for btrfs metadata.\nOnce a filesystem has been mounted with this commit, IT WILL NO LONGER\nBE MOUNTABLE BY OLDER KERNELS.\n\nWhen a tree block in subvolume tree is cow\u0027d, the reference counts of all\nextents it points to are increased by one.  At transaction commit time,\nthe old root of the subvolume is recorded in a \"dead root\" data structure,\nand the btree it points to is later walked, dropping reference counts\nand freeing any blocks where the reference count goes to 0.\n\nThe increments done during cow and decrements done after commit cancel out,\nand the walk is a very expensive way to go about freeing the blocks that\nare no longer referenced by the new btree root.  This commit reduces the\ntransaction overhead by avoiding the need for dead root records.\n\nWhen a non-shared tree block is cow\u0027d, we free the old block at once, and the\nnew block inherits old block\u0027s references. When a tree block with reference\ncount \u003e 1 is cow\u0027d, we increase the reference counts of all extents\nthe new block points to by one, and decrease the old block\u0027s reference count by\none.\n\nThis dead tree avoidance code removes the need to modify the reference\ncounts of lower level extents when a non-shared tree block is cow\u0027d.\nBut we still need to update back ref for all pointers in the block.\nThis is because the location of the block is recorded in the back ref\nitem.\n\nWe can solve this by introducing a new type of back ref. The new\nback ref provides information about pointer\u0027s key, level and in which\ntree the pointer lives. This information allow us to find the pointer\nby searching the tree. The shortcoming of the new back ref is that it\nonly works for pointers in tree blocks referenced by their owner trees.\n\nThis is mostly a problem for snapshots, where resolving one of these\nfuzzy back references would be O(number_of_snapshots) and quite slow.\nThe solution used here is to use the fuzzy back references in the common\ncase where a given tree block is only referenced by one root,\nand use the full back references when multiple roots have a reference\non a given block.\n\nThis commit adds per subvolume red-black tree to keep trace of cached\ninodes. The red-black tree helps the balancing code to find cached\ninodes whose inode numbers within a given range.\n\nThis commit improves the balancing code by introducing several data\nstructures to keep the state of balancing. The most important one\nis the back ref cache. It caches how the upper level tree blocks are\nreferenced. This greatly reduce the overhead of checking back ref.\n\nThe improved balancing code scales significantly better with a large\nnumber of snapshots.\n\nThis is a very large commit and was written in a number of\npieces.  But, they depend heavily on the disk format change and were\nsquashed together to make sure git bisect didn\u0027t end up in a\nbad state wrt space balancing or the format change.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2ea2544ef5dad5cac52f1e4c7b812631274fc1cb",
      "tree": "0a01a9d41918c533b299a1374f6294aa220948d7",
      "parents": [
        "97e728d4353f38c87bf0804cdfd79a9b13fc2c3e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Apr 13 15:32:28 2009 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Apr 24 15:46:03 2009 -0400"
      },
      "message": "Btrfs: simplify makefile\n\nGet rid of the hacks for building out of tree, and always use +\u003d for\nassigning to the object lists.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "56bec294dea971335d4466b30f2d959f28f6e36d",
      "tree": "fc0b5bbf4bb6ab35582a4c7f58f5ac88f71c38bf",
      "parents": [
        "9fa8cfe706f9c20067c042a064999d5825a35330"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 13 10:10:06 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 24 16:14:25 2009 -0400"
      },
      "message": "Btrfs: do extent allocation and reference count updates in the background\n\nThe extent allocation tree maintains a reference count and full\nback reference information for every extent allocated in the\nfilesystem.  For subvolume and snapshot trees, every time\na block goes through COW, the new copy of the block adds a reference\non every block it points to.\n\nIf a btree node points to 150 leaves, then the COW code needs to go\nand add backrefs on 150 different extents, which might be spread all\nover the extent allocation tree.\n\nThese updates currently happen during btrfs_cow_block, and most COWs\nhappen during btrfs_search_slot.  btrfs_search_slot has locks held\non both the parent and the node we are COWing, and so we really want\nto avoid IO during the COW if we can.\n\nThis commit adds an rbtree of pending reference count updates and extent\nallocations.  The tree is ordered by byte number of the extent and byte number\nof the parent for the back reference.  The tree allows us to:\n\n1) Modify back references in something close to disk order, reducing seeks\n2) Significantly reduce the number of modifications made as block pointers\nare balanced around\n3) Do all of the extent insertion and back reference modifications outside\nof the performance critical btrfs_search_slot code.\n\n#3 has the added benefit of greatly reducing the btrfs stack footprint.\nThe extent allocation tree modifications are done without the deep\n(and somewhat recursive) call chains used in the past.\n\nThese delayed back reference updates must be done before the transaction\ncommits, and so the rbtree is tied to the transaction.  Throttling is\nimplemented to help keep the queue of backrefs at a reasonable size.\n\nSince there was a similar mechanism in place for the extent tree\nextents, that is removed and replaced by the delayed reference tree.\n\nYan Zheng \u003cyan.zheng@oracle.com\u003e helped review and fixup this code.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c8b978188c9a0fd3d535c13debd19d522b726f1f",
      "tree": "873628723fb82fe2a7c77adc65fa93eca1d61c0c",
      "parents": [
        "26ce34a9c47334ff7984769e4661b2f1883594ff"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Oct 29 14:49:59 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Oct 29 14:49:59 2008 -0400"
      },
      "message": "Btrfs: Add zlib compression support\n\nThis is a large change for adding compression on reading and writing,\nboth for inline and regular extents.  It does some fairly large\nsurgery to the writeback paths.\n\nCompression is off by default and enabled by mount -o compress.  Even\nwhen the -o compress mount option is not used, it is possible to read\ncompressed extents off the disk.\n\nIf compression for a given set of pages fails to make them smaller, the\nfile is flagged to avoid future compression attempts later.\n\n* While finding delalloc extents, the pages are locked before being sent down\nto the delalloc handler.  This allows the delalloc handler to do complex things\nsuch as cleaning the pages, marking them writeback and starting IO on their\nbehalf.\n\n* Inline extents are inserted at delalloc time now.  This allows us to compress\nthe data before inserting the inline extent, and it allows us to insert\nan inline extent that spans multiple pages.\n\n* All of the in-memory extent representations (extent_map.c, ordered-data.c etc)\nare changed to record both an in-memory size and an on disk size, as well\nas a flag for compression.\n\nFrom a disk format point of view, the extent pointers in the file are changed\nto record the on disk size of a given extent and some encoding flags.\nSpace in the disk format is allocated for compression encoding, as well\nas encryption and a generic \u0027other\u0027 field.  Neither the encryption or the\n\u0027other\u0027 field are currently used.\n\nIn order to limit the amount of data read for a single random read in the\nfile, the size of a compressed extent is limited to 128k.  This is a\nsoftware only limit, the disk format supports u64 sized compressed extents.\n\nIn order to limit the ram consumed while processing extents, the uncompressed\nsize of a compressed extent is limited to 256k.  This is a software only limit\nand will be subject to tuning later.\n\nChecksumming is still done on compressed extents, and it is done on the\nuncompressed version of the data.  This way additional encodings can be\nlayered on without having to figure out which encoding to checksum.\n\nCompression happens at delalloc time, which is basically singled threaded because\nit is usually done by a single pdflush thread.  This makes it tricky to\nspread the compression load across all the cpus on the box.  We\u0027ll have to\nlook at parallel pdflush walks of dirty inodes at a later time.\n\nDecompression is hooked into readpages and it does spread across CPUs nicely.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "61f8c86ee8f9ca55488449db886104a0ab4e1f98",
      "tree": "189a94887dedae9e854aa53228ab10740a01a5f2",
      "parents": [
        "5b84e8d6eef82fcf7b1b16d92e29375b85b6549a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 09 11:52:35 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Oct 09 11:52:35 2008 -0400"
      },
      "message": "Btrfs: Fix makefile for builing btrfs static\n\nThis fixes the btrfs makefile for building in the tree and out of the tree\nboth as a module and static.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "d352ac68148b69937d39ca5d48bcc4478e118dbf",
      "tree": "7951dd7311999d9e77766acdc7f8e93de97874d8",
      "parents": [
        "9a5e1ea1e1e539e244a54afffc330fc368376ab9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 29 15:18:18 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 29 15:18:18 2008 -0400"
      },
      "message": "Btrfs: add and improve comments\n\nThis improves the comments at the top of many functions.  It didn\u0027t\ndive into the guts of functions because I was trying to\navoid merging problems with the new allocator and back reference work.\n\nextent-tree.c and volumes.c were both skipped, and there is definitely\nmore work todo in cleaning and commenting the code.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4f6c45dfbf84f47c21f73f6370ad1292b0627fd",
      "tree": "a85c3a7b304e768f1f3321f39d0ae6c4402cc1ee",
      "parents": [
        "aef8755711a28bb0ecde7780ae6613fcb62cf6f7"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Sep 24 11:05:53 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 15:41:59 2008 -0400"
      },
      "message": "Update Btrfs files for in-kernel usage\n\nbtrfs had magic to put the chagneset id into a printk on module load.\nThis removes that from the Makefile and hardcodes the printk to print\n\"Btrfs\"\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0f9dd46cda36b8de3b9f48bc42bd09d20b9c3b52",
      "tree": "2dcba11fd2fb5a4227fd8f8d2d076641f115a7b4",
      "parents": [
        "ef8bbdfe7e12dc9b4e80756f6d606c4639c65851"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Tue Sep 23 13:14:11 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:07 2008 -0400"
      },
      "message": "Btrfs: free space accounting redo\n\n1) replace the per fs_info extent_io_tree that tracked free space with two\nrb-trees per block group to track free space areas via offset and size.  The\nreason to do this is because most allocations come with a hint byte where to\nstart, so we can usually find a chunk of free space at that hint byte to satisfy\nthe allocation and get good space packing.  If we cannot find free space at or\nafter the given offset we fall back on looking for a chunk of the given size as\nclose to that given offset as possible.  When we fall back on the size search we\nalso try to find a slot as close to the size we want as possible, to avoid\nbreaking small chunks off of huge areas if possible.\n\n2) remove the extent_io_tree that tracked the block group cache from fs_info and\nreplaced it with an rb-tree thats tracks block group cache via offset.  also\nadded a per space_info list that tracks the block group cache for the particular\nspace so we can lookup related block groups easily.\n\n3) cleaned up the allocation code to make it a little easier to read and a\nlittle less complicated.  Basically there are 3 steps, first look from our\nprovided hint.  If we couldn\u0027t find from that given hint, start back at our\noriginal search start and look for space from there.  If that fails try to\nallocate space if we can and start looking again.  If not we\u0027re screwed and need\nto start over again.\n\n4) small fixes.  there were some issues in volumes.c where we wouldn\u0027t allocate\nthe rest of the disk.  fixed cow_file_range to actually pass the alloc_hint,\nwhich has helped a good bit in making the fs_mark test I run have semi-normal\nresults as we run out of space.  Generally with data allocations we don\u0027t track\nwhere we last allocated from, so everytime we did a data allocation we\u0027d search\nthrough every block group that we have looking for free space.  Now searching a\nblock group with no free space isn\u0027t terribly time consuming, it was causing a\nslight degradation as we got more data block groups.  The alloc_hint has fixed\nthis slight degredation and made things semi-normal.\n\nThere is still one nagging problem I\u0027m working on where we will get ENOSPC when\nthere is definitely plenty of space.  This only happens with metadata\nallocations, and only when we are almost full.  So you generally hit the 85%\nmark first, but sometimes you\u0027ll hit the BUG before you hit the 85% wall.  I\u0027m\nstill tracking it down, but until then this seems to be pretty stable and make a\nsignificant performance gain.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e02119d5a7b4396c5a872582fddc8bd6d305a70a",
      "tree": "825efe2a79dbca8d61256183f3526a5b5dc40dc6",
      "parents": [
        "a1b32a5932cfac7c38b442582285f3da2a09dfd8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Sep 05 16:13:11 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:07 2008 -0400"
      },
      "message": "Btrfs: Add a write ahead tree log to optimize synchronous operations\n\nFile syncs and directory syncs are optimized by copying their\nitems into a special (copy-on-write) log tree.  There is one log tree per\nsubvolume and the btrfs super block points to a tree of log tree roots.\n\nAfter a crash, items are copied out of the log tree and back into the\nsubvolume.  See tree-log.c for all the details.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "eab922ec8907b8c506e799785e7e2d16eabe50e4",
      "tree": "d983401313631d24240524d40c9ef1d19ed4e5ac",
      "parents": [
        "639cb58675ce9b507eed9c3d6b3335488079b21a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Aug 28 06:21:15 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:07 2008 -0400"
      },
      "message": "Btrfs: compile when posix acl\u0027s are disabled\n\nThis patch makes btrfs so it will compile properly when acls are disabled.  I\ntested this and it worked with CONFIG_FS_POSIX_ACL off and on.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "615f996fb8185a0bc02812ebd72cb77ded5645f1",
      "tree": "0e97c4fd52b44d603e589e41c90892739e6f5a30",
      "parents": [
        "76fcef19c40328499a2f6d59d76b72fd03d2cc82"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Aug 19 19:21:57 2008 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:06 2008 -0400"
      },
      "message": "Switch btrfs_name_hash() to crc32c\n\nDate: Tue, 19 Aug 2008 19:21:57 +0100\nUsing a 64-bit hash as the readdir cookie is just asking for trouble.\nAnd gets it, when we try to export the file system by NFS.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "be6e8dc0ba84029997075a1ec77b4ddb863cbe15",
      "tree": "ba65e49acd8bc55bfd2719a9d6ce65a81ee037c6",
      "parents": [
        "1a54ef8c11a0eaef59ff418089f109c27f8bd48d"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Mon Jul 21 02:01:56 2008 +0530"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:06 2008 -0400"
      },
      "message": "NFS support for btrfs - v3\n\nDate: Mon, 21 Jul 2008 02:01:56 +0530\nHere\u0027s an implementation of NFS support for btrfs. It relies on the\nfixes which are going in to 2.6.28 for the NFS readdir/lookup deadlock.\n\nThis uses the btrfs_iget helper introduced previously.\n\n[dwmw2: Tidy up a little, switch to d_obtain_alias() w/compat routine,\n\tchange fh_type,\tstore parent\u0027s root object ID where needed,\n\tfix some get_parent() and fs_to_dentry() bugs]\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "31153d81284934601d08110ac7698fd9a535e4c0",
      "tree": "38f873fea3012a58d2a8f4d439a9546443617878",
      "parents": [
        "3a115f520f391b4ab14041bdd6eedb370d944fa6"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Jul 28 15:32:19 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:05 2008 -0400"
      },
      "message": "Btrfs: Add a leaf reference cache\n\nMuch of the IO done while dropping snapshots is done looking up\nleaves in the filesystem trees to see if they point to any extents and\nto drop the references on any extents found.\n\nThis creates a cache so that IO isn\u0027t required.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7b1287662304c3cb05cb38f5e3e2d69f386e8f10",
      "tree": "bb589bfc3854f801b4098f2f2140e42a2f9e8071",
      "parents": [
        "33268eaf0b3db5e2bd12c0ada81a8e8f87a46d68"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Jul 24 12:17:14 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:05 2008 -0400"
      },
      "message": "Btrfs: Create orphan inode records to prevent lost files after a crash\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b3c3da71ed88c06bc18a4d8919c6e4af3b933566",
      "tree": "2c872dc4d5e9a6fe104704f95c7acf920236396c",
      "parents": [
        "4881ee5a2e995c6a8999b56de70aa3834369d8ee"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 23 12:12:13 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:05 2008 -0400"
      },
      "message": "Btrfs: Add version strings on module load\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "925baeddc5b0764a53f2214a1253251bab0e0324",
      "tree": "0e069bf9cc1c4ecd17c812fd1fb81bf807909ee6",
      "parents": [
        "1cc127b5d1b71453091859301de4a7dd6ee96fa8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 25 16:01:30 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: Start btree concurrency work.\n\nThe allocation trees and the chunk trees are serialized via their own\ndedicated mutexes.  This means allocation location is still not very\nfine grained.\n\nThe main FS btree is protected by locks on each block in the btree.  Locks\nare taken top / down, and as processing finishes on a given level of the\ntree, the lock is released after locking the lower level.\n\nThe end result of a search is now a path where only the lowest level\nis locked.  Releasing or freeing the path drops any locks held.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f46b5a66b3316ef2f8febfe4c56e2d555e2c3979",
      "tree": "dc3a5898d323539728576df50f8be621936d6f04",
      "parents": [
        "9d2423c5c3fbb0f110ac0b6cdc5a8e4d64729483"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 11 21:53:53 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: split out ioctl.c\n\nSplit the ioctl handling out of inode.c into a file of it\u0027s own.\nAlso fix up checkpatch.pl warnings for the moved code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8b7128429235d9bd72cfd5ed20c77c4f3118f744",
      "tree": "982eda13094af1ccd46e8c3853559a0eb6e298f6",
      "parents": [
        "43e570b08a6c6b1d75f218566a6240542a386fd9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 11 16:50:36 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: Add async worker threads for pre and post IO checksumming\n\nBtrfs has been using workqueues to spread the checksumming load across\nother CPUs in the system.  But, workqueues only schedule work on the\nsame CPU that queued the work, giving them a limited benefit for systems with\nhigher CPU counts.\n\nThis code adds a generic facility to schedule work with pools of kthreads,\nand changes the bio submission code to queue bios up.  The queueing is\nimportant to make sure large numbers of procs on the system don\u0027t\nturn streaming workloads into random workloads by sending IO down\nconcurrently.\n\nThe end result of all of this is much higher performance (and CPU usage) when\ndoing checksumming on large machines.  Two worker pools are created,\none for writes and one for endio processing.  The two could deadlock if\nwe tried to service both from a single pool.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "95c9eb178b96474e9d896f20f982818c5f2ceaa0",
      "tree": "253a42bd69784a6a3de7c2dd7cb9b8574df5ce08",
      "parents": [
        "6bf13c0cc833bf5ba013d6aa60379484bf48c4e6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jun 10 10:20:57 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "btrfs: tiny makefile cleanup\n\nuse normal kbuild syntax to build acl.o conditinally and remove comment\nout lines.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0b86a832a1f38abec695864ec2eaedc9d2383f1b",
      "tree": "8ec0db0b55f77eb6a23fe7db3c1064d298db55c1",
      "parents": [
        "7f93bf8d27653726e3721c01fefc523487ecf2af"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 24 15:01:56 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:00 2008 -0400"
      },
      "message": "Btrfs: Add support for multiple devices per filesystem\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d1310b2e0cd98eb1348553e69b73827b436dca7b",
      "tree": "f55e9c380df0f3a7e9fb792b2308b52b632b90aa",
      "parents": [
        "5f56406aabdf5444d040c5955effc665b1d0dbaf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 24 16:13:08 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Split the extent_map code into two parts\n\nThere is now extent_map for mapping offsets in the file to disk and\nextent_io for state tracking, IO submission and extent_bufers.\n\nThe new extent_map code shifts from [start,end] pairs to [start,len], and\npushes the locking out into the caller.  This allows a few performance\noptimizations and is easier to use.\n\nA number of extent_map usage bugs were fixed, mostly with failing\nto remove extent_map entries when changing the file.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "caaca38b8fdcf63a17647fddae2195b189e19e37",
      "tree": "635bceedd564afcf56f26b139dd85d0f88a5ef8e",
      "parents": [
        "4d5e74bc0aec3f54b7e429d77b7c35de042c507d"
      ],
      "author": {
        "name": "Yan",
        "email": "yanzheng@21cn.com",
        "time": "Thu Jan 17 11:59:48 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Fix compile on kernel without ACLs enabled\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dc17ff8f11d129db9e83ab7244769e4eae05e14d",
      "tree": "622e70100d6082e371a6ca62b02fd57e0c37f8dc",
      "parents": [
        "e4204dedbbaa3a614605cb83cc0ac5161af6b4e6"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 08 15:46:30 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Add data\u003dordered support\n\nThis forces file data extents down the disk along with the metadata that\nreferences them.  The current implementation is fairly simple, and just\nwrites out all of the dirty pages in an inode before the commit.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5103e947b9b7ac18ddb21a04ee3486e94c6504d7",
      "tree": "5d7c0c9ce1d57b988165f87c7bae304cb339589c",
      "parents": [
        "0591fb56fb732c7bf500d1446d0bf927046d7002"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Fri Nov 16 11:45:54 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:57 2008 -0400"
      },
      "message": "xattr support for btrfs\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0f82731fc56448c2733f58e1f5db6c2cbfc90652",
      "tree": "8c4d12a1c240db310becdff74e27d9aab36f1569",
      "parents": [
        "810191ff3087e8143b41a944fcf4fd8c693f00e3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Oct 15 16:18:56 2007 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:56 2008 -0400"
      },
      "message": "Breakout BTRFS_SETGET_FUNCS into a separate C file, the inlines were too big.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5f39d397dfbe140a14edecd4e73c34ce23c4f9ee",
      "tree": "280561e4b68d573590557dd27df656869eed8023",
      "parents": [
        "50b78c24d594e6985f36a9a8d8e2fb74e1664e90"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Oct 15 16:14:19 2007 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:56 2008 -0400"
      },
      "message": "Btrfs: Create extent_buffer interface for large blocksizes\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "432eba0882a32d6181ba44044f6e576226134784",
      "tree": "810a0ca94ea612c356f702b551cb54b103ba3d58",
      "parents": [
        "84a5d5eefd2b31c3cb97dc078589870bf85c7f23"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Fri Sep 14 10:22:19 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Sep 14 10:22:19 2007 -0400"
      },
      "message": "Btrfs: Simplify makefile\n\nSingle-colons will do here.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "84a5d5eefd2b31c3cb97dc078589870bf85c7f23",
      "tree": "af22d3a95bf48a01eb7ce8e14beffb5d3fd53af0",
      "parents": [
        "93a6925ec10c2d5792ffad35af8366179c9db57c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Sep 14 09:43:53 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Sep 14 09:43:53 2007 -0400"
      },
      "message": "Btrfs: add modules_install target\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "58176a9604c5db1784d2c979aea472b3be40b6f0",
      "tree": "a0d887c81b2f174de619dfefca19674a43756971",
      "parents": [
        "b888db2bd7b67f190b32934e6a86181f262ac3ec"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Wed Aug 29 15:47:34 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Aug 29 15:47:34 2007 -0400"
      },
      "message": "Btrfs: Add per-root block accounting and sysfs entries\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a52d9a8033c454cd9b4697cfafb467509fc1693f",
      "tree": "83d8bbf2df29598ea9c60498fadf5990262a11c8",
      "parents": [
        "83df7c1d8b885e216c68c3f0469bec9b93666b74"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 16:49:44 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Mon Aug 27 16:49:44 2007 -0400"
      },
      "message": "Btrfs: Extent based page cache code.  This uses an rbtree of extents and tests\ninstead of buffer heads.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6702ed490ca0bb44e17131818a5a18b773957c5a",
      "tree": "f6bc4b77e58506a68f1ab539ca6c96854f39f92d",
      "parents": [
        "3c69faecb8d83cb2ef085a98b196a3fecea67725"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Aug 07 16:15:09 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Aug 07 16:15:09 2007 -0400"
      },
      "message": "Btrfs: Add run time btree defrag, and an ioctl to force btree defrag\n\nThis adds two types of btree defrag, a run time form that tries to\ndefrag recently allocated blocks in the btree when they are still in ram,\nand an ioctl that forces defrag of all btree blocks.\n\nFile data blocks are not defragged yet, but this can make a huge difference\nin sequential btree reads.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8578f0f1fda41f8429a1037022b720275102ca65",
      "tree": "bad605bbff558c4fa8fc7a96d02ad842bcae6ff1",
      "parents": [
        "92fee66d49b812ea57eae53c5baaf8942ac9af06"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "Joel.Becker@oracle.com",
        "time": "Wed Jul 25 14:04:51 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Jul 25 14:04:51 2007 -0400"
      },
      "message": "Btrfs: cleaner make clean\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "39279cc3d2704cfbf9c35dcb5bdd392159ae4625",
      "tree": "8c6c16a886bdd88ee447871e049c0d56466c2271",
      "parents": [
        "5276aedab0baacfb3c5483208b8be85a8416bd5f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jun 12 06:35:45 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Jun 12 06:35:45 2007 -0400"
      },
      "message": "Btrfs: split up super.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8ef97622caa2d5f78d1dc58ab918e2fbfa9b357a",
      "tree": "6ae74ce8ff1ba7a6b8a522ed0ea3b37f17a6b305",
      "parents": [
        "f7922033efe957f79ae57f6026e93c8148e7f7ed"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 26 10:15:30 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Mon Mar 26 10:15:30 2007 -0400"
      },
      "message": "Btrfs: add a radix back bit tree\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "79154b1b5bcf87903db7ff16a30b360b78d6fe4f",
      "tree": "7c752c350abd28060c5bd7aa364323051aecac90",
      "parents": [
        "e20d96d64f9cf9288ffecc9ad4714e91c3b97ca8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 22 15:59:16 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Mar 22 15:59:16 2007 -0400"
      },
      "message": "Btrfs: transaction rework\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e20d96d64f9cf9288ffecc9ad4714e91c3b97ca8",
      "tree": "fbe07d48bc7997226075169118ffa2a2e63f5d51",
      "parents": [
        "2e635a278354a1a7951e16cfea4c247d6d0e7c99"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 22 12:13:20 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Mar 22 12:13:20 2007 -0400"
      },
      "message": "Mountable btrfs, with readdir\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2e635a278354a1a7951e16cfea4c247d6d0e7c99",
      "tree": "4b94d54ddcd7cb184681260738b68caef4edee81",
      "parents": [
        "1261ec42b3d3a3ad878bd172144940e3ac710749"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 21 11:12:56 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Mar 21 11:12:56 2007 -0400"
      },
      "message": "Btrfs: initial move to kernel module land\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1261ec42b3d3a3ad878bd172144940e3ac710749",
      "tree": "4b317d8fa13e56a5dd02f37605b9fed5952d723a",
      "parents": [
        "293ffd5fd340428276fbbd24ce7b98bf6728466b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 20 20:35:03 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Mar 20 20:35:03 2007 -0400"
      },
      "message": "Btrfs: Better block record keeping, real mkfs\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9f5fae2fe6dc35b46bf56183f11398451851cb3f",
      "tree": "e72b03149662b8e5d4fe491c36f3cf66c5df5437",
      "parents": [
        "631d7d950a2f2706f5c86858402c1ec50b9801f1"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 20 14:38:32 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Mar 20 14:38:32 2007 -0400"
      },
      "message": "Btrfs: Add inode map, and the start of file extent items\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "631d7d950a2f2706f5c86858402c1ec50b9801f1",
      "tree": "a07ae80e1532ac6abad46d884ed7d751b0d3ad39",
      "parents": [
        "4068947886f2d2a4c192941397bacd014a04b804"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 20 09:13:49 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Mar 20 09:13:49 2007 -0400"
      },
      "message": "Btrfs: add transaction.h to the Makefile\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e089f05c18ab36ed5fa7e2319052e03ab800d518",
      "tree": "f20d727233bb23fa5a37fc050cf0cc5c9d5e7b48",
      "parents": [
        "88fd146c27da0f34c512f47e2b3776a0762ecd81"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 16 16:20:31 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Mar 16 16:20:31 2007 -0400"
      },
      "message": "Btrfs: transaction handles everywhere\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1e1d27017c5986c1ea81181506042cf9cba3f6ea",
      "tree": "aad9439d33f45543d7b041c3609ab180c2283526",
      "parents": [
        "1d4f6404de26df49eb8452f8fdf7672b59f407fc"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 15 19:03:33 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Mar 15 19:03:33 2007 -0400"
      },
      "message": "Btrfs: add inode item\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1d4f6404de26df49eb8452f8fdf7672b59f407fc",
      "tree": "9bbc9fdd45f8e9fc5444e8c84f4777a607c13e2b",
      "parents": [
        "24af03ea5e765d57860c975efcdcd41ec7f63fd9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 15 15:18:43 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Mar 15 15:18:43 2007 -0400"
      },
      "message": "Btrfs: directory testing code and dir item fixes\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "62e2749e03a855d98855f9ce032dbe72d5fad148",
      "tree": "ed12521d1bde4ac7eda7f917b57b3cab1e76539d",
      "parents": [
        "a1516c8921ce2c148b69493e858d95bc79c92f01"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 15 12:56:47 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Mar 15 12:56:47 2007 -0400"
      },
      "message": "Btrfs: Use a chunk of the key flags to record the item type.\nAdd (untested and simple) directory item code\nFix comp_keys to use the new key ordering\nAdd btrfs_insert_empty_item\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3768f3689fc76ecea17414936dff7a02746a4355",
      "tree": "0494b12e3ba0be0a25f122922e205bc91d88957b",
      "parents": [
        "eaee50e881b88766d9a781c54c4142456cf5e527"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 13 16:47:54 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Mar 13 16:47:54 2007 -0400"
      },
      "message": "Btrfs: Change the super to point to a tree of trees to enable persistent snapshots\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7518a238ea0152dc849d1ed76d3cae8b44e12f46",
      "tree": "97e5c285f10bdb2576046e7bb15d239471815c28",
      "parents": [
        "83e15a28e046dbb4534dd263d1d3dc867a8994a2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 12 12:01:18 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Mon Mar 12 12:01:18 2007 -0400"
      },
      "message": "Btrfs: get/set for struct header fields\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0579da4280812f34f382fb0f8004d7b0219e7a33",
      "tree": "817da9340020ac01849b610b90f6803d81bc97d3",
      "parents": [
        "037e6390488af8ab96137e1e5cccc15ad14ef887"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 07 16:15:30 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Mar 07 16:15:30 2007 -0500"
      },
      "message": "Btrfs: Fixup last found extent caching\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "037e6390488af8ab96137e1e5cccc15ad14ef887",
      "tree": "8bcde2f20af3b7b0bdb37376d78902d1ea5e74fa",
      "parents": [
        "a28ec19775d62d673b034082128aca95780d3737"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 07 11:50:24 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Mar 07 11:50:24 2007 -0500"
      },
      "message": "Btrfs: get rid of add recursion\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a28ec19775d62d673b034082128aca95780d3737",
      "tree": "105694ca29ed0ad6563c45a86df9a7df1abf94ff",
      "parents": [
        "02217ed299c6340a35696e0610047eb96826de2d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 06 20:08:01 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Mar 06 20:08:01 2007 -0500"
      },
      "message": "Btrfs: Fixup reference counting on cows\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "79f95c82dca7665f32bafd68b7cdf4a01fab0840",
      "tree": "255a204980ad2c6481b36a1d8257d5ee84277d74",
      "parents": [
        "bb8039515d7c1b521ea22f095b43618ccc771885"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 01 15:16:26 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Mar 01 15:16:26 2007 -0500"
      },
      "message": "Btrfs: Fixup the code to merge during path walks\nAdd a bulk insert/remove test to random-test\nAdd the quick-test code back as another regression test\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "aa5d6bed255d7f8c655a8f10d760f4247bc8385c",
      "tree": "ddd4ad69b490fc49e23097f5d783ef90ea81cf5f",
      "parents": [
        "af86d07efe83e2f2da3658702a720bc48b1a6d78"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 28 16:35:06 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Feb 28 16:35:06 2007 -0500"
      },
      "message": "Btrfs: return code checking\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "af86d07efe83e2f2da3658702a720bc48b1a6d78",
      "tree": "0e8895099617f5cfd65680f936af3fc0a3cd87e6",
      "parents": [
        "8e19f2cd452853d1ca0895c2488c24d40de3d255"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 28 09:40:58 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Feb 28 09:40:58 2007 -0500"
      },
      "message": "Btrfs: Add sparse checking to Makefile\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7cf75962acd27ed0f819df791486e7b803c7109c",
      "tree": "c8e85b451c563355906d80561679492acfd482f1",
      "parents": [
        "c673024aba596e57c07196cb3400cdcc9d28f3aa"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 26 10:55:01 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Mon Feb 26 10:55:01 2007 -0500"
      },
      "message": "Btrfs: u64 cleanups\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fec577fb7f516e0d12ff821b1af272fd754e120a",
      "tree": "f98b8adbf462cb3a146bcc3ec29e76beba5178ce",
      "parents": [
        "97571fd0c939be8ae9cb57a8c57430a244ce13ae"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 26 10:40:21 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Mon Feb 26 10:40:21 2007 -0500"
      },
      "message": "Btrfs: Add fsx-style randomized tree tester\nAdd debug-tree command to print the tree\nAdd extent-tree.c to the repo\nComment ctree.h\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5de08d7d50ba535b968d97101ed2ab07c2b8eb7d",
      "tree": "4959748849f43bea2c096fef09970154173c6e9b",
      "parents": [
        "9a8dd1502de6aa683ae46cf0397e9b6e636416fb"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Feb 24 06:24:44 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Sat Feb 24 06:24:44 2007 -0500"
      },
      "message": "Btrfs: Break up ctree.c a little\nExtent fixes\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d97e63b69ef21c02b67e20e41d9968b0e503572e",
      "tree": "400db046be21c09f2d96f74ff98677464c45507f",
      "parents": [
        "74123bd72a4e34c66e5ad95ce233dd352bebc572"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Feb 20 16:40:44 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Feb 20 16:40:44 2007 -0500"
      },
      "message": "Btrfs: early extent mapping support\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "eb60ceac0ebd11e9896ed1ca84fcad71a4b23601",
      "tree": "70d426737630b713bc18dc5ae8c342651f0f1f44",
      "parents": [
        "4920c9ac9a4bbc6bf9acd8c614987ee6b378e78f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 02 09:18:22 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Feb 02 09:18:22 2007 -0500"
      },
      "message": "Btrfs: Add backing store, memory management\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4920c9ac9a4bbc6bf9acd8c614987ee6b378e78f",
      "tree": "4c23ba9685b87407a8d25e42eefb970e34d934bb",
      "parents": [
        "be0e5c097fc206b863ce9fe6b3cfd6974b0110f4"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 26 16:38:42 2007 -0500"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Jan 26 16:38:42 2007 -0500"
      },
      "message": "Btrfs: Faster deletes, add Makefile and kerncompat\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    }
  ]
}
