)]}'
{
  "log": [
    {
      "commit": "80239046c0dece6ef0d56413637f8af22d3b074d",
      "tree": "8e4c1bb17bc941379733b4d4a693ab6303d7d49c",
      "parents": [
        "ba267fe516d8fbdcd314b3fe7ff1ff948426d297"
      ],
      "author": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Tue May 19 12:48:43 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Tue May 19 12:48:43 2026 +0200"
      },
      "message": "xfsprogs: Release v7.0.1\n\nUpdate all the necessary files for a v7.0.1 release.\n\nSigned-off-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "ba267fe516d8fbdcd314b3fe7ff1ff948426d297",
      "tree": "db55825f28e2ab34b19eca7093efdbc9e18532dc",
      "parents": [
        "b623033285faa158581ba5d345797c8a9ae66ada"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon May 18 21:18:05 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Tue May 19 10:46:48 2026 +0200"
      },
      "message": "xfs_healer: fix missing HAVE_LISTMOUNT flag and stubs\n\nxfs/666 regressed with a broken xfs_healer_start that can\u0027t actually\nwalk the mount namespace with listmount and statmount.  The new stubs\nare wrapped with HAVE_LISTMOUNT, but this cflag is not added in healer/\nMakefile even if the build system has HAVE_LISTMOUNT set.\n\nAlso fix the stubs to return error correctly -- the wrappers follow C\nlibrary behavior.\n\nFixes: b30356f25335eb (\"libfrog: add fallback stubs for libfrog_statmount and fstatmount\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b623033285faa158581ba5d345797c8a9ae66ada",
      "tree": "a473aa787fa8992656fa2316e6268ca61f5df4b0",
      "parents": [
        "434afafebb3db625eb265f71c0cf7d6da9ee3141"
      ],
      "author": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri May 15 12:23:56 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri May 15 19:38:21 2026 +0200"
      },
      "message": "libfrog: add missing HAVE_LISTMOUNT flag\n\nNew stubs are wrapped with HAVE_LISTMOUNT, but this flag is not\nadded if HAVE_LISTMOUNT is set.\n\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nSigned-off-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "434afafebb3db625eb265f71c0cf7d6da9ee3141",
      "tree": "14c2f553c4ee52d7b669ee9d5502b7e2e9f187fc",
      "parents": [
        "b30356f25335ebf3e993f8fdd854656fc103a1d7"
      ],
      "author": {
        "name": "Anthony Iliopoulos",
        "email": "ailiop@suse.com",
        "time": "Wed May 13 21:30:40 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Thu May 14 13:03:23 2026 +0200"
      },
      "message": "gitignore: add xfs_healer binaries and services\n\nUpdate gitignore with the various binaries and services that have been\nintroduced by xfs_healer.\n\nSigned-off-by: Anthony Iliopoulos \u003cailiop@suse.com\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "b30356f25335ebf3e993f8fdd854656fc103a1d7",
      "tree": "d66ef86388c0f62ae0c03a7681051bea7391e4eb",
      "parents": [
        "877f0e57a10d9eaa81e89c3a7cc5f29710baaa41"
      ],
      "author": {
        "name": "Anthony Iliopoulos",
        "email": "ailiop@suse.com",
        "time": "Wed May 13 21:30:39 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Thu May 14 13:03:23 2026 +0200"
      },
      "message": "libfrog: add fallback stubs for libfrog_statmount and fstatmount\n\nAdd stubs for libfrog_statmount and fstatmount to enable compilation of\nxfs_healer on systems that lack listmount support. Without these stubs,\nstatmount.c is not compiled, causing compilation errors due to missing\ndefinitions. The stubs allow xfs_healer to fall back to walking the mount\ntable in userspace.\n\nSigned-off-by: Anthony Iliopoulos \u003cailiop@suse.com\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "877f0e57a10d9eaa81e89c3a7cc5f29710baaa41",
      "tree": "648f04f51a07340134bafb6a836901daf454942e",
      "parents": [
        "5a26358ae3d959a9baa2bc63e45cdd723be8e25a"
      ],
      "author": {
        "name": "Anthony Iliopoulos",
        "email": "ailiop@suse.com",
        "time": "Wed May 13 21:30:38 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Thu May 14 13:03:23 2026 +0200"
      },
      "message": "libfrog: add missing statmount flag definitions\n\nAdd definitions for STATMOUNT_MNT_BASIC and STATMOUNT_MNT_POINT to support\ncompilation of xfs_healer on systems with older kernel headers that predate\nthe statmount syscall (introduced in v6.8).\n\nSigned-off-by: Anthony Iliopoulos \u003cailiop@suse.com\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "5a26358ae3d959a9baa2bc63e45cdd723be8e25a",
      "tree": "e2eb4bf4f3584571d28e81ef7acc22173b87264c",
      "parents": [
        "46efb75687bd1ad1b6848cece78c201b27e42d31"
      ],
      "author": {
        "name": "Anthony Iliopoulos",
        "email": "ailiop@suse.com",
        "time": "Wed May 13 21:30:37 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Thu May 14 13:03:23 2026 +0200"
      },
      "message": "configure: always check for statmount supported_mask\n\nOn systems with kernel headers older than v6.8 that preceed the addition\nof the statmount syscall, have_listmount will be set to false and thus\nchecking of the statmount supported_mask is being skipped since the\ncheck is currently conditional to listmount support.\n\nThis causes compilation failures since need_internal_statmount will not\nbe set, and thus struct statmount will not be available to xfs_healer.\n\nFix this by always checking for statmount supported_mask support even\nwhen listmount is not available.\n\nSigned-off-by: Anthony Iliopoulos \u003cailiop@suse.com\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "46efb75687bd1ad1b6848cece78c201b27e42d31",
      "tree": "a211efca19146e35c7a9c59381a3b0f3541437dd",
      "parents": [
        "7329ba24ac39ba44646f5b7516415662f805a91b"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu May 07 15:11:58 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed May 13 12:30:43 2026 +0200"
      },
      "message": "xfs_scrub: remove dead code\n\nNothing uses @mask anymore, so remove it.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7329ba24ac39ba44646f5b7516415662f805a91b",
      "tree": "2c0ba8b157fdcdee5e4306fc897efd3d3d81a0ba",
      "parents": [
        "66fff0c12fda165b4a5a6f776ef19e4d5bc00104"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu May 07 15:11:43 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed May 13 12:30:43 2026 +0200"
      },
      "message": "xfs_scrub_all: remove dead code\n\nRemove the unused backtick() function.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "66fff0c12fda165b4a5a6f776ef19e4d5bc00104",
      "tree": "f6bf3a0e9ccf90240148af0dd889c6a383c55252",
      "parents": [
        "6149155d0589eee842a6038b9ba5ac525ec096e9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu May 07 15:11:27 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed May 13 12:30:43 2026 +0200"
      },
      "message": "platform_defs.h: fix __counted_by_ptr annotation\n\nThe kernel userspace headers for Linux 7.0 provide the __counted_by_ptr\nmacro, so we shouldn\u0027t define it separately on those platforms:\n\n  In file included from radix-tree.c:11:\n  ../include/platform_defs.h:334:9: error: \"__counted_by_ptr\" redefined [-Werror]\n    334 | #define __counted_by_ptr(member)\n        |         ^~~~~~~~~~~~~~~~\n  In file included from /usr/include/linux/posix_types.h:5,\n                   from /usr/include/linux/types.h:9,\n                   from /usr/include/linux/sched/types.h:5,\n                   from /usr/include/x86_64-linux-gnu/bits/sched.h:63,\n                   from /usr/include/sched.h:43,\n                   from /usr/include/pthread.h:22,\n                   from ../include/platform_defs.h:19:\n  /usr/include/linux/stddef.h:73:9: note: this is the location of the previous definition\n     73 | #define __counted_by_ptr(m)\n        |         ^~~~~~~~~~~~~~~~\n\nDo the customary ifndef wrapper thing.\n\nCc: linux-xfs@vger.kernel.org # v7.0.0\nFixes: df91bc3bdc9b81 (\"xfs: annotate struct xfs_attr_list_context with __counted_by_ptr\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "6149155d0589eee842a6038b9ba5ac525ec096e9",
      "tree": "21f4a123debefc9888d8feb703cbea9b80b8cc39",
      "parents": [
        "640999ac318eb8550b86a178ad592c7d9ab58c48"
      ],
      "author": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Thu May 07 17:06:00 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri May 08 15:58:23 2026 +0200"
      },
      "message": "xfsprogs: update release.sh with fixes from xfsdump\n\nWhile updating release.sh in xfsdump repository (copy-pasting this\nrelease.sh into xfsdump repo), I added a few minor fixes to the\nrelease.sh. These are those fixes (basically diff -u without\ns/xfsprogs/xfsdump).\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "640999ac318eb8550b86a178ad592c7d9ab58c48",
      "tree": "08b7489dd6e90134d4011cc57f8dd719ce58371d",
      "parents": [
        "5f5d7fe4a7efbcdb7d046a09b739e78ffa468fdf"
      ],
      "author": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Thu May 07 11:35:44 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Thu May 07 11:35:44 2026 +0200"
      },
      "message": "xfsprogs: Release v7.0.0\n\nUpdate all the necessary files for a v7.0.0 release.\n\nSigned-off-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "5f5d7fe4a7efbcdb7d046a09b739e78ffa468fdf",
      "tree": "b624d4ba2f662063d3bd12b93cd03d9e5e5d4ff7",
      "parents": [
        "1c52b36e3234aedaaa4b467f64c01636e96c1946"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon May 04 10:08:52 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed May 06 11:24:04 2026 +0200"
      },
      "message": "xfs_scrub: drop the warning about mixed bidirectional codepoints in names\n\nGedalya complained about receiving warnings about mixed bidirectional\ncodepoints in a filename:\n\n\"First, well-known file name extensions are not internationalized. While\nthe file name can be in non-latin letters, the extension will be in\nlatin. Hence you would expect to see file names such as עברית.pdf .\"\n\nGedalya goes on to point out that file names can be created from (say)\nthe title of an article, which might itself mix RTL and LTR characters.\nBoth uses are totally fair, but regrettably unfamiliar to 2018-era me.\n\nUnicode TR 36 even weasel-words its own recommendation: \"As much as\npossible, avoid mixing right-to-left and left-to-right characters in a\nsingle name.\"  Maybe I should have paid more attention to weasel\nwording in specifications. :P\n\nLet\u0027s fix this by removing the warning altogether.\n\nReported-by: gedalya@gedalya.net\nLink: https://lore.kernel.org/linux-xfs/8961ee4a-3830-498b-a432-5545695db599@gedalya.net/\nLink: https://www.unicode.org/reports/tr36/tr36-15.html#Bidirectional_Text_Spoofing\nCc: \u003clinux-xfs@vger.kernel.org\u003e # v4.16.0\nFixes: baa9ed8dca213f (\"xfs_scrub: check name for suspicious characters\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "1c52b36e3234aedaaa4b467f64c01636e96c1946",
      "tree": "24fc1ae630b2ff4cafddb8cf1d1d970bf5e663c8",
      "parents": [
        "922f14a9b77638b4a3fc604169df6799d16f8fd7"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 30 08:54:06 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed May 06 11:24:04 2026 +0200"
      },
      "message": "xfs_scrub_all: fix deadlock if lsblk produces a lot of output\n\nPatrick Fischer reported a deadlock in find_mounts() that is the result\nof lsblk producing so much output that it fills the pipe buffer.  When\nthis happens, lsblk blocks on write()ing the pipe, at which point\nwaiting for lsblk to exit will also block forever.\n\nNow that we can be reasonably assured that everyone has Python 3.5\n(because RHEL6 is long dead), we can replace this whole mess with a call\nto subprocess.run that captures the output.  The json library can\nconvert a byte array directly to a python dict, which means we don\u0027t\nneed to concatenate iterated lines or any of that stuff anymore.\n\nReported-by: patrick.fischer@siedl.net\nLink: https://lore.kernel.org/linux-xfs/323580211.1220195.1777554001363.JavaMail.zimbra@siedl.net/\nCc: \u003clinux-xfs@vger.kernel.org\u003e # v4.15.0\nFixes: f1dca11cad1308 (\"xfs_scrub: create a script to scrub all xfs filesystems\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "922f14a9b77638b4a3fc604169df6799d16f8fd7",
      "tree": "7b4648c883c3ff321885aa8a9429c422e7d92596",
      "parents": [
        "e7aab724c89a9b36a78375424f25aee066548372"
      ],
      "author": {
        "name": "Long Li",
        "email": "leo.lilong@huawei.com",
        "time": "Fri Apr 24 16:13:04 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Mon Apr 27 13:40:32 2026 +0200"
      },
      "message": "xfs: factor out xfs_attr3_leaf_init\n\nSource kernel commit: e65bb55d7f8c2041c8fdb73cd29b0b4cad4ed847\n\nFactor out wrapper xfs_attr3_leaf_init function, which exported for\nexternal use.\n\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Long Li \u003cleo.lilong@huawei.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\nSigned-off-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "e7aab724c89a9b36a78375424f25aee066548372",
      "tree": "b3a4eb904f169604e0eda3c2245e3ef6be6fb4f5",
      "parents": [
        "df91bc3bdc9b814006cb0247aba1e5a6bfd43341"
      ],
      "author": {
        "name": "Long Li",
        "email": "leo.lilong@huawei.com",
        "time": "Fri Apr 24 16:13:04 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Mon Apr 27 13:40:28 2026 +0200"
      },
      "message": "xfs: factor out xfs_attr3_node_entry_remove\n\nSource kernel commit: ce4e789cf3561c9fac73cc24445bfed9ea0c514b\n\nFactor out wrapper xfs_attr3_node_entry_remove function, which\nexported for external use.\n\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Long Li \u003cleo.lilong@huawei.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\nSigned-off-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "df91bc3bdc9b814006cb0247aba1e5a6bfd43341",
      "tree": "24c1b9262e716e9aa79702804530dfca3d95cc81",
      "parents": [
        "95329f9fa13040962c5a2a5e91a29ba215eb341f"
      ],
      "author": {
        "name": "Bill Wendling",
        "email": "morbo@google.com",
        "time": "Fri Apr 24 16:13:03 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri Apr 24 18:17:35 2026 +0200"
      },
      "message": "xfs: annotate struct xfs_attr_list_context with __counted_by_ptr\n\nSource kernel commit: e5966096d0856d071269cb5928d6bc33342d2dfd\n\nAdd the `__counted_by_ptr` attribute to the `buffer` field of `struct\nxfs_attr_list_context`. This field is used to point to a buffer of\nsize `bufsize`.\n\nThe `buffer` field is assigned in:\n1. `xfs_ioc_attr_list` in `fs/xfs/xfs_handle.c`\n2. `xfs_xattr_list` in `fs/xfs/xfs_xattr.c`\n3. `xfs_getparents` in `fs/xfs/xfs_handle.c` (implicitly initialized to NULL)\n\nIn `xfs_ioc_attr_list`, `buffer` was assigned before `bufsize`. Reorder\nthem to ensure `bufsize` is set before `buffer` is assigned, although\nno access happens between them.\n\nIn `xfs_xattr_list`, `buffer` was assigned before `bufsize`. Reorder\nthem to ensure `bufsize` is set before `buffer` is assigned.\n\nIn `xfs_getparents`, `buffer` is NULL (from zero initialization) and\nremains NULL. `bufsize` is set to a non-zero value, but since `buffer`\nis NULL, no access occurs.\n\nIn all cases, the pointer `buffer` is not accessed before `bufsize` is set.\n\nThis patch was generated by CodeMender and reviewed by Bill Wendling.\nTested by running xfstests.\n\nSigned-off-by: Bill Wendling \u003cmorbo@google.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\nSigned-off-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "95329f9fa13040962c5a2a5e91a29ba215eb341f",
      "tree": "3ac179a2178465ba0e76b8715e2f826d7b51c698",
      "parents": [
        "a8eb7b32137141dc33753d26662031939236364a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Apr 13 07:57:00 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri Apr 17 12:19:11 2026 +0200"
      },
      "message": "xfs_scrub: warn about unicode variation selectors in names\n\nArsTechnica recently wrote about a GitHub supply chain attack wherein\nnon-rendering unicode sequences were embedded in javascript files to\nhide payloads that could be decrypted trivially later.  While these are\nunlikely to appear in file and attribute names, we should warn about\nthis sort of steganography.\n\nLink: https://arstechnica.com/security/2026/03/supply-chain-attack-using-invisible-code-hits-github-and-other-repositories/\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a8eb7b32137141dc33753d26662031939236364a",
      "tree": "4430d7dd6eb88db9ebf10ea4ad4df7090b88ce8e",
      "parents": [
        "1068708f7ada1793a7087af02d98154465041022"
      ],
      "author": {
        "name": "Ravi Singh",
        "email": "ravising@redhat.com",
        "time": "Tue Apr 14 15:19:21 2026 +0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri Apr 17 11:09:10 2026 +0200"
      },
      "message": "xfs_quota: display default limits for users with zero usage\n\nWhen the kernel returns default quota limits for IDs without a dquot\non disk, xfs_quota suppresses the output because it only checks\nusage counters (d_bcount, d_icount, d_rtbcount). If all counters\nare zero the line is skipped even though non-zero limits apply.\n\nAlso check the soft/hard limit fields so that quota output is\ndisplayed whenever limits are configured, even if usage is zero.\n\nThis is the userspace companion to the kernel commit:\n\"xfs: return default quota limits for IDs without a dquot\"\n\nSigned-off-by: Ravi Singh \u003cravising@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\n"
    },
    {
      "commit": "1068708f7ada1793a7087af02d98154465041022",
      "tree": "4efc99ffb853f4747aaed509b4746c9bf1619cdf",
      "parents": [
        "1a5eeddf738c802724eabf5adab0bffedc54a5b7"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Apr 13 07:38:00 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri Apr 17 11:07:01 2026 +0200"
      },
      "message": "debian: add version control tags to control\n\nAdd some vcs fields to point to the official sources for the debian\npackage (which is to say, upstream xfsprogs).\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\n"
    },
    {
      "commit": "1a5eeddf738c802724eabf5adab0bffedc54a5b7",
      "tree": "8f9a3813264e4ff9f0cb64a4770ca043a98383c1",
      "parents": [
        "8ef7291a272e4e29e38dda90afec56a983776187"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Apr 12 20:56:50 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Fri Apr 17 11:06:39 2026 +0200"
      },
      "message": "xfs_healer: update weakhandle mountpoint when reconnecting\n\nIf we have to reconnect a weakhandle to a different mount point, we\nshould update the internal mountpoint string to that new value so we\ndon\u0027t have to keep reconnecting it.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "8ef7291a272e4e29e38dda90afec56a983776187",
      "tree": "e9f623c9afde5292b14343b2b524119c643b5e0e",
      "parents": [
        "5eb6d67a831928b4e3e4188857e27d0567ad9fad"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Tue Mar 17 09:58:55 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: raise media verification IO limits\n\nTo avoid starving other threads of disk IO resources, the read-verify\npool limits the size of verification IOs to limit bandwidth consumption,\nand it is willing to over-verify some amount of unwritten media to\nreduce the number of verification IO requests sent to the device.\n\nHowever, these limits were set in 2018 when areal densities were lower\nand disk bandwidth was more limited.  Increase them now to reduce scan\ntime on the author\u0027s system by 10% in foreground and 50% in background\nmode.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5eb6d67a831928b4e3e4188857e27d0567ad9fad",
      "tree": "e761d8c6948a2fecee46247f73be6cc0274ce3c7",
      "parents": [
        "c2e07d407aeeafdd438b85f6b1dce29df075d5e8"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Tue Mar 17 10:48:57 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: drop SCSI_VERIFY code from disk.\n\nNow that we have a media verification ioctl in the kernel, drop the\nSCSI_VERIFY code, which enables us to drop the dependency on sg and\nobviates the need to fix some unit-handling bugs in the HDIO_GETGEO\ncode.\n\nA subsequent patch will enable larger verification IO sizes, which this\nold code cannot handle.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c2e07d407aeeafdd438b85f6b1dce29df075d5e8",
      "tree": "ce8404a9f05b2b0e0f3792b9672e0a949c46dd49",
      "parents": [
        "58fca77c2d2ae8d24ef19473f2c2b105e268c70a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Wed Mar 18 09:59:43 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: clean up device-related error messages\n\nUse consistent terminology for the data/log/rt device in the error\nmessages.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "58fca77c2d2ae8d24ef19473f2c2b105e268c70a",
      "tree": "b2d305bcde7d158e12960e84a397277453575997",
      "parents": [
        "8a537ebc70669f8fa41a50668b982e73dffc3ac3"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Wed Mar 18 09:45:04 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: move failmap and other outputs into read_verify_pool\n\nRemove all the indirect verify IO error function calls and whatnot by\nmaking the read_verify_pool track the ranges of failed media and other\nproblems.  Add some new helper functions that report on the outcome of\nthe read verifciation so that phase6 can report on what happened.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "8a537ebc70669f8fa41a50668b982e73dffc3ac3",
      "tree": "ac653b7b698f5a3b6d8ff5b42c7e3d1619ad496f",
      "parents": [
        "95a92c5cecb2e168f4bef60066f067ce4b6ca2a5"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Wed Mar 18 09:26:28 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: index read-verify pools by xfs_device ids\n\nRefactor the read-verify pool array in struct media_verify_state so that\nwe can index them via enum xfs_device.  This will enable further\ncleanups in the next few patches.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "95a92c5cecb2e168f4bef60066f067ce4b6ca2a5",
      "tree": "740d3df70dbbc835676c4c659b201b94a6a8e472",
      "parents": [
        "d0ba8a9348ae5e45087578557afe72dc4d231ff2"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:17 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: perform media scanning of the log region\n\nScan the log area for media errors because a defect in a region could\nprevent the user from being able to perform log recovery.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d0ba8a9348ae5e45087578557afe72dc4d231ff2",
      "tree": "6fd6626703b95e5514d7b2c996d674dbef620587",
      "parents": [
        "02760878dd86b939dbcb3818a862a48116c60b66"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 16 14:20:05 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "scrub: don\u0027t allocate disk for ioctl-based media verify\n\nWhen the kernel provides the data verification ioctl there is no point\nin allocating struct disk and thus opening the underlying devices.\nRefactor the code so that we don\u0027t have to do that, with the added\nbenefit of keeping the read verification self-contained in\nread_verify.c for the case where the kernel provides the ioctl.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n[djwong: break up patch]\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "02760878dd86b939dbcb3818a862a48116c60b66",
      "tree": "d97cad7e211cd77a0926d5ef493faf918ec2702e",
      "parents": [
        "9cd59bf3cf78b17594236bbdcc58acae52161ac5"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:17 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: use the verify media ioctl during phase 6 if possible\n\nIf the kernel suppots the XFS_IOC_VERIFY_MEDIA ioctl, use that to\nperform the phase 6 media scan instead of pwrite or the SCSI VERIFY\ncommand.  This enables better integration with xfs_healer and fsnotify;\nand reduces the amount of work that userspace has to do.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9cd59bf3cf78b17594236bbdcc58acae52161ac5",
      "tree": "cc9993490e97b5ac45ea57a418210ae86408873b",
      "parents": [
        "1ef66d39b75b967253595e9547dab918dd91aa43"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 16 14:05:17 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: move disk media verification error injection\n\nThis isn\u0027t really disk-related since it\u0027s a knob to make the\nread_verify_pool pretend that the media is defective.  Move this code\nbefore we add a new media verify path that doesn\u0027t require the disk\nabstraction.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n[djwong: split off from another hch patch, create a new commit message]\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "1ef66d39b75b967253595e9547dab918dd91aa43",
      "tree": "215dc14f25a65f60988f9e4c684ecc9f2289e7ee",
      "parents": [
        "cc2c8a00083679a380328a871527c8e745f0ecd1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 16 13:53:41 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "scrub: simplify verifier threads calculation\n\nThrowing all CPUs at verifying seems like a bad idea for foreground\nscrub, as does abusing I/O opt/min as that says absolutely nothing\nabout parallelism.  I can\u0027t really think of a better way than manually\nconfiguring this except maybe kernel hints.  But the current decisions\nare not good defaults, and also are the only user of struct disk for\nfile systems using the kernel verify ioctl.\n\nThe best default seems to be 8, because verification speed increases\ndiminish above that level.  Note that background service mode now obeys\nthe thread count restrictions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n[djwong: rebase atop previous patches, leave disk_heads() alone]\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "cc2c8a00083679a380328a871527c8e745f0ecd1",
      "tree": "6c0a907210f3ab55e3b60d87c0251a1ef6c3a323",
      "parents": [
        "6ce165b0f44ac387ba82b7b9aaa592f761a5868a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Mar 16 11:38:47 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: rename nr_io_threads\n\nThis variable really describes the number of threads that we should\nstart up to scan metadata.  Rename it to reduce confusion with the media\nverification code, which also initiates IO.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6ce165b0f44ac387ba82b7b9aaa592f761a5868a",
      "tree": "ebb7f5abbcc6cdf13551275c83c49bad1906685c",
      "parents": [
        "56e731dac4df6acda5ac422922619bb1a05de1a9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 16 11:24:14 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "scrub: use enum xfs_device for read verification\n\nPassing the disk pointer and then translating back to an index is a bit\nconfusing.  Rewrite the read_verify and related code to pass around an\nenum xfs_device and use that to identify the device.\n\nThe disks are placed in an array so that they can be trivially indexed using\nthe xfs device.  Because the value start at 1 this adds an unused slot, but\nsuch a minor waste does not matter in the overall scheme of things.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n[djwong: fix minor merge conflicts]\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "56e731dac4df6acda5ac422922619bb1a05de1a9",
      "tree": "406b74bb23480201c849b44fd5fa8ac349bdf881",
      "parents": [
        "f529481a7a728ddfe1dbea74511605109b4d47d9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Mar 16 14:41:06 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:19 2026 -0700"
      },
      "message": "xfs_scrub: don\u0027t pass the io_end_arg around everywhere\n\nThe value is the same across all callers and read-verify pools, so let\u0027s\njust pass it into read_verify_pool_alloc instead of making temporary\naliases everywhere and increasing memory usage.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "f529481a7a728ddfe1dbea74511605109b4d47d9",
      "tree": "ad40cba8d66e92596156d2ddc1ebcfd1d593f4a2",
      "parents": [
        "acc91b2a53cdb119ad93f96eab46565733d5ec16"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 16 11:23:02 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "scrub: simplify the read_verify_pool_alloc interface\n\nDon\u0027t pass the miniosize as that\u0027s always the fs block size.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n[djwong: rebase atop another read verify cleanup]\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "acc91b2a53cdb119ad93f96eab46565733d5ec16",
      "tree": "6c5da2de8eec338e15666359d5b34ee1b0cf184f",
      "parents": [
        "9ad485e7583224f3a6f5f6fccc5c9f402f22efba"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Mar 16 13:31:32 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "xfs_scrub: move read verification scheduling to phase6.c\n\nRight now there\u0027s a weird coupling between read_verify.c and spacemap.c:\nAnyone using a read_verify_pool is required to tell the pool how many\nthreads it\u0027s going to use to call read_verify_schedule_io.  This is\nbecause the read_verify_pool accumulates verification requests on a\nper-thread basis to try to combine adjacent written regions for media\nverification.  However, the verification requests are made from the\nphase6.c callback (check_rmap) that is called from the workers created\nby scrub_scan_all_spacemaps.\n\nYeah, that\u0027s confusing: implementation details of spacemap.c must be\ninferred by phase6.c and passed to read_verify.c.\n\nLet\u0027s fix this by moving the per-thread schedule accumulation to\nphase6.c before the next patches constrain the number of IO threads\nsending verification requests to the kernel.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9ad485e7583224f3a6f5f6fccc5c9f402f22efba",
      "tree": "e3a1da89da2fd4798a8c6ccd1e8464ea800821d2",
      "parents": [
        "b2a12740b1150cc334f2c5f2849d740c90ef53a3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 16 11:22:35 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "scrub: remove the unused io_disk field in struct read_verify\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "b2a12740b1150cc334f2c5f2849d740c90ef53a3",
      "tree": "577868f5b3408f42d7b0022f03631397ebeb60f5",
      "parents": [
        "4e0c9692f6a88cf3320b4bb2f036b82710278c3b"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Tue Mar 17 09:51:25 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "xfs_scrub: fix i18n of the decode_special_owner return value\n\nThe function decode_special_owner turns a special fsmap owner into a\nprintable string value.  However, it does not query the gettext catalog\nfor a local language translation, which leads to annoying multilanguage\nfailure messages.  Fix that by adding the appropriate wrappers.\n\nCc: \u003clinux-xfs@vger.kernel.org\u003e # v4.15.0\nFixes: b364a9c008fc04 (\"xfs_scrub: scrub file data blocks\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "4e0c9692f6a88cf3320b4bb2f036b82710278c3b",
      "tree": "e4f63500c193e5270f4e1c4219848c7b09d4f9d3",
      "parents": [
        "e8249d9649ec7bef97ba5bfeaf119f93225fe4da"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Tue Mar 17 09:23:50 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "xfs_scrub: report truncated devices as media errors\n\nIf we encounter a zero-length read of an xfs device but don\u0027t hit any\nactual media errors, we won\u0027t report the truncated device.  Fix that.\nAlso fix the mistake that flushing the verify-pools of the log/rt\ndevices doesn\u0027t actually cause scrub to abort.\n\nCc: \u003clinux-xfs@vger.kernel.org\u003e # v6.13.0\nFixes: a6e089903f2f58 (\"xfs_scrub: tread zero-length read verify as an IO error\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e8249d9649ec7bef97ba5bfeaf119f93225fe4da",
      "tree": "c2c1f2f35af6f778aa94159c82106a590225ee7d",
      "parents": [
        "50d8b74334f1254cdaed2c27f4748b5ccf3de4b7"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Wed Mar 18 10:15:06 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "libfrog: lift *BYTES helpers to convert.h\n\nMove these byte unit conversion macros to convert.h and amend the macros\nto cast to unsigned long long to avoid shifting issues.  Now we can use\nthese same macros throughout the codebase instead of opencoding shifts\nand possibly suffering from integer shifting problems.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "50d8b74334f1254cdaed2c27f4748b5ccf3de4b7",
      "tree": "8b326cd381fc1d9b5829c9eb578e22c3afeafefc",
      "parents": [
        "e768971e2fdfd2ff97e2a6f48a969ea5e516e37f"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Wed Mar 18 10:39:49 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "mkfs: rename byte unit conversion macros\n\nRename these macros so that we can promote the generic ones in the next\npatch.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e768971e2fdfd2ff97e2a6f48a969ea5e516e37f",
      "tree": "a0c03c55495950bdf0d6403c63c64e7541b02237",
      "parents": [
        "bd61d2b9c8527f1f7bf86df45280ab46592bea7d"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Tue Mar 17 10:15:16 2026 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "libfrog: allow bitmap_free to handle a null bitmap pointer\n\nAllow bitmap_free() callers to pass a pointer to a NULL pointer.\nThis will help subsequent refactorings in xfs_scrub have cleaner\nbitmap_free callsites.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "bd61d2b9c8527f1f7bf86df45280ab46592bea7d",
      "tree": "c2584521ae8b367e7964c23d08cbcadfe6250049",
      "parents": [
        "dfee401c10bce4d33cc68200691791358e578c90"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:18 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "debian: enable xfs_healer on the root filesystem by default\n\nNow that we\u0027re finished building autonomous repair, enable the healer\nservice on the root filesystem by default.  The root filesystem is\nmounted by the initrd prior to starting systemd, which is why the\nxfs_healer_start service cannot autostart the service for the root\nfilesystem.\n\ndh_installsystemd won\u0027t activate a template service (aka one with an\nat-sign in the name) even if it provides a DefaultInstance directive to\nmake that possible.  Hence we enable this explicitly via the postinst\nscript.\n\nNote that Debian enables services by default upon package installation,\nso this is consistent with their policies.  Their kernel doesn\u0027t enable\nonline fsck, so healer won\u0027t do much more than monitor for corruptions\nand log them.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "dfee401c10bce4d33cc68200691791358e578c90",
      "tree": "ceac491150ea838423f3ba4f5debd45a3f636f2a",
      "parents": [
        "8aed3354e42933ccfc8ca870f9a0911efe0c3a3d"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:18 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "debian/control: listify the build dependencies\n\nThis will make it less gross to add more build deps later.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "8aed3354e42933ccfc8ca870f9a0911efe0c3a3d",
      "tree": "4fe1a0056d38ba06fa5cd0df337998fb2e9ebbfd",
      "parents": [
        "505afcfda5c5d50a7f00dbb1e6e06ca74f985876"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:18 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "mkfs: enable online repair if all backrefs are enabled\n\nIf all backreferences are enabled in the filesystem, then enable online\nrepair by default if the user didn\u0027t supply any other autofsck setting.\nUsers might as well get full self-repair capability if they\u0027re paying\nfor the extra metadata.\n\nNote that it\u0027s up to each distro to enable the systemd services\naccording to their own service activation policies.  Debian policy is to\nenable all systemd services at package installation but they don\u0027t\nenable online fsck in their Kconfig so the services won\u0027t activate.\nRHEL and SUSE policy requires sysadmins to enable them explicitly unless\nthe OS vendor also ships a systemd preset file enabling the services.\nDistros without systemd won\u0027t get any of the systemd services,\nobviously.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "505afcfda5c5d50a7f00dbb1e6e06ca74f985876",
      "tree": "6a64bfc806b6df342bb8d9201e45a705042403b9",
      "parents": [
        "99a6f427c4fd16047bcb7ba7a3ce35929b5b9e59"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:17 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "xfs_io: add listmount and statmount commands\n\nAdd two new commands: one to list all mounts via statmount, now that we\nuse this in xfs_healer_start, and another to statmount each open file.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "99a6f427c4fd16047bcb7ba7a3ce35929b5b9e59",
      "tree": "577fba1af5904b21139a4a0b64f8f3af79f58d73",
      "parents": [
        "c5d8a2ad1d287c513c81e3ca0c6872e2db353ec8"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Mar 05 13:41:14 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "xfs_scrub: print systemd service names\n\nAdd a hidden switch to xfs_scrub to emit systemd service names for XFS\nservices targetting filesystems paths instead of opencoding the\ncomputation in things like fstests.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c5d8a2ad1d287c513c81e3ca0c6872e2db353ec8",
      "tree": "f5f0c50687cc031339a9aa799b3bcdd77962a824",
      "parents": [
        "c2425375f293f624233c26b457c5e6b96b65b8b7"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:17 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "xfs_healer: add a manual page\n\nAdd a new section 8 manpage for this service daemon so others can read\nabout what this program is supposed to do.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c2425375f293f624233c26b457c5e6b96b65b8b7",
      "tree": "edd54778a2dc087371093e3f0824e2910398bec5",
      "parents": [
        "327f964dd6f07acdac88a41271cdaabbdbc15673"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:16 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:18 2026 -0700"
      },
      "message": "xfs_healer: validate that repair fds point to the monitored fs\n\nWhen xfs_healer reopens a mountpoint to perform a repair, it should\nvalidate that the opened fd points to a file on the same filesystem as\nthe one being monitored.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "327f964dd6f07acdac88a41271cdaabbdbc15673",
      "tree": "75c9e5072b742306ee197cd747f48a1e4c7954e8",
      "parents": [
        "54c0ba68b007b3fa992835dbe8822ee3056759f2"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Mar 05 10:47:54 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: use statmount to find moved filesystems even faster\n\nAs noted in the previous patch, it\u0027s possible that a mounted filesystem\ncan move mountpoints between the time of the initial mount (at which\npoint xfs_healer starts) and when it actually wants to start a repair.\nThe previous patch fixed that problem by using getmntent to walk\n/proc/self/mounts to see if it finds a mount with the same \"source\"\nname, aka data device.\n\nHowever, this is really slow if there are a lot of filesystems because\nwe end up wading through a lot of irrelevant information.  However,\nstatmount() can help us here because as of Linux 7.0 we can open the\npassed-in path at startup, call statmount() on it to retrieve the\nmnt_id, and then call it again later with that same mnt_id to find the\nmountpoint.  Luckily xfs_healthmon didn\u0027t get merged until 7.0 so it\u0027s\nmore or less guaranteed to be there if XFS_IOC_HEALTH_MONITOR succeeds.\n\nObviously if this doesn\u0027t work, we can fall back to the slow walk.\n\nThis statmount code enables xfs_healer to find a filesystem that has\nhad its mountpoint moved to a different place in the directory tree\nwithout the use of bind mounts and without needing to walk the entire\nmount list:\n\n# mount -t tmpfs urk /mnt\n# mount --make-rprivate /mnt\n# mkdir -p /mnt/a /mnt/b\n# mount /dev/sda /mnt/a\n# mount --move /mnt/a /mnt/b\n\nThe key here is that the struct mount object is moved, and no new ones\nare created.  Therefore, the original mnt_id is still usable.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "54c0ba68b007b3fa992835dbe8822ee3056759f2",
      "tree": "e5ab9c6564e66f1a5811a849e4381e133f201d7e",
      "parents": [
        "a162dc462186a6ad170abe4637e0d3483621648c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:16 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: use getmntent to find moved filesystems\n\nIt\u0027s possible that a mounted filesystem can move mountpoints between the\ntime of the initial mount (at which point xfs_healer starts) and when\nit actually wants to start a repair.  When this happens,\nweakhandle::mountpoint becomes obsolete and opening it will either fail\nwith ENOENT or the handle revalidation will return ESTALE.\n\nHowever, we do still have a means to find the mounted filesystem -- the\nfsname parameter (aka the path to the data device at mount time).  This\nis record in /proc/mounts, which means that we can iterate getmntent to\nsee if we can find the mount elsewhere.\n\nAs documented a few patches ago, this would be easier if we had\nrevocable fds that didn\u0027t pin mounts, but that\u0027s a very huge ask.\n\nThis getmntent code enables xfs_healer to find a filesystem that has\nbeen bind mounted in a new place and the original mountpoint detached:\n\n# mount /dev/sda /mnt\n# xfs_healer /mnt \u0026\n# mount /mnt /opt --bind\n# umount /mnt\n\nThe key here is that each bind mount gets a separate struct mount\nobject.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a162dc462186a6ad170abe4637e0d3483621648c",
      "tree": "e6a0a6caac7ea9de615e52508a563adfb518b75b",
      "parents": [
        "bf8b99270c6be130aa9685e669abd81ef4282ed8"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:16 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: run full scrub after lost corruption events or targeted repair failure\n\nIf we fail to perform a spot repair of metadata or the kernel tells us\nthat it lost corruption events due to queue limits, initiate a full run\nof the online fsck service to try to fix the error.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "bf8b99270c6be130aa9685e669abd81ef4282ed8",
      "tree": "3ffa37b3031522d42632b3f1d41468cd53798d34",
      "parents": [
        "ea178059ff72c3bccd207c93e0013d2ae2f0df36"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:15 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: use the autofsck fsproperty to select mode\n\nMake the xfs_healer background service query the autofsck filesystem\nproperty to figure out which operating mode it should use.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ea178059ff72c3bccd207c93e0013d2ae2f0df36",
      "tree": "7279142bffb9e2ec925daed232d64c697b65f606",
      "parents": [
        "428bd63ab404e574e253cce06207a8be008074f7"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:15 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: don\u0027t start service if kernel support unavailable\n\nUse ExecCondition\u003d in the system service to check if kernel support for\nthe health monitor is available.  If not, we don\u0027t want to run the\nservice, have it fail, and generate a bunch of silly log messages.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "428bd63ab404e574e253cce06207a8be008074f7",
      "tree": "0da3598d253a7593b4e27306ad21c0ffe56193a0",
      "parents": [
        "88825fe0de0df213ef8ed8aa157f2950f0e9e7e2"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:15 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: create a service to start the per-mount healer service\n\nCreate a daemon to wait for xfs mount events via fsnotify and start up\nthe per-mount healer service.  It\u0027s important that we\u0027re running in the\nsame mount namespace as the mount, so we\u0027re a fanotify client to avoid\nhaving to filter the mount namespaces ourselves.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "88825fe0de0df213ef8ed8aa157f2950f0e9e7e2",
      "tree": "67b405aae1aad9f12a7ca5c09df4c92e316754ba",
      "parents": [
        "17d840245c0e2063993eca4eb3671a576454b0ac"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Mar 05 13:26:27 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: create a per-mount background monitoring service\n\nCreate a systemd service definition for our self-healing filesystem\ndaemon so that we can run it for every mounted filesystem.  Add a\nhidden switch so that we can print the service unit name for fstests.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "17d840245c0e2063993eca4eb3671a576454b0ac",
      "tree": "c9b62da835bb3af8637557231c7527d211bd2025",
      "parents": [
        "6f0f35a87c8797c639d90b98b7efe4a760d721eb"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:14 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: use getparents to look up file names\n\nIf the kernel tells about something that happened to a file, use the\nGETPARENTS ioctl to try to look up the path to that file for more\nergonomic reporting.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6f0f35a87c8797c639d90b98b7efe4a760d721eb",
      "tree": "7f87129b76d239aaf09d2a9abc4585667cf7b9fc",
      "parents": [
        "b9b03770197d194e39777b0b1bb4be96f4832876"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:14 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: enable repairing filesystems\n\nMake it so that our health monitoring daemon can initiate repairs in\nresponse to reports of corrupt filesystem metadata.  Repairs are\ninitiated from the background workers as explained in the previous\npatch.\n\nNote that just like xfs_scrub, xfs_healer\u0027s ability to repair metadata\nrelies heavily on back references such as reverse mappings and directory\nparent pointers to add redundancy to the filesystem.  Check for these\ntwo features and whine a bit if they are missing, just like scrub.\n\nThere\u0027s a bit of trickery with the fd that is used to initiate repairs\nin the kernel.  Because an open fd will pin the filesystem in memory,\nxfs_healer can only hold an open fd to the target filesystem while it\u0027s\nperforming repairs.  Therefore, at startup xfs_healer must sample enough\ninformation about the target filesystem to reconnect to it later on.\nCurrently, the fs source (aka the data device path) and the root\ndirectory handle are sufficient to do this.\n\nSomeday we might be able to have revocable fds, which would eliminate\nthe need for such efforts in userspace.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b9b03770197d194e39777b0b1bb4be96f4832876",
      "tree": "720b968c87d5e04080e6d731ec2e7732d6362c73",
      "parents": [
        "bbed6dcf85f36603d68cbb763e1d47f7943c13bb"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:14 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_healer: create daemon to listen for health events\n\nCreate a daemon program that can listen for and log health events.\nEventually this will be used to self-heal filesystems in real time.\n\nBecause events can take a while to process, the main thread reads event\nobjects from the healthmon fd and dispatches them to a background\nworkqueue as quickly as it can.  This split of responsibilities is\nnecessary because the kernel event queue will drop events if the queue\nfills up, and each event can take some time to process (logging,\nrepairs, etc.) so we don\u0027t want to lose events.\n\nTo be clear, xfs_healer and xfs_scrub are complementary tools:\n\nScrub walks the whole filesystem, finds stuff that needs fixing or\nrebuilding, and rebuilds it.  This is sort of analogous to a patrol\nscrub.\n\nHealer listens for metadata corruption messages from the kernel and\nissues a targeted repair of that structure.  This is kind of like an\nondemand scrub.\n\nMy end goal is that xfs_healer (the service) is active all the time and\ncan respond instantly to a corruption report, whereas xfs_scrub (the\nservice) gets run periodically as a cron job.\n\nxfs_healer can decide that it\u0027s overwhelmed with problems and start\nxfs_scrub to deal with the mess.  Ideally you don\u0027t crash the filesystem\nand then have to use xfs_repair to smash your way back to a mountable\nfilesystem.\n\nBy default we run xfs_healer as a background service, which means that\nwe only start two threads -- one to read the events, and another to\nprocess them.  In other words, we try not to use all available hardware\nresources for repairs.  The foreground mode switch starts up a large\nnumber of threads to try to increase parallelism, which may or may not\nbe useful for repairs depending on how much metadata the kernel needs to\nscan.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "bbed6dcf85f36603d68cbb763e1d47f7943c13bb",
      "tree": "5e8cf912b81fcc9eed4956d6037e87a0e59f950f",
      "parents": [
        "eba72901c88ca51aeeeb162ab5679fbd02c6a0ba"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:13 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_io: add a media verify command\n\nAdd a subcommand to invoke the media verification ioctl to make sure\nthat we can actually check the storage underneath an xfs filesystem.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "eba72901c88ca51aeeeb162ab5679fbd02c6a0ba",
      "tree": "a6b8b753af56e9080eaa5bbdc57164792577ce92",
      "parents": [
        "d93adb823122cdc9ba43e9c6c8c4085ac23928af"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:13 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "xfs_io: monitor filesystem health events\n\nCreate a subcommand to monitor for health events generated by the kernel.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d93adb823122cdc9ba43e9c6c8c4085ac23928af",
      "tree": "b6f1a8f4a84911a5cebf955bbe35c600c08fd92d",
      "parents": [
        "92043e66ae68c71f92939d8ba929befb18fdf102"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:13 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:17 2026 -0700"
      },
      "message": "man2: document the media verification ioctl\n\nDocument XFS_IOC_VERIFY_MEDIA, which is a new ioctl for xfs_scrub to\nperform media scans on the disks underneath the filesystem.  This will\nenable media errors to be reported to xfs_healer and fsnotify.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "92043e66ae68c71f92939d8ba929befb18fdf102",
      "tree": "1a136d02d73c3d8b6752414ec765a54a7224e7b8",
      "parents": [
        "67fc0c99ea5170ba82cbf33beda3207371c02a8f"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:12 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:16 2026 -0700"
      },
      "message": "man2: document the healthmon ioctl\n\nDocument the XFS_IOC_HEALTH_MONITOR and\nXFS_IOC_HEALTH_FD_ON_MONITORED_FS ioctls.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "67fc0c99ea5170ba82cbf33beda3207371c02a8f",
      "tree": "e5e785d2122d290c1166f9ca4d3dcf940d75f1b8",
      "parents": [
        "27ddec39aa0d9139b45025d0124a7dbfd0b3a63e"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Tue Mar 03 11:01:39 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:16 2026 -0700"
      },
      "message": "libfrog: add wrappers for listmount and statmount\n\nAdd some wrappers for listmount and statmount so that we don\u0027t have to\nopen-code the kernel ABI quirks in every utility program that uses it.\nNote that glibc seems to have discussed providing a wrapper in late 2023\nbut took no action; and the listmount manpage says that there is no\nglibc wrapper.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "27ddec39aa0d9139b45025d0124a7dbfd0b3a63e",
      "tree": "390435716aeb2067a72f86148698338b020e6f78",
      "parents": [
        "6839b8314a49e72dbf7767665783ef292224fc35"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Mar 02 10:19:40 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:16 2026 -0700"
      },
      "message": "libfrog: hoist a couple of service helper functions\n\nHoist a couple of service/daemon-related helper functions to libfrog so\nthat we can share the code between xfs_scrub and xfs_healer.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6839b8314a49e72dbf7767665783ef292224fc35",
      "tree": "51d349f43d59724e2be0e0c108bd453a1cd7c7f5",
      "parents": [
        "3774cbe059392e81f0d5b44ade49953ca9da9682"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:12 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:16 2026 -0700"
      },
      "message": "libfrog: add support code for starting systemd services programmatically\n\nAdd some simple routines for computing the name of systemd service\ninstances and starting systemd services.  These will be used by the\nxfs_healer_start service to start per-filesystem xfs_healer service\ninstances.\n\nNote that we run systemd helper programs as subprocesses for a couple of\nreasons.  First, the path-escaping functionality is not a part of any\nlibrary-accessible API, which means it can only be accessed via\nsystemd-escape(1).  Second, although the service startup functionality\ncan be reached via dbus, doing so would introduce a new library\ndependency.  Systemd is also undergoing a dbus -\u003e varlink RPC transition\nso we avoid that mess by calling the cli systemctl(1) program.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3774cbe059392e81f0d5b44ade49953ca9da9682",
      "tree": "8498d429150ed7818449cadf6ad304f7ca4bc665",
      "parents": [
        "b2fc3c686b2af26bd983ffc8f9b09df05bd937e9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:12 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:16 2026 -0700"
      },
      "message": "libfrog: create healthmon event log library functions\n\nAdd some helper functions to log health monitoring events so that xfs_io\nand xfs_healer can share logging code.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b2fc3c686b2af26bd983ffc8f9b09df05bd937e9",
      "tree": "43e3f9440fa95b26155d6d9be2cda06560649868",
      "parents": [
        "9d0bd1ecce3dc176a974d2021b1a329936294781"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:12 2026 -0800"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Apr 09 15:30:16 2026 -0700"
      },
      "message": "libfrog: add a function to grab the path from an open fd and a file handle\n\nhandle_walk_paths operates on a file handle, but requires that the fs\nhas been registered with libhandle via path_to_fshandle.  For a normal\nlibhandle client this is the desirable behavior because the application\n*should* maintain an open fd to the filesystem mount.\n\nHowever for xfs_healer this isn\u0027t going to work well because the healer\nmustn\u0027t pin the mount while it\u0027s running.  It\u0027s smart enough to know how\nto find and reconnect to the mountpoint, but libhandle doesn\u0027t have any\nsuch concept.\n\nTherefore, alter the libfrog getparents code so that xfs_healer can pass\nin the mountpoint and reconnected fd without needing libhandle.  All\nwe\u0027re really doing here is trying to obtain a user-visible path for a\nfile that encountered problems for logging purposes; if it fails, we\u0027ll\nfall back to logging the inode number.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9d0bd1ecce3dc176a974d2021b1a329936294781",
      "tree": "83ff3d005d1d16d99eb2df1b64fb52d14713e3a5",
      "parents": [
        "a799c98743c9ad15e147ab94f464cc82de0a177d"
      ],
      "author": {
        "name": "Thiago Becker",
        "email": "tbecker@redhat.com",
        "time": "Fri Mar 20 10:27:34 2026 -0300"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "libxfs: fix printing of cache.c_maxcount.\n\nc_maxcount is usigned, but is being printed as signed.\n\nSigned-off-by: Thiago Becker \u003ctbecker@redhat.com\u003e\nReviewed-by: Andrey Albershteyn \u003caalbersh@kernel.org\u003e\n"
    },
    {
      "commit": "a799c98743c9ad15e147ab94f464cc82de0a177d",
      "tree": "bdb04cf5bc3a4d8ff0b15ef6af57e00ad0958851",
      "parents": [
        "bf1007391a32518f15283a032e68ca25402ca652"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Apr 07 13:15:00 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "fsr: always print error messages from xfrog_defragrange()\n\nError messages from xfrog_defragrange() are only printed when\nverbose/debug flags are used.\n\nWe had reports from users complaining it\u0027s hard to find out the error\nmessages lost in the middle of dozens of other informational messages.\n\nChange packfile() behavior to print errors independently of verbose or\ndebug flags.\n\nSigned-off-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "bf1007391a32518f15283a032e68ca25402ca652",
      "tree": "e606695ab683d4f577048d8b9a3814a74c6cb825",
      "parents": [
        "50d29084e53a05b7337b598aa39d7c8c64e9c74b"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Apr 07 13:14:59 2026 +0200"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "fsr: package function should check for negative errors\n\nxfrog_defragrange as most other functions from libfrog return\na negative error value, while xfs_fsr\u0027s packfile(), expects\na positive error value.\n\nWhenever xfrog_defragrange fails, the switch case always falls into the\ndefault clausule, making the error message pointless.\nFix this by inverting xfrog_defragrange() return value call.\n\nSigned-off-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "50d29084e53a05b7337b598aa39d7c8c64e9c74b",
      "tree": "cdef60af213e3ac32c7ffff9671ffc17c7f30000",
      "parents": [
        "8a5e47ac698566a7eb7acec07f05732bbad3f5bd"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Mon Mar 23 11:33:19 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "xfs: fix returned valued from xfs_defer_can_append\n\nSource kernel commit: 54fcd2f95f8d216183965a370ec69e1aab14f5da\n\nxfs_defer_can_append returns a bool, it shouldn\u0027t be returning\na NULL.\n\nFound by code inspection.\n\nFixes: 4dffb2cbb483 (\"xfs: allow pausing of pending deferred work items\")\nSigned-off-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nAcked-by: Souptick Joarder \u003csouptick.joarder@hpe.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "8a5e47ac698566a7eb7acec07f05732bbad3f5bd",
      "tree": "eb046b6ff190b5d2a744a970fbfc9d7ec4565b80",
      "parents": [
        "43b6c8457c1a104332ec26a1810e8fb267825a84"
      ],
      "author": {
        "name": "hongao",
        "email": "hongao@uniontech.com",
        "time": "Mon Mar 23 11:33:18 2026 -0700"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "xfs: Remove redundant NULL check after __GFP_NOFAIL\n\nSource kernel commit: 281cb17787d4284a7790b9cbd80fded826ca7739\n\nkzalloc() is called with __GFP_NOFAIL, so a NULL return is not expected.\nDrop the redundant !map check in xfs_dabuf_map().\nAlso switch the nirecs-sized allocation to kcalloc().\n\nSigned-off-by: hongao \u003chongao@uniontech.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "43b6c8457c1a104332ec26a1810e8fb267825a84",
      "tree": "1fe3eec9cad12643ce085eaf781586238b5e7a46",
      "parents": [
        "b6a84a375fe00f49a7e41e7897d23ffada689d56"
      ],
      "author": {
        "name": "Wilfred Mallawa",
        "email": "wilfred.mallawa@wdc.com",
        "time": "Sun Mar 01 17:40:03 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "xfs: add static size checks for ioctl UABI\n\nSource kernel commit: 650b774cf94495465d6a38c31bb1a6ce697b6b37\n\nThe ioctl structures in libxfs/xfs_fs.h are missing static size checks.\nIt is useful to have static size checks for these structures as adding\nnew fields to them could cause issues (e.g. extra padding that may be\ninserted by the compiler). So add these checks to xfs/xfs_ondisk.h.\n\nDue to different padding/alignment requirements across different\narchitectures, to avoid build failures, some structures are ommited from\nthe size checks. For example, structures with \"compat_\" definitions in\nxfs/xfs_ioctl32.h are ommited.\n\nSigned-off-by: Wilfred Mallawa \u003cwilfred.mallawa@wdc.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "b6a84a375fe00f49a7e41e7897d23ffada689d56",
      "tree": "38ea4fa55bd790ba377b103f9f4540b9e6544900",
      "parents": [
        "806d742e6d03ab8b90f0e928a7c5fa2b76c8008f"
      ],
      "author": {
        "name": "Wilfred Mallawa",
        "email": "wilfred.mallawa@wdc.com",
        "time": "Sun Mar 01 17:40:02 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "xfs: remove duplicate static size checks\n\nSource kernel commit: e97cbf863d8918452c9f81bebdade8d04e2e7b60\n\nIn libxfs/xfs_ondisk.h, remove some duplicate entries of\nXFS_CHECK_STRUCT_SIZE().\n\nSigned-off-by: Wilfred Mallawa \u003cwilfred.mallawa@wdc.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "806d742e6d03ab8b90f0e928a7c5fa2b76c8008f",
      "tree": "151bdca5b54ae8e4cc30dd4221e5ef9ce7f34d59",
      "parents": [
        "4b3284ed006f23fea816141316fe74b7a4c478c6"
      ],
      "author": {
        "name": "Nirjhar Roy (IBM)",
        "email": "nirjhar.roy.lists@gmail.com",
        "time": "Sun Mar 01 17:40:01 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "xfs: Add a comment in xfs_log_sb()\n\nSource kernel commit: ac1d977096a17d56c55bd7f90be48e81ac4cec3f\n\nAdd a comment explaining why the sb_frextents are updated outside the\nif (xfs_has_lazycount(mp) check even though it is a lazycounter.\nRT groups are supported only in v5 filesystems which always have\nlazycounter enabled - so putting it inside the if(xfs_has_lazycount(mp)\ncheck is redundant.\n\nSuggested-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nirjhar Roy (IBM) \u003cnirjhar.roy.lists@gmail.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "4b3284ed006f23fea816141316fe74b7a4c478c6",
      "tree": "b2672df8847d64b6a0e1301c1db805132337ea20",
      "parents": [
        "5f18c380c619150a491a0532f36f86d97eccbca8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Mar 01 17:40:00 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "xfs: remove metafile inodes from the active inode stat\n\nSource kernel commit: 47553dd60b1da88df2354f841a4f71dd4de6478a\n\nThe active inode (or active vnode until recently) stat can get much larger\nthan expected on file systems with a lot of metafile inodes like zoned\nfile systems on SMR hard disks with 10.000s of rtg rmap inodes.\n\nRemove all metafile inodes from the active counter to make it more useful\nto track actual workloads and add a separate counter for active metafile\ninodes.\n\nThis fixes xfs/177 on SMR hard drives.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "5f18c380c619150a491a0532f36f86d97eccbca8",
      "tree": "d06995bb02fdb75b14d6e65b0230715561923bcb",
      "parents": [
        "1dff948c0bbdd6141bcf7ca176a9c3c870472f0f"
      ],
      "author": {
        "name": "Wilfred Mallawa",
        "email": "wilfred.mallawa@wdc.com",
        "time": "Sun Mar 01 17:40:00 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:57 2026 +0200"
      },
      "message": "xfs: fix code alignment issues in xfs_ondisk.c\n\nSource kernel commit: fd81d3fd01a5ee4bd26a7dc440e7a2209277d14b\n\nFixup some code alignment issues in xfs_ondisk.c\n\nSigned-off-by: Wilfred Mallawa \u003cwilfred.mallawa@wdc.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "1dff948c0bbdd6141bcf7ca176a9c3c870472f0f",
      "tree": "498c1cab01a5f416fd2912949e8491f69096d9d3",
      "parents": [
        "e89513b094c0abb790ed6d735249900a0b269219"
      ],
      "author": {
        "name": "Nirjhar Roy (IBM)",
        "email": "nirjhar.roy.lists@gmail.com",
        "time": "Sun Mar 01 17:39:59 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: Refactoring the nagcount and delta calculation\n\nSource kernel commit: a49b7ff63f98ba1c4503869c568c99ecffa478f2\n\nIntroduce xfs_growfs_compute_delta() to calculate the nagcount\nand delta blocks and refactor the code from xfs_growfs_data_private().\nNo functional changes.\n\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nirjhar Roy (IBM) \u003cnirjhar.roy.lists@gmail.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "e89513b094c0abb790ed6d735249900a0b269219",
      "tree": "511bbfa4fbc2e28006ae512c35a152eab9fbb709",
      "parents": [
        "7c7f99c57a13c49b13ff9fbdd922e4a6aa48bfc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 22 14:41:11 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "Convert \u0027alloc_obj\u0027 family to use the new default GFP_KERNEL argument\n\nSource kernel commit: bf4afc53b77aeaa48b5409da5c8da6bb4eff7f43\n\nThis was done entirely with mindless brute force, using\n\ngit grep -l \u0027\\\u003ck[vmz]*alloc_objs*(.*, GFP_KERNEL)\u0027 |\nxargs sed -i \u0027s/\\(alloc_objs*(.*\\), GFP_KERNEL)/\\1)/\u0027\n\nto convert the new alloc_obj() users that had a simple GFP_KERNEL\nargument to just drop that argument.\n\nNote that due to the extreme simplicity of the scripting, any slightly\nmore complex cases spread over multiple lines would not be triggered:\nthey definitely exist, but this covers the vast bulk of the cases, and\nthe resulting diff is also then easier to check automatically.\n\nFor the same reason the \u0027flex\u0027 versions will be done as a separate\nconversion.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c7f99c57a13c49b13ff9fbdd922e4a6aa48bfc1",
      "tree": "02119e20c906dc372bc65cf49520285c7cfdcd6f",
      "parents": [
        "a4bb45b0e5aed51c98238133ed4944973e0b9a97"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees@kernel.org",
        "time": "Sun Feb 22 14:41:11 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "treewide: Replace kmalloc with kmalloc_obj for non-scalar types\n\nSource kernel commit: 69050f8d6d075dc01af7a5f2f550a8067510366f\n\nThis is the result of running the Coccinelle script from\nscripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to\navoid scalar types (which need careful case-by-case checking), and\ninstead replace kmalloc-family calls that allocate struct or union\nobject instances:\n\nSingle allocations:     kmalloc(sizeof(TYPE), ...)\nare replaced with:      kmalloc_obj(TYPE, ...)\n\nArray allocations:      kmalloc_array(COUNT, sizeof(TYPE), ...)\nare replaced with:      kmalloc_objs(TYPE, COUNT, ...)\n\nFlex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)\nare replaced with:      kmalloc_flex(*PTR, FAM, COUNT, ...)\n\n(where TYPE may also be *VAR)\n\nThe resulting allocations no longer return \"void *\", instead returning\n\"TYPE *\".\n\nSigned-off-by: Kees Cook \u003ckees@kernel.org\u003e\n"
    },
    {
      "commit": "a4bb45b0e5aed51c98238133ed4944973e0b9a97",
      "tree": "ac9931804bc9651e21ddbe314d2be7af698756e9",
      "parents": [
        "8d800684e9ef0c362c432dc66ac515b40951a5c1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:11 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: give the defer_relog stat a xs_ prefix\n\nSource kernel commit: edf6078212c366459d3c70833290579b200128b1\n\nMake this counter naming consistent with all the others.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "8d800684e9ef0c362c432dc66ac515b40951a5c1",
      "tree": "33693bf2da10529e04dcbe5e7f0f38ca071585fb",
      "parents": [
        "1edef5ba034f882a54385767b7348b2dbb19e16f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:10 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: add zone reset error injection\n\nSource kernel commit: 41374ae69ec3a910950d3888f444f80678c6f308\n\nAdd a new errortag to test that zone reset errors are handled correctly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: Hans Holmberg \u003chans.holmberg@wdc.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "1edef5ba034f882a54385767b7348b2dbb19e16f",
      "tree": "3a431d5175c85090fa8c3297e457038dc66a4689",
      "parents": [
        "d0dd6ec5156a31e460a1ea8780244f6a1bbb9508"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:10 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: don\u0027t validate error tags in the I/O path\n\nSource kernel commit: b8862a09d8256a9037293f1da3b4617b21de26f1\n\nWe can trust XFS developers enough to not pass random stuff to\nXFS_ERROR_TEST/DELAY.  Open code the validity check in xfs_errortag_add,\nwhich is the only place that receives unvalidated error tag values from\nuser space, and drop the now pointless xfs_errortag_enabled helper.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Hans Holmberg \u003chans.holmberg@wdc.com\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "d0dd6ec5156a31e460a1ea8780244f6a1bbb9508",
      "tree": "19ee2a6dc7533400ddb6f3a035b82f6dcc0350c9",
      "parents": [
        "f61109373545845caf2c2dc041dc2cfcea1db3f2"
      ],
      "author": {
        "name": "Shin Seong-jun",
        "email": "shinsj4653@gmail.com",
        "time": "Sun Feb 22 14:41:10 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: fix spacing style issues in xfs_alloc.c\n\nSource kernel commit: 0ead3b72469e52ca02946b2e5b35fff38bfa061f\n\nFix checkpatch.pl errors regarding missing spaces around assignment\noperators in xfs_alloc_compute_diff() and xfs_alloc_fixup_trees().\n\nAdhere to the Linux kernel coding style by ensuring spaces are placed\naround the assignment operator \u0027\u003d\u0027.\n\nSigned-off-by: Shin Seong-jun \u003cshinsj4653@gmail.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "f61109373545845caf2c2dc041dc2cfcea1db3f2",
      "tree": "ded5bdc2eb632902fa457656ef5ce7bfa2de218f",
      "parents": [
        "7ba08aabba0ca0957c2a76bee0dc86ebbb3e7aee"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:09 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: add a method to replace shortform attrs\n\nSource kernel commit: eaec8aeff31d0679eadb27a13a62942ddbfd7b87\n\nIf we\u0027re trying to replace an xattr in a shortform attr structure and\nthe old entry fits the new entry, we can just memcpy and exit without\nhaving to delete, compact, and re-add the entry (or worse use the attr\nintent machinery).  For parent pointers this only advantages renaming\nwhere the filename length stays the same (e.g. mv autoexec.bat\nscandisk.exe) but for regular xattrs it might be useful for updating\nsecurity labels and the like.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7ba08aabba0ca0957c2a76bee0dc86ebbb3e7aee",
      "tree": "92158766c26c421633f93fbb7c688cf0a6b7223f",
      "parents": [
        "75d34e4a58f5834b8c3bbdf1b040e148ff32286f"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:09 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: speed up parent pointer operations when possible\n\nSource kernel commit: d693534513d8dcdaafcf855986d0fe0476a47462\n\nAfter a recent fsmark benchmarking run, I observed that the overhead of\nparent pointers on file creation and deletion can be a bit high.  On a\nmachine with 20 CPUs, 128G of memory, and an NVME SSD capable of pushing\n750000iops, I see the following results:\n\n$ mkfs.xfs -f -l logdev\u003d/dev/nvme1n1,size\u003d1g /dev/nvme0n1 -n parent\u003d0\nmeta-data\u003d/dev/nvme0n1           isize\u003d512    agcount\u003d40, agsize\u003d9767586 blks\n\u003d                       sectsz\u003d4096  attr\u003d2, projid32bit\u003d1\n\u003d                       crc\u003d1        finobt\u003d1, sparse\u003d1, rmapbt\u003d1\n\u003d                       reflink\u003d1    bigtime\u003d1 inobtcount\u003d1 nrext64\u003d1\n\u003d                       exchange\u003d0   metadir\u003d0\ndata     \u003d                       bsize\u003d4096   blocks\u003d390703440, imaxpct\u003d5\n\u003d                       sunit\u003d0      swidth\u003d0 blks\nnaming   \u003dversion 2              bsize\u003d4096   ascii-ci\u003d0, ftype\u003d1, parent\u003d0\nlog      \u003d/dev/nvme1n1           bsize\u003d4096   blocks\u003d262144, version\u003d2\n\u003d                       sectsz\u003d4096  sunit\u003d1 blks, lazy-count\u003d1\nrealtime \u003dnone                   extsz\u003d4096   blocks\u003d0, rtextents\u003d0\n\u003d                       rgcount\u003d0    rgsize\u003d0 extents\n\u003d                       zoned\u003d0      start\u003d0 reserved\u003d0\n\nSo we created 40 AGs, one per CPU.  Now we create 40 directories and run\nfsmark:\n\n$ time fs_mark  -D  10000  -S  0  -n  100000  -s  0  -L  8 -d ...\n# Version 3.3, 40 thread(s) starting at Wed Dec 10 14:22:07 2025\n# Sync method: NO SYNC: Test does not issue sync() or fsync() calls.\n# Directories:  Time based hash between directories across 10000 subdirectories with 180 seconds per subdirectory.\n# File names: 40 bytes long, (16 initial bytes of time stamp with 24 random bytes at end of name)\n# Files info: size 0 bytes, written with an IO size of 16384 bytes per write\n# App overhead is time in microseconds spent in the test not doing file writing related system calls.\n\nparent\u003d0               parent\u003d1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d     \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nreal    0m57.573s      real    1m2.934s\nuser    3m53.578s      user    3m53.508s\nsys     19m44.440s     sys     25m14.810s\n\n$ time rm -rf ...\n\nparent\u003d0               parent\u003d1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d     \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nreal    0m59.649s      real    1m12.505s\nuser    0m41.196s      user    0m47.489s\nsys     13m9.566s      sys     20m33.844s\n\nParent pointers increase the system time by 28% overhead to create 32\nmillion files that are totally empty.  Removing them incurs a system\ntime increase of 56%.  Wall time increases by 9% and 22%.\n\nFor most filesystems, each file tends to have a single owner and not\nthat many xattrs.  If the xattr structure is shortform, then all xattr\nchanges are logged with the inode and do not require the the xattr\nintent mechanism to persist the parent pointer.\n\nTherefore, we can speed up parent pointer operations by calling the\nshortform xattr functions directly if the child\u0027s xattr is in short\nformat.  Now the overhead looks like:\n\n$ time fs_mark  -D  10000  -S  0  -n  100000  -s  0  -L  8 -d ...\n\nparent\u003d0               parent\u003d1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d     \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nreal    0m58.030s      real    1m0.983s\nuser    3m54.141s      user    3m53.758s\nsys     19m57.003s     sys     21m30.605s\n\n$ time rm -rf ...\n\nparent\u003d0               parent\u003d1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d     \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nreal    0m58.911s      real    1m4.420s\nuser    0m41.329s      user    0m45.169s\nsys     13m27.857s     sys     15m58.564s\n\nNow parent pointers only increase the system time by 8% for creation and\n19% for deletion.  Wall time increases by 5% and 9% now.\n\nClose the performance gap by creating helpers for the attr set, remove,\nand replace operations that will try to make direct shortform updates,\nand fall back to the attr intent machinery if that doesn\u0027t work.  This\nworks for regular xattrs and for parent pointers.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "75d34e4a58f5834b8c3bbdf1b040e148ff32286f",
      "tree": "2b58e93feae17e11a57ffbf907cb635d44af18f6",
      "parents": [
        "31d5bf696c604debe1d368cdfb4b80d17e0eeb63"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:09 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: reduce xfs_attr_try_sf_addname parameters\n\nSource kernel commit: 1ef7729df1f0c5f7bb63a121164f54d376d35835\n\nThe dp parameter to this function is an alias of args-\u003edp, so remove it\nfor clarity before we go adding new callers.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "31d5bf696c604debe1d368cdfb4b80d17e0eeb63",
      "tree": "607a3ad109bf6ab0299eadf5ba35e944fb419260",
      "parents": [
        "eec406054fb1993f54ba0f3135c7c4fb3fa856f4"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:09 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: strengthen attr leaf block freemap checking\n\nSource kernel commit: 27a0c41f33d8d31558d334b07eb58701aab0b3dd\n\nCheck for erroneous overlapping freemap regions and collisions between\nfreemap regions and the xattr leaf entry array.\n\nNote that we must explicitly zero out the extra freemaps in\nxfs_attr3_leaf_compact so that the in-memory buffer has a correctly\ninitialized freemap array to satisfy the new verification code, even if\nsubsequent code changes the contents before unlocking the buffer.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "eec406054fb1993f54ba0f3135c7c4fb3fa856f4",
      "tree": "6e3e9d96eb1d3456527bfc3898beca911245d11b",
      "parents": [
        "726d84515668ad195162e7acbead2e79f021120d"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:08 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: refactor attr3 leaf table size computation\n\nSource kernel commit: a165f7e7633ee0d83926d29e7909fdd8dd4dfadc\n\nReplace all the open-coded callsites with a single static inline helper.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "726d84515668ad195162e7acbead2e79f021120d",
      "tree": "326787e8437c29e4c5eff75d50b223c9263d3c77",
      "parents": [
        "3d1a4fec942dabccf6027e54967783cbfee95411"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:08 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: fix freemap adjustments when adding xattrs to leaf blocks\n\nSource kernel commit: 3eefc0c2b78444b64feeb3783c017d6adc3cd3ce\n\nxfs/592 and xfs/794 both trip this assertion in the leaf block freemap\nadjustment code after ~20 minutes of running on my test VMs:\n\nASSERT(ichdr-\u003efirstused \u003e\u003d ichdr-\u003ecount * sizeof(xfs_attr_leaf_entry_t)\n+ xfs_attr3_leaf_hdr_size(leaf));\n\nUpon enabling quite a lot more debugging code, I narrowed this down to\nfsstress trying to set a local extended attribute with namelen\u003d3 and\nvaluelen\u003d71.  This results in an entry size of 80 bytes.\n\nAt the start of xfs_attr3_leaf_add_work, the freemap looks like this:\n\ni 0 base 448 size 0 rhs 448 count 46\ni 1 base 388 size 132 rhs 448 count 46\ni 2 base 2120 size 4 rhs 448 count 46\nfirstused \u003d 520\n\nwhere \"rhs\" is the first byte past the end of the leaf entry array.\nThis is inconsistent -- the entries array ends at byte 448, but\nfreemap[1] says there\u0027s free space starting at byte 388!\n\nBy the end of the function, the freemap is in worse shape:\n\ni 0 base 456 size 0 rhs 456 count 47\ni 1 base 388 size 52 rhs 456 count 47\ni 2 base 2120 size 4 rhs 456 count 47\nfirstused \u003d 440\n\nImportant note: 388 is not aligned with the entries array element size\nof 8 bytes.\n\nBased on the incorrect freemap, the name area starts at byte 440, which\nis below the end of the entries array!  That\u0027s why the assertion\ntriggers and the filesystem shuts down.\n\nHow did we end up here?  First, recall from the previous patch that the\nfreemap array in an xattr leaf block is not intended to be a\ncomprehensive map of all free space in the leaf block.  In other words,\nit\u0027s perfectly legal to have a leaf block with:\n\n* 376 bytes in use by the entries array\n* freemap[0] has [base \u003d 376, size \u003d 8]\n* freemap[1] has [base \u003d 388, size \u003d 1500]\n* the space between 376 and 388 is free, but the freemap stopped\ntracking that some time ago\n\nIf we add one xattr, the entries array grows to 384 bytes, and\nfreemap[0] becomes [base \u003d 384, size \u003d 0].  So far, so good.  But if we\nadd a second xattr, the entries array grows to 392 bytes, and freemap[0]\ngets pushed up to [base \u003d 392, size \u003d 0].  This is bad, because\nfreemap[1] hasn\u0027t been updated, and now the entries array and the free\nspace claim the same space.\n\nThe fix here is to adjust all freemap entries so that none of them\ncollide with the entries array.  Note that this fix relies on commit\n2a2b5932db6758 (\"xfs: fix attr leaf header freemap.size underflow\") and\nthe previous patch that resets zero length freemap entries to have\nbase \u003d 0.\n\nFixes: 1da177e4c3f415 (\"Linux-2.6.12-rc2\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3d1a4fec942dabccf6027e54967783cbfee95411",
      "tree": "88613c875a5869a5e98832c105778ee6360aa345",
      "parents": [
        "08b2e420e141085223754c28c3ca3ddabce05cbc"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:08 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: delete attr leaf freemap entries when empty\n\nSource kernel commit: 6f13c1d2a6271c2e73226864a0e83de2770b6f34\n\nBack in commit 2a2b5932db6758 (\"xfs: fix attr leaf header freemap.size\nunderflow\"), Brian Foster observed that it\u0027s possible for a small\nfreemap at the end of the end of the xattr entries array to experience\na size underflow when subtracting the space consumed by an expansion of\nthe entries array.  There are only three freemap entries, which means\nthat it is not a complete index of all free space in the leaf block.\n\nThis code can leave behind a zero-length freemap entry with a nonzero\nbase.  Subsequent setxattr operations can increase the base up to the\npoint that it overlaps with another freemap entry.  This isn\u0027t in and of\nitself a problem because the code in _leaf_add that finds free space\nignores any freemap entry with zero size.\n\nHowever, there\u0027s another bug in the freemap update code in _leaf_add,\nwhich is that it fails to update a freemap entry that begins midway\nthrough the xattr entry that was just appended to the array.  That can\nresult in the freemap containing two entries with the same base but\ndifferent sizes (0 for the \"pushed-up\" entry, nonzero for the entry\nthat\u0027s actually tracking free space).  A subsequent _leaf_add can then\nallocate xattr namevalue entries on top of the entries array, leading to\ndata loss.  But fixing that is for later.\n\nFor now, eliminate the possibility of confusion by zeroing out the base\nof any freemap entry that has zero size.  Because the freemap is not\nintended to be a complete index of free space, a subsequent failure to\nfind any free space for a new xattr will trigger block compaction, which\nregenerates the freemap.\n\nIt looks like this bug has been in the codebase for quite a long time.\n\nFixes: 1da177e4c3f415 (\"Linux-2.6.12-rc2\")\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "08b2e420e141085223754c28c3ca3ddabce05cbc",
      "tree": "d295dbd47186fcdd89a1aef1704c75f1c8cea405",
      "parents": [
        "521c29955c4c0d35980e8c9761c6158b66aaecd8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:07 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: split and refactor zone validation\n\nSource kernel commit: 19c5b6051ed62d8c4b1cf92e463c1bcf629107f4\n\nCurrently xfs_zone_validate mixes validating the software zone state in\nthe XFS realtime group with validating the hardware state reported in\nstruct blk_zone and deriving the write pointer from that.\n\nMove all code that works on the realtime group to xfs_init_zone, and only\nkeep the hardware state validation in xfs_zone_validate.  This makes the\ncode more clear, and allows for better reuse in userspace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "521c29955c4c0d35980e8c9761c6158b66aaecd8",
      "tree": "3ecc84f83722023ca2c1fdb9cf7abeb5f524e9b7",
      "parents": [
        "df9839b1dd08a320c998dfd8de0919a9a035752a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:07 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: add a xfs_rtgroup_raw_size helper\n\nSource kernel commit: fc633b5c5b80c1d840b7a8bc2828be96582c6b55\n\nAdd a helper to figure the on-disk size of a group, accounting for the\nXFS_SB_FEAT_INCOMPAT_ZONE_GAPS feature if needed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "df9839b1dd08a320c998dfd8de0919a9a035752a",
      "tree": "21e1745709a455c292680b711db55184c54dfb73",
      "parents": [
        "13bfe767e0581811d964405e3559cfbfef241920"
      ],
      "author": {
        "name": "Damien Le Moal",
        "email": "dlemoal@kernel.org",
        "time": "Sun Feb 22 14:41:07 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: add missing forward declaration in xfs_zones.h\n\nSource kernel commit: 41263267ef26d315b1425eb9c8a8d7092f9db7c8\n\nAdd the missing forward declaration for struct blk_zone in xfs_zones.h.\nThis avoids headaches with the order of header file inclusion to avoid\ncompilation errors.\n\nSigned-off-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "13bfe767e0581811d964405e3559cfbfef241920",
      "tree": "dc1a92ac3f8aa85bae1d3386acc2d09586a34eed",
      "parents": [
        "d73928379174c0f99e1d557b8088eefa439177ba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:07 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: remove xfs_attr_leaf_hasname\n\nSource kernel commit: 3a65ea768b8094e4699e72f9ab420eb9e0f3f568\n\nThe calling convention of xfs_attr_leaf_hasname() is problematic, because\nit returns a NULL buffer when xfs_attr3_leaf_read fails, a valid buffer\nwhen xfs_attr3_leaf_lookup_int returns -ENOATTR or -EEXIST, and a\nnon-NULL buffer pointer for an already released buffer when\nxfs_attr3_leaf_lookup_int fails with other error values.\n\nFix this by simply open coding xfs_attr_leaf_hasname in the callers, so\nthat the buffer release code is done by each caller of\nxfs_attr3_leaf_read.\n\nFixes: 07120f1abdff (\"xfs: Add xfs_has_attr and subroutines\")\nReported-by: Mark Tinguely \u003cmark.tinguely@oracle.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "d73928379174c0f99e1d557b8088eefa439177ba",
      "tree": "086a2ce5366098ceec291078fc107fbed9516e49",
      "parents": [
        "319921d5773b4a638a1d3b756481ed484c29abbf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:06 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: directly include xfs_platform.h\n\nSource kernel commit: cf9b52fa7d65362b648927d1d752ec99659f5c43\n\nThe xfs.h header conflicts with the public xfs.h in xfsprogs, leading\nto a spurious difference in all shared libxfs files that have to\ninclude libxfs_priv.h in userspace.  Directly include xfs_platform.h so\nthat we can add a header of the same name to xfsprogs and remove this\nmajor annoyance for the shared code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "319921d5773b4a638a1d3b756481ed484c29abbf",
      "tree": "40dedbf5f34f9d8f849450fb0a61ff656bac2e13",
      "parents": [
        "b669642fe6fab7b2191e82c51aa02b9706fa61fb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Feb 22 14:41:05 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: move struct xfs_log_iovec to xfs_log_priv.h\n\nSource kernel commit: 027410591418bded6ba6051151d88fc6fb8a7614\n\nThis structure is now only used by the core logging and CIL code.\n\nAlso remove the unused typedef.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "b669642fe6fab7b2191e82c51aa02b9706fa61fb",
      "tree": "df475438b6658e0285febb7746ff11b086a4346f",
      "parents": [
        "ac360cbefe209581cab45f6b9a6ed536dbffa123"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:05 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: add media verification ioctl\n\nSource kernel commit: b8accfd65d31f25b9df15ec2419179b6fa0b21d5\n\nAdd a new privileged ioctl so that xfs_scrub can ask the kernel to\nverify the media of the devices backing an xfs filesystem, and have any\nresulting media errors reported to fsnotify and xfs_healer.\n\nTo accomplish this, the kernel allocates a folio between the base page\nsize and 1MB, and issues read IOs to a gradually incrementing range of\none of the storage devices underlying an xfs filesystem.  If any error\noccurs, that raw error is reported to the calling process.  If the error\nhappens to be one of the ones that the kernel considers indicative of\ndata loss, then it will also be reported to xfs_healthmon and fsnotify.\n\nDriving the verification from the kernel enables xfs (and by extension\nxfs_scrub) to have precise control over the size and error handling of\nIOs that are issued to the underlying block device, and to emit\nnotifications about problems to other relevant kernel subsystems\nimmediately.\n\nNote that the caller is also allowed to reduce the size of the IO and\nto ask for a relaxation period after each IO.\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ac360cbefe209581cab45f6b9a6ed536dbffa123",
      "tree": "876979069b07bafb3369e798081cad1caf26463f",
      "parents": [
        "00cb02ecf24b273b4bd9ab158bfa2e6e1a301a63"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Sun Feb 22 14:41:05 2026 -0800"
      },
      "committer": {
        "name": "Andrey Albershteyn",
        "email": "aalbersh@kernel.org",
        "time": "Wed Apr 08 21:39:56 2026 +0200"
      },
      "message": "xfs: check if an open file is on the health monitored fs\n\nSource kernel commit: 8b85dc4090e1c72c6d42acd823514cce67cd54fc\n\nCreate a new ioctl for the healthmon file that checks that a given fd\npoints to the same filesystem that the healthmon file is monitoring.\nThis allows xfs_healer to check that when it reopens a mountpoint to\nperform repairs, the file that it gets matches the filesystem that\ngenerated the corruption report.\n\n(Note that xfs_healer doesn\u0027t maintain an open fd to a filesystem that\nit\u0027s monitoring so that it doesn\u0027t pin the mount.)\n\nSigned-off-by: \"Darrick J. Wong\" \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    }
  ],
  "next": "00cb02ecf24b273b4bd9ab158bfa2e6e1a301a63"
}
