)]}'
{
  "log": [
    {
      "commit": "506da7aba97ab8996a451f47a0e69228c8d79889",
      "tree": "c5d55dec03c99acda78559c4d24f0527632aae6b",
      "parents": [
        "a5e3753516bd39c431def86c8dfec8a9cea1ddd4"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Tue Jun 24 20:19:40 2025 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@kernel.org",
        "time": "Tue Jun 24 20:29:55 2025 +0800"
      },
      "message": "bcache-tools: fix strncpy compiler warning in replace_line()\n\nThe strncpy() call in replace_line() was using strlen(src) as the size\nparameter instead of the destination buffer size, causing a compiler\nwarning about potential string truncation. use snprintf() instead.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@kernel.org\u003e\n"
    },
    {
      "commit": "a5e3753516bd39c431def86c8dfec8a9cea1ddd4",
      "tree": "a6334f3a4ab3d17c7fdaee0f2d4d70a4c037c2ff",
      "parents": [
        "2499ff2dd78f236c7809016be5dfff836454396b"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Feb 17 21:08:10 2023 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Feb 17 21:08:10 2023 +0800"
      },
      "message": "bcache-tools: improve is_zoned_device()\n\nTo check whether a block device is zoned or not, is_zoned_device()\nreturns true when /sys/block/\u003cdevice\u003e/queue/chunk_sectors is not zero.\n\nNow there are devices which are not zoned devices but has non-zero\nchunk-sectors values. For such situation, the more accurate method is\nto read file /sys/block/\u003cdevice\u003e/queue/zoned. If the content is not\nstring \"none\", this device is not a zoned device. Otherwise (e.g.\n\"host-aware\" or \"host- managed\"), it is a zoned device.\n\nFor elder kernel if the above sysfs file doesn\u0027t exist, get_zone_size()\nis still called by is_zoned_device() for compatibility.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "2499ff2dd78f236c7809016be5dfff836454396b",
      "tree": "2060a56fbb4cdfd01a78d3e1d5ac1bc51959f1cc",
      "parents": [
        "4b5af6f92999b295afc0a523975678a48e9bbe51"
      ],
      "author": {
        "name": "Huan Yan",
        "email": "yanhuan916@gmail.com",
        "time": "Fri May 13 22:44:15 2022 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri May 13 23:04:23 2022 +0800"
      },
      "message": "bcache-tools: Correct super block version check codes\n\nThis patch add missing super block version below:\nBCACHE_SB_VERSION_CDEV_WITH_UUID\nBCACHE_SB_VERSION_BDEV_WITH_OFFSET\nBCACHE_SB_VERSION_CDEV_WITH_FEATURES\nBCACHE_SB_VERSION_BDEV_WITH_FEATURES\n\n(Coly Li: They are missed in many locations where the super block\n version of cache device or backing device are checked.)\n\nSigned-off-by: Huan Yan \u003cyanhuan916@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "4b5af6f92999b295afc0a523975678a48e9bbe51",
      "tree": "7c512d2bef10719e8c193ae53a5f90cfccecc087",
      "parents": [
        "4d4733b2e39b2846606f62429111aaeed3ff7a5a"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Wed Jun 16 23:03:52 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 16:01:21 2021 +0800"
      },
      "message": "bcache-tools: only discard cache device during making when discard is enabled\n\nCurrently in cache device making time, discard is always issued onto the\ncache device. It is unncessary and might be slow if the cache device is\ncombined by md raid device (e.g. raid10).\n\nTherefore when making a new cache device, this patch only issue discard\nwhen it is explicitly enabled by --discard option.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\nCc: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\n"
    },
    {
      "commit": "4d4733b2e39b2846606f62429111aaeed3ff7a5a",
      "tree": "eb633173a343048be1326dd7b45a20191101da17",
      "parents": [
        "784b12e8f69c465237dafb9b7fbd8f4700f4041d"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Jun 03 22:54:55 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 16:00:59 2021 +0800"
      },
      "message": "bcache-tools: add printk_key.c into debug directory\n\nThe debug directory is for utilities for debug and trace purpose. The\nfirst utility is print_key, it prints out each field value of a bkey\nwith the input raw value.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "784b12e8f69c465237dafb9b7fbd8f4700f4041d",
      "tree": "77e9062604d1f06752fcda3569040ddaf3508d35",
      "parents": [
        "4bc6bc8889b5c181bdac67d3dcc0312efcc33d25"
      ],
      "author": {
        "name": "Marc Smith",
        "email": "msmith626@gmail.com",
        "time": "Tue May 11 15:06:12 2021 -0400"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 15:58:34 2021 +0800"
      },
      "message": "bcache-tools: bcache-export-cached doesn\u0027t match backing device w/ offset, features\n\nupdated the awk snippet used in \u0027bcache-export-cached\u0027 so it matches the three\ncurrent superblock versions of a \"backing\" device (BCACHE_SB_VERSION_BDEV,\nBCACHE_SB_VERSION_BDEV_WITH_OFFSET, BCACHE_SB_VERSION_BDEV_WITH_FEATURES)\n\nSigned-off-by: Marc A. Smith \u003cmarc.smith@quantum.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "4bc6bc8889b5c181bdac67d3dcc0312efcc33d25",
      "tree": "b024eae82a3959123c2d1a0add7f9e2a2b619ccb",
      "parents": [
        "a738909c244330ef413dc1739eb6b01549c1f346"
      ],
      "author": {
        "name": "Zhiqiang Liu",
        "email": "lzhq28@mail.ustc.edu.cn",
        "time": "Sat Feb 27 10:38:11 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 15:58:04 2021 +0800"
      },
      "message": "bcache-tools: fix potential memoryleak problem in, may_add_item()\n\nIn may_add_item(), it will directly return 1 without freeing\nvariable tmp and closing fd, when the return value of detail_base()\nis not equal to 0. In addition, we do not check whether\nallocating memory for tmp is successful.\n\nHere, we will check whether malloc() returns NULL, and\nwill free tmp and close fd when detail_base() fails.\n\nSigned-off-by: Zhiqiang Liu \u003clzhq28@mail.ustc.edu.cn\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "a738909c244330ef413dc1739eb6b01549c1f346",
      "tree": "eee2b1c32e322b6bf94cc1515dd14e3f12590867",
      "parents": [
        "c23728288ac233b5d8e1c20731270eba87f1d769"
      ],
      "author": {
        "name": "Zhiqiang Liu",
        "email": "lzhq28@mail.ustc.edu.cn",
        "time": "Sat Feb 27 10:35:46 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 15:57:39 2021 +0800"
      },
      "message": "bcache-tools: check whether allocating memory fails in tree()\n\nIn tree(), we do not check whether malloc() returns NULL,\nit may cause potential Null pointer dereference problem.\nIn addition, when we fail to list devices, we should free(out)\nbefore return.\n\nSigned-off-by: Zhiqiang Liu \u003clzhq28@mail.ustc.edu.cn\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "c23728288ac233b5d8e1c20731270eba87f1d769",
      "tree": "44a8fe4245d740ef0d02df40dd02d24af58bad67",
      "parents": [
        "397bc8eeb53fb8dd3c7c78e1ff1e236f8f380e7a"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 15:56:47 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 15:56:47 2021 +0800"
      },
      "message": "bcache-tools: move super block info display routines into show.c\n\nThis patch moves the following routines from bcache.c into show.c,\n- show_bdevs_detail()\n- show_bdevs()\n- detail_single()\n\nAs side effect, in order to fix the calling dependences, these routines\nare moved into lib.c,\n- accepted_char()\n- print_encode()\n- free_dev()\n\nNow following changes to show related routines won\u0027t make bcache.c more\ncomplicated.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "397bc8eeb53fb8dd3c7c78e1ff1e236f8f380e7a",
      "tree": "c2dccd9d149e4a62362f7a67ba3e9cf1293e3596",
      "parents": [
        "9e72a28b0faca4754ebcc1d7030d555120b03be4"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Jan 03 16:26:39 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jul 26 15:49:55 2021 +0800"
      },
      "message": "bcache-tools: reduce parameters of write_sb()\n\nThere are 12 parameters in write_sb(), and in future there will be more\nparamerter added for new feature. In order to make the code more clear\nfor adding more parameter, this patch introduces struct sb_context to\nhold most of these parameters, and send them into write_sb() via pointer\nof struct sb_context.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "9e72a28b0faca4754ebcc1d7030d555120b03be4",
      "tree": "a7a00e4de3e0869c3f565bc95b338af88d949b72",
      "parents": [
        "59338c230950a9d20ed210b9b169eb91fc8b37d8"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Jan 22 23:05:07 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Jan 22 23:19:04 2021 +0800"
      },
      "message": "bcache-tools: Update super block version in bch_set_feature_* routines\n\nWhen calling bch_set_feature_* routines, it indicates the super block\nsupports feature set and its version of cache device should at least be\nBCACHE_SB_VERSION_CDEV_WITH_FEATURES.\n\nIn order to always keep the cache device super block version being\nupdated, this patch checks whether the super block version is set\ncorrectly when calling bch_set_feature_* routines, if not then set\nthe version to BCACHE_SB_VERSION_CDEV_WITH_FEATURES.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "59338c230950a9d20ed210b9b169eb91fc8b37d8",
      "tree": "c6a63bdc40a5972673ee91b9771edf6faf23b5ca",
      "parents": [
        "11f6bab95e5a8d4ec0089692ec78285a1fc96bab"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jan 04 00:15:53 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jan 04 00:23:27 2021 +0800"
      },
      "message": "bcache-tools: improve column alignment for \"bcache show -m\" output\n\nThis patch improves the output column alignment for command\n\"bcache show -m\". The changes are adding missing \u0027\\t\u0027 in printf\nformat strings.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "11f6bab95e5a8d4ec0089692ec78285a1fc96bab",
      "tree": "7426c067b91e07f24026b12a4f3c7c121c6ae458",
      "parents": [
        "0c6e42ef568cece1c041fea5dcd0178d403b517b"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jan 04 00:07:46 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jan 04 00:23:17 2021 +0800"
      },
      "message": "bcache-tools: only call to_cache_sb() for bcache device in may_add_item()\n\nto_cache_sb() will print an error message \"Unsupported super block\nversion\" if the super block version is invalid. For non-bcache devices,\nit is unnecessary to check version number and print bogus error messages.\n\nThis patch checks bcache_magic earlier in may_add_item(), and only calls\nto_cache_sb() if the magic string matched. Then the non-bcache devices\ncan be skipped, and no more bogus error message observed.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "0c6e42ef568cece1c041fea5dcd0178d403b517b",
      "tree": "c5721b68c2e7df7d3c6ea91890d31e44078edd96",
      "parents": [
        "40cf747541aea3905c328ff351e88cc6ad9a66bf"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Jan 03 23:35:50 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Jan 04 00:12:22 2021 +0800"
      },
      "message": "bcache-tools: recover the missing sb.csum for showing bcache device super block\n\nCommit 2891723d7075 (\"bcache-tools: define separated super block for\nin-memory and on-disk format\") does following change in detail_base(),\n         strcpy(base-\u003ename, devname);\n         base-\u003emagic \u003d \"ok\";\n         base-\u003efirst_sector \u003d SB_SECTOR;\n -       base-\u003ecsum \u003d sb.csum;\n         base-\u003eversion \u003d sb.version;\nbecause sb (in type struct cache_sb) doesn\u0027t have csum of the on-disk\nsuper block anymore. The aftermath is base.csum was missing, and the\n\"show\" command always display sb.csum as 0.\n\nThis patch recovers the csum value setting for base.csum, then command\n\"bcache show -d\" may display the correct super block check sum.\n\nFixes: 2891723d7075 (\"bcache-tools: define separated super block for in-memory and on-disk format\")\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "40cf747541aea3905c328ff351e88cc6ad9a66bf",
      "tree": "01b2254dcea64414fbf528ac16d65a25d7926845",
      "parents": [
        "c0b421f3b5e4479a6f8f25b7cddf53cd240a0a7e"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Jan 01 14:38:27 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Jan 02 00:21:22 2021 +0800"
      },
      "message": "bcache-tools: display obsoleted bucket size configuration\n\nAlthough BCH_FEATURE_INCOMPAT_LARGE_BUCKET is obsoleted and we don\u0027t\nsupport it anymore,  we still need to display the obsoleted bucket\nsize combines by,\n\tbucket_size + (obso_bucket_size_hi \u003c\u003c 16)\nfor the legancy consistency purpose.\n\nThis patch checks bch_has_feature_obso_large_bucket() in to_cache_sb(),\nif it is true, still try to combine and display the bucket size from\nobso_bucket_size_hi.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "c0b421f3b5e4479a6f8f25b7cddf53cd240a0a7e",
      "tree": "b07cab2d3be831f8a7e256180af26704551e5c9a",
      "parents": [
        "93e83d620d21411eb82fd3c4e95d7b73e79ce49d"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Jan 01 00:16:34 2021 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Jan 02 00:21:22 2021 +0800"
      },
      "message": "bcache-tools: introduce BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE for large bucket\n\nWhen large bucket feature was added, BCH_FEATURE_INCOMPAT_LARGE_BUCKET\nwas introduced into incompat feature set. It indicates bucket_size_hi is\nadded at the tail of struct cache_sb_disk, to extend current 16bit\nbucket size to 32bit with existing bucket_size in struct cache_sb_disk.\n\nThis is not a good idea, there are two obvious problems,\n- Bucket size is always value power of 2, if store log2(bucket size) in\n  existing bucket_size of struct cache_sb_disk, it is unnecessary to add\n  bucket_size_hi.\n- Macro csum_set() assumes d[SB_JOURNAL_BUCKETS] is the last member in\n  struct cache_sb_disk, bucket_size_hi was added after d[] which makes\n  csum_set calculate an unexpected super block checksum.\n\nTo fix the above problems, this patch introduces a new incompat feature\nbit BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE, when this bit is set, it\nmeans bucket_size in struct cache_sb_disk stores the order of power of\n2 bucket size value. When user specifies a bucket size larger than 32768\nsectors, BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE will be set to\nincompat feature set, and bucket_size stores log2(bucket size) more\nthan store the real bucket size value.\n\nThe obsoleted BCH_FEATURE_INCOMPAT_LARGE_BUCKET won\u0027t be used anymore,\nbcache-tools only display \"obso_large_bucket\" for cache device created\nwith BCH_FEATURE_INCOMPAT_LARGE_BUCKET, kernel driver will make bcache\ndevice as read-only if BCH_FEATURE_INCOMPAT_LARGE_BUCKET is set.\n\nWith this change, the unnecessary extra space extend of bcache on-disk\nsuper block can be avoided, and csum_set() may generate expected check\nsum as well.\n\nFixes: 8c063851990a (\"bcache-tools: add large_bucket incompat feature\")\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "93e83d620d21411eb82fd3c4e95d7b73e79ce49d",
      "tree": "c763434082a7c1f561a9a58df9a6fa24d4822cb2",
      "parents": [
        "86d708d996935edd2f53ada336c40c38cc7fdfd7"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 31 23:59:16 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Jan 02 00:21:22 2021 +0800"
      },
      "message": "bcache-tools: check incompatible feature set\n\nWhen bcache-tools is not updated with kernel driver (or on the versus),\nwe need to make sure the feature set conflict can be detected to avoid\nunexpected data operation.\n\nThis patch checks whether there is unsupported {compatc, ro_compat,\nincompat} features detected in detail_dev(). If there is, prints out\nerror message and return error to its caller.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "86d708d996935edd2f53ada336c40c38cc7fdfd7",
      "tree": "facf64d0e26b90bafd6304d00bbbf9a80764c0d7",
      "parents": [
        "287e2a743ccded3916a97a631855b1368427d6ab"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Dec 28 16:24:31 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Jan 02 00:21:22 2021 +0800"
      },
      "message": "bcache.h: add BCH_FEATURE_INCOMPAT_LARGE_BUCKET to BCH_FEATURE_INCOMPAT_SUPP\n\nBCH_FEATURE_INCOMPAT_LARGE_BUCKET is a feature to support 32bits bucket\nsize, which is incompatible feature for existing on-disk layout. This\npatch adds this feature bit to BCH_FEATURE_INCOMPAT_SUPP feature set.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "287e2a743ccded3916a97a631855b1368427d6ab",
      "tree": "585e08fabb9844719f7f2cd7600ff428b6c62e66",
      "parents": [
        "d5503bda96efdca8e2ebaa7b3d43845fda4b404d"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Tue Dec 29 22:29:41 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Jan 02 00:21:22 2021 +0800"
      },
      "message": "bcache-tools: only call set_bucket_size() for cache device\n\nIt doesn\u0027t make sense to set bucket size for backing device, this patch\nmoves set_bucket_size() into the code block for cache device only.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "d5503bda96efdca8e2ebaa7b3d43845fda4b404d",
      "tree": "8ab82891c3835f9a80ebcede29c6fbf35b2a84f8",
      "parents": [
        "096d205a9f1be8540cbc5a468c0da8203023de70"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Dec 28 16:10:42 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Jan 02 00:21:22 2021 +0800"
      },
      "message": "bcache.h: fix typo from SUUP to SUPP\n\nThis patch fixes the following typos,\nfrom BCH_FEATURE_COMPAT_SUUP to BCH_FEATURE_COMPAT_SUPP\nfrom BCH_FEATURE_INCOMPAT_SUUP to BCH_FEATURE_INCOMPAT_SUPP\nfrom BCH_FEATURE_INCOMPAT_SUUP to BCH_FEATURE_RO_COMPAT_SUPP\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "096d205a9f1be8540cbc5a468c0da8203023de70",
      "tree": "58a017ce0e37d9a87ede57a8ff859030a8d43bce",
      "parents": [
        "91fd5fb518ae535e36cff1ae188d1bcef874cf40"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Nov 15 23:18:31 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Nov 15 23:18:31 2020 +0800"
      },
      "message": "Makefile: install bcache-status\n\nThis patch modifies Makefile to intall bcache-status into\n$(DESTDIR)${PREFIX}/sbin/.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "91fd5fb518ae535e36cff1ae188d1bcef874cf40",
      "tree": "ac49664c52a7a3d6796ee4fdcaf1a29426fd8b4b",
      "parents": [
        "10824170800268e91508e2edc6ed745f40370f0a"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Wed Sep 02 20:09:06 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Wed Sep 02 20:09:06 2020 +0800"
      },
      "message": "bcache-tools: add man page bcache-status.8\n\nAdd the initial man page for bcache-status.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "10824170800268e91508e2edc6ed745f40370f0a",
      "tree": "a80ef26bf141dca0c011f946e1759af757a753ce",
      "parents": [
        "67163cc86255bb93d524051e488de15172ab396c"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Wed Sep 02 19:27:08 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Wed Sep 02 19:43:42 2020 +0800"
      },
      "message": "bcache-tools: add bcache-status\n\nPeople request to include bcache-status into bcache-tools package. This\npatch picks bcache-status script from github page of the orginal author\nDarrick J. Wong,\n  https://github.com/djwong/bcache-tools/blob/master/bcache-status\n\nThanks to Darrick for writing the great bcache-status, and I will keep\nthis script being updated from Darrick\u0027s repo time to time.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\nCc: Darrick J. Wong \u003cdarrick.wong@oracle.com\u003e\n"
    },
    {
      "commit": "67163cc86255bb93d524051e488de15172ab396c",
      "tree": "5f26550a4a0bc1c08649c3a05e6b18d28860e85d",
      "parents": [
        "38726cd652e3a3b75f2ae26f8b73e05dff7ed662"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Aug 23 00:26:31 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Aug 29 16:27:39 2020 +0800"
      },
      "message": "bcache-tools: make: permit only one cache device to be specified\n\nNow a cache set only has a single cache, therefore \"bcache make\" should\npermit only one cache device to be specified for a cache set.\n\nThis patch checks if more than one cache devices are specified by \"-C\"\nan error message \"Please specify only one cache device\" will be printed\nand bcache exits with usage information.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "38726cd652e3a3b75f2ae26f8b73e05dff7ed662",
      "tree": "244ab2ded264ad4a2e8a85e32f063088a7d329a0",
      "parents": [
        "2cfea71ab753fc65f1d97b0af327e6e9e3fa204b"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Wed Aug 19 18:51:28 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Aug 21 12:13:55 2020 +0800"
      },
      "message": "bcache-tools: Remove the dependency on libsmartcols\n\nThe bcache tree function relies on the libsmartcols library to\ndisplay the relationship between the cache device and the bdev\ndevice in a tree shape. However, it is difficult for many old\noperating systems (such as Ubuntu 12) to install this library.\n\nFor better compatibility, a simpler implementation is used to\nachieve the same purpose, while removing the dependency on\nlibsmartcols.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "2cfea71ab753fc65f1d97b0af327e6e9e3fa204b",
      "tree": "5812a308adfb22c8db310564635e5dfbcf3640d3",
      "parents": [
        "b0f5169a13976b05b183e0cde1fd23ef4f90101c"
      ],
      "author": {
        "name": "Ryan Harper",
        "email": "ryan.harper@canonical.com",
        "time": "Wed Aug 19 18:51:27 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Aug 21 12:13:46 2020 +0800"
      },
      "message": "bcache-tools: Export CACHED_UUID and CACHED_LABEL\n\nhttps://github.com/koverstreet/bcache-tools/pull/1\n\nAdd bcache-export-cached helper to export CACHED_UUID and CACHED_LABEL always\n\nLinux kernel bcache driver does not always emit a uevent[1] for when\na backing device is bound to a bcacheN device.  When this happens, the udev\nrule for creating /dev/bcache/by-uuid or /dev/bcache/by-label symlinks does\nnot fire and removes any persistent symlink to a specific backing device\nsince the bcache minor numbers (bcache0, 1, 2) are not guaranteed across reboots.\n\nThis script reads the superblock of the bcache device slaves,ensuring the slave\nis a backing device via sb.version check, extracts the dev.uuid and\ndev.label values and exports them to udev for triggering the symlink rules in\nthe existing rules file.\n\n1. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1729145\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "b0f5169a13976b05b183e0cde1fd23ef4f90101c",
      "tree": "793299429211aa385d1e12149483ae1b5c9646f3",
      "parents": [
        "047c4c4abdb49140ecf91d5e17624f2bf2535a69"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Wed Aug 19 18:51:26 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Fri Aug 21 12:13:16 2020 +0800"
      },
      "message": "bcache-tools: Fix potential coredump issues\n\nIn some distributions, such as opensuse 15.2, when the free_dev\nfunction is called, it may refer to the memory that has been\nreleased, causing a coredump. Changing \u0027list_for_each_entry\u0027\nto \u0027list_for_each_entry_safe\u0027 can avoid this problem.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "047c4c4abdb49140ecf91d5e17624f2bf2535a69",
      "tree": "4fca7ee2d6d0a46810ce99010c5ee2c8e8475f23",
      "parents": [
        "8c063851990a5e82ba1727907994a46201d9e842"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 19:23:10 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:04:29 2020 +0800"
      },
      "message": "bcache-tools: add print_cache_set_supported_feature_sets() in lib.c\n\nprint_cache_set_supported_feature_sets() is used to print out feature\nset strings for a specified cache device super block. It can be used\nwhen make a bcache cache device, or show a super block information of\na bcache cache device.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "8c063851990a5e82ba1727907994a46201d9e842",
      "tree": "d12349cbb97ac357b25788b3bcd2904941cf8790",
      "parents": [
        "5e7bd462ee91793708d6f0c34c46fb904bee7efb"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 01:37:17 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:02:42 2020 +0800"
      },
      "message": "bcache-tools: add large_bucket incompat feature\n\nThis feature adds __le16 bucket_size_hi into struct cache_sb_disk, to\npermit bucket size to be 32bit width. Current maximum bucket size is\n16MB, extend it to 32bits will permit much large bucket size which is\ndesired by zoned SSD devices (a typical zone size is 256MB).\n\nWhen setting a bucket size \u003e 16MB, large_bucket feature will be set\nautomatically and the super block version will also be set to\nBCACHE_SB_VERSION_CDEV_WITH_FEATURES.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "5e7bd462ee91793708d6f0c34c46fb904bee7efb",
      "tree": "55ece5bb366265df4f4a55782d660f40f8ed1902",
      "parents": [
        "2891723d70759fb9d11cd74943ad72de9bfe092e"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 00:40:17 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:02:23 2020 +0800"
      },
      "message": "bcache-tools: upgrade super block versions for feature sets\n\nThis patch upgrades super block versions for adding feature sets into\nstruct cache_sb_disk,\n128         __u64                   feature_compat;\n129         __u64                   feature_incompat;\n130         __u64                   feature_ro_compat;\n\nWith the feature set flags, it will be convenient to add new features\nwithout upgrade super block version again (at least for a long time).\n\nThe new added versions are,\n- BCACHE_SB_VERSION_CDEV_WITH_FEATURES for cache device super block\n- BCACHE_SB_VERSION_BDEV_WITH_FEATURES for backing device super block\n\nThe feature set flags are also added into the in-memory super block\nstruct cache_sb. The feature sets conversion between cache_sb_disk and\ncache_sb also added into to_cache_sb() and to_cache_sb_disk().\n\nSome feature sets related macros are also added into bcache.h, and a new\nfile feature.c is added for future new features record and display.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "2891723d70759fb9d11cd74943ad72de9bfe092e",
      "tree": "c98c2b64a1e8103b37f6e09401fd13e03a88f766",
      "parents": [
        "9642a1d29d8d1034039344bdd0cf55f71b5c16c8"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 00:15:26 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:01:08 2020 +0800"
      },
      "message": "bcache-tools: define separated super block for in-memory and on-disk format\n\nThis patch syncrhonizes the super block definition from bcache kernel\ncode, now the original super block structure is changed into two,\n- struct cache_sb_disk\n  This is for on-disk bcache super block format, which is exactly same\n  as original struct cache_sb.\n- struct cache_sb\n  This is only for in-memory super block, it is no longer exactly\n  mapping to the members and offsets to the cache_sb_disk.\n\nMost part of the patch is to make source code to be consistent to the\ndata structures change.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "9642a1d29d8d1034039344bdd0cf55f71b5c16c8",
      "tree": "76f54d203d750fbd130d436b592553361a64a8b4",
      "parents": [
        "1129319af1cb5ec0cd38b283a4a3d14e55d616c7"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 00:02:23 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:01:08 2020 +0800"
      },
      "message": "bcache-tools: add to_cache_sb() and to_cache_sb_disk()\n\nThis patch adds routines to_cache_sb() to_cache_sb_disk() to lib.c,\nwhich convert bcache super block between in-memory and on-disk formats.\n\nThis is a preparation to separate current struct cache_sb into two\nstructures,\n- struct cache_sb is for in-memory super block\n- struct cache_sb_disk is for on-disk super block\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "1129319af1cb5ec0cd38b283a4a3d14e55d616c7",
      "tree": "576a26edb31a37442f5677d6bd38f28ba98d7c8f",
      "parents": [
        "45d1412ee834b062a03b42596ee945d9916d3242"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Aug 16 23:57:56 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:01:08 2020 +0800"
      },
      "message": "bcache-tools: list.h: only define offsetof() when it is undefined\n\nFor new gcc headers, offsetof() is defined, the definition in list.h\nwill be warned as redefined.\n\nThis patch checks whether offsetof() is defined, and only defines local\nversion of offsetof() when it is not defined by gcc headers.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "45d1412ee834b062a03b42596ee945d9916d3242",
      "tree": "e0e18e43ff8fda37f63c70a7a9b38bb541397ea9",
      "parents": [
        "e46282f62364379a6c79b88afd5ed3b78c9781b7"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Aug 16 23:41:32 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:01:08 2020 +0800"
      },
      "message": "bcache-tools: bitwise.h: more swap bitwise for different CPU endians\n\nThis patch adds more swap routines to bitwise.h,\n\tle16_to_cpu()\n\tle32_to_cpu()\n\tle64_to_cpu()\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "e46282f62364379a6c79b88afd5ed3b78c9781b7",
      "tree": "a58bd50a0ea50a2a06236aa759e4729765101a72",
      "parents": [
        "33b90323056f65225c5b557d7f578b7f37abee3c"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun Aug 16 21:45:28 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Mon Aug 17 20:01:06 2020 +0800"
      },
      "message": "bcache-tools: add struct cache_sb_disk into bcache.h\n\nThis is to sync the data structure from bcache kernel code uapi header.\nThe new added struct cache_sb_disk is used to define the on-disk format\nbcache super block. Later struct cache_sb will be used for the in-memory\nformat bcache super block.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "33b90323056f65225c5b557d7f578b7f37abee3c",
      "tree": "e7a8ea62ae322c143791e7dabf4118baab526542",
      "parents": [
        "0898a6c8899355b75a13bf490c09e21289d28478"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat May 16 21:57:17 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sun May 17 19:24:34 2020 +0800"
      },
      "message": "bcache-tools: convert writeback to writethrough mode for zoned backing device\n\nCurrently bcache does not support writeback cache mode for zoned device\nas backing device.\n\nIf the backing device is zoned device, and cache mode is explicitly set\nto writeback mode, a information will be print to terminal,\n  \"Zoned device \u003cdevice name\u003e detected: convert to writethrough mode.\"\nThen the cache mode will be automatically converted to writethrough,\nwhich is the default cache mode of bcache-tools.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "0898a6c8899355b75a13bf490c09e21289d28478",
      "tree": "3cb8f6bc73c7f370ab62c3ca42c7645d53f42dc7",
      "parents": [
        "5042df018d651677e8a315bbf6b3bc654fdde5f2"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat May 16 21:46:29 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat May 16 21:46:29 2020 +0800"
      },
      "message": "bcache-tools: add is_zoned_device()\n\nThis is a wrapper of get_zone_size(), to check whether a device is\nzoned device or not by checking its chunk_sectors.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "5042df018d651677e8a315bbf6b3bc654fdde5f2",
      "tree": "0784df9153a29b7fee1e9b1053c2f200d963d9e9",
      "parents": [
        "62f7b909cf45f00f1510d6a3031d253c17eb420d"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat May 16 19:55:12 2020 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat May 16 19:55:12 2020 +0800"
      },
      "message": "bcache-tools: set zoned size aligned data_offset on backing device for zoned devive\n\nIf the backing device is a zoned device, e.g. host managed SMR hard\ndrive, the data_offset of the backing device should be set to a zone\nsize aligned value, this is necessary for the zoned device I/O LBA\nand length requirement.\n\nThis patch set the data_offset for zoned backing device by following\nrules,\n- If no manually inputed data_offset specified, set it to default\n  value:\n  - If BDEV_DATA_START_DEFAULT \u003e\u003d zone size and aligned to zone size,\n    keep data_offset as BDEV_DATA_START_DEFAULT.\n  - If BDEV_DATA_START_DEFAULT \u003c zone size, set data_offset to zone\n    size.\n  - If data_offset is manually set, it must be a non-zero value aligned\n    to zone size. Of cause it can be multiple zones size, but must be\n    aligned to zone size.\n\nThis patch also creates a new zone.c and zone.h and places all the\nabove zoned device related code there.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "62f7b909cf45f00f1510d6a3031d253c17eb420d",
      "tree": "21425d6651c18b8c4d45a92520730d55ced22d69",
      "parents": [
        "4c409e8837f60545eb49bb7c2265dd0ac1b3f4b1"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:49:07 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:51:01 2019 +0800"
      },
      "message": "Release bcache-tools-1.1\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "4c409e8837f60545eb49bb7c2265dd0ac1b3f4b1",
      "tree": "76365da1407f8de0545b1cfeea0c646bb6b4a641",
      "parents": [
        "da01240e8d4e2ea1726601e1537354ccb29e9e66"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:21:16 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:47:08 2019 +0800"
      },
      "message": "make.c: add swap_sb() to supprt big endian machine\n\nThere is no cpu_to_le{64, 32, 16} routines in bcache-tools, but in\nLinux kernel bcache driver, le{64, 32, 16} routines are used to read\nbcache super block in. This is broken on big endian machine, because\nthe byte order swap in Linux kernel will swap the natively written\nbig-endian byte order swapped into little endian, then everything\nis not at correct location and treated as broken by bcache driver.\n\nThis patch adds cpu_to_le(64, 32, 16) routines usage in make.c, which\nare in swap_sb(). Now on big-endian machine, an extra bytes swapping\nwill convert the byte order to be in little endian. Then in Linux\nkernel (of cause for big endian machine) the le{64, 32, 16}_to_cpu\nroutins will convert everything in correct byte order.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "da01240e8d4e2ea1726601e1537354ccb29e9e66",
      "tree": "05042c9f757843c9e4ba389c7ef09742e2273152",
      "parents": [
        "26765dca7225372ab6575a116d3851b5ad4801a5"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:46:24 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:46:24 2019 +0800"
      },
      "message": "bitwise.h: swap bitwise for different CPU endians\n\nTo support bcache-tools for s390x (big endian machine), the following\nroutines are required for writting super block out,\n        cpu_to_le64()\n        cpu_to_le32()\n        cpu_to_le16()\nThe code is cherry-picked from include/uapi/linux/swab.h of Linux\nkernel v5.3 source code.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "26765dca7225372ab6575a116d3851b5ad4801a5",
      "tree": "16f8df2cc02b76523a716253fce29b240410ccd8",
      "parents": [
        "8ff6f6e7dd6b1699b5c572f261c33c5b54143ffa"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:45:01 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:45:01 2019 +0800"
      },
      "message": "crc64: use crc64 routines defined in Linux kernel\n\nThis patch copies and modifies the crc64 routines from Linux kernel\nsource code. Now bcache-tools will use the unified crc64 code defined\nin Linux source code lib/crc64.c, to make the maintenance simplier.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "8ff6f6e7dd6b1699b5c572f261c33c5b54143ffa",
      "tree": "0837a021096520d42728c4d909c7cf6d508687e2",
      "parents": [
        "882bdffa79370b085eab64a6eefe25f65103e380"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:37:09 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:37:09 2019 +0800"
      },
      "message": "bcache-tools: rename 2 file names\n\nThis patch renames bcache.c into bcache-crc.c, and renames\nbcache-main.c into bcache.c.\n\nThis change is for the following change to add crc64 routine\nfrom kernel version.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "882bdffa79370b085eab64a6eefe25f65103e380",
      "tree": "3c8fcf0bc8f4b66f0448962451884277a23a7801",
      "parents": [
        "6ec35cefa42b8d0d7c7f999ff3774085f189fa01"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:25:20 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Thu Dec 12 20:25:20 2019 +0800"
      },
      "message": "make-bcache: remove reduncant code\n\nNow we have main program \u0027bcache\u0027, the redundant code in \u0027make-bcache\u0027\ncan be replaced by a simple calling to make_bcache().\n\nThe reason we still have \u0027make-bcache\u0027 in bcache-tools is to provide\nlegacy compatibility for other utilities who don\u0027t start to use main\nprogram \u0027bcache\u0027 yet.\n\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "6ec35cefa42b8d0d7c7f999ff3774085f189fa01",
      "tree": "4bff694ccd0b99173c30c1497118926c38108000",
      "parents": [
        "88815851801103d17d1377fb13e82b9be5f863e7"
      ],
      "author": {
        "name": "Xinwei Wei",
        "email": "xinweiwei90@gmail.com",
        "time": "Fri Sep 27 22:28:30 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:42:11 2019 +0800"
      },
      "message": "bcache-tools: Add blkdiscard for cache dev\n\nDo a entire discard when \u0027bcache make\u0027 for cache devices.\nIf discard successfully, it will be prompted, or do nothing.\n\nSigned-off-by: Xinwei Wei \u003cxinweiwei90@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "88815851801103d17d1377fb13e82b9be5f863e7",
      "tree": "ff7fc1802b74bdb85ca3c4493e4dd89c6855c4f5",
      "parents": [
        "fbcfdfc409f37274d00bd730102bc5c20719ea12"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Tue Jul 30 22:02:26 2019 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:41:58 2019 +0800"
      },
      "message": "bcache-tools: Bcache command should follow symlinks\n\nSometimes we operate the bcache device using symlinks\ninstead of real device path\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\n"
    },
    {
      "commit": "fbcfdfc409f37274d00bd730102bc5c20719ea12",
      "tree": "321bb02053dd36ed654a5e414b01a823216bf029",
      "parents": [
        "03eed4cd5075169a40a726d31ca12e88953074d6"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Thu Sep 13 14:23:08 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:41:53 2019 +0800"
      },
      "message": "bcache-tools: Add parameter check\n\nCheck parameter when using \u0027bcache set-label\u0027 and \u0027bcache set-cachemode\u0027\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "03eed4cd5075169a40a726d31ca12e88953074d6",
      "tree": "f563d8f49de825576ef69d78977b60f8fc56e9be",
      "parents": [
        "7f5f654ff252cfc899c52c848f3e08c55f778f51"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Thu Sep 13 09:34:37 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:41:45 2019 +0800"
      },
      "message": "bcache-tools: Add \u0027label\u0027 field\n\nWhen using \u0027bcache make\u0027 command,you can see the label\ninformation in the output.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "7f5f654ff252cfc899c52c848f3e08c55f778f51",
      "tree": "a4b9add98eca328b3e57332ad5e23c04c89e2229",
      "parents": [
        "6f37df1115d64931b3009712f70f82504a726508"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Wed Sep 12 14:48:31 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:41:37 2019 +0800"
      },
      "message": "bcache-tools: Allow user to set label for device\n\nAdd option \u0027--label\u0027 for  \u0027bcache make\u0027 to add label to bcache\ndevice\nAdd subcommand \u0027set-label\u0027 which is used to set label for\nactive backend device\nOnly users with root privilege are allowd to run the \u0027bcache\u0027 command\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "6f37df1115d64931b3009712f70f82504a726508",
      "tree": "1d83c21d296e9e4e04b26ebfa61ec0d8875149b5",
      "parents": [
        "47341385d961e0041136805ecc398eec9d80b411"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Mon Sep 03 21:58:01 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:41:28 2019 +0800"
      },
      "message": "bcache-tools: Support forcibly reformatting devices\n\nAdd \u0027--force\u0027 option to \u0027bcache make\u0027 to reformatting existing or running\nbcache devices.\nAdd \u0027running\u0027 state to \u0027bcache show\u0027.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "47341385d961e0041136805ecc398eec9d80b411",
      "tree": "867666e0dfb397ada264aee7bb00ce331de725b1",
      "parents": [
        "3c78252b38b14881806afed675f28d9134801bc8"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Fri Aug 31 14:32:16 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:40:06 2019 +0800"
      },
      "message": "bcache-tools: Fix makefile\n\nReplace LDFLAGS by LDLIBS in make file.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "3c78252b38b14881806afed675f28d9134801bc8",
      "tree": "8fdc8ab0b7cb5070f4967f632a4591f3d3ecbc11",
      "parents": [
        "3a300e50b2c52672b71dc9a0c76a9936f2c34139"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Thu Aug 30 18:34:30 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:40:01 2019 +0800"
      },
      "message": "bcache-tools: Add \u0027Name\u0027 and \u0027Type\u0027 field\n\nWhen using \u0027bcache make\u0027 command,you can see the name and the type\ninformation in the output.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "3a300e50b2c52672b71dc9a0c76a9936f2c34139",
      "tree": "81832533a0db25bfc24ece9dafcf8a528716ef30",
      "parents": [
        "0c6eab309746ba7c9e8caf10b610ff76ff1c525e"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Wed Aug 22 19:54:07 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:39:45 2019 +0800"
      },
      "message": "bcache-tools: Add support for partitions\n\nThe command line tool \u0027bcache\u0027 shoud display the information\nproperly regardless of whether the bcache device is a normal\ndevice or a partition.\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "0c6eab309746ba7c9e8caf10b610ff76ff1c525e",
      "tree": "dd2238d393113eca9ee41c501f97fbad5d279a06",
      "parents": [
        "a73679b22c333763597d39c72112ef5a53f55419"
      ],
      "author": {
        "name": "Shaoxiong Li",
        "email": "dahefanteng@gmail.com",
        "time": "Tue Aug 14 21:58:47 2018 +0800"
      },
      "committer": {
        "name": "Coly Li",
        "email": "colyli@suse.de",
        "time": "Sat Sep 28 15:39:23 2019 +0800"
      },
      "message": "bcache-tools: Add command line tool \u0027bcache\u0027\n\nshow the bcache devices in both table-like format and tree-like format.\nusers can use this tools to manage device(register,unregister,attach,detach,set-cachemode).\n\nSigned-off-by: Shaoxiong Li \u003cdahefanteng@gmail.com\u003e\nSigned-off-by: Coly Li \u003ccolyli@suse.de\u003e\n"
    },
    {
      "commit": "a73679b22c333763597d39c72112ef5a53f55419",
      "tree": "ae6e172c3c4c7f8475701537aa993aabb4e166af",
      "parents": [
        "399021549984ad27bf4a13ae85e458833fe003d7"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Thu Dec 04 23:44:23 2014 +0100"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Thu Dec 04 23:51:24 2014 +0100"
      },
      "message": "bcache-register: use register, not register_quiet\n\nregister_quiet doesn\u0027t report errors correctly, the following kernel\npatch needs to be applied:  https://lkml.org/lkml/2013/8/26/549\n\nSee http://thread.gmane.org/gmane.linux.kernel.bcache.devel/2594\nfor how this comes up in practice.\n\nReverts 8327108eeaf3e0491b17d803da164c0827aae622\n"
    },
    {
      "commit": "399021549984ad27bf4a13ae85e458833fe003d7",
      "tree": "262627a53dadb84378f20d7844c7d87a364906f6",
      "parents": [
        "25016feee1aab63c4cdc1188bae40e481d6b17c1"
      ],
      "author": {
        "name": "Simon Gomizelj",
        "email": "simongmzlj@gmail.com",
        "time": "Sat Jun 28 21:31:51 2014 -0400"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Thu Dec 04 23:35:29 2014 +0100"
      },
      "message": "Replace bcache-register with c, use builtin kmod\n\nIn a pure systemd pre-boot environment, register-bcache can\u0027t be shell\ncode as there is no shell available. Switch to loading the module with\nudev\u0027s builtin kmod support and introduce a small binary for registering\ndevices.\n\nGabriel: Changed errors to be verbose\n"
    },
    {
      "commit": "25016feee1aab63c4cdc1188bae40e481d6b17c1",
      "tree": "a09afc8e5401d3179e6513b62cab02bd93ab8737",
      "parents": [
        "0aeb7a0a38c26d2da09c364148b037de7deeb7e5"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat May 10 15:38:21 2014 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat May 10 15:38:21 2014 +0200"
      },
      "message": "Do not compile bcache-test by default\n\nThis way the Debian package can build without OpenSSL.\n"
    },
    {
      "commit": "0aeb7a0a38c26d2da09c364148b037de7deeb7e5",
      "tree": "fe14d665bca0f85989312f856d5d45ed8f151ad4",
      "parents": [
        "7093163fafb8545cbb8ea04c5bb71253ce0c18f3"
      ],
      "author": {
        "name": "Nicholas Cull",
        "email": "run2000@gmail.com",
        "time": "Sat May 10 19:01:27 2014 +1000"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat May 10 14:52:01 2014 +0200"
      },
      "message": "Take user-modified rules from /etc\n\nCopy udev rules from /etc/udev/rules.d/ if they have been user-modified,\notherwise copy from /lib/udev/rules.d/ instead. Follows usual udev\nconventions for modifying rules files.\n"
    },
    {
      "commit": "7093163fafb8545cbb8ea04c5bb71253ce0c18f3",
      "tree": "4adb9caf8aa561e345b56c70a0dc62c8a3dd886c",
      "parents": [
        "7b53b1b28ba0e695795cb6570feb0bcfba019a2f"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat May 10 14:50:18 2014 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat May 10 14:50:18 2014 +0200"
      },
      "message": "udev: Skip floppies and cdroms\n"
    },
    {
      "commit": "7b53b1b28ba0e695795cb6570feb0bcfba019a2f",
      "tree": "400afe57e1f84d371b1f11cbe868ce96dbcf9e76",
      "parents": [
        "4b1766801b609949c73d9ee6d68f7fdf43ddc4be"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat May 10 14:49:57 2014 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat May 10 14:50:08 2014 +0200"
      },
      "message": "Correct typo in docs\n"
    },
    {
      "commit": "4b1766801b609949c73d9ee6d68f7fdf43ddc4be",
      "tree": "672399d8f48388205f9b3f4593a6d282d27ba601",
      "parents": [
        "5a3a06ee2162946e54e171704905e267fb08ab8b"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Apr 16 23:16:38 2014 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Apr 16 23:19:14 2014 +0200"
      },
      "message": "Also accept flags with dashes\n\n--data-offset didn\u0027t match the documentation.\nFollow gnu style and accept dashes everywhere.\n"
    },
    {
      "commit": "5a3a06ee2162946e54e171704905e267fb08ab8b",
      "tree": "b00bfcfdaf005260b34941f9b184e40d9ca844a9",
      "parents": [
        "c877dc2fbb39403ee96f4ea29993ec23d371f18a"
      ],
      "author": {
        "name": "Killian De Volder",
        "email": "killian.de.volderc@megasoft.be",
        "time": "Wed Apr 16 16:33:54 2014 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Apr 16 23:18:29 2014 +0200"
      },
      "message": "Accept -o for --data-offset\n\nThis was mentioned in the help but had been omitted.\n"
    },
    {
      "commit": "c877dc2fbb39403ee96f4ea29993ec23d371f18a",
      "tree": "701a0162aa60f72769e10dfd04d7c4fba9a14352",
      "parents": [
        "2bc4a7f24e448967848b975a73149c10f681d3cd"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Jan 26 18:33:40 2014 +0100"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Jan 26 18:34:13 2014 +0100"
      },
      "message": "Update ignored files\n"
    },
    {
      "commit": "2bc4a7f24e448967848b975a73149c10f681d3cd",
      "tree": "dbaa9987092b378c96a87e357b15ca2190d0cae6",
      "parents": [
        "8ac67582357ceda528fdce6f0da59af56eac6cac"
      ],
      "author": {
        "name": "Akira Hayakawa",
        "email": "ruby.wktk@gmail.com",
        "time": "Sun Jan 26 07:28:55 2014 +0900"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Jan 26 18:34:13 2014 +0100"
      },
      "message": "compile bcache-test\n\nAdd -lm option to compile bcache-test.\n\nSigned-off-by: Akira Hayakawa \u003cruby.wktk@gmail.com\u003e\n"
    },
    {
      "commit": "8ac67582357ceda528fdce6f0da59af56eac6cac",
      "tree": "dae5759b5a73741d49938d6d7704523a473299fe",
      "parents": [
        "ba2c1352365122b3b730de960896bd89020f6c06"
      ],
      "author": {
        "name": "Vladimir Rutsky",
        "email": "rutsky.vladimir@gmail.com",
        "time": "Thu Jan 09 12:20:45 2014 +0300"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Jan 26 18:34:13 2014 +0100"
      },
      "message": "Fix typo \"Spcifies\"\n"
    },
    {
      "commit": "ba2c1352365122b3b730de960896bd89020f6c06",
      "tree": "1d00a241a9eaface2b34e2569a85533db2696c62",
      "parents": [
        "2616293e73ac188fc53f744353bea1f4890b0a10"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Oct 18 16:32:21 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Oct 18 16:33:38 2013 +0200"
      },
      "message": "Update the README to mention udev and initramfs hooks\n"
    },
    {
      "commit": "2616293e73ac188fc53f744353bea1f4890b0a10",
      "tree": "4af82c63ff988525663ab407de7f8fe7d6930133",
      "parents": [
        "819eb356953625964d34e05c28ed9b87b72108b4"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Oct 18 16:21:45 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Oct 18 16:24:33 2013 +0200"
      },
      "message": "Add a mkinitcpio hook\n\nTaken from the Arch Linux wiki, with some paths updated.\nUntested.\n"
    },
    {
      "commit": "819eb356953625964d34e05c28ed9b87b72108b4",
      "tree": "781c3cbffdf4ab0a3d12d7daff5e9bce0d7ef822",
      "parents": [
        "15f17ed3e9a8dbe44a0e60cd981f70b7a61d6f7a"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Oct 16 18:27:34 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Oct 16 18:29:34 2013 +0200"
      },
      "message": "Install Dracut and initramfs-tools hooks unconditionally\n\nDistribution packagers may ignore tools that are not relevant.\n"
    },
    {
      "commit": "15f17ed3e9a8dbe44a0e60cd981f70b7a61d6f7a",
      "tree": "3ce8a5c9db8fe5cdf52187ed3dee4e976d324289",
      "parents": [
        "89f11b135d1d57a5dbdc3548bfb9bfa0113075c4"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Oct 16 11:54:26 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Oct 16 11:54:26 2013 +0200"
      },
      "message": "udev: Skip DM devices marked private\n"
    },
    {
      "commit": "89f11b135d1d57a5dbdc3548bfb9bfa0113075c4",
      "tree": "061f54b76d5f73b8cdde393b8f34a59e946ac903",
      "parents": [
        "4ff504e17b032b75f6d5546ec190c834ac69af8c"
      ],
      "author": {
        "name": "Rolf Fokkens",
        "email": "rolf@rolffokkens.nl",
        "time": "Thu Oct 10 22:53:02 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Oct 11 13:21:56 2013 +0200"
      },
      "message": "Simplify 69-bcache.rules\n\nGabriel: simplified a bit further\n"
    },
    {
      "commit": "4ff504e17b032b75f6d5546ec190c834ac69af8c",
      "tree": "ddb767d1fecc0d26431317f118ddb1fe3c129709",
      "parents": [
        "649425369845c51df117420e3c55457b9e4660b2"
      ],
      "author": {
        "name": "Rolf Fokkens",
        "email": "rolf@rolffokkens.nl",
        "time": "Sun Oct 06 23:13:05 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Mon Oct 07 12:57:45 2013 +0200"
      },
      "message": "Add an INSTALL macro to the Makefile\n"
    },
    {
      "commit": "649425369845c51df117420e3c55457b9e4660b2",
      "tree": "0beb71744f549f6e9436f9e3d971deea9bdf1179",
      "parents": [
        "7703224daa1c5b75c5a104b7db2d7fdcd3816cdf"
      ],
      "author": {
        "name": "Rolf Fokkens",
        "email": "rolf@rolffokkens.nl",
        "time": "Sun Oct 06 22:45:41 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Mon Oct 07 12:57:38 2013 +0200"
      },
      "message": "Add DRACUTLIBDIR to Makefile\n"
    },
    {
      "commit": "7703224daa1c5b75c5a104b7db2d7fdcd3816cdf",
      "tree": "f24e39dd8c7ac71da415d9595a0937362dd7d730",
      "parents": [
        "86ba62c6a19a7ebb1e672a668ce991fb940c415d"
      ],
      "author": {
        "name": "Rolf Fokkens",
        "email": "rolf@rolffokkens.nl",
        "time": "Sun Oct 06 20:30:07 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Mon Oct 07 12:57:31 2013 +0200"
      },
      "message": "Add a dracut module for bcache\n"
    },
    {
      "commit": "86ba62c6a19a7ebb1e672a668ce991fb940c415d",
      "tree": "f0818a4da51c64cfea1a95d33f77b5c95eb743c0",
      "parents": [
        "0c7a484a5b09d710814451c06ad30e894deb7ff5"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Oct 06 11:07:20 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Oct 06 17:35:59 2013 +0200"
      },
      "message": "Move probe-bcache to UDEVLIBDIR\n"
    },
    {
      "commit": "0c7a484a5b09d710814451c06ad30e894deb7ff5",
      "tree": "a2112a892f9f11c157c6b9c4d47db4f27e6fb6d0",
      "parents": [
        "866e21a35d40e8c5df75cdc7146da88c17cc18d1"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat Oct 05 21:16:21 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat Oct 05 22:16:22 2013 +0200"
      },
      "message": "udev: Fit into the standard rule sequence\n\nMove the rule to run a bit later, after\nthe standard udev rules have called blkid.\n\nDon\u0027t run blkid manually, and run probe-bcache\nas a fallback which can be patched out in a\npackage that depends on util-linux 2.24+.\n\nprobe-bcache: bail if libblkid finds anything\nPreserve our last-resort safety check here\nin case earlier rules fail to call blkid.\n"
    },
    {
      "commit": "866e21a35d40e8c5df75cdc7146da88c17cc18d1",
      "tree": "744540171ef0b1844082b382720ae0d72645826d",
      "parents": [
        "decab738147cf0eb7d6508454d43048b6ff2ab24"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Jul 05 23:59:21 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Thu Oct 03 13:48:50 2013 +0200"
      },
      "message": "super-show: Print label\n"
    },
    {
      "commit": "decab738147cf0eb7d6508454d43048b6ff2ab24",
      "tree": "9287d0df557c91167373b3dbd097ab91bdfe545b",
      "parents": [
        "8b3e39e0525df37dfbc840e49f2f5a4069b34a1f"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Sep 27 12:05:46 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Sep 27 12:05:46 2013 +0200"
      },
      "message": "super-show: Show sync mode and cache replacement policy\n"
    },
    {
      "commit": "8b3e39e0525df37dfbc840e49f2f5a4069b34a1f",
      "tree": "132b39ce285d7b8ac1cecaded90fc40d93d206ff",
      "parents": [
        "0d54a238b11b1b3b7c482dc20bf302f97bb81cd7"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Sep 22 01:13:36 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Sep 22 12:34:51 2013 +0200"
      },
      "message": "Install the initramfs hook in /usr/share not /etc\n"
    },
    {
      "commit": "0d54a238b11b1b3b7c482dc20bf302f97bb81cd7",
      "tree": "ee3b5c9238f8267c6391906721700481002fddf8",
      "parents": [
        "b15fb776c99fcab56fbbe295629749d307e2018d"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Sep 22 01:12:52 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Sep 22 01:15:36 2013 +0200"
      },
      "message": "Use the absolute path to modprobe\n\nThis is necessary on Fedora, according to Rolf Fokkens.\n"
    },
    {
      "commit": "b15fb776c99fcab56fbbe295629749d307e2018d",
      "tree": "191b6b6abb5a8de6ca53c45d4c44d6f7177c91c3",
      "parents": [
        "8327108eeaf3e0491b17d803da164c0827aae622"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat Aug 17 18:56:50 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Sep 01 12:38:11 2013 +0200"
      },
      "message": "make-bcache: Prevent stray superblocks\n\nFail if the device has any leftover superblock or partition table label.\n\nAdd a --wipe-bcache flag to overwrite bcache superblocks and recommend\nwipefs for non-bcache superblocks.\n\nOnce the device is safe to write, always zero immediately before the\nbcache superblock.\n\nMake sure errors go to stderr.  Use pkg-config.\n"
    },
    {
      "commit": "8327108eeaf3e0491b17d803da164c0827aae622",
      "tree": "a4cb813afe4a52c739cd35587bf83c6de823912b",
      "parents": [
        "0b57e166ae86d525ef42842cabf7692fc7c44039"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "kmo@daterainc.com",
        "time": "Mon Aug 26 14:46:19 2013 -0700"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "kmo@daterainc.com",
        "time": "Mon Aug 26 14:46:19 2013 -0700"
      },
      "message": "Use register_quiet for udev hook\n"
    },
    {
      "commit": "0b57e166ae86d525ef42842cabf7692fc7c44039",
      "tree": "54fec8faa3669ee9174a7dfe6698505328240dba",
      "parents": [
        "7721b11a6095b10127621bf78a3b3462bb67e696"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Jul 21 20:17:17 2013 +0200"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "kmo@daterainc.com",
        "time": "Sun Jul 21 18:59:18 2013 -0700"
      },
      "message": "Don\u0027t register if a non-bcache superblock is found as well\n"
    },
    {
      "commit": "7721b11a6095b10127621bf78a3b3462bb67e696",
      "tree": "6197491f6e77b2174b7da4b549e614dfe459d816",
      "parents": [
        "557c79518c0fc9a319f2df1473b38973d445a272"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Wed Jul 17 12:39:14 2013 +0200"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "kmo@daterainc.com",
        "time": "Wed Jul 17 13:13:31 2013 -0700"
      },
      "message": "fix make-bcache to use logical_block_size, not stat.st_blocksize\n\nAs discussed on irc yesterday.\n\nCheers,\n\tLars\n\nFrom 791a4b7b2c25e21ffeb4184da5e61f18cde86246 Mon Sep 17 00:00:00 2001\nFrom: Lars Ellenberg \u003clars@linbit.com\u003e\nDate: Wed, 17 Jul 2013 11:49:12 +0200\nSubject: [PATCH] make-bcache: fix guessing of \"block_size\" to use BLKSSZGET\n\nUsing stat.st_blocksize is wrong:\nthat is the linux buffer cache granularity,\nit is tunable, and defaults to 4k.\n\nThis caused bcache to default to create devices with\nlogical_block_size \u003d 4k, potentially breaking otherwise healthy disk\nor file system images unnecessarily.\n\ne.g. some xfs image previously created with 512 byte \"sector size\"\nwould, once bcache\u0027d, refuse to mount with\n\tmount: function not implemented\n\tdevice supports 4096 byte sectors (not 512)\n\nWe want the logical_block_size here.\n"
    },
    {
      "commit": "557c79518c0fc9a319f2df1473b38973d445a272",
      "tree": "9ddb09177dd07cffb24324345aae0bc3189e5533",
      "parents": [
        "df844c04d1c2de10bbd44cfc4bd36d9e36760798"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Wed Jun 26 18:42:39 2013 -0700"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "kmo@daterainc.com",
        "time": "Wed Jul 17 13:13:31 2013 -0700"
      },
      "message": "bcache-tools are GPL\n"
    },
    {
      "commit": "df844c04d1c2de10bbd44cfc4bd36d9e36760798",
      "tree": "ae677a8ed89ed77b2b32a832cbb04dffd9ee0441",
      "parents": [
        "0b2587b5bc3869cb96161273c32c9fe6be93b6e1"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Jun 09 01:12:40 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sun Jun 09 01:12:40 2013 +0200"
      },
      "message": "udev: Add /dev/bcache/by-label symlinks to cached devices\n"
    },
    {
      "commit": "0b2587b5bc3869cb96161273c32c9fe6be93b6e1",
      "tree": "a3cab48c0cc593679e5057ee5b0b0e83295e31cd",
      "parents": [
        "0344939e540f1b20901d61dcaffc8072062f57ed"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat Jun 08 03:00:57 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat Jun 08 03:00:57 2013 +0200"
      },
      "message": "udev: Persistent names for cached devices\n\nAdd /dev/bcache/by-uuid/ symlinks to cached devices.\n"
    },
    {
      "commit": "0344939e540f1b20901d61dcaffc8072062f57ed",
      "tree": "ae0450f73110938d7afe31a855fd1e7a79e7ad69",
      "parents": [
        "afa56b99aeb7b7077b6c05d34471841403248c1f"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Jun 07 14:51:43 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Jun 07 14:51:55 2013 +0200"
      },
      "message": "super-show: Minor manpage clarification\n"
    },
    {
      "commit": "afa56b99aeb7b7077b6c05d34471841403248c1f",
      "tree": "504677df5839beec6771f18d75b2a66db6e5cf7c",
      "parents": [
        "fc7d4231bea1aeafcdcfc5e9303dcc3ee2239823"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Jun 05 21:36:28 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Jun 05 21:39:30 2013 +0200"
      },
      "message": "super-show: Add a manpage\n\nTaken from tstrickx@rootcu.be\u0027s debianisation.\n"
    },
    {
      "commit": "fc7d4231bea1aeafcdcfc5e9303dcc3ee2239823",
      "tree": "e7fb51d563fab60655f03fe2d57c4f32a16b36bb",
      "parents": [
        "315ab92e58e3984351df8650527986b2b950e189"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 01 19:20:03 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 08 09:40:46 2013 +0200"
      },
      "message": "super-show: show detached/clean/dirty/inconsistent status\n"
    },
    {
      "commit": "315ab92e58e3984351df8650527986b2b950e189",
      "tree": "0d196745be071547392d4867377a3a22cfcd75a2",
      "parents": [
        "af6e3f1c7421e8517e0b9e1a99a88c9e2b34236d"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 01 19:15:18 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 08 09:40:46 2013 +0200"
      },
      "message": "super-show: print cache mode (writethrough, writeback, writearound, none)\n"
    },
    {
      "commit": "af6e3f1c7421e8517e0b9e1a99a88c9e2b34236d",
      "tree": "0b60f663b6c0224f10d4822138c96bc75b964ebb",
      "parents": [
        "19d17f5b918a7ad388c65323688b15bf65b6aa84"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 01 19:25:15 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 08 09:40:46 2013 +0200"
      },
      "message": "super-show: don\u0027t show cache_count\n\nThis is a cache-set property, but not terribly useful.\nShowing it on backing devices was also incorrect.\n"
    },
    {
      "commit": "19d17f5b918a7ad388c65323688b15bf65b6aa84",
      "tree": "1185bc2614f3f2ce4e37e1734ad30e38bcc2fa8c",
      "parents": [
        "9cbe774be28192963f2e02ecf9443d725e854f41"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 01 17:12:57 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 08 09:40:46 2013 +0200"
      },
      "message": "super-show: show more cache-related information\n\nOnly show nbuckets and nr_this_dev on cache devices;\nexplain nbuckets\u0027 relation to device size by printing\nboth total_sectors (superblock included) and\ncache_sectors (superblock excluded).\n"
    },
    {
      "commit": "9cbe774be28192963f2e02ecf9443d725e854f41",
      "tree": "f62510cb5a8625280f9506c2aa2a3c9dd4263bc7",
      "parents": [
        "13df67cd20664e59e96c756ac084ba85ceb1fcca"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 01 16:25:22 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed May 08 09:40:44 2013 +0200"
      },
      "message": "super-show: make the version annotation more terse\n"
    },
    {
      "commit": "13df67cd20664e59e96c756ac084ba85ceb1fcca",
      "tree": "cb420ec7356ab714bc7859e11548661dfc75b14d",
      "parents": [
        "ebb76d0c4a92fdcd861a066b73536e68bb717c68"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Apr 26 18:50:53 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Tue Apr 30 11:25:23 2013 +0200"
      },
      "message": "make-bdev: print the correct offset in the default case\n"
    },
    {
      "commit": "ebb76d0c4a92fdcd861a066b73536e68bb717c68",
      "tree": "2d8e2347f08849e1e46b8313cc4883adfef78160",
      "parents": [
        "94755cc7572a9a6c368d3518a370b49c8913727a"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Tue Apr 23 17:43:47 2013 -0700"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Tue Apr 23 17:43:47 2013 -0700"
      },
      "message": "Get blocksize from the devices if it\u0027s not specified\n"
    },
    {
      "commit": "94755cc7572a9a6c368d3518a370b49c8913727a",
      "tree": "b8301f9054ab89c979b10196a9d8748c3ad205f2",
      "parents": [
        "849ce473389cd827268c7d6781ba5082cbac162d"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Sat Mar 09 14:58:57 2013 +0100"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Mon Apr 15 12:48:39 2013 -0700"
      },
      "message": "Update data offset format and warn about the previous one.\n\nAlso update the macro to select a bdev.\nAlso reindent.\n"
    },
    {
      "commit": "849ce473389cd827268c7d6781ba5082cbac162d",
      "tree": "9730f2ced70891dd84e78f5e833a8c55775162df",
      "parents": [
        "1407bb0c2adb57dde6e927e9c3e3c60c05b439ba"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Fri Apr 12 11:37:33 2013 -0700"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Fri Apr 12 11:37:33 2013 -0700"
      },
      "message": "use SB_JOURNAL_BUCKETS for superblock\n"
    },
    {
      "commit": "1407bb0c2adb57dde6e927e9c3e3c60c05b439ba",
      "tree": "a83f9275e84dd10d5a79c9833aeb5994f6ba40ca",
      "parents": [
        "dc405a8f9450fd3f115f659a9362c564f9b2152e"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Apr 12 02:30:04 2013 +0200"
      },
      "committer": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Fri Apr 12 02:30:04 2013 +0200"
      },
      "message": "Trivial build fix.\n"
    },
    {
      "commit": "dc405a8f9450fd3f115f659a9362c564f9b2152e",
      "tree": "75abf88631f95151bc665f680ebd6d8512e858b7",
      "parents": [
        "944cb4ce32b7c8a090d6ecd36eef1946d85a8048"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Wed Apr 10 08:28:16 2013 +0200"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Apr 11 17:19:10 2013 -0700"
      },
      "message": "Add a flag to pick the cache set uuid.\n"
    },
    {
      "commit": "944cb4ce32b7c8a090d6ecd36eef1946d85a8048",
      "tree": "6a446827c1aebe9c354717436b737d811f825274",
      "parents": [
        "3088f201edfe5cb0ad6117d84146c0b2b84205e8"
      ],
      "author": {
        "name": "Gabriel",
        "email": "g2p.code@gmail.com",
        "time": "Thu Apr 11 16:44:03 2013 +0200"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Thu Apr 11 17:08:23 2013 -0700"
      },
      "message": "Register devices with just udev.\n\nThis means bcache devices will be registered earlier and in all\ncases, not just when the rootfs fails to mount.\n\nThe initramfs hook is still there to ensure the bcache module\nand udev rules are shipped if an initramfs is used.\n"
    }
  ],
  "next": "3088f201edfe5cb0ad6117d84146c0b2b84205e8"
}
