)]}'
{
  "log": [
    {
      "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": "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": "c5c9cd4d1b827fe545ed2a945e91e3a6909f3886",
      "tree": "5dae28d8cd871952b105cdc2822ef4e54f1f02f3",
      "parents": [
        "2ed6d66408527be0d1c6131d44cec7e86008ba26"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 12 14:32:25 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Nov 12 14:32:25 2008 -0500"
      },
      "message": "Btrfs: allow clone of an arbitrary file range\n\nThis patch adds an additional CLONE_RANGE ioctl to clone an arbitrary \n(block-aligned) file range to another file.  The original CLONE ioctl \nbecomes a special case of cloning the entire file range.  The logic is a \nbit more complex now since ranges may be cloned to different offsets, and \nbecause we may only be cloning the beginning or end of a particular extent \nor checksum item.\n\nAn additional sanity check ensures the source and destination files aren\u0027t \nthe same (which would previously deadlock), although eventually this could \nbe extended to allow the duplication of file data at a different offset \nwithin the same file.\n\nAny extents within the destination range in the target file are dropped.\n\nWe currently do not cope with the case where a compressed inline extent \nneeds to be split.  This will probably require decompressing the extent \ninto a temporary address_space, and inserting just the cloned portion as a \nnew compressed inline extent.  For now, just return -EINVAL in this case.  \nNote that this never comes up in the more common case of cloning an entire \nfile.\n    \nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\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": "f2eb0a241f0e5c135d93243b0236cb1f14c305e0",
      "tree": "dd3141efb9142a294222b9195593371887519207",
      "parents": [
        "d6bfde8765668c8687de72f7a40f52acdf4f2f19"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 02 14:43:14 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:02 2008 -0400"
      },
      "message": "Btrfs: Clone file data ioctl\n\nAdd a new ioctl to clone file data\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": "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": "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": "6702ed490ca0bb44e17131818a5a18b773957c5a",
      "tree": "f6bc4b77e58506a68f1ab539ca6c96854f39f92d",
      "parents": [
        "3c69faecb8d83cb2ef085a98b196a3fecea67725"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Aug 07 16:15:09 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Tue Aug 07 16:15:09 2007 -0400"
      },
      "message": "Btrfs: Add run time btree defrag, and an ioctl to force btree defrag\n\nThis adds two types of btree defrag, a run time form that tries to\ndefrag recently allocated blocks in the btree when they are still in ram,\nand an ioctl that forces defrag of all btree blocks.\n\nFile data blocks are not defragged yet, but this can make a huge difference\nin sequential btree reads.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "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": "8352d8a473ac84bf7a1c69690b626946d744ca58",
      "tree": "58686bb1de3d994a881d6176dafd7c16dfadeeca",
      "parents": [
        "7eccb903a817e890c947ba4bc90c6a9af9b4219a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Apr 12 10:43:05 2007 -0400"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@hera.kernel.org",
        "time": "Thu Apr 12 10:43:05 2007 -0400"
      },
      "message": "Btrfs: add disk ioctl, mostly working\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"
    }
  ]
}
