)]}'
{
  "log": [
    {
      "commit": "79787eaab46121d4713ed03c8fc63b9ec3eaec76",
      "tree": "ee6b17d0811ee54ab74a03aa4e0bb92769d2f12a",
      "parents": [
        "49b25e0540904be0bf558b84475c69d72e4de66e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 12 16:03:00 2012 +0100"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Mar 22 11:52:54 2012 +0100"
      },
      "message": "btrfs: replace many BUG_ONs with proper error handling\n\n btrfs currently handles most errors with BUG_ON. This patch is a work-in-\n progress but aims to handle most errors other than internal logic\n errors and ENOMEM more gracefully.\n\n This iteration prevents most crashes but can run into lockups with\n the page lock on occasion when the timing \"works out.\"\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\n"
    },
    {
      "commit": "b45a9d8b48e5ce534bd222007c43cbf374544f0b",
      "tree": "dd08cdb5dd7657a2b6f285246415e777d19e5b86",
      "parents": [
        "200a5c17677e1ee8b78382046f3748c9f5816281"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Oct 03 23:22:44 2011 -0400"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Mar 22 01:45:33 2012 +0100"
      },
      "message": "btrfs: btrfs_update_root error push-up\n\nbtrfs_update_root BUG\u0027s when it can\u0027t alloc a path, yet it can recover\nfrom a search error. This patch returns -ENOMEM instead.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\n"
    },
    {
      "commit": "d16cb050e5b1c3a9d754fed7098eefb8237877d1",
      "tree": "f6b4f8cb5d15c28676a6f6416e6c7b6ca0f72a8a",
      "parents": [
        "cddcd800189bc03745d576f913dc57692c6f439a"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Oct 03 23:22:34 2011 -0400"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Mar 22 01:45:31 2012 +0100"
      },
      "message": "btrfs: Simplify btrfs_insert_root\n\nbtrfs_insert_root is just a wrapper for btrfs_insert_item. Just return\nthe error directly.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\n"
    },
    {
      "commit": "bf5f32ecb6caac52b4d1c083251b3dd4f40a0b7a",
      "tree": "a1022046dd66034c6a916b28abcadc9128184273",
      "parents": [
        "ff1f2b4407454d926d8b143bf37e4dce66026a28"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jul 14 21:23:06 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 01 14:30:44 2011 -0400"
      },
      "message": "btrfs: make btrfs_set_root_node void\n\nThis is fairly trivial - btrfs_set_root_node() - always returns zero so we\ncan just make it void.  All callers ignore the return code now anyway.  I\nalso made sure to check that none of the functions that\nbtrfs_set_root_node() calls returns an error that we might have needed to\ncatch and pass back.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d6c0cb379c5198487e4ac124728cbb2346d63b1f",
      "tree": "167a97ac58c7a2fbf7c4e94b6abbfe1e03af014a",
      "parents": [
        "8e531cdfeb75269c6c5aae33651cca39707848da",
        "1f78160ce1b1b8e657e2248118c4d91f881763f0"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 14:37:47 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 14:37:47 2011 -0400"
      },
      "message": "Merge branch \u0027cleanups_and_fixes\u0027 into inode_numbers\n\nConflicts:\n\tfs/btrfs/tree-log.c\n\tfs/btrfs/volumes.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "65a246c5ffe3b487a001de025816326939e63362",
      "tree": "52da5b08a584ac3178f8bd35a5e7333f5a3908e1",
      "parents": [
        "b0b802d7e34b0b4a78f911c3a8aad88aa91fd7ab"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu May 19 04:37:44 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:39 2011 -0400"
      },
      "message": "Btrfs: return error code to caller when btrfs_del_item fails\n\nThe error code is returned instead of calling BUG_ON when\nbtrfs_del_item returns the error.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f2a97a9dbd86eb1ef956bdf20e05c507b32beb96",
      "tree": "756c2db8fee9c02df0e3217ea208a82b5f1d5e78",
      "parents": [
        "621496f4fd56195b7b273521f467c2945165481f"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu May 05 12:44:41 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Fri May 06 12:34:03 2011 +0200"
      },
      "message": "btrfs: remove all unused functions\n\nRemove static and global declarations and/or definitions. Reduces size\nof btrfs.ko by ~3.4kB.\n\n  text    data     bss     dec     hex filename\n402081    7464     200  409745   64091 btrfs.ko.base\n398620    7144     200  405964   631cc btrfs.ko.remove-all\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "b3b4aa74b58bded927f579fff787fb6fa1c0393c",
      "tree": "30dab4ab26558992dd8b6b212bef805de11c4c29",
      "parents": [
        "ba14419264684b290f0d0b7f48d26eafb11fc0c6"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Apr 21 01:20:15 2011 +0200"
      },
      "committer": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Mon May 02 13:57:22 2011 +0200"
      },
      "message": "btrfs: drop unused parameter from btrfs_release_path\n\nparameter tree root it\u0027s not used since commit\n5f39d397dfbe140a14edecd4e73c34ce23c4f9ee (\"Btrfs: Create extent_buffer\ninterface for large blocksizes\")\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\n"
    },
    {
      "commit": "08fe4db170b4193603d9d31f40ebaf652d07ac9c",
      "tree": "2d0d2abe40b77266600653e399d4973a679716a9",
      "parents": [
        "adae52b94e18afa1f84fab67df2a8a872c2f5533"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Mar 28 02:01:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 05 01:20:24 2011 -0400"
      },
      "message": "Btrfs: Fix uninitialized root flags for subvolumes\n\nroot_item-\u003eflags and root_item-\u003ebyte_limit are not initialized when\na subvolume is created. This bug is not revealed until we added\nreadonly snapshot support - now you mount a btrfs filesystem and you\nmay find the subvolumes in it are readonly.\n\nTo work around this problem, we steal a bit from root_item-\u003einode_item-\u003eflags,\nand use it to indicate if those fields have been properly initialized.\nWhen we read a tree root from disk, we check if the bit is set, and if\nnot we\u0027ll set the flag and initialize the two fields of the root item.\n\nReported-by: Andreas Philipp \u003cphilipp.andreas@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Andreas Philipp \u003cphilipp.andreas@gmail.com\u003e\ncc: stable@kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "db5b493ac78e46c7b6bad22cd25d8041564cd8ea",
      "tree": "18f484c3d8194b80165e5400831931a3ac5c58ba",
      "parents": [
        "1abe9b8a138c9988ba8f7bfded6453649a31541f"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Wed Mar 23 08:14:16 2011 +0000"
      },
      "committer": {
        "name": "root",
        "email": "Chris Mason chris.mason@oracle.com",
        "time": "Mon Mar 28 05:37:35 2011 -0400"
      },
      "message": "Btrfs: cleanup some BUG_ON()\n\nThis patch changes some BUG_ON() to the error return.\n(but, most callers still use BUG_ON())\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "559af8211433b8c0b20e6c43c61409cb9c9c2996",
      "tree": "702ebd4c4f5b610daa36f65d814a518356a9a46b",
      "parents": [
        "411fc6bcef54f828a5458f4730c68abdf13c6bf0"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Oct 29 15:14:37 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:37 2010 -0400"
      },
      "message": "Btrfs: cleanup warnings from gcc 4.6 (nonbugs)\n\nThese are all the cases where a variable is set, but not read which are\nnot bugs as far as I can see, but simply leftovers.\n\nStill needs more review.\n\nFound by gcc 4.6\u0027s new warnings\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "15e7000095e6fc9ad07e476a100c900c72c14225",
      "tree": "c97fa27a7727c82d78d43ac0b1df63a4f9954cfa",
      "parents": [
        "731e3d1b4348a96d53de6c084774424dedc64a3b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 17:15:27 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:39 2010 -0400"
      },
      "message": "Btrfs: avoid BUG when dropping root and reference in same transaction\n\nIf btrfs_ioctl_snap_destroy() deletes a snapshot but finishes\nwith end_transaction(), the cleaner kthread may come in and\ndrop the root in the same transaction.  If that\u0027s the case, the\nroot\u0027s refs still \u003d\u003d 1 in the tree when btrfs_del_root() deletes\nthe item, because commit_fs_roots() hasn\u0027t updated it yet (that\nhappens during the commit).\n\nThis wasn\u0027t a problem before only because\nbtrfs_ioctl_snap_destroy() would commit the transaction before dropping\nthe dentry reference, so the dead root wouldn\u0027t get queued up until\nafter the fs root item was updated in the btree.\n\nSince it is not an error to drop the root reference and the root in the\nsame transaction, just drop the BUG_ON() in btrfs_del_root().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d68fc57b7e3245cfacf2e3b47acfed1946a11786",
      "tree": "c2572fcd935017440c8370c8a12ceb49a7fc4f1f",
      "parents": [
        "8929ecfa50f266163832eeacfbc3642ed5eb83b6"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Sun May 16 10:49:58 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 25 10:34:52 2010 -0400"
      },
      "message": "Btrfs: Metadata reservation for orphan inodes\n\nreserve metadata space for handling orphan inodes\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "df66916e71231e9f2377cac9c5c1e2d190f9a427",
      "tree": "9668d3ca20bf6c0b4187f272d85aa026f0a06121",
      "parents": [
        "5df6a9f606bf2ee25ab8031bff124ed883b823be"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "jerry87905@gmail.com",
        "time": "Fri Nov 06 14:33:01 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 11 14:20:18 2009 -0500"
      },
      "message": "Btrfs: skip btrfs_release_path in btrfs_update_root and btrfs_del_root\n\nWe don\u0027t need to call btrfs_release_path because btrfs_free_path will do\nthat for us.\n\nSigned-off-by: Li Dongyang \u003cJerry87905@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "76dda93c6ae2c1dc3e6cde34569d6aca26b0c918",
      "tree": "f5ca46ec89d4ae2c762952d5f35e2c6f95ac046a",
      "parents": [
        "4df27c4d5cc1dda54ed7d0a8389347f2df359cf9"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Sep 21 16:00:26 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 21 16:00:26 2009 -0400"
      },
      "message": "Btrfs: add snapshot/subvolume destroy ioctl\n\nThis patch adds snapshot/subvolume destroy ioctl.  A subvolume that isn\u0027t being\nused and doesn\u0027t contains links to other subvolumes can be destroyed.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4df27c4d5cc1dda54ed7d0a8389347f2df359cf9",
      "tree": "2008f348d28c6c19e31924ae4fb414ca929a01f1",
      "parents": [
        "13a8a7c8c47e542b3cdb45bec3f431f96af79361"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Sep 21 15:56:00 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 21 15:56:00 2009 -0400"
      },
      "message": "Btrfs: change how subvolumes are organized\n\nbtrfs allows subvolumes and snapshots anywhere in the directory tree.\nIf we snapshot a subvolume that contains a link to other subvolume\ncalled subvolA, subvolA can be accessed through both the original\nsubvolume and the snapshot. This is similar to creating hard link to\ndirectory, and has the very similar problems.\n\nThe aim of this patch is enforcing there is only one access point to\neach subvolume. Only the first directory entry (the one added when\nthe subvolume/snapshot was created) is treated as valid access point.\nThe first directory entry is distinguished by checking root forward\nreference. If the corresponding root forward reference is missing,\nwe know the entry is not the first one.\n\nThis patch also adds snapshot/subvolume rename support, the code\nallows rename subvolume link across subvolumes.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.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": "d397712bcc6a759a560fd247e6053ecae091f958",
      "tree": "9da8daebb870d8b8b1843507c4621715e23dd31a",
      "parents": [
        "1f3c79a28c8837e8572b98f6d14142d9a6133c56"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 05 21:25:51 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 05 21:25:51 2009 -0500"
      },
      "message": "Btrfs: Fix checkpatch.pl warnings\n\nThere were many, most are fixed now.  struct-funcs.c generates some warnings\nbut these are bogus.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b2950863c61bc24cf0f63bc05947d9d50663c4c0",
      "tree": "3005a034713fe86db2d64ab1b21fe8762f6a4b0c",
      "parents": [
        "1ffa4f426c002161b7dbd58b297f5d0680e7dd6a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Dec 02 09:54:17 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Dec 02 09:54:17 2008 -0500"
      },
      "message": "Btrfs: make things static and include the right headers\n\nShut up various sparse warnings about symbols that should be either\nstatic or have their declarations in scope.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "ea9e8b11bd1252dcbc23afefcf1a52ec6aa3c113",
      "tree": "3573c8d79e1936e8c921a3be77abda35124e0d78",
      "parents": [
        "0660b5af3f7ac0fac69de975914e1f4a3a586fb3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 17 21:14:24 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 17 21:14:24 2008 -0500"
      },
      "message": "Btrfs: prevent loops in the directory tree when creating snapshots\n\nFor a directory tree:\n\n/mnt/subvolA/subvolB\n\nbtrfsctl -s /mnt/subvolA/subvolB /mnt\n\nWill create a directory loop with subvolA under subvolB.  This\ncommit uses the forward refs for each subvol and snapshot to error out\nbefore creating the loop.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "0660b5af3f7ac0fac69de975914e1f4a3a586fb3",
      "tree": "5e911dfad23df29f1815fbbc76d38ffff7fe36d8",
      "parents": [
        "3394e1607eaf870ebba37d303fbd590a4c569908"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 17 20:37:39 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 17 20:37:39 2008 -0500"
      },
      "message": "Btrfs: Add backrefs and forward refs for subvols and snapshots\n\nSubvols and snapshots can now be referenced from any point in the directory\ntree.  We need to maintain back refs for them so we can find lost\nsubvols.\n\nForward refs are added so that we know all of the subvols and\nsnapshots referenced anywhere in the directory tree of a single subvol.  This\ncan be used to do recursive snapshotting (but they aren\u0027t yet) and it is\nalso used to detect and prevent directory loops when creating new snapshots.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\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": "1a40e23b95da45051ee4d74374c58ae87a14051c",
      "tree": "77faffd3f9d3a26c22e6cf03b83762c95d687596",
      "parents": [
        "5b21f2ed3f2947b5195b65c9fdbdd9e52904cc03"
      ],
      "author": {
        "name": "Zheng Yan",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Sep 26 10:09:34 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Sep 26 10:09:34 2008 -0400"
      },
      "message": "Btrfs: update space balancing code\n\nThis patch updates the space balancing code to utilize the new\nbackref format.  Before, btrfs-vol -b would break any COW links\non data blocks or metadata.  This was slow and caused the amount\nof space used to explode if a large number of snapshots were present.\n\nThe new code can keeps the sharing of all data extents and\nmost of the tree blocks.\n\nTo maintain the sharing of data extents, the space balance code uses\na seperate inode hold data extent pointers, then updates the references\nto point to the new location.\n\nTo maintain the sharing of tree blocks, the space balance code uses\nreloc trees to relocate tree blocks in reference counted roots.\nThere is one reloc tree for each subvol, and all reloc trees share\nsame root key objectid. Reloc trees are snapshots of the latest\ncommitted roots of subvols (root-\u003ecommit_root).\n\nTo relocate a tree block referenced by a subvol, there are two steps.\nCOW the block through subvol\u0027s reloc tree, then update block pointer in\nthe subvol to point to the new block. Since all reloc trees share\nsame root key objectid, doing special handing for tree blocks\nowned by them is easy. Once a tree block has been COWed in one\nreloc tree, we can use the resulting new block directly when the\nsame block is required to COW again through other reloc trees.\nIn this way, relocated tree blocks are shared between reloc trees,\nso they are also shared between subvols.\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": "b48652c101cce7a54379a49cc0cf854cec2c94e2",
      "tree": "13e8250b326b71fed80811e1ed3b19b00beded31",
      "parents": [
        "3de9d6b649b4cc60687be92e71cef36d7d4e8f2f"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Aug 04 23:23:47 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:06 2008 -0400"
      },
      "message": "Btrfs: Various small fixes.\n\nThis trivial patch contains two locking fixes and a off by one fix.\n\n---\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a7a16fd772620605c76e8ac8bdbc8ccc9e3df1a0",
      "tree": "5dc173d7653ba4819ce1c853b9e84293422edf90",
      "parents": [
        "f9efa9c784aa3b801feb367f72c6867d26fb348e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jun 26 10:34:20 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:04 2008 -0400"
      },
      "message": "Btrfs: Fix deadlock while searching for dead roots on mount\n\nbtrfs_find_dead_roots called btrfs_read_fs_root_no_radix, which\nmeans we end up calling btrfs_search_slot with a path already held.\n\nThe fix is to remember the key inside btrfs_find_dead_roots and drop\nthe path.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bf4ef67924d87b0addb32f084e83a9283496350e",
      "tree": "2935d0395028d878e57df73e5fbd2182abc16c41",
      "parents": [
        "a061fc8da7b990faa41ca503e66faef3ecdeead0"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 08 13:26:18 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:02 2008 -0400"
      },
      "message": "Btrfs: Properly find the root for snapshotted blocks during chunk relocation\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d666746207a01546e55bdaa4b721d1890faaf6e8",
      "tree": "9ed65e121a44aace7364551b6b607e098a590770",
      "parents": [
        "73e48b277a3fcd647f1936c71aea2f8d450ecc74"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 03 14:51:00 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Change st_blocksize to 4k\n\nSome programs (python) do rwm cycles at the granularity returned by\nstat.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "edbd8d4efe4ddaf29a175ae504e2c9a05a96ebee",
      "tree": "c5156fe3a75e97972186c9a933a631b258490a7e",
      "parents": [
        "5d4fb734b4cb89a3902d6de309af0f6f3e63fe73"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 21 16:27:24 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:58 2008 -0400"
      },
      "message": "Btrfs: Support for online FS resize (grow and shrink)\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": "5ce14bbcdd1b5d9233d26a1e89faf3a26c820c58",
      "tree": "6e2a2964e9b01c03dd1b4d58c976d76664747b64",
      "parents": [
        "0e2752a72cb37075b24899f01e9bc6a589de3b6c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Sep 11 11:15:39 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Sep 11 11:15:39 2007 -0400"
      },
      "message": "Btrfs: Find and remove dead roots the first time a root is loaded.\n\nDead roots are trees left over after a crash, and they were either in the\nprocess of being removed or were waiting to be removed when the box crashed.\nBefore, a search of the entire tree of root pointers was done on mount\nlooking for dead roots.  Now, the search is done the first time we load\na root.\n\nThis makes mount faster when there are a large number of snapshots, and it\nenables the block accounting code to properly update the block counts on\nthe latest root as old versions of the root are reaped after a crash.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a1f396304fb7e5f18e4ea81c294415375f1c814c",
      "tree": "ad36d38ff59d3421090c75846a2251d0bde3f248",
      "parents": [
        "ec6b910fb330f29e169c9f502c3ac209515af8d1"
      ],
      "author": {
        "name": "Aneesh",
        "email": "aneesh.kumar@gmail.com",
        "time": "Wed Jul 11 10:03:27 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Jul 11 10:03:27 2007 -0400"
      },
      "message": "Btrfs: Some code cleanups\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ec6b910fb330f29e169c9f502c3ac209515af8d1",
      "tree": "1b9854ebbc2f3cae4e8fb43dde53527bc7d7eb09",
      "parents": [
        "f2fdf02406de9273ad27c3b73f70aee745173f7b"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Wed Jul 11 10:00:37 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Jul 11 10:00:37 2007 -0400"
      },
      "message": "Btrfs: trivial include fixups\n\nAlmost none of the files including module.h need to do so,\nremove them.\n\nInclude sched.h in extent-tree.c to silence a warning about cond_resched()\nbeing undeclared.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "22bb92f376b38154dc0c3688a01a16525b4caab0",
      "tree": "424bf0a5ba92a4cf3e80497a6c0471a23d7cd2b2",
      "parents": [
        "5eda7b5e9b0bed864dd18284c7df9b3c8207dad7"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 22 14:49:31 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Jun 22 14:49:31 2007 -0400"
      },
      "message": "Btrfs: Documentation update\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5eda7b5e9b0bed864dd18284c7df9b3c8207dad7",
      "tree": "9efe48de46e77f2b7b97a2ce3ee93c9da6451671",
      "parents": [
        "54aa1f4dfdacd60a19c4471220b24e581be6f774"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 22 14:16:25 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Jun 22 14:16:25 2007 -0400"
      },
      "message": "Btrfs: Add the ability to find and remove dead roots after a crash.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "54aa1f4dfdacd60a19c4471220b24e581be6f774",
      "tree": "1462277822cc63c00ad31b522457363a5c6be6ab",
      "parents": [
        "11bd143fc8243cf48c934dc1c4479a5aacf58ce3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 22 14:16:25 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Jun 22 14:16:25 2007 -0400"
      },
      "message": "Btrfs: Audit callers and return codes to make sure -ENOSPC gets up the stack\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f1ace244c8c1e16eaa5c8b3b5339849651e31ede",
      "tree": "f1a84930a17a6803072f390bab28eb43f6e95f5b",
      "parents": [
        "b79ab950f57c3260ee609ba41779019d21b8eb88"
      ],
      "author": {
        "name": "Aneesh",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Jun 13 16:18:26 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Jun 13 16:18:26 2007 -0400"
      },
      "message": "btrfs: Code cleanup\nAttaching below is some of the code cleanups that i came across while\nreading the code.\n\na) alloc_path already calls init_path.\nb) Mention that btrfs_inode is the in memory copy.Ext4 have ext4_inode_info as\nthe in memory copy ext4_inode as the disk copy\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6cbd55707802b98843f953d1ae6d8f5bcd9a76c0",
      "tree": "5c2d9de53ab948c7aae31660dbabfb5a9fb649b5",
      "parents": [
        "8a712645c3fbbf43293af8640af337b7cf1fef01"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jun 12 09:07:21 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Jun 12 09:07:21 2007 -0400"
      },
      "message": "Btrfs: add GPLv2\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5af3981c1878b0657b9babd2ef7ec98c2008cf2c",
      "tree": "084068ff090eab1a8235c6bdd9f49563a51675a6",
      "parents": [
        "84f54cfa78c81991e087309a9b379f25f1ffdb10"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jun 12 07:50:13 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Jun 12 07:50:13 2007 -0400"
      },
      "message": "Btrfs: printk fixes\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "84f54cfa78c81991e087309a9b379f25f1ffdb10",
      "tree": "2f2576ea31a276504e99090473e2c6829d1a9024",
      "parents": [
        "39279cc3d2704cfbf9c35dcb5bdd392159ae4625"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jun 12 07:43:08 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Jun 12 07:43:08 2007 -0400"
      },
      "message": "Btrfs: 64 bit div fixes\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8fd17795b2261ecb1bad2a6df09ef14c4957a3fb",
      "tree": "baab31275c20f5848f11688678158cf50875834e",
      "parents": [
        "7e38180e207c8707691c12395e990a5d583c5e71"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Apr 19 21:01:03 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Apr 19 21:01:03 2007 -0400"
      },
      "message": "Btrfs: early fsync support\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c5739bba5260a59cebd20a51a55080592c8d3b07",
      "tree": "ff33f7acddcfc60e7395209ff949bb9d90afda32",
      "parents": [
        "0f7d52f4431c530b4f39c524448c688bb7754de5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Apr 10 09:27:04 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Apr 10 09:27:04 2007 -0400"
      },
      "message": "Btrfs: snapshot progress\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5caf2a002901f0fde475371c4bf1c553b51884af",
      "tree": "1c262f723307fe924ea4e960761354f194f3843e",
      "parents": [
        "2c90e5d658424bc71b111eb5a972240d5d06fe86"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 02 11:20:42 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Mon Apr 02 11:20:42 2007 -0400"
      },
      "message": "Btrfs: dynamic allocation of path struct\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d6025579531b7ea170ba283b171ff7a6bf7d0e12",
      "tree": "c3b742fda3a6ac8541c06011bb3c26635db99212",
      "parents": [
        "22b0ebda6c63a1ad66b6a9e806bd226a4a03a049"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 30 14:27:56 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Mar 30 14:27:56 2007 -0400"
      },
      "message": "Btrfs: corruption hunt continues\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d571976292839cec05a2820b08f7629b145ed157",
      "tree": "6a3f2f5a9b9c70f61d00ac10edaaaa60d5043474",
      "parents": [
        "79154b1b5bcf87903db7ff16a30b360b78d6fe4f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Mar 23 10:01:08 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Mar 23 10:01:08 2007 -0400"
      },
      "message": "btrfs_create, btrfs_write_super, btrfs_sync_fs\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": "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": "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": "123abc88c9087b9c5605566ee3491aaef17fd837",
      "tree": "3a8e83ac7a095d2b875664ee54cf7e24e977999b",
      "parents": [
        "4beb1b8b75a86373f6020103ab840448d14c8880"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Mar 14 14:14:43 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Mar 14 14:14:43 2007 -0400"
      },
      "message": "Btrfs: variable block size support\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"
    }
  ]
}
