)]}'
{
  "log": [
    {
      "commit": "dcbeb0bec5f2695c3ff53f174efb8e03c209f3f3",
      "tree": "30d223a3a3c7470c657284ef030657bd1753d4d3",
      "parents": [
        "2b650df2cea96e487f2fd9ecaa68e533ea9b5ed7",
        "444528b3e614f7f2391488d9bca8e0b872db909b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 15 15:06:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 15 15:06:37 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: always pin metadata in discard mode\n  Btrfs: enable discard support\n  Btrfs: add -o discard option\n  Btrfs: properly wait log writers during log sync\n  Btrfs: fix possible ENOSPC problems with truncate\n  Btrfs: fix btrfs acl #ifdef checks\n  Btrfs: streamline tree-log btree block writeout\n  Btrfs: avoid tree log commit when there are no changes\n  Btrfs: only write one super copy during fsync\n"
    },
    {
      "commit": "e244a0aeb6a599c19a7c802cda6e2d67c847b154",
      "tree": "392d8d48c4e6676a552230135ad448d522007ece",
      "parents": [
        "86df7eb921a009515285e7171363fa57dd2d7d31"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Oct 14 09:24:59 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Oct 14 10:32:49 2009 -0400"
      },
      "message": "Btrfs: add -o discard option\n\nEnable discard by default is not a good idea given the the trim speed\nof SSD prototypes we\u0027ve seen, and the carecteristics for many high-end\narrays.  Turn of discards by default and require the -o discard option\nto enable them on.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0eda294dfc980c1cbe4f8a0564bf543f86a01ddb",
      "tree": "478b0abfda753196fcb8842d002e5bb600051618",
      "parents": [
        "690587d109ffe19d6743e4cc80c18b0906b7f9ff"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 13 13:50:18 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 13 13:51:39 2009 -0400"
      },
      "message": "Btrfs: fix btrfs acl #ifdef checks\n\nThe btrfs acl code was #ifdefing for a define\nthat didn\u0027t exist.  This correctly matches it\nto the values used by the Kconfig file.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "25472b880c69c0daa485c4f80a6550437ed1149f",
      "tree": "d12bc091e8991513db0d2891111ba773eb5c52e2",
      "parents": [
        "17d857be649a21ca90008c6dc425d849fa83db5c",
        "ab93dbecfba72bbc04b7036343d180aaff1b61a3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Oct 01 12:58:13 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Oct 01 12:58:13 2009 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable into for-linus\n"
    },
    {
      "commit": "49cf6f4529b7945ef51b8e39f0bac630726f8c96",
      "tree": "27c91f6bb1ac0e4862286e78d1365e2890754cef",
      "parents": [
        "9ed74f2dba6ebf9f30b80554290bfc73cc3ef083"
      ],
      "author": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Tue Sep 29 13:51:04 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Sep 29 13:51:04 2009 -0400"
      },
      "message": "Btrfs: Fix setting umask when POSIX ACLs are not enabled\n\nWe currently set sb-\u003es_flags |\u003d MS_POSIXACL unconditionally, which is\nincorrect -- it tells the VFS that it shouldn\u0027t set umask because we\nwill, yet we don\u0027t set it ourselves if we aren\u0027t using POSIX ACLs, so\nthe umask ends up ignored.\n\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "54bcf382daf08c1396edb8b81e650b58930ccaef",
      "tree": "64b941f09489b5c9ee63e4ad43d736bfce911b21",
      "parents": [
        "94a8d5caba74211ec76dac80fc6e2d5c391530df",
        "c65ddb52dc412c9b67681b1aa16cd1bac8434e24"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 24 10:00:58 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 24 10:00:58 2009 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable into for-linus\n\nConflicts:\n\tfs/btrfs/super.c\n"
    },
    {
      "commit": "b87221de6a4934eda856475a0065688d12973a04",
      "tree": "6bcf0628e106c4833538f4c23d710fbbe3d7609a",
      "parents": [
        "0d54b217a247f39605361f867fefbb9e099a5432"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining super_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5af7926ff33b68b3ba46531471c6e0564b285efc",
      "tree": "a25266f9db482ce9dd8e663148ffb0f1a524bd83",
      "parents": [
        "e5004753388dcf5e1b8a52ac0ab807d232340fbb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:41:25 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "enforce -\u003esync_fs is only called for rw superblock\n\nMake sure a superblock really is writeable by checking MS_RDONLY\nunder s_umount.  sync_filesystems needed some re-arragement for\nthat, but all but one sync_filesystem caller had the correct locking\nalready so that we could add that check there.  cachefiles grew\ns_umount locking.\n\nI\u0027ve also added a WARN_ON to sync_filesystem to assert this for\nfuture callers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "59d697b70285c348c01cfc2695c3469ba71d7539",
      "tree": "e383e5a2c0fc6196bed269aac032d3e363e9c4f7",
      "parents": [
        "c3f8a40c1cd5591b882497d1d00d43d0e5bb4698"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:41 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "btrfs: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "067c28adc53807514ac0c6ebb6af3243cbd071fa",
      "tree": "fa3e60e01cb2ba71fd9f3ab5d29147bc3fe781a1",
      "parents": [
        "85d4198e40c289dd623cecd16601fa613559bed7"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jun 11 09:30:13 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jun 11 09:30:13 2009 -0400"
      },
      "message": "Btrfs: fix -o nodatasum printk spelling\n\nIt was printing nodatacsum, which was not the correct option name.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c289811cc096c57ff35550ee8132793a4f9b5b59",
      "tree": "47599d47419911c8365e0350e286dece1d5e48dd",
      "parents": [
        "451d7585a8bb1b9bec0d676ce3dece1923164e55"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 10 09:51:32 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 10 11:29:52 2009 -0400"
      },
      "message": "Btrfs: autodetect SSD devices\n\nDuring mount, btrfs will check the queue nonrot flag\nfor all the devices found in the FS.  If they are all\nnon-rotating, SSD mode is enabled by default.\n\nIf the FS was mounted with -o nossd, the non-rotating\nflag is ignored.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "451d7585a8bb1b9bec0d676ce3dece1923164e55",
      "tree": "b4e9103b7010e45e02deff9ae4470df71475f8de",
      "parents": [
        "c604480171c510c1beeb81b82418e5bc4de8f1ae"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jun 09 20:28:34 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 10 11:29:52 2009 -0400"
      },
      "message": "Btrfs: add mount -o ssd_spread to spread allocations out\n\nSome SSDs perform best when reusing block numbers often, while\nothers perform much better when clustering strictly allocates\nbig chunks of unused space.\n\nThe default mount -o ssd will find rough groupings of blocks\nwhere there are a bunch of free blocks that might have some\nallocated blocks mixed in.\n\nmount -o ssd_spread will make sure there are no allocated blocks\nmixed in.  It should perform better on lower end SSDs.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3b30c22f64a6bb297719c60e494af1d26563f584",
      "tree": "2730226cb21de6c61f6d1fb265c64523e0073354",
      "parents": [
        "d644d8a1e30b88a93bcfb63cada2ae628462ddba"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jun 09 16:42:22 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 10 11:29:50 2009 -0400"
      },
      "message": "Btrfs: Add mount -o nossd\n\nThis allows you to turn off the ssd mode via remount.\n\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": "5732c468495effd3089c1c893f3eba9a8a1d373c",
      "tree": "6cb79b79acde60efd82af296fd312569034d5a58",
      "parents": [
        "45d447406a19cbfd42720f066f156f4eb9d68801",
        "9f55684c2d9869e8cc53595a3fee679958511cfb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 14 19:18:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 14 19:18:44 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: Spelling fix in btrfs_lookup_first_block_group comments\n  Btrfs: make show_options result match actual option names\n  Btrfs: remove outdated comment in btrfs_ioctl_resize()\n  Btrfs: remove some WARN_ONs in the IO failure path\n  Btrfs: Don\u0027t loop forever on metadata IO failures\n  Btrfs: init inode ordered_data_close flag properly\n"
    },
    {
      "commit": "6b65c5c61bf86086817a5ed786c8f45755ac83b3",
      "tree": "a5991f92b4ea22aba4f2042c893446462b47d2df",
      "parents": [
        "5d847a8ed970d17e2734ff9e07a74fe36cceb24e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu May 14 13:52:21 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 14 14:00:34 2009 -0400"
      },
      "message": "Btrfs: make show_options result match actual option names\n\nThe notreelog and flushoncommit mount options were being printed slightly\ndifferently.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6f5bbff9a1b7d6864a495763448a363bbfa96324",
      "tree": "0067dca46f40def1c55541c34c262e06aeb8c4c8",
      "parents": [
        "74dbbdd7fdc11763f4698d2f3e684cf4446951e6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 06 01:34:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:40 2009 -0400"
      },
      "message": "Convert obvious places to deactivate_locked_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4ebf66233798347a73b01da5d30d5d2c0ef39f56",
      "tree": "3aae053ccbf3b6206fe6d17e62172559d35a7711",
      "parents": [
        "14b6084daa61bfd4da926f63e6e8bd0b6de87ad9",
        "46a53cca826e71effe59e3cb4f383622c33ebdcb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 27 11:16:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 27 11:16:33 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: look for acls during btrfs_read_locked_inode\n  Btrfs: fix acl caching\n  Btrfs: Fix a bunch of printk() warnings.\n  Btrfs: Fix a trivial warning using max() of u64 vs ULL.\n  Btrfs: remove unused btrfs_bit_radix slab\n  Btrfs: ratelimit IO error printks\n  Btrfs: remove #if 0 code\n  Btrfs: When shrinking, only update disk size on success\n  Btrfs: fix deadlocks and stalls on dead root removal\n  Btrfs: fix fallocate deadlock on inode extent lock\n  Btrfs: kill btrfs_cache_create\n  Btrfs: don\u0027t export symbols\n  Btrfs: simplify makefile\n  Btrfs: try to keep a healthy ratio of metadata vs data block groups\n"
    },
    {
      "commit": "21380931eb4da4e29ac663d0221581282cbba208",
      "tree": "fa8c2155784ccb0ee996e52e75d1e04b79cf2560",
      "parents": [
        "e63b6a6c0ffa2ebd8617cc1a10969000296831aa"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Apr 21 12:38:29 2009 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 27 08:37:49 2009 -0400"
      },
      "message": "Btrfs: Fix a bunch of printk() warnings.\n\nJust happened to notice a bunch of %llu vs u64 warnings.  Here\u0027s a patch\nto cast them all.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "97e728d4353f38c87bf0804cdfd79a9b13fc2c3e",
      "tree": "853d3317ff1476e4ad28921265e28b4919196304",
      "parents": [
        "546888da82082555a56528730a83f0afd12f33bf"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Tue Apr 21 17:40:57 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Apr 24 15:46:02 2009 -0400"
      },
      "message": "Btrfs: try to keep a healthy ratio of metadata vs data block groups\n\nThis patch makes the chunk allocator keep a good ratio of metadata vs data\nblock groups.  By default for every 8 data block groups, we\u0027ll allocate 1\nmetadata chunk, or about 12% of the disk will be allocated for metadata.  This\ncan be changed by specifying the metadata_ratio mount option.\n\nThis is simply the number of data block groups that have to be allocated to\nforce a metadata chunk allocation.  By making sure we allocate metadata chunks\nmore often, we are less likely to get into situations where the whole disk\nhas been allocated as data block groups.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dae7b665cf6d6e6e733f1c9c16cf55547dd37e33",
      "tree": "ab7f9fc54bcf735c7f331f78858ec0db7f634cdd",
      "parents": [
        "3939fcde24473dc09ce16e922c88df9b3bee45d9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 08 15:06:54 2009 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:02:50 2009 -0400"
      },
      "message": "btrfs: use memdup_user()\n\nRemove open-coded memdup_user().\n\nNote this changes some GFP_NOFS to GFP_KERNEL, since copy_from_user() may\ncause pagefault, it\u0027s pointless to pass GFP_NOFS to kmalloc().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dccae99995089641fbac452ebc7f0cab18751ddb",
      "tree": "c8f3611cc62baa6fa02baff18374d8f3a61b06bf",
      "parents": [
        "3a5e14048a0a81276d284cbda441507a17e26147"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 02 16:59:01 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Apr 02 16:59:01 2009 -0400"
      },
      "message": "Btrfs: add flushoncommit mount option\n\nThe \u0027flushoncommit\u0027 mount option forces any data dirtied by a write in a\nprior transaction to commit as part of the current commit.  This makes\nthe committed state a fully consistent view of the file system from the\napplication\u0027s perspective (i.e., it includes all completed file system\noperations).  This was previously the behavior only when a snapshot is\ncreated.\n\nThis is used by Ceph to ensure that completed writes make it to the\nplatter along with the metadata operations they are bound to (by\nBTRFS_IOC_TRANS_{START,END}).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "3a5e14048a0a81276d284cbda441507a17e26147",
      "tree": "42464c2455216b008bf27c13496d001bb85d3564",
      "parents": [
        "a9572a15a854bd40453a6b7b4dd9d29132f64c64"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 02 16:49:40 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Apr 02 16:49:40 2009 -0400"
      },
      "message": "Btrfs: notreelog mount option\n\nAdd a \u0027notreelog\u0027 mount option to disable the tree log (used by fsync,\nO_SYNC writes).  This is much slower, but the tree logging produces\ninconsistent views into the FS for ceph.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "a9572a15a854bd40453a6b7b4dd9d29132f64c64",
      "tree": "36eb4ee3be45a4d622da2f103e571894a60c3c13",
      "parents": [
        "fa9c0d795f7b57c76560b7fac703f5d341210e28"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Apr 02 16:46:06 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Apr 02 16:46:06 2009 -0400"
      },
      "message": "Btrfs: introduce btrfs_show_options\n\nbtrfs options can change at times other than mount, yet /proc/mounts shows the\noptions string used when the fs was mounted (an example would be when btrfs\ndetermines that barriers aren\u0027t useful and turns them off.)  This patch\ninstead outputs the actual options in use by btrfs.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "e1df36d2f18254d0690a0fbe036cece74ec311b8",
      "tree": "34823b4533c7fe2d5a329a03b99faa6bd0a88956",
      "parents": [
        "536ac8ae86e68bb5574d7cc81c7d229a86b82601"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:45:08 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:45:08 2009 -0500"
      },
      "message": "Btrfs: don\u0027t clean old snapshots on sync(1)\n\nCleaning old snapshots can make sync(1) somewhat slow, and some users\nand applications still use it in a global fsync kind of workload.\n\nThis patch changes btrfs not to clean old snapshots during sync, which is\nsafe from a FS consistency point of view.  The major downside is that it\nmakes it difficult to tell when old snapshots have been reaped and\nthe space they were using has been reclaimed.  A new ioctl will be added\nfor this purpose instead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "b288052e1779261ae80138074989ef50358c4e58",
      "tree": "58c2a8e3bd4208c9b49f471f33303c88bdc20606",
      "parents": [
        "eb099670895f22970cd143875467c2768d6d87e5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:37:35 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:37:35 2009 -0500"
      },
      "message": "Btrfs: process mount options on mount -o remount,\n\nBtrfs wasn\u0027t parsing any new mount options during remount, making it\ndifficult to set mount options on a root drive.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "e4f722fa42537bcb0ff14322a57dc3870d093cab",
      "tree": "315920ade3b68bf20c4080bcd1bf2bc34a5d5ab7",
      "parents": [
        "18e352e4a73465349711a9324767e1b2453383e2",
        "a717531942f488209dded30f6bc648167bcefa72"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 28 20:29:43 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 28 20:29:43 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\nFix fs/btrfs/super.c conflict around #includes\n"
    },
    {
      "commit": "7eaebe7d503c3ef240ac7b3efc5433fe647c0298",
      "tree": "6e54b7766559555d3a4e205a0524a4df02f6cf5b",
      "parents": [
        "070604040b86511cc2df0f25f98e26c5529bd928"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Wed Jan 21 10:49:16 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 21 10:49:16 2009 -0500"
      },
      "message": "Btrfs: removed unused #include \u003cversion.h\u003e\u0027s\n\nRemoved unused #include \u003cversion.h\u003e\u0027s in btrfs\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "19d00cc196a3a66fd074f62b39d219f743b92338",
      "tree": "f3c771837e17d7bcbdfe5b6c9f0911d85c90ca16",
      "parents": [
        "c071fcfdb60e7abbe95e02460005d6bca165bf24"
      ],
      "author": {
        "name": "Wang Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Wed Jan 21 10:49:16 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 21 10:49:16 2009 -0500"
      },
      "message": "Btrfs: cleanup fs/btrfs/super.c::btrfs_control_ioctl()\n\n- Remove the unused local variable \u0027len\u0027;\n- Check return value of kmalloc().\n\nSigned-off-by: Wang Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "4b48d9d44ebe0e8c31b4fe3b7480941576fff613",
      "tree": "457e0f1214ba44742f63e3cfc472ffbec206d0f3",
      "parents": [
        "b762666cc7c9f83ac5759127c29dfad438c09e48",
        "c071fcfdb60e7abbe95e02460005d6bca165bf24"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 16 09:32:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 16 09:32:33 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix ioctl arg size (userland incompatible change!)\n  Btrfs: Clear the device-\u003erunning_pending flag before bailing on congestion\n"
    },
    {
      "commit": "c071fcfdb60e7abbe95e02460005d6bca165bf24",
      "tree": "2f7b32f7a554e03e012586ae429ea3bd2794fcb6",
      "parents": [
        "1d9e2ae949411c2f329f30e01ea0355cd02c4296"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 16 11:59:08 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 16 11:59:08 2009 -0500"
      },
      "message": "Btrfs: fix ioctl arg size (userland incompatible change!)\n\nThe structure used to send device in btrfs ioctl calls was not\nproperly aligned, and so 32 bit ioctls would not work properly on\n64 bit kernels.\n\nWe could fix this with compat ioctls, but we\u0027re just one byte away\nand it doesn\u0027t make sense at this stage to carry about the compat ioctls\nforever at this stage in the project.\n\nThis patch brings the ioctl arg up to an evenly aligned 4k.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1bcbf31337391a2f54ef6c1e8871c2de5944a7dc",
      "tree": "f027bf7b9e0a96d1df01ecd860699c016a875963",
      "parents": [
        "71038f527f3665f562cf9afe083df729958a099b"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Thu Jan 15 13:51:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:38 2009 -0800"
      },
      "message": "btrfs \u0026 squashfs: Move btrfs and squashfsto\u0027s magic number to \u003clinux/magic.h\u003e\n\nUse the standard magic.h for btrfs and squashfs.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0176260fc30842e358cf34afa7dcd9413db44822",
      "tree": "c41a99cfbfc904740f81b7b948a05d259ad3aec4",
      "parents": [
        "f4b477c47332367d35686bd2b808c2156b96d7c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 10 06:09:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 10 06:09:52 2009 -0800"
      },
      "message": "btrfs: fix for write_super_lockfs/unlockfs error handling\n\nCommit c4be0c1dc4cdc37b175579be1460f15ac6495e9a added the ability for\nwrite_super_lockfs to return errors, and renamed them to match.  But\nbtrfs didn\u0027t get converted.\n\nDo the minimal conversion to make it compile again.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "1f48366084a7b046bcb7741ed4e607774f96e3da",
      "tree": "e85d1e0dccccc78689a833373933c001c5d05adb",
      "parents": [
        "c584482b47f47b051cdc1d5236b99ad18f1b1cfb"
      ],
      "author": {
        "name": "Shen Feng",
        "email": "shen@cn.fujitsu.com",
        "time": "Mon Jan 05 15:43:42 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 05 15:43:42 2009 -0500"
      },
      "message": "Btrfs: fix a memory leak in btrfs_get_sb\n\nsubvol_name should be freed if error occurs.\n\nSigned-off-by: Shen Feng \u003cshen@cn.fujitsu.com\u003e\n\n"
    },
    {
      "commit": "e441d54de4fd97dd381f3e73636f5ba51ff4c7d9",
      "tree": "b0d664ffaa89cec80e6aaac11977c7f6aa92ff63",
      "parents": [
        "b34b086c1c1d934c5314d46ba25ccfa9acc471ae"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 05 16:57:23 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 05 16:57:23 2009 -0500"
      },
      "message": "Btrfs: add permission checks to the ioctls\n\nOnly root can add/remove devices\nOnly root can defrag subtrees\nOnly files open for writing can be defragged\nOnly files open for writing can be the destination for a clone\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e4404d6e8da678d852b7f767f665f8edf76c9e9f",
      "tree": "af6b52e5251d8e939f91e1feab760c1f06021410",
      "parents": [
        "d2fb3437e4d8d12c73c587615ad187d5288547ec"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Fri Dec 12 10:03:26 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 12 10:03:26 2008 -0500"
      },
      "message": "Btrfs: shared seed device\n\nThis patch makes seed device possible to be shared by\nmultiple mounted file systems. The sharing is achieved\nby cloning seed device\u0027s btrfs_fs_devices structure.\nThanks you,\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\n\n"
    },
    {
      "commit": "97288f2c71e46965a2010baea10548fcb5f3af73",
      "tree": "6f84cd33ee12eb8c51cccf931671da1b149c4ba6",
      "parents": [
        "6e430f94e508fee1aefd1dfec88da3c24ce64433"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Dec 02 06:36:09 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Dec 02 06:36:09 2008 -0500"
      },
      "message": "Btrfs: corret fmode_t annotations\n\nMake sure to propagate fmode_t properly and use the right constants for\nit.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n\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": "4b4e25f2a6ddb070bab7f7dd2bd2926fb8db9e04",
      "tree": "b4417e03a187efd6a88da75a41a94020a2bb76ac",
      "parents": [
        "79683f2d685cfb6ef9c97c5194e3ce3319e80cac"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 20 10:22:27 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 20 10:22:27 2008 -0500"
      },
      "message": "Btrfs: compat code fixes\n\nThe btrfs git kernel trees is used to build a standalone tree for\ncompiling against older kernels.  This commit makes the standalone tree\nwork with 2.6.27\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3de4586c5278a28107030c336956381f69ff7a9d",
      "tree": "d636e3806cd5ecff71927d0300e46526fa23de1a",
      "parents": [
        "4ce4cb526f67775c1cce3e3fa01c292672ba874e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 17 21:02:50 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 17 21:02:50 2008 -0500"
      },
      "message": "Btrfs: Allow subvolumes and snapshots anywhere in the directory tree\n\nBefore, all snapshots and subvolumes lived in a single flat directory.  This\nwas awkward and confusing because the single flat directory was only writable\nwith the ioctls.\n\nThis commit changes the ioctls to create subvols and snapshots at any\npoint in the directory tree.  This requires making separate ioctls for\nsnapshot and subvol creation instead of a combining them into one.\n\nThe subvol ioctl does:\n\nbtrfsctl -S subvol_name parent_dir\n\nAfter the ioctl is done subvol_name lives inside parent_dir.\n\nThe snapshot ioctl does:\n\nbtrfsctl -s path_for_snapshot root_to_snapshot\n\npath_for_snapshot can be an absolute or relative path.  btrfsctl breaks it up\ninto directory and basename components.\n\nroot_to_snapshot can be any file or directory in the FS.  The snapshot\nis taken of the entire root where that file lives.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2b82032c34ec40515d3c45c36cd1961f37977de8",
      "tree": "fbdfe7b13dd51983dfca4aeb75983b37ee186ff9",
      "parents": [
        "c146afad2c7fea6a366d4945c1bab9b03880f526"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Nov 17 21:11:30 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 17 21:11:30 2008 -0500"
      },
      "message": "Btrfs: Seed device support\n\nSeed device is a special btrfs with SEEDING super flag\nset and can only be mounted in read-only mode. Seed\ndevices allow people to create new btrfs on top of it.\n\nThe new FS contains the same contents as the seed device,\nbut it can be mounted in read-write mode.\n\nThis patch does the following:\n\n1) split code in btrfs_alloc_chunk into two parts. The first part does makes\nthe newly allocated chunk usable, but does not do any operation that modifies\nthe chunk tree. The second part does the the chunk tree modifications. This\ndivision is for the bootstrap step of adding storage to the seed device.\n\n2) Update device management code to handle seed device.\nThe basic idea is: For an FS grown from seed devices, its\nseed devices are put into a list. Seed devices are\nopened on demand at mounting time. If any seed device is\nmissing or has been changed, btrfs kernel module will\nrefuse to mount the FS.\n\n3) make btrfs_find_block_group not return NULL when all\nblock groups are read-only.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\n\n"
    },
    {
      "commit": "c146afad2c7fea6a366d4945c1bab9b03880f526",
      "tree": "dd217139525a521895125843ca31f61cfbb49dca",
      "parents": [
        "f3465ca44e2a51fd647c167045768a8ab5a96603"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Wed Nov 12 14:34:12 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 12 14:34:12 2008 -0500"
      },
      "message": "Btrfs: mount ro and remount support\n\nThis patch adds mount ro and remount support. The main\nchanges in patch are: adding btrfs_remount and related\nhelper function; splitting the transaction related code\nout of close_ctree into btrfs_commit_super; updating\nallocator to properly handle read only block group.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\n\n"
    },
    {
      "commit": "771ed689d2cd53439e28e095bc38fbe40a71429e",
      "tree": "518801f7141928e398d40c2b5955720d4346ce1a",
      "parents": [
        "4a69a41009c4ac691f7d9c289f5f37fabeddce46"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 06 22:02:51 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Nov 06 22:02:51 2008 -0500"
      },
      "message": "Btrfs: Optimize compressed writeback and reads\n\nWhen reading compressed extents, try to put pages into the page cache\nfor any pages covered by the compressed extent that readpages didn\u0027t already\npreload.\n\nAdd an async work queue to handle transformations at delayed allocation processing\ntime.  Right now this is just compression.  The workflow is:\n\n1) Find offsets in the file marked for delayed allocation\n2) Lock the pages\n3) Lock the state bits\n4) Call the async delalloc code\n\nThe async delalloc code clears the state lock bits and delalloc bits.  It is\nimportant this happens before the range goes into the work queue because\notherwise it might deadlock with other work queue items that try to lock\nthose extent bits.\n\nThe file pages are compressed, and if the compression doesn\u0027t work the\npages are written back directly.\n\nAn ordered work queue is used to make sure the inodes are written in the same\norder that pdflush or writepages sent them down.\n\nThis changes extent_write_cache_pages to let the writepage function\nupdate the wbc nr_written count.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\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": "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": "2b1f55b0f0d0d1a66470ef4ea2696cd5dd741a12",
      "tree": "980019fac9b0891e682bc7d9a8c8a58284b467fc",
      "parents": [
        "9b49c9b9f93e148815f2544d0c91f43b6d72eea9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Sep 24 11:48:04 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 15:41:59 2008 -0400"
      },
      "message": "Remove Btrfs compat code for older kernels\n\nBtrfs had compatibility code for kernels back to 2.6.18.  These have\nbeen removed, and will be maintained in a separate backport\ngit tree from now on.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "76fcef19c40328499a2f6d59d76b72fd03d2cc82",
      "tree": "1e9394a1cb42ae021f4eedac7954d69b23b062f4",
      "parents": [
        "87acb4ef9b2991e1c453b78d71bce2ef994ef1ff"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Aug 19 16:49:35 2008 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:06 2008 -0400"
      },
      "message": "Btrfs: Reinstate \u0027-osubvol\u003d.\u0027 option to mount entire tree\n\nDate: Tue, 19 Aug 2008 16:49:35 +0100\nThis disappeared when I removed the special case for \u0027.\u0027 in btrfs_lookup()\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "32d48fa1af1fe066a6a4798e6f5a50ac6a3ce4a3",
      "tree": "4af69093c91b08d05876762129157f99011aee0f",
      "parents": [
        "9d03632e26e1a0a9e4a632cf426a7c0566768a7d"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Aug 18 13:10:20 2008 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:06 2008 -0400"
      },
      "message": "Mask root object ID into f_fsid in btrfs_statfs()\n\nDate: Mon, 18 Aug 2008 13:10:20 +0100\nThis means that subvolumes get a different fsid, and NFS exporting them\nworks properly.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9d03632e26e1a0a9e4a632cf426a7c0566768a7d",
      "tree": "e539a220e6e824f14ca84ea8635051ade4932669",
      "parents": [
        "f2322b1c652add8bcd64b10843d76b0211ab1fc6"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Aug 18 12:01:52 2008 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:06 2008 -0400"
      },
      "message": "Fill f_fsid field in btrfs_statfs()\n\nDate: Mon, 18 Aug 2008 12:01:52 +0100\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": "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": "33268eaf0b3db5e2bd12c0ada81a8e8f87a46d68",
      "tree": "93b6d00a73402b59c2ea7ae7434138feecefc085",
      "parents": [
        "6099afe88fe64b2f47c43a8a71c13be3a416bbf7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Jul 24 12:16:36 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:05 2008 -0400"
      },
      "message": "Btrfs: Add ACL support\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": "3f157a2fd2ad731e1ed9964fecdc5f459f04a4a4",
      "tree": "df9421e7b1d0c06d5efb8659f4317438d3d511d7",
      "parents": [
        "1b1e2135dc1e4efbcf25ac9ac9979316d4e1193e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 25 16:01:31 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:04 2008 -0400"
      },
      "message": "Btrfs: Online btree defragmentation fixes\n\nThe btree defragger wasn\u0027t making forward progress because the new key wasn\u0027t\nbeing saved by the btrfs_search_forward function.\n\nThis also disables the automatic btree defrag, it wasn\u0027t scaling well to\nhuge filesystems.  The auto-defrag needs to be done differently.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a74a4b97b61beede185b4b3ad359d7d378b0d312",
      "tree": "49ce5e7698f08e84d0ad2f65768e9f34b64d79c5",
      "parents": [
        "89ce8a63d0c761fbb02089850605360f389477d8"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 25 16:01:31 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: Replace the transaction work queue with kthreads\n\nThis creates one kthread for commits and one kthread for\ndeleting old snapshots.  All the work queues are removed.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a213501153fd66e2359e091b1612841305ba6551",
      "tree": "1f4c316c9d3cad0eb6d9be14cb0e67e46e815dce",
      "parents": [
        "925baeddc5b0764a53f2214a1253251bab0e0324"
      ],
      "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: Replace the big fs_mutex with a collection of other locks\n\nExtent alloctions are still protected by a large alloc_mutex.\nObjectid allocations are covered by a objectid mutex\nOther btree operations are protected by a lock on individual btree nodes\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4543df7ecc8ae4928c1e51d6e7dc188d650abee4",
      "tree": "c0e32d2bdaaf26f6819f5f034ed8f1679d23109f",
      "parents": [
        "35d8ba66294ff2a53c17337a1aa1ff6739492f41"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 11 21:47:56 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: Add a mount option to control worker thread pool size\n\nmount -o thread_pool_size changes the default, which is\nmin(num_cpus + 2, 8).  Larger thread pools would make more sense on\nvery large disk arrays.\n\nThis mount option controls the max size of each thread pool.  There\nare multiple thread pools, so the total worker count will be larger\nthan the mount option.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "15ada040d7cd68d7853938a92b116292cc16a2f3",
      "tree": "1453852cc4dff63feb2fe3d9df3b317b531711cb",
      "parents": [
        "8b7128429235d9bd72cfd5ed20c77c4f3118f744"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 11 16:51:38 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: Fix mount -o max_inline\u003d0\n\nmax_inline\u003d0 used to force the max_inline size to one sector instead.  Now\nit properly disables inline data items, while still being able to read\nany that happen to exist on disk.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "43e570b08a6c6b1d75f218566a6240542a386fd9",
      "tree": "3eab1d2b29d348b37788cc03cce84a92850fd35f",
      "parents": [
        "edf24abe51493ccda384644d487fe2f796ac21c8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jun 10 10:40:46 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "btrfs: allow scanning multiple devices during mount\n\nAllows to specify one or multiple device\u003d/dev/foo options during mount\nso that ioctls on the control device can be avoided.  Especially useful\nwhen trying to mount a multi-device setup as root.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "edf24abe51493ccda384644d487fe2f796ac21c8",
      "tree": "91244ac3bb85fd08c22f109011cc4a625037677f",
      "parents": [
        "306929f364b993581c91596230807fa1c022268a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jun 10 10:40:29 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "btrfs: sanity mount option parsing and early mount code\n\nAlso adds lots of comments to describe what\u0027s going on here.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6bf13c0cc833bf5ba013d6aa60379484bf48c4e6",
      "tree": "ae2b54a1a26a89fece49f6b6d6dff8448efab542",
      "parents": [
        "eba12c7bfcb4855fc757357e5e5b0b9a474499ba"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 10 10:07:39 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: transaction ioctls\n\nThese ioctls let a user application hold a transaction open while it\nperforms a series of operations.  A final ioctl does a sync on the fs\n(closing the current transaction).  This is the main requirement for\nCeph\u0027s OSD to be able to keep the data it\u0027s storing in a btrfs volume\nconsistent, and AFAICS it works just fine.  The application would do\nsomething like\n\n\tfd \u003d ::open(\"some/file\", O_RDONLY);\n\t::ioctl(fd, BTRFS_IOC_TRANS_START);\n\t/* do a bunch of stuff */\n\t::ioctl(fd, BTRFS_IOC_TRANS_END);\nor just\n\t::close(fd);\n\nAnd to ensure it commits to disk,\n\n\t::ioctl(fd, BTRFS_IOC_SYNC);\n\nWhen a transaction is held open, the trans_handle is attached to the\nstruct file (via private_data) so that it will get cleaned up if the\nprocess dies unexpectedly.  A held transaction is also ended on fsync() to\navoid a deadlock.\n\nA misbehaving application could also deliberately hold a transaction open,\neffectively locking up the FS, so it may make sense to restrict something\nlike this to root or something.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f819d837eea9829ed6c356fb88cdd0a170cbd947",
      "tree": "ef5cd5c8b113ba0cc998a2ff53b002847105fcdf",
      "parents": [
        "3b96362cc8d314c935c335d5c3c42eb93c23166b"
      ],
      "author": {
        "name": "Linda Knippers",
        "email": "linda.knippers@hp.com",
        "time": "Mon Jun 09 22:17:11 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "btrfsctl -A error code fixup\n\nSend the error back to userland if the ioctl fails\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e1b81e6761bd8419146d4bbe0aadd8b2d348a01c",
      "tree": "a21c101b1dddf5acfd26dc8cd09570acb193b25e",
      "parents": [
        "da496f2acf61153e0d4d42ded6a53f3367939db0"
      ],
      "author": {
        "name": "Mingming",
        "email": "cmm@us.ibm.com",
        "time": "Tue May 27 10:55:43 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "btrfs delete ordered inode handling fix\n\nUse btrfs_release_file instead of a put_inode call\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dfe25020689bb2d318782d2c9c7141203583fc70",
      "tree": "e106059546d7755af0d3b86bf47c113ca8927d7d",
      "parents": [
        "1259ab75c62462b8ffad90067b5e1f6312786a18"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 13 13:46:40 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:03 2008 -0400"
      },
      "message": "Btrfs: Add mount -o degraded to allow mounts to continue with missing devices\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a061fc8da7b990faa41ca503e66faef3ecdeead0",
      "tree": "0d3b5b6e4d2164d507d9a16d5b38d373592a5c8f",
      "parents": [
        "5d9cd9ecbf40b8bd5045a3c2f1feb35db6a12266"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed May 07 11:43:44 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:02 2008 -0400"
      },
      "message": "Btrfs: Add support for online device removal\n\nThis required a few structural changes to the code that manages bdev pointers:\n\nThe VFS super block now gets an anon-bdev instead of a pointer to the\nlowest bdev.  This allows us to avoid swapping the super block bdev pointer\naround at run time.\n\nThe code to read in the super block no longer goes through the extent\nbuffer interface.  Things got ugly keeping the mapping constant.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "788f20eb5affef584e75ea84bb80a4c3352a2c0e",
      "tree": "8d803c865e8f0dd7fa14bdd1f2157b4c8649baa9",
      "parents": [
        "8e7bf94fd5f44fa585e29fbe6a1bfabc04aea7cf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 28 15:29:42 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:02 2008 -0400"
      },
      "message": "Btrfs: Add new ioctl to add devices\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e58ca0203d32869a01540a293df40ddc480dc378",
      "tree": "a0a7c4f66d296ea9dd12d13f2c9e7531401b96bf",
      "parents": [
        "63b10fc4874a014e22bc4c64e3d92b71180661fe"
      ],
      "author": {
        "name": "Yan",
        "email": "yanzheng@21cn.com",
        "time": "Tue Apr 01 11:21:34 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:01 2008 -0400"
      },
      "message": "Fix btrfs_fill_super to return -EINVAL when no FS found\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8a4b83cc8bd75fca29ac68615896d9e92820e7c2",
      "tree": "b7f99cf53c322665b78cca10742cc734ad070729",
      "parents": [
        "239b14b32dc39232ebf9cce29ff77c4c564355fd"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 24 15:02:07 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:01 2008 -0400"
      },
      "message": "Btrfs: Add support for device scanning and detection ioctls\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a9218f6b00ada101c9772ee9c44af04fa5125d2a",
      "tree": "2d4896c8cbbcdf0544576a4af48889501345360a",
      "parents": [
        "7d1660d411a24f9b5a2f38e41c9896d7151c934f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 24 15:02:04 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:01 2008 -0400"
      },
      "message": "Add /dev/btrfs-control for device scanning ioctls\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6885f308b557020efce6ef9c1fcc96adaabecbb6",
      "tree": "9570d312b770254a93560d55ac93f3ae0cbcd885",
      "parents": [
        "e3fe4e7120bc753552b071773022efcff704e34b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 20 16:11:05 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:00 2008 -0400"
      },
      "message": "Btrfs: Misc 2.6.25 updates\n\nRemove the btrfs read_inode method, and use save_mount_options\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6f568d35a045dbb8a13fe71bfc32e85e39a986cb",
      "tree": "df5cb5826dfb46a2514bfba34f8473dc65ea7081",
      "parents": [
        "291d673e6a22d9c6834e939f66c7cfef90669021"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 29 16:03:38 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:00 2008 -0400"
      },
      "message": "Btrfs: mount -o max_inline\u003dsize to control the maximum inline extent size\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": "ed0dab6b86cee64e9072107f65fa40629f162b38",
      "tree": "40ef1188dead7599796a01adfcece2565c901129",
      "parents": [
        "f0c5da1446cc500856a5e31c9a0e2a7bdd30e663"
      ],
      "author": {
        "name": "Yan",
        "email": "yanzheng@21cn.com",
        "time": "Tue Jan 22 12:46:56 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Add basic lockfs calls\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e18e4809b10e6c9efb5fe10c1ddcb4ebb690d517",
      "tree": "c8419f7fde6690cd352252af89295511650e3707",
      "parents": [
        "04005cc7a1feef94237204566ccac38571af7991"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 18 10:54:22 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Add mount -o ssd, which includes optimizations for seek free storage\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2da98f003f4788b0a72c5f87bc55b061f65f30fa",
      "tree": "e94832937031f347168aaec4e50ab2ced8331ccb",
      "parents": [
        "9cce6c3bfca85bf92e8c9358542a18dfa6c232be"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 16 11:44:43 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Run igrab on data\u003dordered inodes to prevent deadlocks during writeout\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "61295eb8665e723e77af91d0a1e655a4bd28344f",
      "tree": "15e1f88cfa9faaaef85f9afd49f8860c069095a2",
      "parents": [
        "8c416c9e0d35b0462e89b76b7581127efe03b8b2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 14 16:24:38 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Add drop inode func to avoid data\u003dordered deadlock\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "21ad10cf3e9c1ef42e725e5c3a593c49f779a16b",
      "tree": "94eaa869bd3af0329ce3d5ed74d63f041c39dc5c",
      "parents": [
        "bcd987feefe8da66bc59b4e6bd51761a9820588c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 09 09:23:21 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Add flush barriers on commit\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8f662a76c6af8eb367fa519e9bb9766040d9cea8",
      "tree": "3072a4d35c49e2c884f41d044dec4950bf95c3b3",
      "parents": [
        "e52ec0eb62e76ea584c8438ef92933e9b815db80"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jan 02 10:01:11 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:58 2008 -0400"
      },
      "message": "Btrfs: Add readahead to the online shrinker, and a mount -o alloc_start\u003d for testing\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": "6da6abae027e2dbc59bca5f4168b0760f25068c7",
      "tree": "a1e9c70c930e8b01baead984b706042067148788",
      "parents": [
        "c59f8951d48c5eb000926935f3ab063d8181d1ee"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Dec 18 16:15:09 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:58 2008 -0400"
      },
      "message": "Btrfs: Back port to 2.6.18-el kernels\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c59f8951d48c5eb000926935f3ab063d8181d1ee",
      "tree": "ddf1e3ecb8a03fc30add98ee263c23eb6d382621",
      "parents": [
        "d10c5f31c79c6a703974ae29d0a05781b828fe30"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Dec 17 20:14:04 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:58 2008 -0400"
      },
      "message": "Btrfs: Add mount option to enforce a max extent size\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "be20aa9dbadc8c06283784ee12bbc0d97dea3418",
      "tree": "52bd8b7e21b36d10dbb48f8b163eea992c9cfd4a",
      "parents": [
        "b6cda9bcb4df7544c67fc3548a53bc1607d59f46"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Dec 17 20:14:01 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:58 2008 -0400"
      },
      "message": "Btrfs: Add mount option to turn off data cow\n\nA number of workloads do not require copy on write data or checksumming.\nmount -o nodatasum to disable checksums and -o nodatacow to disable\nboth copy on write and checksumming.\n\nIn nodatacow mode, copy on write is still performed when a given extent\nis under snapshot.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b6cda9bcb4df7544c67fc3548a53bc1607d59f46",
      "tree": "2bae71b1c9eca52bf1e37ca1b3bdd4525e0a43fd",
      "parents": [
        "e9906a98497c26a3c1a7532b51b81cc1fbdf9e1d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Dec 14 15:30:32 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:58 2008 -0400"
      },
      "message": "Btrfs: Add mount -o nodatasum to turn of file data checksumming\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2f4cbe6442d3be7b5e4cf1607a5ab33995fe2d25",
      "tree": "a2c1554296d2d8252fb1748dd06c589572e5be54",
      "parents": [
        "3acd7ee876c508973eb4722de5b00b3dff4c7372"
      ],
      "author": {
        "name": "Wyatt Banks",
        "email": "wyatt@banksresearch.com",
        "time": "Mon Nov 19 10:22:33 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:58 2008 -0400"
      },
      "message": "Btrfs: Return value checking in module init\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": "3326d1b07c0cb6a2ff5b835b7a2cffa54124d074",
      "tree": "16db275e3e8edb35e46fdd9f9a0f3a1c377ada5f",
      "parents": [
        "4dc119046d0d8501afa4346472917fb05586ad9c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Oct 15 16:18:25 2007 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:56 2008 -0400"
      },
      "message": "Btrfs: Allow tails larger than one page\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "db94535db75e67fab12ccbb7f5ee548e33fed891",
      "tree": "1ad7dfc82b003294a94ee87d7329b24b902b369f",
      "parents": [
        "1a5bc167f6707542b79a55452075525620ed43f5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Oct 15 16:15:53 2007 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:56 2008 -0400"
      },
      "message": "Btrfs: Allow tree blocks larger than the page size\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": "95e0528919cb0c7635b37496e0ad1c41e4c0dd7c",
      "tree": "6fbbd2e7db819430a88ad32f9869fe09d1fc6fca",
      "parents": [
        "e9fe395e47bef9b948657b788c65cbfbd2433cc4"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Aug 29 09:11:44 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Aug 29 09:11:44 2007 -0400"
      },
      "message": "Btrfs: Use mount -o subvol to select the subvol directory instead of dev:\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4b82d6e4a592016ac75e756ca519923e0fc18f00",
      "tree": "19b272d2d0558b8e6749aec7a79daff522f2cb44",
      "parents": [
        "1b4ab1bb4bbd3045cd041259c30b826654599e96"
      ],
      "author": {
        "name": "Yan",
        "email": "yanzheng@21cn.com",
        "time": "Wed Aug 29 09:11:44 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Wed Aug 29 09:11:44 2007 -0400"
      },
      "message": "Btrfs: Add mount into directory support\n\nModified form of original patch from Christoph Hellwig to make btrfs\nmount into the default subvolume by default.\n\nmount /dev/somedevice:subvolumename to get other subvolumes or\nmount /dev/somedevice:. to get the root\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": "b888db2bd7b67f190b32934e6a86181f262ac3ec",
      "tree": "7eb4472c65b6a634db6be689eedca09f09a40cd5",
      "parents": [
        "a52d9a8033c454cd9b4697cfafb467509fc1693f"
      ],
      "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: Add delayed allocation to the extent based page tree code\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": "e9d0b13b5bbb58c9b840e407a8d181442f799966",
      "tree": "d51a7e111a824e883c347c83745109400231de1c",
      "parents": [
        "409eb95d7f6632d5af32b795244ce68a29e49319"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Aug 10 14:06:19 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Fri Aug 10 14:06:19 2007 -0400"
      },
      "message": "Btrfs: Btree defrag on the extent-mapping tree as well\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4b52dff6d371b9b93bc99f64c32831ea9a8ec3ac",
      "tree": "160a5fb1d8ab8e593775962aedac6ef770da7f3c",
      "parents": [
        "79c44584ea346024e929ac0f2a3577aac33b7b3f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jun 26 10:06:50 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Jun 26 10:06:50 2007 -0400"
      },
      "message": "Btrfs: Fix super block updates during transaction commit\n\nThe super block written during commit was not consistent with the state of\nthe trees.  This change adds an in-memory copy of the super so that we can\nmake sure to write out consistent data during a commit.\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": "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"
    }
  ],
  "next": "39279cc3d2704cfbf9c35dcb5bdd392159ae4625"
}
