)]}'
{
  "log": [
    {
      "commit": "2accfdfccd5170ccfda8385daebf0bcd60ebdb25",
      "tree": "6fd3c99095c78849c27b0670e2ac0f0fd5aebf99",
      "parents": [
        "0c1a6ca85ff1562280a48420e11c247d1c3273cf"
      ],
      "author": {
        "name": "Francois Lesueur",
        "email": "flesueur@alwaysdata.com",
        "time": "Mon May 04 17:08:56 2026 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue May 05 10:27:46 2026 +0200"
      },
      "message": "udev: Use LUKS label if present\n\nCurrent udev rules do not create udev \"by-label\" symlinks for crypto\nvolumes. This patch adds these symlinks.\n\nSigned-off-by: Francois Lesueur \u003cflesueur@alwaysdata.com\u003e\n"
    },
    {
      "commit": "0c1a6ca85ff1562280a48420e11c247d1c3273cf",
      "tree": "8dcdb79e59117e7fc56cc5772fc5ccb0e500afbe",
      "parents": [
        "8b414a0d4753693d67b9a5822994e5f0c91b0b0a"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Apr 16 18:30:37 2026 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon May 04 13:43:22 2026 +0200"
      },
      "message": "Fix typo in lockless bitmap warning\n\nFix typo \"disk\" -\u003e \"risk\".\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "8b414a0d4753693d67b9a5822994e5f0c91b0b0a",
      "tree": "08e541fee3e952b073a37d3181de4ba186f41a15",
      "parents": [
        "8d1574660019b95f5c13361d6bb9e575cc8e53cf"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Mon Mar 16 20:06:14 2026 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Mon Mar 16 22:57:09 2026 +0800"
      },
      "message": "Release mdadm-4.6\n\nmdadm-4.6 fixes some issues which led to boot failure.\nhttps://github.com/md-raid-utilities/mdadm/issues/249\nhas the detail.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "8d1574660019b95f5c13361d6bb9e575cc8e53cf",
      "tree": "69fd7e227cbc6019c923ef0afcc95bb298a9d3bd",
      "parents": [
        "7155d3e79597b4e3e38d6c7acaab3d993da17bf8"
      ],
      "author": {
        "name": "Blazej Kucman",
        "email": "blazej.kucman@graidtech.com",
        "time": "Wed Mar 11 13:02:28 2026 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Mar 13 09:53:41 2026 +0100"
      },
      "message": "imsm: fix incorrect SATA TCG error msg\n\nThe error message for SATA drives with Trusted Computing support referenced incorrect kernel\nparameter \"libata.tpm_enabled\u003d1\". The correct parameter name is \"libata.allow_tpm\u003d1\".\n\nThis corrects the error message to display the proper parameter name, helping users correctly\nconfigure their system when encryption verification is blocked.\n\nSigned-off-by: Blazej Kucman \u003cblazej.kucman@graidtech.com\u003e\n"
    },
    {
      "commit": "7155d3e79597b4e3e38d6c7acaab3d993da17bf8",
      "tree": "7b2c523e1eba71e18c850bf6b0f0d45a701de464",
      "parents": [
        "c2634422d852d427e064ddcec2a23a23ed8bc94b"
      ],
      "author": {
        "name": "Abirami0904",
        "email": "abimeenakshi2692@gmail.com",
        "time": "Mon Mar 09 19:43:52 2026 +0530"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Mar 11 08:46:33 2026 +0100"
      },
      "message": "sysfs: fix uuid endianness mismatch issue in sysfs_rules_apply()\n\nIssue:\nsync_speed_max configured in mdadm.conf is not applied to sysfs due\nto a UUID endianness mismatch in sysfs_rules_apply().\n\nObserved behavior:\nThe sysfs parameter is applied via sysfs_set_str(), which is invoked\nfrom sysfs_rules_apply(). Whether this function is called depends on\na memcmp() comparison between the UUIDs stored in\nstruct dev_sysfs_rule *rules and struct mdinfo *dev.\n\nThis comparison fails due to inconsistent byte ordering of the UUIDs.\n\nDue to this endianness mismatch, the memcmp() comparison in\nsysfs_rules_apply() fails, and therefore sysfs_set_str() is not\ninvoked to update sync_speed_max in sysfs.\n\nProposed fix:\nTo resolve this issue, same_uuid() logic is used.\n\nSigned-off-by: Abirami0904 \u003cabimeenakshi2692@gmail.com\u003e\n"
    },
    {
      "commit": "c2634422d852d427e064ddcec2a23a23ed8bc94b",
      "tree": "a8428f57f10c1ddb2859d6d5bb2fcd5e78f0fd43",
      "parents": [
        "adfa3968c62c2537600fba066e7981eaebf69ef4"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Wed Mar 04 16:18:22 2026 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Mar 06 13:49:12 2026 +0100"
      },
      "message": "mdcheck: don\u0027t stop mdcheck_continue.timer\n\nthe systemd timers for mdcheck_start.timer and mdcheck_continue.timer are\nconfigured to fire at 0:45 once a month and 1:00 daily, respectively. But\nit\u0027s observed in the field that these timers fire simultaneiously at\n00:45. This is due to strange behavior of systemd timers: when a timer is\nstarted after having \"elapsed\" while disarmed, the timer fires\nimmediately. A systemd issue will be created about this, but the problem is\nnot likely to be fixed in systemd soon.\n\nBecause the initial RAID check will probably last longer then 15 minutes,\nit will not be finished when mdcheck_continue.timer fires regularly at\n01:00, which will cause the timer to fire immediately again when\nmdcheck_continue.service finishes. On systems with large arrays, this may\ncause the initial check to run twice as long as usual, and thus extend well\ninto regular work hours, slowing down the system noticeably.\n\nAvoid this by not stopping mdcheck_continue.timer in mdcheck any more.\nWith this change, mdcheck_continue.timer will wake up once a day and start\nmdcheck even if there\u0027s nothing to check because all checks have\nfinished. mdcheck will notice this and exit immediately. When\nmdcheck_start.timer fires, it does not need to start\nmdcheck_continue.timer, because the latter was never stopped. This is what\navoids the problem.\n\nNot stopping mdcheck_continue.timer causes a small amount of unnecessary\nsystem activity, but the overhead is very low (in the order of a few\nmilliseconds per day on the systems where I have tested).\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "adfa3968c62c2537600fba066e7981eaebf69ef4",
      "tree": "a7f27509a564240736c635938fcd636e5c0c5623",
      "parents": [
        "5b8560e66ca8f72d008778b5daa1059de48fb73a"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Mon Feb 23 17:11:41 2026 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Mar 06 13:46:43 2026 +0100"
      },
      "message": "platform-intel: Deal with hot-unplugged devices\n\nDon\u0027t assume that realpath() will always succeed, if a device gets\nhot-unplugged then realpath() can fail. Handle the situation\ngracefully, and report an error only if the failure is for a\ndifferent reason.\n\nReported-by: Jochen De Smet \u003cjochen.desmet@dell.com\u003e\nCo-developed-by: Jochen De Smet \u003cjochen.desmet@dell.com\u003e\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nReviewed-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "5b8560e66ca8f72d008778b5daa1059de48fb73a",
      "tree": "69c0aaba5f6ea07d854876520a216519b9a88dd2",
      "parents": [
        "f7ba20818562e9cc52f1e84f9f84ad451c120420"
      ],
      "author": {
        "name": "Maxin John",
        "email": "maxin.john@gmail.com",
        "time": "Wed Feb 25 00:26:42 2026 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Mar 03 08:20:27 2026 +0100"
      },
      "message": "Makefile: detect corosync and libdlm via pkg-config\n\nThe Makefile currently checks for corosync and libdlm headers by probing\n/usr/include directly. This breaks in cross-compilation environments\nbecause the headers may be located in a sysroot rather than the host\nfilesystem.\n\nUse pkg-config to detect the presence of corosync and libdlm instead.\n\nSigned-off-by: Maxin John \u003cmaxin.john@gmail.com\u003e\n"
    },
    {
      "commit": "f7ba20818562e9cc52f1e84f9f84ad451c120420",
      "tree": "a5cec3faa6bdff35ca8d951a6fc95c444c3d7c98",
      "parents": [
        "9dfff1196f5f38269143ecbd574fe13cabeeeaa7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Feb 27 11:23:20 2026 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Mar 02 08:57:47 2026 +0100"
      },
      "message": "build(deps): bump actions/upload-artifact from 6 to 7\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "9dfff1196f5f38269143ecbd574fe13cabeeeaa7",
      "tree": "8686dc4a29a826748b8ccccd66bf5d69d69279d0",
      "parents": [
        "82a32f0b08e2d81489cce355ce35045c16d5d0e2"
      ],
      "author": {
        "name": "Blazej Kucman",
        "email": "blazej.kucman@graidtech.com",
        "time": "Wed Jan 28 14:28:04 2026 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Feb 23 09:10:42 2026 +0100"
      },
      "message": "imsm: Fix UEFI backward compatibility for RAID10D4\n\nThe referenced commit introduces an incorrect RAID level set for RAID10 with 4 drives, which must\nremain backwards compatibility with UEFI VROC driver. For such RAID, VROC UEFI requires\nthe MPB_ATTRIB_RAID1 level attribute in metadata and RAID1 in map. However, mentioned change cause\nwrites RAID10 instead, which VROC UEFI cannot handle correctly.\n\nAs a result, RAID10 4 disks is no longer recognized by VROC UEFI since version 9.3. On earlier\nversions the incorrect metadata may even cause a platform hang during the UEFI boot phase.\n\nThe update_imsm_raid_level() function handles both creation and migration flows. During RAID\ncreation, the function receives an initial map where the `level` variable is set to 0. This causes\nthe code path responsible for the R0 -\u003e R10 migration to run.\n\nTo prevent the above behavior, a new define IMSM_T_LEVEL_UNKNOWN is introduced and used to\ninitialize the `level` variable in map during volume creation, ensuring that the migration path\nis not entered.\n\nSteps to reproduce:\nmdadm -C /dev/md/imsm0 -e imsm -n 4 /dev/nvme[1,2,3,4]n1 -R\nmdadm -C /dev/md/vol -l 10 4 /dev/nvme[1,2,3,4]n1 --assume-clean -R\nreboot\n\nFixes: 127e38b59cbd (\"imsm: Fix RAID0 to RAID10 migration\")\nSigned-off-by: Blazej Kucman \u003cblazej.kucman@graidtech.com\u003e\n"
    },
    {
      "commit": "82a32f0b08e2d81489cce355ce35045c16d5d0e2",
      "tree": "943fc3d5cab10c7e04cc2783a98ad6d6749bbc6c",
      "parents": [
        "c27e1cc81e26425ef8cf1f2a83655d307fd3a9e1"
      ],
      "author": {
        "name": "lilinzhe",
        "email": "llz@antiy.cn",
        "time": "Thu Feb 12 13:05:42 2026 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Feb 20 15:53:44 2026 +0100"
      },
      "message": "super-ddf.c: the header search now use mmap.\n\nCommit f2197b6b6c14 (\"super-ddf: optimize DDF header search for widely\nused RAID controllers\")  introduces a heuristic search for DDF headers,\ncommonly written by RAID controllers, within the last 32MB of the disk.\nHowever, the 4096-byte block size used for the search proved to be too\nslow on network drives, leading to timeouts.\n\nBy modifying to use mmap, the responsibility of efficiently fetching\ndata is delegated to the kernel, thereby accelerating operations in a\nremote disk environment.\n\nFix: Issue #238\n\nSigned-off-by: lilinzhe \u003cllz@antiy.cn\u003e\n"
    },
    {
      "commit": "c27e1cc81e26425ef8cf1f2a83655d307fd3a9e1",
      "tree": "b8ec07af91ea9b60e21a4cab78d8755adb669119",
      "parents": [
        "43d5b7866827ccb645d5eaa92aeba96fa85571c6"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Feb 12 21:34:49 2026 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Thu Feb 19 08:39:29 2026 +0100"
      },
      "message": "mdadm.conf: add \"PROBING ddf_extended\" option\n\nAdd a configuration line PROBING to mdadm.conf. If the parameter\n\"ddf_extended\" is set on this line, use the extended DDF header search\nintroduced by commit f2197b6b6c14 (\"super-ddf: optimize DDF header search\nfor widely used RAID controllers\"), at the cost of slower probing.\nOtherwise, just check for the header in the last sector of the disk,\nas usual.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "43d5b7866827ccb645d5eaa92aeba96fa85571c6",
      "tree": "8124c1fec3c0044174bae26208f7d7f7aab349ad",
      "parents": [
        "16466c23c93f6a1d2323e240b9d9a50c381e288d"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Sun Jan 25 16:50:58 2026 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Feb 16 17:05:12 2026 +0100"
      },
      "message": "mdadm/incremental: set sysfs name after assembling imsm array\n\nThe sysfs name is not set after assembling imsm array. So sysfs_uevent\ncan\u0027t send the change event. The raid device\u0027s state depends on the\ngenuine events from the kernel. If the kernel geniune event is sent\nafter udev_unblock, the raid can be ready on time. Then the it can be\nmounted during boot rightly. If the kernel geniune event is sent\nbefore udev_unblock, the mount will fail during boot.\n\nSigned-off-by: \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "16466c23c93f6a1d2323e240b9d9a50c381e288d",
      "tree": "02f297263cd2776ab3fedb0289ba3d20219d143f",
      "parents": [
        "4ce55843ce4eac37c7cc448eafc33675908be43b"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Wed Feb 04 21:08:31 2026 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Feb 04 15:02:40 2026 +0100"
      },
      "message": "mdadm/imsm: use creation_time for ctime in container info\n\nWhen a disk has both DDF and IMSM metadata (e.g., migrated from DDF\nto IMSM or has remnant DDF metadata), guess_super_type() selects the\nmetadata with the later creation time. Previously, IMSM always\nreturned ctime\u003d0 in getinfo_super_imsm(), causing it to lose to DDF\nwhich extracts a real timestamp from its GUID.\n\nThis resulted in the wrong metadata being selected during assembly,\nleading to boot failures when LVM activated raw PVs instead of MD\ndevices.\n\nFix this by extracting the actual creation time from the IMSM\nmetadata structure (mpb-\u003ecreation_time) instead of hardcoding 0.\nThis ensures that when both metadata types are present, the more\nrecent one is correctly selected.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "4ce55843ce4eac37c7cc448eafc33675908be43b",
      "tree": "94f863328934503aba87b94152e37857b9ce5b5b",
      "parents": [
        "855d2afda059f97f0a977e8664e851f7cd334998"
      ],
      "author": {
        "name": "Cristian Rodríguez",
        "email": "cristian@rodriguez.im",
        "time": "Wed Dec 10 16:30:00 2025 -0300"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Wed Feb 04 21:44:54 2026 +0800"
      },
      "message": "variable \"sigterm\" must be volatile sig_atomic_t\n\nSignals handlers can only read/write to volatile sig_atomic_t variables\nor atomic lock-free ones.\nAnything else results in undefined behaviour.\n\nSigned-off-by: Cristian Rodríguez \u003ccristian@rodriguez.im\u003e\n"
    },
    {
      "commit": "855d2afda059f97f0a977e8664e851f7cd334998",
      "tree": "61f10158cb82035a6e29db7c53737f982b016d09",
      "parents": [
        "f6e0eaa5c64bdae09d0a4cea618584b6b0e726f6"
      ],
      "author": {
        "name": "Ankur Tyagi",
        "email": "ankur.tyagi85@gmail.com",
        "time": "Mon Jan 26 22:46:51 2026 +1300"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Wed Feb 04 21:30:02 2026 +0800"
      },
      "message": "raid6check.c, restripe.c: Use 64-bit off_t across both musl and glibc\n\nThis commit is adaptation of original patch[1] after commit[2] addressed\nlseek issues.\n\n[1] https://lore.kernel.org/linux-raid/20221110225546.337164-1-raj.khem@gmail.com/\n[2] https://github.com/md-raid-utilities/mdadm/commit/787cc1b60130b8031be59e49d54463c58cd8cf74\n\nSigned-off-by: Ankur Tyagi \u003cankur.tyagi85@gmail.com\u003e\n"
    },
    {
      "commit": "f6e0eaa5c64bdae09d0a4cea618584b6b0e726f6",
      "tree": "ab56b2a39d670b11a68ed9e12f7f31bb02112246",
      "parents": [
        "74d24f0c0283d20ac66be4b9d51820bf22512b9a"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Tue Jan 20 18:00:11 2026 +0100"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Tue Jan 27 18:41:08 2026 +0800"
      },
      "message": "super-intel.c: fix format overflow error\n\nThe following compile error has been observed with gcc 16:\n\nsuper-intel.c: In function \u0027imsm_process_update\u0027:\nsuper-intel.c:10069:43: error: \u0027%d\u0027 directive writing between 1 and 11 bytes into a region of size 7 [-Werror\u003dformat-overflow\u003d]\n10069 |                                 \" MISSING_%d\", du-\u003eindex);\n      |                                           ^~\nIn function \u0027apply_takeover_update\u0027,\n    inlined from \u0027imsm_process_update\u0027 at super-intel.c:10168:7:\nsuper-intel.c:10069:33: note: directive argument in the range [-2147483647, 2147483647]\n10069 |                                 \" MISSING_%d\", du-\u003eindex);\n      |                                 ^~~~~~~~~~~~~\nIn file included from /usr/include/stdio.h:970,\n                 from mdadm.h:42,\n                 from super-intel.c:21:\nIn function \u0027sprintf\u0027,\n    inlined from \u0027apply_takeover_update\u0027 at super-intel.c:10068:4,\n    inlined from \u0027imsm_process_update\u0027 at super-intel.c:10168:7:\n/usr/include/bits/stdio2.h:30:10: note: \u0027__builtin_sprintf\u0027 output between 11 and 21 bytes into a destination of size 16\n   30 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,\n      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n   31 |                                   __glibc_objsize (__s), __fmt,\n      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n   32 |                                   __va_arg_pack ());\n      |                                   ~~~~~~~~~~~~~~~~~\n\nFix it by using an unsigned type for the index variable. This works\nbecause map-\u003enum_members is an unsigned short.\n\nSuggested-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "74d24f0c0283d20ac66be4b9d51820bf22512b9a",
      "tree": "8215af7dd9565884965e12dc7e21503955e17834",
      "parents": [
        "85b4a95b2eff67d9b8af9e364e0d4adc36c558a5"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Tue Jan 20 17:58:02 2026 +0100"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Tue Jan 27 18:41:08 2026 +0800"
      },
      "message": "mdadm: fix compilation errors for unused variables with GCC 16\n\nIn upcoming gcc 16, increments and assignments don\u0027t count as \"uses\",\ncausing errors like this:\n\nAssemble.c: In function \u0027Assemble\u0027:\nAssemble.c:1379:55: error: variable \u0027replcnt\u0027 set but not used [-Werror\u003dunused-but-set-variable\u003d]\n 1379 |         unsigned int okcnt, sparecnt, rebuilding_cnt, replcnt, journalcnt;\n      |                                                       ^~~~~~~\n\nSee the porting to for more details: https://gcc.gnu.org/gcc-16/porting_to.html\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "85b4a95b2eff67d9b8af9e364e0d4adc36c558a5",
      "tree": "8c9b03b76847cf46f9b1b11988bfa7cba6848254",
      "parents": [
        "c04cfbf3d98fe6445420fdb778e7a4d3662139b5"
      ],
      "author": {
        "name": "Brian Matheson",
        "email": "bmath@brianmatheson.com",
        "time": "Thu Nov 27 14:03:04 2025 -0500"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Jan 27 09:44:14 2026 +0100"
      },
      "message": "ReadMe: add --detail to usage\n\nPrint detail command in help.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.com\u003e\n"
    },
    {
      "commit": "c04cfbf3d98fe6445420fdb778e7a4d3662139b5",
      "tree": "f96621d0c8b10e70693bd8a593042bd40bf34238",
      "parents": [
        "80cbbd25918311b6004df9bbdf32ecef6a145c89"
      ],
      "author": {
        "name": "Yu Kuai",
        "email": "yukuai@fnnas.com",
        "time": "Tue Sep 09 16:01:20 2025 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Jan 27 09:36:30 2026 +0100"
      },
      "message": "mdadm: add support for new lockless bitmap\n\nA new major number 6 is used for the new bitmap.\n\nNoted that for the kernel that doesn\u0027t support lockless bitmap, create\nsuch array will fail:\n\nmd0: invalid bitmap file superblock: unrecognized superblock version.\n\nSigned-off-by: Yu Kuai \u003cyukuai@fnnas.com\u003e\n"
    },
    {
      "commit": "80cbbd25918311b6004df9bbdf32ecef6a145c89",
      "tree": "5283f6e04743dcbba11702ef927dccc3f446f695",
      "parents": [
        "b166a2042615aa81a5e60b6b9f553f101827609e"
      ],
      "author": {
        "name": "Blazej Kucman",
        "email": "blazej.kucman@graidtech.com",
        "time": "Thu Jan 15 15:25:10 2026 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Jan 21 07:24:59 2026 +0100"
      },
      "message": "Update MAINTAINERS.md\n\nUpdate Blazej Kucman e-mail.\n\nSigned-off-by: Blazej Kucman \u003cblazej.kucman@graidtech.com\u003e\n"
    },
    {
      "commit": "b166a2042615aa81a5e60b6b9f553f101827609e",
      "tree": "b958f26db665a1faaa6789ea5397d3231e70a5f2",
      "parents": [
        "e748babf9335c10eb1237a6cdb2aaa56790fd70b"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Sun Jan 04 15:18:48 2026 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Tue Jan 13 20:36:15 2026 +0800"
      },
      "message": "mdadm: load md_mod first\n\nLoad md_mod first before setting module parameter legacy_async_del_gendisk\nEverything works well if md_mod is built in kernel. If not, create and\nassemble will fail.\n\nFixes: d354d314db86 (\"mdadm: Create array with sync del gendisk mode\")\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "e748babf9335c10eb1237a6cdb2aaa56790fd70b",
      "tree": "54835fcfcd74455354674c0b71b3107fc380b459",
      "parents": [
        "8f0c7692d48414ff7b3fe927ce75799c65ef24b1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Dec 15 11:11:31 2025 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Jan 12 07:38:12 2026 +0100"
      },
      "message": "build(deps): bump actions/upload-artifact from 5 to 6\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8f0c7692d48414ff7b3fe927ce75799c65ef24b1",
      "tree": "3c18e7d4a9c14e70a893e4f39e2f9a142c465748",
      "parents": [
        "a0270ee2e0395217faeb624a82af2bcb78515091"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Tue Dec 16 20:25:21 2025 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Dec 16 14:06:20 2025 +0100"
      },
      "message": "Release mdadm-4.5\n\nRelease mdadm-4.5\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "a0270ee2e0395217faeb624a82af2bcb78515091",
      "tree": "e6885afd2455c65b1e1ed11268d12208c7e7d6b7",
      "parents": [
        "73ab20694bef179b91c81f34e6c5737c45d34c92"
      ],
      "author": {
        "name": "Wu Guanghao",
        "email": "wuguanghao3@huawei.com",
        "time": "Thu Oct 09 11:59:48 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Tue Dec 16 15:32:11 2025 +0800"
      },
      "message": "mdadm --create supports --logical-block-size option\n\nThe kernel block branch has started supporting the\nconfiguration of logical block size after mergeing commit\n62ed1b582246 (md:allow configuring logical block size),\ntherefore a new parameter should be added to allow specifying\nthe logical block size when creating a RAID device.\n\nLinks: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git/commit/?h\u003dfor-6.19/block\u0026id\u003d62ed1b58224\n\nSigned-off-by: Wu Guanghao \u003cwuguanghao3@huawei.com\u003e\n"
    },
    {
      "commit": "73ab20694bef179b91c81f34e6c5737c45d34c92",
      "tree": "aa7dfce92ed2b6e16f0f52e0e3812fb08480fba1",
      "parents": [
        "fafb4dd2a41e97c0994a069b6ae0770d7b04f1fb"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Mon Dec 08 11:10:55 2025 +0100"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Tue Dec 09 16:33:56 2025 +0800"
      },
      "message": "super1.c: fix crash with homehost\u003dnone\n\nProblem:\n\nmdadm --assemble --update\u003dname --homehost\u003d\"\u003cnone\u003e\" --name\u003d\"myraid\" \\\n    \"/dev/md/myraid\" /dev/vdb1 /dev/vdc1\n\u003e Segmentation fault (core dumped)\n\nhomehost \u003d\u003d NULL ist tested all over the place in mdadm, but this place has\napparently been overlooked.\n\nSuggested-by: Lidong Zhong \u003clidong.zhong@suse.com\u003e\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "fafb4dd2a41e97c0994a069b6ae0770d7b04f1fb",
      "tree": "4d013f4f1b907edfe4623a386049567cedc35083",
      "parents": [
        "5ee34d0dff4b10d78d7ca941ee55d3b979a07760"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Nov 20 18:21:28 2025 +0100"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Mon Nov 24 16:27:51 2025 +0800"
      },
      "message": "mdcheck: work around bash 5.3 bug\n\nThe idiom \u0027(. \"$1/uevent\" \u0026\u0026 echo -n \"$DEVNAME\")\u0027 is generally correct,\nand works with bash \u003c\u003d 5.2 and all other shells I\u0027ve tried.\n\nBut it fails with bash 5.3. Using a combination of \"eval\" and \"cat\" works,\nand should be portable, too.\n\nBash bug report: https://savannah.gnu.org/bugs/index.php?67723\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "5ee34d0dff4b10d78d7ca941ee55d3b979a07760",
      "tree": "d561025f9cee960e5d1866d800ffea5c3e596ae0",
      "parents": [
        "528b1d6a4f91c67d62d68137e414e3a9cc35ce02"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Nov 10 12:09:17 2025 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Nov 24 08:19:46 2025 +0100"
      },
      "message": "build(deps): bump actions/upload-artifact from 4 to 5\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00275\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "528b1d6a4f91c67d62d68137e414e3a9cc35ce02",
      "tree": "3e02f284195af7c83e84e42e73bebe245da858f2",
      "parents": [
        "40772d3356910cf7aad0285b3489d7776287193b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Nov 21 11:22:45 2025 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Nov 24 08:18:21 2025 +0100"
      },
      "message": "build(deps): bump actions/checkout from 5 to 6\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "40772d3356910cf7aad0285b3489d7776287193b",
      "tree": "2881c4b6c834e39b17f9aebb4187d92f5ce610fe",
      "parents": [
        "934d81184880d2231b0d7b3836b12358516ea35c"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Tue Nov 04 17:18:27 2025 +0100"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Wed Nov 19 16:05:20 2025 +0800"
      },
      "message": "Makefile: fix uninstall target\n\n\"make uninstall\" didn\u0027t uninstall all installed files. Fix it.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "934d81184880d2231b0d7b3836b12358516ea35c",
      "tree": "a701436919a5d8b029be7ecd5f683753bd8e768b",
      "parents": [
        "2a083760f039bc147934f07acc8af80362864fdc"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Tue Nov 04 17:03:23 2025 +0100"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Wed Nov 19 16:05:20 2025 +0800"
      },
      "message": "Makefile: install mdcheck and make its path configurable\n\nThe mdcheck script is called by the systemd units, but it is currently not\ninstalled. Fix it, using the make variable MISCDIR as target directory for\nthe installation of mdcheck (defaults to current location\n/usr/share/mdadm).\n\nAlso, make sure that mdcheck calls the mdadm executable that we installed.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "2a083760f039bc147934f07acc8af80362864fdc",
      "tree": "be6e4dbf7de2df94889a051486e081ce3cba0e0b",
      "parents": [
        "e61a08bebd8473b2be2ba9b5f03d89222b8244f5"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Oct 30 11:31:20 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Nov 07 13:38:44 2025 +0100"
      },
      "message": "GitHub workflows: mdadm-test: new workflow for mdadm test suite\n\nSince 3822896 (\"github: disable self-runners\"), the mdadm test suite\nis generally disabled on GitHub. Introduce a new workflow which\nexecutes on a standard GitHub-hosted runner.\n\nCurrently some tests fail. Fixing them is out of scope for this\npatch. The main reason is that the kernel of the GitHub-hosted runners is\ntoo old.\n\nThe workflow is configured such that it will only run when\ndispatched manually, or when a push or PR against a branch named\n\u0027test_on_push\u0027 or \u0027test_on_pr\u0027, respectively.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "e61a08bebd8473b2be2ba9b5f03d89222b8244f5",
      "tree": "2e061da3efb343cd1c465ee6dfceac8f6695fda6",
      "parents": [
        "cfca87ca367df937b6f6ec7ed0131b563311a3c5"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Sep 25 23:09:07 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Nov 04 08:51:28 2025 +0100"
      },
      "message": "mdcheck: restore backward-compatible behavior without arguments\n\nThe previous patch changed the behavior of mdcheck when invoked\nwithout --continue or --restart. Previously it would have started\na new check from zero on all arrays. After the previous patch,\nit acted like --continue on arrays where a check had been started already,\nand started a new check only for arrays where no Checked_* marker\nwas present.\n\nIntroduce a new run mode --start for the latter behavior. --start is the\nmode which will be called by mdcheck_continue.service now.\n\nFor backward compatibility reasons, when mdcheck is called without a\nmode argument (--continue, --start, or --restart), it starts a new\ncheck from position zero on all MD arrays detected on the system.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "cfca87ca367df937b6f6ec7ed0131b563311a3c5",
      "tree": "5a23420d7f1dcbb73650be87545d96442e7b3eba",
      "parents": [
        "4d3ac0fc9ad4afc1b63ce47ce4d5071a2a47f1d0"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Aug 14 17:09:35 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Nov 04 08:51:28 2025 +0100"
      },
      "message": "mdcheck: simplify start / continue logic and add \"--restart\" logic\n\nThe current logic of \"mdcheck\" is susceptible to races when multiple\nmdcheck instances run simultaneously, as checks can be initiated from both\n\"mdcheck_start.service\" and \"mdcheck_continue.service\".\n\nThe previous commit 8aa4ea95db35 (\"systemd: start mdcheck_continue.timer\nbefore mdcheck_start.timer\") fixed this for the default configuration by\ninverting the ordering of timers. But users can customize the timer\nsettings, which can cause the race to reappear.\n\nThis patch avoids this kind of race entirely, by changing the logic as\nfollows:\n\n* When `mdcheck` has finished checking a RAID array, it will create a\n  marker `/var/lib/mdcheckChecked_$UUID`.\n* A new option `--restart` is introduced. `mdcheck --restart` removes all\n  `/var/lib/mdcheck/Checked_*` markers.\n  This is called from `mdcheck_start.service`, which is typically started\n  by a timer in large time intervals (default once per month).\n* `mdcheck --continue` works as it used to. It continues previously started\n  checks (where the `/var/lib/mdcheck/MD_UUID_$UUID` file is present and\n  contains a start position) for the check.\n  This usage is *not recommended any more*.\n* `mdcheck` with no arguments is like `--continue`, but it also starts new\n  checks for all arrays for which no check has previously been\n  started, *except* for arrays for which a marker\n  `/var/lib/mdcheck/Checked_$UUID` exists.\n  `mdcheck_continue.service` calls `mdcheck` this way. It is called in\n  short time intervals, by default once per day.\n* Combining `--restart` and `--continue` is an error.\n\nThis way, the only systemd service that actually triggers a kernel-level\nRAID check is `mdcheck_continue.service`, which avoids races.\n\nWhen all checks have finished, `mdcheck_continue.service` is no-op.\nWhen `mdcheck_start.service` runs, the checks re re-enabled and will be\nstarted from 0 by the next `mdcheck_continue.service` invocation.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "4d3ac0fc9ad4afc1b63ce47ce4d5071a2a47f1d0",
      "tree": "30d487742c810d4e4a7956166a538095f6e4f871",
      "parents": [
        "b366a4009eb8bdd271f6dafb9375dc7e7947eb83"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Mon Oct 27 17:59:50 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Nov 04 08:51:28 2025 +0100"
      },
      "message": "mdcheck: remove short options from getopt command line\n\nThe short options for mdcheck have never worked. The current code silently\nassumes that e.g. \"-d $X\" will translate to \"--duration $X\" on return from\ngetopt, which is not the case.\n\nRemove the short options. Attempts to use them will now result in an error.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "b366a4009eb8bdd271f6dafb9375dc7e7947eb83",
      "tree": "0815ea2991182556018032387f36036ee9bd4d52",
      "parents": [
        "7abba1a1b74ec932b25a8abbfc76ba55d66505f8"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Aug 14 21:14:21 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Nov 04 08:51:28 2025 +0100"
      },
      "message": "mdcheck: log to stderr from systemd units\n\nIf the script is run from systemd, simply writing to stderr will\ncreate more concise output. Otherwise, use logger like before.\n\nUse the same logic for other messages printed by the script during\nruntime, except for error messages related to the invocation.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "7abba1a1b74ec932b25a8abbfc76ba55d66505f8",
      "tree": "159815e071338ac372bb0b2b917ad32ce91cb842",
      "parents": [
        "64b57cde3859f5e23df2297421f0f8d3eae3ea7c"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Aug 14 16:09:25 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Nov 04 08:51:28 2025 +0100"
      },
      "message": "mdcheck: replace deprecated \"$[cnt+1]\" syntax\n\nThis syntax used to be marked as deprecated [1]. In current bash\nman pages, it isn\u0027t even mentioned any more. Use the POSIX compatible\nsyntax \"$((X+\u003d1))\" instead [2, 3].\n\n[1] https://stackoverflow.com/questions/41081417/difference-between-a-b-and-a-b-in-bash\n[2] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_04\n[3] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap01.html#tag_17_01_02_01\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "64b57cde3859f5e23df2297421f0f8d3eae3ea7c",
      "tree": "d3a44b0dcbba6ebdfa767c62f0c86918cfc719bf",
      "parents": [
        "91a2c999267b6b5dd96d69734664ec40421e4b30"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Thu Aug 14 15:55:40 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Nov 04 08:51:28 2025 +0100"
      },
      "message": "mdcheck: loop over sync_action files in sysfs\n\nThe way mdcheck is currently written, it loops over /dev/md?*, which\nwill contain RAID partitions and arrays that don\u0027t support sync\noperations, such as RAID0. This is inefficient and makes the script\ndifficult to trace.\n\nInstead, loop over the sync_action files which actually matter for\nchecking.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "91a2c999267b6b5dd96d69734664ec40421e4b30",
      "tree": "f26a918c15e4a83a079a4b05084b208c0c78a739",
      "parents": [
        "3822896af21e9ab19d507ffefe2c10fc7f556e32"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 27 12:18:44 2025 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Nov 03 08:58:24 2025 +0100"
      },
      "message": "build(deps): bump actions/upload-artifact from 4 to 5\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00275\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "3822896af21e9ab19d507ffefe2c10fc7f556e32",
      "tree": "76ff0160ae79461fb5108da64bcf90d2bdd4d31e",
      "parents": [
        "6fa6c4b915f6bc024cf481d137569a255001a84a"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Oct 28 08:57:07 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Oct 29 08:26:46 2025 +0100"
      },
      "message": "github: disable self-runners\n\nRunners are not avaialable, disable them. There are actions to get new\nrunners so keep a code for a while.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "6fa6c4b915f6bc024cf481d137569a255001a84a",
      "tree": "1493ebb8e7314d63a429e940d5bb5ea3dd19760b",
      "parents": [
        "d354d314db86379f18a4ccd35af9f6e56635b61d"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Mon Oct 27 08:15:38 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Mon Oct 27 22:26:16 2025 +0800"
      },
      "message": "mdadm/Assemble: alloc superblock in Assemble\n\nNow it allocs superblock outside Assemble and frees the memory outside\nAssemble. But the memory can be freed and realloc in Assemble. So freed\nmemory will be dereferenced outside Assemble. This patch moves the memory\nmanagement into Assemble. So it\u0027s more safe and the input arguments is\nless.\n\nThis can be reproduced by:\nmdadm -CR /dev/md0 -l1 -n2 /dev/loop0 /dev/loop1 --assume-clean\nmdadm -Ss\nmdadm -A -e 1.2 /dev/md0 /dev/loop0 /dev/loop1\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "d354d314db86379f18a4ccd35af9f6e56635b61d",
      "tree": "bd9877895fa5a4a8174d69bce9f7c370c322e0ff",
      "parents": [
        "868376e030349417bc6c858dec565ae0d9808b60"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Fri Oct 24 15:17:29 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Mon Oct 27 22:24:50 2025 +0800"
      },
      "message": "mdadm: Create array with sync del gendisk mode\n\nkernel patch 9e59d609763f (\u0027md: call del_gendisk in control path\u0027) calls\ndel_gendisk in sync way. After the patch mentioned just now, device node\n(/dev/md0 .e.g) will disappear after mdadm --stop command. It resolves the\nproblem raid can be created again because raid can be created when opening\ndevice node. Then regression tests will be interrupted.\n\nBut it causes an error when assembling array which has been fixed by pr182.\nSo people can\u0027t assemble array if they use new kernel and old mdadm. So\nin kernel space, 25db5f284fb8 (\u0027md: add legacy_async_del_gendisk mod\u0027) is\nused to fix this problem. The default is async mode.\n\nasync del mode will be removed in future. We\u0027ll start use sync del mode in\nnew mdadm version. So people will not see failure when upgrading to the\nnew mdadm version with sync del mode.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "868376e030349417bc6c858dec565ae0d9808b60",
      "tree": "02721c07d63adeb7abaf66cd1c6f3950a82a3cf5",
      "parents": [
        "abb9a2b097c940251673eba5f074638b10ceb26e"
      ],
      "author": {
        "name": "Guilherme Ferreira",
        "email": "16529503+piradata@users.noreply.github.com",
        "time": "Sat Oct 25 20:15:53 2025 -0300"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Oct 27 10:08:14 2025 +0100"
      },
      "message": "Update README.md\n\njust updated the link to the new one, the old pointed to an archive page\n\nSigned-off-by: Guilherme Ferreira \u003c16529503+piradata@users.noreply.github.com\u003e"
    },
    {
      "commit": "abb9a2b097c940251673eba5f074638b10ceb26e",
      "tree": "0f28cfa567830941db00f2d681ad53f6f6103a67",
      "parents": [
        "804a6a6b5747eed8794a6b007279dc8e09432270"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Fri Oct 17 17:06:13 2025 +0800"
      },
      "committer": {
        "name": "Nigel Croxon",
        "email": "109605997+ncroxon@users.noreply.github.com",
        "time": "Tue Oct 21 08:06:49 2025 -0400"
      },
      "message": "mdadm/sysfs: close fd before return\n\nIt needs to close fd before returning the function.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "804a6a6b5747eed8794a6b007279dc8e09432270",
      "tree": "bf68d9ede70d1fc1c51fc1f4d662283673d0ad86",
      "parents": [
        "ca10248139610ffb53fe90224333513dcc3ca155"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Fri Oct 17 17:04:25 2025 +0800"
      },
      "committer": {
        "name": "Nigel Croxon",
        "email": "109605997+ncroxon@users.noreply.github.com",
        "time": "Tue Oct 21 08:06:49 2025 -0400"
      },
      "message": "mdadm/Incremental: wait a while before removing a member\n\nWe encountered a regression that member disk can\u0027t be removed in\nincremental remove mode:\nmdadm -If /dev/loop0\nmdadm: Cannot remove member device loop0 from md127\n\nIt doesn\u0027t allow to remove a member if sync thread is running. mdadm -If\nsets member disk faulty first, then it removes the disk. If sync thread\nis running, it will be interrupted by setting a member faulty. But the sync\nthread hasn\u0027t been reapped. So it needs to wait a while to let kernel to\nreap sync thread.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "ca10248139610ffb53fe90224333513dcc3ca155",
      "tree": "a465e441fdcf55606ab9884861d215691921c31e",
      "parents": [
        "b67f6f01c8c1638bca5c2c9327720b2b8197768f"
      ],
      "author": {
        "name": "Wu Guanghao",
        "email": "wuguanghao3@huawei.com",
        "time": "Tue Oct 14 11:49:11 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Oct 16 22:02:02 2025 +0800"
      },
      "message": "mdadm: Fix memory leak issue in load_ddf_local()\n\ndl-\u003edevname might be allocated space through xstrdup(). Before an\nabnormal exit, it needs to be checked and released.\n\nSigned-off-by: Wu Guanghao \u003cwuguanghao3@huawei.com\u003e\n"
    },
    {
      "commit": "b67f6f01c8c1638bca5c2c9327720b2b8197768f",
      "tree": "1aa5b3143075203de41037003fb2330d1aba810a",
      "parents": [
        "7cb225b4949ca63f9e8298a7feb00e04c71c7e9e"
      ],
      "author": {
        "name": "Wu Guanghao",
        "email": "wuguanghao3@huawei.com",
        "time": "Tue Oct 14 11:29:37 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Oct 16 22:02:02 2025 +0800"
      },
      "message": "mdadm: Fix memory leak issue in Manage_stop()\n\nThe local variable \u0027mds\u0027 allocated in Manage_stop() is only released\nunder specific conditions in the for loop. This can lead to memory leak\nwhen under othe conditions.\n\nSigned-off-by: Wu Guanghao \u003cwuguanghao3@huawei.com\u003e\n"
    },
    {
      "commit": "7cb225b4949ca63f9e8298a7feb00e04c71c7e9e",
      "tree": "9c3055da3bc95799f53cccdd5bda2d58a458241a",
      "parents": [
        "c425cdc9297a1f27f664b19a9d9386b43d92f7b3"
      ],
      "author": {
        "name": "Wu Guanghao",
        "email": "wuguanghao3@huawei.com",
        "time": "Tue Oct 14 10:50:18 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Oct 16 22:02:02 2025 +0800"
      },
      "message": "mdadm: Fix memory leak issue in check_raid()\n\ncheck_raid() alloc for st, but did not release it when exiting.\n\nSigned-off-by: Wu Guanghao \u003cwuguanghao3@huawei.com\u003e\n"
    },
    {
      "commit": "c425cdc9297a1f27f664b19a9d9386b43d92f7b3",
      "tree": "a7ccfa80fa1ddd8e46a8995c3a757cfdbe62f9d9",
      "parents": [
        "d478aff31f466d126eaa5b018c93654b58047b40"
      ],
      "author": {
        "name": "Wu Guanghao",
        "email": "wuguanghao3@huawei.com",
        "time": "Tue Oct 14 10:23:46 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Oct 16 22:02:02 2025 +0800"
      },
      "message": "mdadm: modify the order of free_super_xxx() to avoid memory leak\n\nfree_super_xx() should be executed at the load_super_xx() entry.\nWhen there are additional checks, it may lead to supertype not being\nreleased, resulting in a memory leak.\n\nSigned-off-by: Wu Guanghao \u003cwuguanghao3@huawei.com\u003e\n"
    },
    {
      "commit": "d478aff31f466d126eaa5b018c93654b58047b40",
      "tree": "8a95ee3698639c2d5143a891bfe091ce9facbbab",
      "parents": [
        "2a63857e9506324ec3ef69746344de08f55e6d77"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mariusz.tkaczyk@dell.com",
        "time": "Tue Sep 23 08:06:12 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Oct 14 07:25:44 2025 +0200"
      },
      "message": "udev: Fix memleak\n\nAccording to manual:\nOn success, udev_monitor_receive_device() returns a pointer to a newly\nreferenced device that was received via the monitor. The caller is\nresponsible to drop this reference when done.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmariusz.tkaczyk@dell.com\u003e\n"
    },
    {
      "commit": "2a63857e9506324ec3ef69746344de08f55e6d77",
      "tree": "68e84a867fc028fd3a5d7c1c0fed477d2a39da1c",
      "parents": [
        "388ef731dccff3b8da369c1968af7daf9b32fe1d"
      ],
      "author": {
        "name": "Mingye Wang",
        "email": "arthur200126@gmail.com",
        "time": "Sat Sep 20 14:21:40 2025 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Oct 07 07:27:47 2025 +0200"
      },
      "message": "Update raid6check man page\n\nThis adds autorepair and manual repair modes, which have been here for about 12 years. The description of the manual repair mode can probably use more work.\r\n\n\nSigned-off-by: Mingye Wang \u003carthur200126@gmail.com\u003e"
    },
    {
      "commit": "388ef731dccff3b8da369c1968af7daf9b32fe1d",
      "tree": "53b7371c0f1541fa5d79b59ac5f1f0220614c04d",
      "parents": [
        "456c6bed0b9e0866c75f0f7c8579d5f4f3f3e966"
      ],
      "author": {
        "name": "Amon Bune",
        "email": "admin@full-stack.ninja",
        "time": "Mon Sep 29 19:16:00 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Thu Oct 02 09:25:06 2025 +0200"
      },
      "message": "Fix \u0027meaing\u0027 typo in mdadm.conf-example\n\nFix typo in mdadm.conf example file\n\nSigned-off-by: Amon Bune \u003cadmin@full-stack.ninja\u003e\n"
    },
    {
      "commit": "456c6bed0b9e0866c75f0f7c8579d5f4f3f3e966",
      "tree": "d9d5235eb20efaf761782c1b1f99c9436d54a850",
      "parents": [
        "574b11602fb210c5b3e5f6fe460ab21e7c7d998c"
      ],
      "author": {
        "name": "Dr. Joachim Schneider",
        "email": "jesmx@hal.rhein-neckar.de",
        "time": "Sat Sep 06 20:28:07 2025 +0200"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Wed Sep 24 11:13:38 2025 +0800"
      },
      "message": "Re-enable mdadm --monitor ... for /dev/mdX\n\nThis fixes a regression introduced with\ncommit 84d969be8f6d (\"Monitor: use snprintf to fill device name\"):\n\nWith this fix\n\n  mdadm --monitor --scan -1 -p \u003cpgm\u003e\n\nis possible again for /dev/mdX without symlink in /dev/md/.\n\nThe bug can be reproduced by these steps:\n\n(a) Create block devices for testing:\n\n    $ dd if\u003d/dev/zero of\u003d/tmp/d0.bin bs\u003d1M count\u003d16\n    $ dd if\u003d/dev/zero of\u003d/tmp/d1.bin bs\u003d1M count\u003d16\n\n    $ losetup -f /tmp/d0.bin\n    $ losetup -f /tmp/d1.bin\n    $ losetup\n    NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE   DIO LOG-SEC\n    /dev/loop1         0      0         0  0 /tmp/d1.bin   0     512\n    /dev/loop0         0      0         0  0 /tmp/d0.bin   0     512\n\n(b) Create RAID-1 array \u0027/dev/md0\u0027:\n\n    $ mdadm --create /dev/md0 --level\u003d1 --raid-devices\u003d2  \\\n      /dev/loop0 /dev/loop1\n    ...\n    mdadm: array /dev/md0 started.\n\n(c) Check:\n\n    $ cat /proc/mdstat\n    Personalities : [raid1]\n    md0 : active raid1 loop1[1] loop0[0]\n          15360 blocks super 1.2 [2/2] [UU]\n\n    unused devices: \u003cnone\u003e\n\n(d) Create \u0027mdadm.conf\u0027:\n\n    $ mdadm --detail --scan \u003e /tmp/mdadm.conf\n    $ cat /tmp/mdadm.conf\n    ARRAY /dev/md0 metadata\u003d1.2 UUID\u003dc0280f55:9c32e4ff:34f85ea3:08d1331b\n\n(e) Use this bash script (\u0027/tmp/report\u0027) for \u0027mdadm --monitor\u0027:\n\n    [[ $# -lt 2 ]] \u0026\u0026 exit 0\n\n    problem\u003d\"$1\"\n    shift\n    array\u003d\"$1\"\n    shift\n    args\u003d\"$*\"\n\n    echo \"MD REPORT: ${problem} with ${array}: ${args}\"\n\n(f) Call mdamd in monitor mode:\n\n    $ mdadm --monitor  -c /tmp/mdadm.conf --scan -1 -p /tmp/report\n\n    Without the fix one gets this output:\n\n      mdadm: DeviceDisappeared event detected on md device /dev/md/md0\n      MD REPORT: DeviceDisappeared with /dev/md/md0:\n      mdadm: NewArray event detected on md device /dev/md0\n      MD REPORT: NewArray with /dev/md0:\n\n    Only the output of the \u0027report\u0027-script:\n\n      $ mdadm  --monitor  -c /tmp/mdadm.conf --scan -1  \\\n        -p /tmp/report 2\u003e/dev/null\n      MD REPORT: DeviceDisappeared with /dev/md/md0:\n      MD REPORT: NewArray with /dev/md0:\n\n    With the fix no (warning) output is produced:\n\n      $ /tmp/mdadm-FIXED  --monitor  -c /tmp/mdadm.conf --scan -1 \\\n        -p /tmp/report\n\nSigned-off-by: Dr. Joachim Schneider \u003cjesmx@hal.rhein-neckar.de\u003e\n"
    },
    {
      "commit": "574b11602fb210c5b3e5f6fe460ab21e7c7d998c",
      "tree": "0556640085dc75d31b079ab9ab555bd61fa79bd5",
      "parents": [
        "8aa4ea95db3525c2d381ddf65da69ab549c814d4"
      ],
      "author": {
        "name": "QRPp",
        "email": "awesome.walrus+github@gmail.com",
        "time": "Mon Sep 01 21:33:57 2025 +0100"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Tue Sep 16 20:32:32 2025 +0800"
      },
      "message": "Fix --monitor --scan with relative ARRAY devnames\n\nSince commit e702f392959d (\"Mdmonitor: Fix segfault\"), when configuration\nfiles used non-absolute ARRAY device names, commands like `mdadm --monitor\n--scan` failed with `mdadm: error opening devname: No such file or\ndirectory` unless run from the `/dev/md` directory.\n\nSigned-off-by: QRPp \u003cawesome.walrus+github@gmail.com\u003e\n"
    },
    {
      "commit": "8aa4ea95db3525c2d381ddf65da69ab549c814d4",
      "tree": "f4b9bfa70125158eabc6e6ca0a011f13e760f159",
      "parents": [
        "a40a6a7e57095ad3ed20f827c2ad992cf7658699"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Wed Aug 13 22:12:53 2025 +0200"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Aug 28 15:49:34 2025 +0800"
      },
      "message": "systemd: start mdcheck_continue.timer before mdcheck_start.timer\n\nIn the (unlikely but possible) case that a previously started md check\nhasn\u0027t finished on the first Sunday of the following month,\nmdcheck_start.service will start the scan from position 0, which is\nprobably not desired.\n\nHave mdcheck_continue.service start first, so that it will pick up the\ncheck where it left off, and that the subsequent mdcheck_start.service will\ndo nothing.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "a40a6a7e57095ad3ed20f827c2ad992cf7658699",
      "tree": "d860d19ae62b5e49c352621f9e20126decb37312",
      "parents": [
        "303362bee868049959a0a3421080e685ff7cc4b2"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Wed Aug 13 21:07:36 2025 +0200"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Aug 28 15:49:34 2025 +0800"
      },
      "message": "mdcheck: make sure signals are processed immediately\n\n\"systemctl stop mdcheck_start.service\" may hang for a long time,\nbecause the shell doesn\u0027t handle signals until the sleep process in\nthe foreground returns. Fix this by starting sleep in the background\nand waiting for it (the built-in \"wait\" receives the signal).\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "303362bee868049959a0a3421080e685ff7cc4b2",
      "tree": "434b5650da74eb1004a3e0a8af94b8144ccd906b",
      "parents": [
        "191957c3e4f8bcc3fdc251067e523732749f75cd"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Wed Aug 13 21:01:30 2025 +0200"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Aug 28 15:49:34 2025 +0800"
      },
      "message": "mdcheck: reset sync_action to \"idle\" when stopped\n\nWhen the mdcheck script stops because the pre-set duration is exceeded, it\nwill also set the sync action in the kernel to \"idle\". But when it is\nstopped by a signal (e.g. when the systemd service running it is stopped),\nit doesn\u0027t.  This is inconsistent behavior.\n\nMove the code that switches the sync_action to \"idle\" into a cleanup\nfunction that is always executed on exit. This requires separate \"trap\"\nstatements for EXIT(0) and signals, because otherwise a race condition may\narise between the cleanup code and the script body.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "191957c3e4f8bcc3fdc251067e523732749f75cd",
      "tree": "6eceea599ea7e04ca94a86d739686958d25235c5",
      "parents": [
        "d764c4829947923142a83251296d04edaee7d2f7"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Wed Aug 13 19:28:08 2025 +0200"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu Aug 28 15:49:34 2025 +0800"
      },
      "message": "systemd: use \"Type\u003dsimple\" for mdcheck services\n\n\"Type\u003doneshot\" means that systemd considers the unit as started when the\nstarted process exits. But the \"mdcheck\" script may run for several\nhours.  Thus systemd will regard the unit as \"activating\" all the\ntime. This can be easily tested by running \"systemctl start\nmdcheck_start.service\" manually. The systemctl command will not finish\nuntil the mdcheck utility has finished or Ctrl-C is typed, which is\nbroken.\n\nUse \"Type\u003dsimple\" instead.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "d764c4829947923142a83251296d04edaee7d2f7",
      "tree": "4606a182427a2b281683c0609bafa5112aeaeb0f",
      "parents": [
        "787cc1b60130b8031be59e49d54463c58cd8cf74"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Aug 12 21:18:44 2025 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Tue Aug 19 06:58:00 2025 +0200"
      },
      "message": "build(deps): bump actions/checkout from 4 to 5\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: \u00275\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "787cc1b60130b8031be59e49d54463c58cd8cf74",
      "tree": "f0deb1e478b81110922e8d56cc7960c1bc6ffa62",
      "parents": [
        "34f21b7acea8afbea9348d0f421beeeedca7a136"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mariusz.tkaczyk@dell.com",
        "time": "Thu Jun 26 06:29:37 2025 +0100"
      },
      "committer": {
        "name": "Nigel Croxon",
        "email": "109605997+ncroxon@users.noreply.github.com",
        "time": "Wed Jul 09 11:40:08 2025 -0400"
      },
      "message": "mdadm: use lseek consistently\n\nmdadm used both lseek and lseek64 for legacy reasons. These days, we just\nneed to configure __USE_LARGEFILE64 macro. Fixing this issue enables\nmusl compilation.\n\nAdd macro, and change all lseek64 to lseek. Fix style issues in these\nlines.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmariusz.tkaczyk@dell.com\u003e\n"
    },
    {
      "commit": "34f21b7acea8afbea9348d0f421beeeedca7a136",
      "tree": "526ab49a319fd5bcc49a1f262707f7d9481acfe9",
      "parents": [
        "ea4cdaea1a553685444a3fb39aae6b2cfee387ef"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Wed May 07 17:49:05 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Thu Jun 19 16:42:37 2025 +0200"
      },
      "message": "mdmonitor: use MAILFROM to set sendmail envelope sender address\n\nModern mail relays may reject emails with unknown envelope sender\naddress.\n\nUse the MAILFROM address also as envelope sender address to work\naround this issue.\n\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "ea4cdaea1a553685444a3fb39aae6b2cfee387ef",
      "tree": "262554e136711f18b4930c5adfc328ca3bd63e0b",
      "parents": [
        "0550fb37839866bb11ec139780d75f97d0765cfb"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Tue Jun 03 08:49:29 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Wed Jun 04 11:23:18 2025 +0800"
      },
      "message": "mdadm/assemble: Don\u0027t stop array after creating it\n\nIt stops the array which is just created. From the comment it wants to\nstop the array if it has no content. But it hasn\u0027t added member disks,\nso it\u0027s a clean array. It\u0027s meaningless to do it.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "0550fb37839866bb11ec139780d75f97d0765cfb",
      "tree": "06c6384255ae6c823657f70889cc59ea0cdcf3a7",
      "parents": [
        "8da27191aa62b08075d8e7ec36c14083f528eb89"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Sat Apr 05 19:47:18 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed May 14 08:28:59 2025 +0200"
      },
      "message": "mdadm: remove POSIX check\n\nNeil Brown in #159 pointed that mdadm should been keep in base utility\nstyle, allowing much more with no strict limitations until absolutely\nnecessary to prevent crashes.\n\nThis view, supported with regression #160 caused by POSIX portable\ncharacter set requirement leads me to revert it.\n\nRevert the POSIX portable character set verification of name and\ndevname. Make it IMSM only.\n\nFixes: e2eb503bd797 (\"mdadm: Follow POSIX Portable Character Set\")\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "8da27191aa62b08075d8e7ec36c14083f528eb89",
      "tree": "57f6168cdb3e1b4a66325ccd675c6159385e0e28",
      "parents": [
        "f0667a39f889395f40d8b6c41730e89ac5434c21"
      ],
      "author": {
        "name": "Nigel Croxon",
        "email": "ncroxon@redhat.com",
        "time": "Fri Apr 04 08:44:47 2025 -0400"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Fri May 09 17:07:57 2025 +0800"
      },
      "message": "mdadm: enable sync file for udev rules\n\nMounting an md device may fail during boot from mdadm\u0027s claim\non the device not being released before systemd attempts to mount.\n\nIn this case it was found that essentially there is a race condition\noccurring in which the mount cannot happen without some kind of delay\nbeing added BEFORE the mount itself triggers, or manual intervention\nafter a timeout.\n\nThe findings:\nthe inode was for a tmp block node made by mdadm for md0.\n\ncrash\u003e detailedsearch ff1b0c398ff28380\nff1b0c398f079720: ff1b0c398ff28380 slab:filp state:alloc\n obj:ff1b0c398f079700 size:256\nff1b0c398ff284f8: ff1b0c398ff28380 slab:shmem_inode_cache\n state:alloc obj:ff1b0c398ff28308 size:768\n\ncrash\u003e struct file.f_inode,f_path ff1b0c398f079700\nf_inode \u003d 0xff1b0c398ff28380,\nf_path \u003d {\nmnt \u003d 0xff1b0c594aecc7a0,\ndentry \u003d 0xff1b0c3a8c614f00\n},\ncrash\u003e struct dentry.d_name 0xff1b0c3a8c614f00\nd_name \u003d {\n{\n{ hash \u003d 3714992780, len \u003d 16 },\nhash_len \u003d 72434469516\n},\nname \u003d 0xff1b0c3a8c614f38 \".tmp.md.1454:9:0\"\n},\n\nFor the race condition, mdadm and udev have some infrastructure for making\nthe device be ignored while under construction. e.g.\n\n$ cat lib/udev/rules.d/01-md-raid-creating.rules\n\ndo not edit this file, it will be overwritten on update\nWhile mdadm is creating an array, it creates a file\n/run/mdadm/creating-mdXXX. If that file exists, then\nthe array is not \"ready\" and we should make sure the\ncontent is ignored.\nKERNEL\u003d\u003d\"md*\", TEST\u003d\u003d\"/run/mdadm/creating-$kernel\", ENV{SYSTEMD_READY}\u003d\"0\"\n\nHowever, this feature currently is only used by the mdadm create command.\nSee calls to udev_block/udev_unblock in the mdadm code as to where and when\nthis behavior is used. Any md array being started by incremental or\nnormal assemble commands does not use this udev integration. So assembly\nof an existing array does not look to have any explicit protection from\nsystemd/udev seeing an array as in a usable state before an mdadm instance\nwith O_EXCL closes its file handle.\nThis is for the sake of showing the use case for such an option and why\nit would be helpful to delay the mount itself.\n\nWhile mdadm is still constructing the array mdadm --incremental\nthat is called from within /usr/lib/udev/rules.d/64-md-raid-assembly.rules,\nthere is an attempt to mount the md device, but there is not a creation\nof \"/run/mdadm/creating-xxx\" file when in incremental mode that\nthe rule is looking for.  Therefore the device is not marked\nas SYSTEMD_READY\u003d0  in\n\"/usr/lib/udev/rules.d/01-md-raid-creating.rules\" and missing\nsynchronization using the \"/run/mdadm/creating-xxx\" file.\n\nAs to this change affecting containers or IMSM...\n(container\u0027s array state is inactive all the time)\n\nEven if the \"array_state\" reports \"inactive\" when previous components\nare added, the mdadm call for the very last array component that makes\nit usable/ready, still needs to be synced properly - mdadm needs to drop\nthe claim first calling \"close\", then delete the \"/run/mdadm/creating-xxx\".\nThen lets the udev know it is clear to act now (the \"udev_unblock\" in\nmdadm code that generates a synthetic udev event so the rules are\nreevalutated). It\u0027s this processing of the very last array component\nthat is the issue here (which is not IO error, but it is that trying to\nopen the dev returns -EBUSY because of the exclusive claim that mdadm\nstill holds while the mdadm device is being processed already by udev in\nparallel, and that is what the\n/run/mdadm/creating-xxx should prevent exactly).\n\nThe patch to Incremental.c is to enable creating the\n\"/run/mdadm/creating-xxx\" file during incremental mode.\n\nFor the change to Create.c, the unlink is called right before dropping\nthe exculusive claim for the device. This should be the other way round\nto avoid the race 100%. That is, if there\u0027s a \"close\" call and\n\"udev_unblock\" call, the \"close\" should go first, then followed\n\"udev_unblock\".\n\nSigned-off-by: Nigel Croxon \u003cncroxon@redhat.com\u003e\n"
    },
    {
      "commit": "f0667a39f889395f40d8b6c41730e89ac5434c21",
      "tree": "320c54ab5cd25b5e50256ef95e3a0554d7190128",
      "parents": [
        "7ecd1fe2d709ad84fbed29b1594f02fad52592cc"
      ],
      "author": {
        "name": "наб",
        "email": "nabijaczleweli@nabijaczleweli.xyz",
        "time": "Tue May 06 20:59:29 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri May 09 07:55:37 2025 +0200"
      },
      "message": "optim[al]ize; write-indent -\u003e write-intent\n\nFormer is highly non-standard, latter is wrong\n\nSigned-off-by: наб \u003cnabijaczleweli@nabijaczleweli.xyz\u003e\n"
    },
    {
      "commit": "7ecd1fe2d709ad84fbed29b1594f02fad52592cc",
      "tree": "a4c724d13dd8ab581693c2fdf4868741cebbbb3a",
      "parents": [
        "5d4c31e8c1ed273636aa9d9f36d8b6f0ebc9713e"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Thu May 08 17:56:08 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu May 08 23:30:38 2025 +0800"
      },
      "message": "mdadm/tests: mark 10ddf-fail-readd-readonly broken\n\n10ddf-fail-readd-readonly fails sometimes. Mark this case broken.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "5d4c31e8c1ed273636aa9d9f36d8b6f0ebc9713e",
      "tree": "92c0ed8df8644ddba32679ddfd4a694f0ca835da",
      "parents": [
        "882c8fda76772573acf2000a850106a09413d2e9"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Thu May 08 17:02:13 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu May 08 23:30:38 2025 +0800"
      },
      "message": "mdadm/tests: mark 09imsm-assemble broken\n\n09imsm-assemble fails sometimes. So mark it as broken.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "882c8fda76772573acf2000a850106a09413d2e9",
      "tree": "340732597c9b200da719f5fdbe7d2202df9c5a78",
      "parents": [
        "1640b5c37bb870a9ae36d6e72e09dd8a47aeac43"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Thu May 08 12:45:32 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu May 08 23:30:38 2025 +0800"
      },
      "message": "mdadm/tests: mark 10ddf-fail-two-spares broken\n\nSometimes 10ddf-fail-two-spares fail because:\n++ grep -q \u0027state\\[1\\] : Optimal, Consistent\u0027 /tmp/mdtest-5k3MzO\n++ echo ERROR: /dev/md/vol1 should be optimal in meta data\nERROR: /dev/md/vol1 should be optimal in meta data\n\nMark this as broken.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "1640b5c37bb870a9ae36d6e72e09dd8a47aeac43",
      "tree": "e5860d83cd546186d4f38b4477b2f3f2a3742878",
      "parents": [
        "a83ecaf17c75734aead366c6de71b6dd42a4a63d"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Thu May 08 11:45:50 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu May 08 23:30:38 2025 +0800"
      },
      "message": "mdadm: give more time to wait sync thread to reap\n\n01r5fail case reports error sometimes:\n++ \u0027[\u0027 -n \u00272248 / 35840\u0027 \u0027]\u0027\n++ die \u0027resync or recovery is happening!\u0027\n++ echo -e \u0027\\n\\tERROR: resync or recovery is happening! \\n\u0027\n\n    ERROR: resync or recovery is happening!\n\nsync thread is reapped in md_thread. So we need to give more time to\nwait sync thread to reap.\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "a83ecaf17c75734aead366c6de71b6dd42a4a63d",
      "tree": "ef44b06844c9679062de78b22b0ef6d4279df783",
      "parents": [
        "f815615ebf74a71064ba480ba773ef4bf98b53b0"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Wed May 07 18:34:20 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu May 08 23:30:38 2025 +0800"
      },
      "message": "mdadm: add attribute nonstring for signature\n\nIt reports building error in f42:\nerror: initializer-string for array of ‘unsigned char’ truncates NULL\nterminator but destination lacks ‘nonstring’ attribute (5 chars into 4\navailable) [-Werror\u003dunterminated-string-initialization]\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "f815615ebf74a71064ba480ba773ef4bf98b53b0",
      "tree": "91d1331dd0a8f1b907729e073623cb832600a592",
      "parents": [
        "e549ac6ab2ce5e7ec182310f8f5f2e41c6ac9233"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Wed May 07 18:26:08 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu May 08 23:30:38 2025 +0800"
      },
      "message": "mdadm: fix building errors\n\nSome building errors are found in ppc64le platform:\nformat \u0027%llu\u0027 expects argument of type \u0027long long unsigned int\u0027, but\nargument 3 has type \u0027long unsigned int\u0027 [-Werror\u003dformat\u003d]\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "e549ac6ab2ce5e7ec182310f8f5f2e41c6ac9233",
      "tree": "78aa674d206a8451c9c77818b13143a2a255d9b0",
      "parents": [
        "e270c8f99e90cf89e0c1a0534547e7b4bf285041"
      ],
      "author": {
        "name": "Xiao Ni",
        "email": "xni@redhat.com",
        "time": "Wed May 07 18:06:59 2025 +0800"
      },
      "committer": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Thu May 08 23:30:38 2025 +0800"
      },
      "message": "mdadm: use standard libc nftw\n\ncommit bd648e3bec3d (\"mdadm: Remove klibc and uclibc support\") removes\nmacro HAVE_NFTW/HAVE_FTW and uses libc header ftw.h. But it leaves the\ncodes in lib.c which let mdadm command call nftw defined in lib.c. It\nneeds to remove these codes.\n\nThe bug can be reproduced by:\nmdadm -CR /dev/md0 --level raid5 --metadata\u003d1.1 --chunk\u003d32 --raid-disks 3\n--size 10000 /dev/loop1 /dev/loop2 /dev/loop3\nmdadm /dev/md0 --grow --chunk\u003d64\nmdadm: /dev/md0: cannot open component -unknown-\n\nFixes: bd648e3bec3d (\"mdadm: Remove klibc and uclibc support\")\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e\n"
    },
    {
      "commit": "e270c8f99e90cf89e0c1a0534547e7b4bf285041",
      "tree": "e46a47b2dcb14bfa6bcfb679175f70b3fdebe949",
      "parents": [
        "4aa30f1beafc1fed844a0f335e196400adeb1840"
      ],
      "author": {
        "name": "Martin Wilck",
        "email": "mwilck@suse.com",
        "time": "Wed Apr 30 21:18:36 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Thu May 08 09:08:26 2025 +0200"
      },
      "message": "mdadm: allow any valid minor number in md device name\n\nSince 25aa732 (\"mdadm: numbered names verification\"), it is not possible\nany more to create arrays /dev/md${N} with N \u003e\u003d 127. The limit has later\nbeen increased to 1024, which is also artificial. The error message printed\nby mdadm is misleading, as the problem is not POSIX compatibility here.\n\n  # mdadm -C -v /dev/md9999 --name\u003dfoo -l1 -n2 /dev/loop0 /dev/loop1\n  mdadm: Value \"/dev/md9999\" cannot be set as devname. Reason: Not POSIX compatible.\n\nGiven that mdadm creates an array with minor number ${N} if the argument is\n/dev/md${N}, the natural limit for the number is the highest minor number\navailable, which is (1 \u003c\u003c MINORBITS) with MINORBITS\u003d20 on Linux.\n\nFixes: 25aa732 (\"mdadm: numbered names verification\")\nFixes: f786072 (\"mdadm: Increase number limit in md device name to 1024.\")\nSigned-off-by: Martin Wilck \u003cmwilck@suse.com\u003e\n"
    },
    {
      "commit": "4aa30f1beafc1fed844a0f335e196400adeb1840",
      "tree": "19799b47b00de4d60aecb5e343ac5ed6cfbb57ab",
      "parents": [
        "e05b13f97db18dfa98814fcebd9d1b58b9fcb8cd"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Apr 11 14:36:12 2025 +0200"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Sat May 03 18:55:08 2025 +0200"
      },
      "message": "tests: support second runner\n\nSecond runner has different VM name. Honor that when coping\nand removing logs.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "e05b13f97db18dfa98814fcebd9d1b58b9fcb8cd",
      "tree": "a8a85bfc37c8bee3c76b6f26be386fea24e8bd71",
      "parents": [
        "02b7cacefe080c7c0f55b942b26bfcae9297587b"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu May 01 12:18:17 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 01 12:18:17 2025 -0700"
      },
      "message": "Update run_mdadm_tests.sh\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "02b7cacefe080c7c0f55b942b26bfcae9297587b",
      "tree": "4a77dc9454dc65e4eaac7f2cccbe0d90ce865f6a",
      "parents": [
        "32ab389711c718e1690e6f63c21adbd8b84b010a"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Wed Apr 30 17:45:32 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 30 17:45:32 2025 -0700"
      },
      "message": "Update tests.yml\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "32ab389711c718e1690e6f63c21adbd8b84b010a",
      "tree": "12343af825f269b96b23af5100b1c8b037e142c1",
      "parents": [
        "f5889f9a1b8753a1472dfef9d025da2bae395239"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Wed Apr 30 14:04:14 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 30 14:04:14 2025 -0700"
      },
      "message": "Update tests.yml\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "f5889f9a1b8753a1472dfef9d025da2bae395239",
      "tree": "be875d6687a9bd1a067ef8469198e87ef6f2f6f6",
      "parents": [
        "696207860f408534651db89c5b40133f5903fa25"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Mar 10 11:16:28 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Apr 28 09:55:30 2025 +0200"
      },
      "message": "mdadm: use kernel raid headers\n\nFor a years we redefined these headers in mdadm. We should reuse headers\nexported by kernel to integrate driver and mdadm better.\nInclude them and remove mdadm owned headers.\n\nThere are 3 defines not available in kernel headers, so define them\ndirectly but put them in ifndef guard to make them transparent later.\n\nUse MD_FEATURE_CLUSTERED instead of MD_FEATURE_BITMAP_VERSIONED. The\nvalue is same, kernel define has different name.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "696207860f408534651db89c5b40133f5903fa25",
      "tree": "f1c120fcf23a76eff9875205116c55bdf2cf514f",
      "parents": [
        "bd648e3bec3d883d2f4addea84ac1ac8790c75e9"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Mar 07 12:10:58 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Apr 28 09:55:30 2025 +0200"
      },
      "message": "mdadm: include asm/byteorder.h\n\nIt will be included by raid/md_p.h anyway. Include it directly and\nremove custom functions. It is not a problem now.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "bd648e3bec3d883d2f4addea84ac1ac8790c75e9",
      "tree": "6ba4a8b859792d8214de47f7b8dc4c4b30cd4447",
      "parents": [
        "f5ff81d14fdd34f770120a057804d6067fd5035b"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Fri Mar 07 11:38:48 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Apr 28 09:55:30 2025 +0200"
      },
      "message": "mdadm: Remove klibc and uclibc support\n\nKlibc compilation is not working for at least 3 years because of\nfollowing error:\nmdadm.h:1912:15: error: unknown type name \u0027sighandler_t\u0027\n\nIt will have a conflict with le/be_to_cpu() functions family provided by\nasm/byteorder.h which will be included with raid/md_p.h. Therefore we\nneed to remove support for it. Also, remove uclibc because it is not actively\nmaintained.\n\nRemove klibc and uclibc targets from Makefile and special klibc code.\nTargets can be removed safely because using CC is recommended.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "f5ff81d14fdd34f770120a057804d6067fd5035b",
      "tree": "55eff34bc40572df97fbc5dbefe5adc9e8872421",
      "parents": [
        "97ee409451a7191d3d2861b6718f79116f80b4ec"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu Apr 24 09:48:56 2025 -0700"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Apr 28 09:53:54 2025 +0200"
      },
      "message": "Update README.md\n\nNeeded to remove the word \"test\" as part of testing updated CI workflow.\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "97ee409451a7191d3d2861b6718f79116f80b4ec",
      "tree": "e92d7b3a1e2768bcdb3fac9d7de1c132f554b8d0",
      "parents": [
        "5fd2f5da6fe7995190627f8a7bd9f6ff90aad1d4"
      ],
      "author": {
        "name": "Paul E Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu Apr 24 18:22:54 2025 +0200"
      },
      "committer": {
        "name": "Paul E Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu Apr 24 18:22:54 2025 +0200"
      },
      "message": "This is a test for CI, do not merge\n\nSigned-off-by: Paul E Luse \u003cpaul.e.luse@intel.com\u003e\n"
    },
    {
      "commit": "5fd2f5da6fe7995190627f8a7bd9f6ff90aad1d4",
      "tree": "55eff34bc40572df97fbc5dbefe5adc9e8872421",
      "parents": [
        "affe2168b807ccd48f00dc9e021196a5e2e83870"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu Apr 24 09:03:32 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 24 09:03:32 2025 -0700"
      },
      "message": "Update tests.yml\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "affe2168b807ccd48f00dc9e021196a5e2e83870",
      "tree": "a99751ba0d1e1d973d1f81ffbb7d4674fc3229c6",
      "parents": [
        "07bde560b71a2f6e36de5bc6f24e07e761c1c83b"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu Apr 24 08:41:15 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 24 08:41:15 2025 -0700"
      },
      "message": "Update tests.yml\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "07bde560b71a2f6e36de5bc6f24e07e761c1c83b",
      "tree": "340257125388dcab43490553857c127cde5d4649",
      "parents": [
        "b532421e747d75223c6f7a065fb643d2d318011c"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu Apr 24 08:38:29 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 24 08:38:29 2025 -0700"
      },
      "message": "Update tests.yml\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "b532421e747d75223c6f7a065fb643d2d318011c",
      "tree": "caa8aabb685582ead72883a2ab1f2e14ba7b608f",
      "parents": [
        "6ce7f21bb822fd0125f78434d9fbf6c3db524892"
      ],
      "author": {
        "name": "Paul Luse",
        "email": "paul.e.luse@intel.com",
        "time": "Thu Apr 24 07:30:10 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 24 07:30:10 2025 -0700"
      },
      "message": "Update tests.yml\n\nSigned-off-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e"
    },
    {
      "commit": "6ce7f21bb822fd0125f78434d9fbf6c3db524892",
      "tree": "d44cc9a5e019f497fc902cb58e95d765d57937fe",
      "parents": [
        "127e38b59cbdf717d1569bcdc75b8d823d8485f3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neil@brown.name",
        "time": "Fri Apr 04 11:56:04 2025 +1100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Thu Apr 10 11:35:36 2025 +0200"
      },
      "message": "Allow RAID0 to be created with v0.90 metadata #161\n\nIt is not currently possible to create a RAID0 with 0.90 metadata.\nThis is because 0.90 cannot specify the layout of RAID0 (it is\ntraditionally ignored) and different kernels do different things with\nRAID0 layouts.\n\nHowever it should be possible to use --layout\u003ddangerous as that\nacknowledges the risk.\nIt also should be possible to create a RAID0 with all devices the same\nsize because in that case all layouts are identical.\n\nThe metadata handler can only check that all devices are the same size\nquite late - in write_init_super().  By that time the default is\ncurrently set - set to a value that super0 cannot handle.\n\nSo this patch delays the setting of the default value and leave it for\nthe metadata handler (or for the Build handler).\n\nsuper1 selects ORIG in that case.\nintel and ddf don\u0027t support non-uniform RAID0 so they don\u0027t need any\nchange.\nsuper0 now checks the sizes of devices if the default RAID0 layout was\nrequested and rejects the request in they are not the same.\n\nvalidiate_geometry0 now allows \"dangerous\" layouts for raid0.\n\nSigned-off-by: NeilBrown \u003cneil@brown.name\u003e\n"
    },
    {
      "commit": "127e38b59cbdf717d1569bcdc75b8d823d8485f3",
      "tree": "142b3a38506547c97f6e59aa266e4a138c325fbd",
      "parents": [
        "4e2e208c8d3e9ba0fae88136d7c4cd0292af73b0"
      ],
      "author": {
        "name": "Blazej Kucman",
        "email": "blazej.kucman@intel.com",
        "time": "Mon Mar 31 12:46:52 2025 +0200"
      },
      "committer": {
        "name": "Nigel Croxon",
        "email": "109605997+ncroxon@users.noreply.github.com",
        "time": "Tue Apr 08 07:23:22 2025 -0400"
      },
      "message": "imsm: Fix RAID0 to RAID10 migration\n\nSupport for RAID10 with +4 disks in IMSM introduced an inconsistency\nbetween the VROC UEFI driver and Linux IMSM. VROC UEFI does not\nsupport RAID10 with +4 disks, therefore appropriate protections were\nadded to the mdadm IMSM code that results in skipping processing of\nsuch RAID in the UEFI phase. Unfortunately the case of migration\nRAID0 2 disks to RAID10 4 disks was omitted, this case requires\nmaintaining compatibility with the VROC UEFI driver because it is\nsupported.\n\nFor RAID10 +4 disk the MPB_ATTRIB_RAID10_EXT attribute is set in the\nmetadata, thanks to which the UEFI driver does not process such RAID.\nIn the series adding support, a new metadata raid level value\nIMSM_T_RAID10 was also introduced. It is not recognized by VROC UEFI.\n\nThe issue is caused by the fact that in the case of the mentioned\nmigration, IMSM_T_RAID10 is entered into the metadata but attribute\nMPB_ATTRIB_RAID10_EXT is not entered, which causes an attempt to\nprocess such RAID in the UEFI phase. This situation results in\nthe platform hang during booting in UEFI phase, this also results in\ndata loss after failed and interrupted RAID processing in VROC UEFI.\n\nThe above situation is result of the update_imsm_raid_level()\nfunction, for the mentioned migration function is executed on a map\nwith a not yet updated number of disks.\n\nThe fix is to explicitly handle migration in the function mentioned\nabove to maintain compatibility with VROC UEFI driver.\n\nSteps to reproduce:\nmdadm -C /dev/md/imsm0 -e imsm -n 2 /dev/nvme[1,2]n1 -R\nmdadm -C /dev/md/vol -l 0 -n 2 /dev/nvme[1,2]n1 --assume-clean -R\nmdadm -a /dev/md127 /dev/nvme3n1\nmdadm -a /dev/md127 /dev/nvme4n1\nmdadm -G /dev/md126 -l 10\nreboot\n\nFixes: 27550b13297a (\"imsm: add support for literal RAID 10\")\nSigned-off-by: Blazej Kucman \u003cblazej.kucman@intel.com\u003e\n"
    },
    {
      "commit": "4e2e208c8d3e9ba0fae88136d7c4cd0292af73b0",
      "tree": "cd03b38bc5666ff747aba643707939202140fcc7",
      "parents": [
        "c2fbf66ba0243f499f78ed43fa1207a9bd9361b5"
      ],
      "author": {
        "name": "Wu Guanghao",
        "email": "wuguanghao3@huawei.com",
        "time": "Tue Mar 11 03:11:55 2025 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Mar 24 10:44:20 2025 +0100"
      },
      "message": "super1: Clear extra flags when initializing metadata\n\nWhen adding a disk to a RAID1 array, the metadata is read from the\nexisting member disks for sync. However, only the bad_blocks flag are\ncopied, the bad_blocks records are not copied, so the bad_blocks\nrecords are all zeros. The kernel function super_1_load() detects\nbad_blocks flag and reads the bad_blocks record, then sets the bad\nblock using badblocks_set().\n\nAfter the kernel commit 1726c7746783 (badblocks: improve badblocks_set()\nfor multiple ranges handling) if the length of a bad_blocks record is 0,\nit will return a failure. Therefore the device addition will fail.\n\nSo when adding a new disk, some flags cannot be sync and need to be clead.\n\nSigned-off-by: Wu Guanghao \u003cwuguanghao3@huawei.com\u003e\n"
    },
    {
      "commit": "c2fbf66ba0243f499f78ed43fa1207a9bd9361b5",
      "tree": "3607d10bb6080cbedff0c0b28ff8959d0c9953b2",
      "parents": [
        "7d29b3823c18a24d6efbb502f08638788f97e04b"
      ],
      "author": {
        "name": "XiaoNi87",
        "email": "xni@redhat.com",
        "time": "Tue Mar 18 08:18:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 18 08:18:04 2025 +0800"
      },
      "message": "Regression fix (#156)\n\nSigned-off-by: Xiao Ni \u003cxni@redhat.com\u003e"
    },
    {
      "commit": "7d29b3823c18a24d6efbb502f08638788f97e04b",
      "tree": "3f8035ddb3b4d1fa6bada95584305dbb5a21b543",
      "parents": [
        "dacce2a0009f3506a5accf91f8fa9956eb36218e"
      ],
      "author": {
        "name": "Junxiao Bi",
        "email": "junxiao.bi@oracle.com",
        "time": "Tue Feb 18 10:48:31 2025 -0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Mar 03 15:15:26 2025 +0100"
      },
      "message": "mdmon: imsm: fix metadata corruption when managing new array\n\nWhen manager thread detects new array, it will invoke manage_new().\nFor imsm array, it will further invoke imsm_open_new(). Since\ncommit bbab0940fa75(\"imsm: write bad block log on metadata sync\"),\nit preallocates bad block log when opening the array, that requires\nincreasing the mpb buffer size.\nFor that, imsm_open_new() invokes function imsm_update_metadata_locally(),\nwhich first uses imsm_prepare_update() to allocate a larger mpb buffer\nand store it at \"mpb-\u003enext_buf\", and then invoke imsm_process_update()\nto copy the content from current mpb buffer \"mpb-\u003ebuf\" to \"mpb-\u003enext_buf\",\nand then free the current mpb buffer and set the new buffer as current.\n\nThere is a small race window, when monitor thread is syncing metadata,\nit gets current buffer pointer in imsm_sync_metadata()-\u003ewrite_super_imsm(),\nbut before flushing the buffer to disk, manager thread does above switching\nbuffer which frees current buffer, then monitor thread will run into\nuse-after-free issue and could cause on-disk metadata corruption.\nIf system keeps running, further metadata update could fix the corruption,\nbecause after switching buffer, the new buffer will contain good metadata,\nbut if panic/power cycle happens while disk metadata is corrupted,\nthe system will run into bootup failure if array is used as root,\notherwise the array can not be assembled after boot if not used as root.\n\nThis issue will not happen for imsm array with only one member array,\nbecause the memory array has not be opened yet, monitor thread will not\ndo any metadata updates.\nThis can happen for imsm array with at lease two member array, in the\nfollowing two scenarios:\n1. Restarting mdmon process with at least two member array\nThis will happen during system boot up or user restart mdmon after mdadm\nupgrade\n2. Adding new member array to exist imsm array with at least one member\narray.\n\nTo fix this, delay the switching buffer operation to monitor thread.\n\nFixes: bbab0940fa75 (\"imsm: write bad block log on metadata sync\")\nSigned-off-by: Junxiao Bi \u003cjunxiao.bi@oracle.com\u003e\n"
    },
    {
      "commit": "dacce2a0009f3506a5accf91f8fa9956eb36218e",
      "tree": "a8f72ca16ef80b26774468f1f055b835e03c680d",
      "parents": [
        "4b3932487a8dc2e87530e595ccabe48c79446f30"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Feb 12 12:41:58 2025 +0100"
      },
      "committer": {
        "name": "Nigel Croxon",
        "email": "109605997+ncroxon@users.noreply.github.com",
        "time": "Tue Feb 18 09:02:18 2025 -0500"
      },
      "message": "Rework MAINTAINERS file\n\nRemove Mateusz. Intergrate it with README.md\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "4b3932487a8dc2e87530e595ccabe48c79446f30",
      "tree": "40a1d4d21dcc7f304a04f1920c2a3621e9976062",
      "parents": [
        "17fed47a64e1890df9820b93548c396b7de54e31"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Feb 12 11:29:05 2025 +0100"
      },
      "committer": {
        "name": "Nigel Croxon",
        "email": "109605997+ncroxon@users.noreply.github.com",
        "time": "Tue Feb 18 09:02:18 2025 -0500"
      },
      "message": "Move release steps to documentation/\n\nMake a room for release MAINTAINERS file.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "17fed47a64e1890df9820b93548c396b7de54e31",
      "tree": "d218c15d06670bf4115d45a0f5eca800170042ee",
      "parents": [
        "eb9876f58658a107705a689852110903723e4d3b"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Feb 05 11:34:45 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Feb 05 12:18:37 2025 +0100"
      },
      "message": "bitmap.h: Minor fixes\n\nMove documentation to documentation/bitmap.md. Add Neil\u0027s copyrights,\nadd missing license. Remove unused macros.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "eb9876f58658a107705a689852110903723e4d3b",
      "tree": "53d459d05a53e8fe4a94ef36373ccecbdaab29af",
      "parents": [
        "f2197b6b6c14af6c788c628acd1fc6d92c268c53"
      ],
      "author": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Feb 03 11:36:01 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Wed Feb 05 12:18:37 2025 +0100"
      },
      "message": "bitmap.h - clear __KERNEL__ based headers\n\nIt is unused for years. Clear it.\n\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "f2197b6b6c14af6c788c628acd1fc6d92c268c53",
      "tree": "d0c3d135379f589634c5cc3a18837a61d5138659",
      "parents": [
        "9e8b3b1492cff63dafb759382c74a479460f49e6"
      ],
      "author": {
        "name": "lilinzhe",
        "email": "llz@antiy.cn",
        "time": "Mon Dec 16 12:11:41 2024 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Feb 03 11:19:00 2025 +0100"
      },
      "message": "super-ddf: optimize DDF header search for widely used RAID controllers\n\nImplemented fallback logic to search the last 32MB of the device\nfor the DDF header (magic). If found, proceeds to load the DDF metadata\nfrom the located position.\n\nWhen clearing metadata as required by the mdadm --zero (function Kill),\nalso erase the last 32MB of data; otherwise, it may result in an\ninfinite loop.\n\nAccording to the specification, the Anchor Header should be placed at\nthe end of the disk. However,some widely used RAID hardware, such as\nLSI and PERC, do not position it within the last 512 bytes of the disk.\n\nSigned-off-by: lilinzhe \u003cllz@antiy.cn\u003e\n"
    },
    {
      "commit": "9e8b3b1492cff63dafb759382c74a479460f49e6",
      "tree": "04feb3cc48bbc14cda77f37390e34a7c8872208d",
      "parents": [
        "1fc0f290caeb0720aa6c97177ab429953f5bf10f"
      ],
      "author": {
        "name": "lilinzhe",
        "email": "llz@antiy.cn",
        "time": "Mon Dec 16 12:00:02 2024 +0800"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Feb 03 11:19:00 2025 +0100"
      },
      "message": "super-ddf: Prevent crash when handling DDF metadata\n\nA dummy function is defined because availability of ss-\u003eupdate_super is\nnot always verified.\n\nThis fix addresses a crash reported when assembling a RAID array using\nmdadm with DDF metadata. For more details, see the discussion at:\nhttps://lore.kernel.org/all/\nCALHdMH30LuxR4tz9jP2ykDaDJtZ3P7L3LrZ+9e4Fq\u003dQ6NwSM\u003dQ@mail.gmail.com/\n\nThe discussion centers on an issue with mdadm where attempting to\nassemble a RAID array caused a null pointer dereference. The problem\nwas traced to a missing update_super() function in super-ddf.c, which\nled to a crash in Assemble.c.\n\nSigned-off-by: lilinzhe \u003cllz@antiy.cn\u003e\n"
    },
    {
      "commit": "1fc0f290caeb0720aa6c97177ab429953f5bf10f",
      "tree": "dc0b6e74e517c311c77b7d8053e157c34c4eb402",
      "parents": [
        "c09ae8417dc9e11da1d5bf2867c6498050c6ddb9"
      ],
      "author": {
        "name": "Ross Lagerwall",
        "email": "ross.lagerwall@citrix.com",
        "time": "Wed Jan 29 13:31:11 2025 +0000"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Feb 03 11:17:15 2025 +0100"
      },
      "message": "platform-intel: Disable legacy option ROM scan on UEFI machines\n\nThe legacy option ROM memory range from 0xc0000-0xeffff is not defined\non UEFI machines so don\u0027t attempt to scan it. This avoids lockdown log\nspam when Secure Boot is enabled (avoids use of /dev/mem).\n\nSigned-off-by: Ross Lagerwall \u003cross.lagerwall@citrix.com\u003e\n"
    },
    {
      "commit": "c09ae8417dc9e11da1d5bf2867c6498050c6ddb9",
      "tree": "4aa8838ae29a139872efecca9139b895c3fb0bb1",
      "parents": [
        "21e4efb1cd15c4de4a57de26b0ea2e4234aa8ce5"
      ],
      "author": {
        "name": "Yu Kuai",
        "email": "yukuai3@huawei.com",
        "time": "Fri Dec 27 14:07:02 2024 +0800"
      },
      "committer": {
        "name": "Nigel Croxon",
        "email": "109605997+ncroxon@users.noreply.github.com",
        "time": "Tue Jan 28 09:26:38 2025 -0500"
      },
      "message": "mdadm: fix --grow with --add for linear\n\nFor the case mdadm --grow with --add, the s.btype should not be\ninitialized yet, hence BitmapUnknown should be checked instead of\nBitmapNone.\n\nNoted that this behaviour should only support by md-linear, which is\nremoved from kernel, howerver, it turns out md-linear is used widely\nin home NAS and we\u0027re planning to reintroduce it soon.\n\nFixes: 581ba1341017 (\"mdadm: remove bitmap file support\")\nSigned-off-by: Yu Kuai \u003cyukuai3@huawei.com\u003e\nSigned-off-by: Mariusz Tkaczyk \u003cmtkaczyk@kernel.org\u003e\n"
    },
    {
      "commit": "21e4efb1cd15c4de4a57de26b0ea2e4234aa8ce5",
      "tree": "470d66e846c16d612c2a45f32baf55dd1b9ff7dd",
      "parents": [
        "b1ee932b89a16c881a3336f9fd728d46c1f8c65d"
      ],
      "author": {
        "name": "Antonio Alvarez Feijoo",
        "email": "antonio.feijoo@suse.com",
        "time": "Thu Jan 23 19:46:38 2025 +0100"
      },
      "committer": {
        "name": "Mariusz Tkaczyk",
        "email": "mtkaczyk@kernel.org",
        "time": "Mon Jan 27 10:15:32 2025 +0100"
      },
      "message": "udev: persist properties of MD devices after switch_root\n\ndracut installs in the initrd a custom udev rule for MD devices\n(59-persistent-storage-md.rules) only to set the db_persist option (see\n[1]). The main purpose is that if an MD device is activated in the initrd,\nits properties are kept on the udev database after the transition from the\ninitrd to the rootfs. This was added to fix detection issues when LVM is\non top.\n\nThis patch would allow to remove the custom udev rule shipped by dracut\n(63-md-raid-arrays.rules is already being installed in the initrd), and it\nwill also benefit other initrd generators that do not want to create\ncustom udev rules.\n\n[1] https://github.com/dracutdevs/dracut/blob/master/modules.d/90mdraid\n\nSigned-off-by: Antonio Alvarez Feijoo \u003cantonio.feijoo@suse.com\u003e\n"
    }
  ],
  "next": "b1ee932b89a16c881a3336f9fd728d46c1f8c65d"
}
