)]}'
{
  "log": [
    {
      "commit": "ce769a2904bf5a9110ef534a7702397e38e2b3e9",
      "tree": "f783a7e8ca35053f534ad2bc64e52bf0d08442c2",
      "parents": [
        "854d2c3531e6d32e76b94ca5e096ea54c7497e40"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 16 00:02:26 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 16 14:24:27 2010 -0400"
      },
      "message": "Btrfs: use __u64 types in ioctl.h\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1406e4327be3a533a2b18582f715ce2cfbcf6804",
      "tree": "40cafa639095b1a652cd013746394b7a77e52b69",
      "parents": [
        "2ac55d41b5d6bf49e76bc85db5431240617e2f8f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Jan 13 18:19:06 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:14 2010 -0400"
      },
      "message": "Btrfs: add a \"df\" ioctl for btrfs\n\ndf is a very loaded question in btrfs.  This gives us a way to get the per-space\nusage information so we can tell exactly what is in use where.  This will help\nus figure out ENOSPC problems, and help users better understand where their disk\nspace is going.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1e701a3292e25a6c4939cad9f24951dc6b6ad853",
      "tree": "899887a99aae82fe113bffedccb90a76e5473f8b",
      "parents": [
        "940100a4a7b78b27e60a3e72340fb9b5397dcdb2"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 11 09:42:04 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:10 2010 -0400"
      },
      "message": "Btrfs: add new defrag-range ioctl.\n\nThe btrfs defrag ioctl was limited to doing the entire file.  This\ncommit adds a new interface that can defrag a specific range inside\nthe file.\n\nIt can also force compression on the file, allowing you to selectively\ncompress individual files after they were created, even when mount -o\ncompress isn\u0027t turned on.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6ef5ed0d386be5c43ec66d6f2999919c0893558b",
      "tree": "7ec391a0525506eb03bcbb0b5e19709f530b0b74",
      "parents": [
        "73f73415caddbc01d9f10c03e0a677d5b3d11569"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 11 21:11:29 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 11:00:08 2010 -0400"
      },
      "message": "Btrfs: add ioctl and incompat flag to set the default mount subvol\n\nThis patch needs to go along with my previous patch.  This lets us set the\ndefault dir item\u0027s location to whatever root we want to use as our default\nmounting subvol.  With this we don\u0027t have to use mount -o subvol\u003d\u003ctree id\u003e\nanymore to mount a different subvol, we can just set the new one and it will\njust magically work.  I\u0027ve done some moderate testing with this, mostly just\nswitching the default mount around, mounting subvols and the default mount at\nthe same time and such, everything seems to work.  Thanks,\n\nOlder kernels would generally be able to still mount the filesystem with the\ndefault subvolume set, but it would result in a different volume being mounted,\nwhich could be an even more unpleasant suprise for users.  So if you set your\ndefault subvolume, you can\u0027t go back to older kernels.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ac8e9819d71f907a0532b01b22c26b56bbbcbd21",
      "tree": "5bdebf68182139e664b59286f6f7071e3ada2b18",
      "parents": [
        "98d377a0894e6bcca44eafd4d2eee74e8af4db83"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Feb 28 15:39:26 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 15 10:55:10 2010 -0400"
      },
      "message": "Btrfs: add search and inode lookup ioctls\n\nThe search ioctl is a generic tool for doing btree searches from\nuserland applications.  The first user of the search ioctl is a\nsubvolume listing feature, but we\u0027ll also use it to find new\nfiles in a subvolume.\n\nThe search ioctl allows you to specify min and max keys to search for,\nalong with min and max transid.  It returns the items along with a\nheader that includes the item key.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "76dda93c6ae2c1dc3e6cde34569d6aca26b0c918",
      "tree": "f5ca46ec89d4ae2c762952d5f35e2c6f95ac046a",
      "parents": [
        "4df27c4d5cc1dda54ed7d0a8389347f2df359cf9"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Mon Sep 21 16:00:26 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 21 16:00:26 2009 -0400"
      },
      "message": "Btrfs: add snapshot/subvolume destroy ioctl\n\nThis patch adds snapshot/subvolume destroy ioctl.  A subvolume that isn\u0027t being\nused and doesn\u0027t contains links to other subvolumes can be destroyed.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "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"
    }
  ]
}
