)]}'
{
  "log": [
    {
      "commit": "06c5079f03874d1d6b2bd951356d6ccdbf17144f",
      "tree": "f7edc381138d71650f76e3f8fb406b2c26f7e3e6",
      "parents": [
        "8722b157a14016addf6e455cc7ff58ef42119a72"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Sep 10 17:11:12 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Sep 10 17:11:12 2024 +0200"
      },
      "message": "xfsprogs: Release v6.11.0\n\nUpdate all the necessary files for a v6.11.0 release.\n\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "8722b157a14016addf6e455cc7ff58ef42119a72",
      "tree": "3a42aa0879e3895f91d579b4cbf8c371701bd4f8",
      "parents": [
        "a48445cb16d64d1d3e4403d1a511796ff41a120a"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Mon Nov 20 15:39:30 2023 +0100"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Sep 10 16:17:25 2024 +0200"
      },
      "message": "libxfs-apply: Add option to only import patches into guilt stack\n\nThe script automatically detects the existence of a guilt stack, but\nonly conflict resolution mechanisms so far are either skip the patch or\nfail the process.\n\nIt\u0027s easier to fix conflicts if all the patches are stacked in guilt, so\nadd an option to stack all the patches into guilt, without applying them,\nfor post-processing and conflict resolution in case automatic import fails.\n\nstgit doesn\u0027t seem to have a way to import patches into its stack, so,\nthere is no similar patch aiming stgit.\n\nThe order of commits added to $commit_list also needs to be reversed\nwhen only importing patches to the guilt stack.\n\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "a48445cb16d64d1d3e4403d1a511796ff41a120a",
      "tree": "c9d71e1e2515c1890c8d70891b368a48edf83db8",
      "parents": [
        "fde42a497dba52bcf1faaf0f6ae50707a3d06b29"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Mon Nov 20 15:36:34 2023 +0100"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Sep 10 16:16:30 2024 +0200"
      },
      "message": "libxf-apply: Ignore Merge commits\n\nMerge commits in the kernel tree, only polutes the patch list to be\nimported into libxfs, explicitly ignore them.\n\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "fde42a497dba52bcf1faaf0f6ae50707a3d06b29",
      "tree": "ef93b749a58b0260f360814bb56c33ad98071a38",
      "parents": [
        "1f19ad060df5325062d5a28a5aa78bf0266bf37d"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Wed Sep 04 12:53:45 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Wed Sep 04 12:53:45 2024 +0200"
      },
      "message": "xfsprogs: Release v6.10.1\n\nUpdate all the necessary files for a v6.10.1 release.\n\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "1f19ad060df5325062d5a28a5aa78bf0266bf37d",
      "tree": "1c617ad078b944d6f9fbc188686569641dfc5e9d",
      "parents": [
        "19c550c3960f6f8b2f3eb6ae95f2e4788da92c94"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Wed Sep 04 12:49:52 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Wed Sep 04 12:49:52 2024 +0200"
      },
      "message": "xfs: fix C++ compilation errors in xfs_fs.h\n\nSource kernel commit: 64dfa18d6e322034c8a30b080f4c380a0b20bb7f\n\nSeveral people reported C++ compilation errors due to things that C\ncompilers allow but C++ compilers do not.  Fix both of these problems,\nand hope there aren\u0027t more of these brown paper bags in 2 months when we\nfinally get these fixes through the process into a released xfsprogs.\n\nNOTE: I am submitting this bugfix over the objections of a former\nmaintainer, who insists that we should remove this function from the\npublished userspace ABI instead of fixing the C++ compilation errors.\nNo deprecation period, no discussion, just a hard drop of an already\nprovided and correct C function, which would be in contravention of\nLinus\u0027 rules.  IOWs, removing ABI that have already shipped in a\nreleased kernel requires a careful deprecation period, so I will let\nthat maintainer run that process.\n\nReported-by: kernel@mattwhitlock.name\nReported-by: sam@gentoo.org\nCloses: https://bugzilla.kernel.org/show_bug.cgi?id\u003d219203\nFixes: 233f4e12bbb2c (\"xfs: add parent pointer ioctls\")\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "19c550c3960f6f8b2f3eb6ae95f2e4788da92c94",
      "tree": "bd1cc2e24382cc4c8b1d6d6f60d61911eba0be5f",
      "parents": [
        "ac1f1c2b24dc7b1b769025e5b42f277fdfc57ac1"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Mon Aug 26 11:24:43 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Mon Aug 26 11:48:43 2024 +0200"
      },
      "message": "xfsprogs: Release v6.10.0\n\nUpdate all the necessary files for a v6.10.0 release.\n\nSigned-off-by: Carlos Maiolino \u003ccem@kernel.org\u003e\n"
    },
    {
      "commit": "ac1f1c2b24dc7b1b769025e5b42f277fdfc57ac1",
      "tree": "81764584009c0cda51c9c23d63a3a9a923599ba7",
      "parents": [
        "8b70d7a070ed554835924134e874f54b51366fd9",
        "45cc055588f4dcc7a2951dd226dd5e64f5e165da"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Fri Aug 09 10:25:11 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Fri Aug 09 10:25:11 2024 +0200"
      },
      "message": "Merge tag \u0027debian-autofsck-6.10_2024-08-08\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\ndebian: enable xfs_scrub_all by default [v30.11 2/2]\n\nUpdate our packaging to enable the background xfs_scrub timer by default.\nThis won\u0027t do much unless the sysadmin sets the autofsck fs property or\nformats a filesystem with backref metadata.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "8b70d7a070ed554835924134e874f54b51366fd9",
      "tree": "fef69618d076d6b692429d8fba11816aa00a0dcb",
      "parents": [
        "0cc863935691308e16903ffc6f53208f18e2a158",
        "7fd2c79b3343e4562b4176728e4dd71b187bbbc9"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Fri Aug 09 10:24:47 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Fri Aug 09 10:24:47 2024 +0200"
      },
      "message": "Merge tag \u0027autofsck-6.10_2024-08-08\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: admin control of automatic fsck [v30.11 1/2]\n\nNow that we have the ability to set per-filesystem properties, teach the\nbackground xfs_scrub service to pick up advice from the filesystem that it\nwants to examine, and pick a mode from that.  We\u0027re only going to enable this\nby default for newer filesystems.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "45cc055588f4dcc7a2951dd226dd5e64f5e165da",
      "tree": "7be836a33b5ecdac4c46ae0b939fd0b352297ce5",
      "parents": [
        "7fd2c79b3343e4562b4176728e4dd71b187bbbc9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "message": "debian: enable xfs_scrub_all systemd timer services by default\n\nNow that we\u0027re finished building online fsck, enable the periodic\nbackground scrub service by default.  This involves the postinst script\nstarting the resource management slice and the timer.\n\nNo other sub-services need to be enabled or unmasked explicitly.  They\nalso shouldn\u0027t be started or restarted because that might interrupt\nbackground operation unnecessarily.\n\nAlthough the xfs_scrub_all timer is activated by default, the individual\nxfs_scrub@ services that it spawns will only do real work on filesystems\nthat are new enough to have back reference metadata available.  This\navoids surprises for people who are upgrading Debian; only new installs\nwith new mkfs will get any automatic fsck behavior.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7fd2c79b3343e4562b4176728e4dd71b187bbbc9",
      "tree": "28663a9ecdf81c6bb4672b7a6ff7f480c5043738",
      "parents": [
        "7da76e2745d6a742462b588f552538bb9fb9ac6c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "message": "mkfs: set autofsck filesystem property\n\nAdd a new mkfs option -m autofsck so that sysadmins can control the\nbackground scrubbing behavior of filesystems from the start.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7da76e2745d6a742462b588f552538bb9fb9ac6c",
      "tree": "c610d668ce2518363fcb80372d5295d548c7448a",
      "parents": [
        "9451b5ee0d0d2d4653b3334ca79c74cdc24e0a4b"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "message": "xfs_scrub: use the autofsck fsproperty to select mode\n\nNow that we can set properties on xfs filesystems, make the xfs_scrub\nbackground service query the autofsck property to figure out which\noperating 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": "9451b5ee0d0d2d4653b3334ca79c74cdc24e0a4b",
      "tree": "b1428462cc4644a1ad3c84d282ec4dd99ce08712",
      "parents": [
        "ac69d5ab2889ae00b901a3ce681a39de1b0e449b"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "message": "xfs_scrub: allow sysadmin to control background scrubs\n\nAdd an extended option -o autofsck to xfs_scrub so that it selects the\noperation mode from the \"autofsck\" filesystem property.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ac69d5ab2889ae00b901a3ce681a39de1b0e449b",
      "tree": "26c28f0f2676db1bd19c1948488dd8dc23dcfa11",
      "parents": [
        "7c3bfb6fc26366a9fcb0a94d7531b6cb83fa956d"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "message": "libfrog: define a autofsck filesystem property\n\nNow that we have the ability to set properties on filesystems, create an\n\"autofsck\" property so that sysadmins can control background xfs_scrub\nbehaviors.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7c3bfb6fc26366a9fcb0a94d7531b6cb83fa956d",
      "tree": "7f40013f06d6385de51ab3d3f8b96d2023b25fd5",
      "parents": [
        "dfcdf16cc753f5d3ac18b3c2eb8eca79a6c94690"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "message": "xfs_property: add a new tool to administer fs properties\n\nCreate a tool to list, get, set, and remove filesystem properties.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nAcked-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "dfcdf16cc753f5d3ac18b3c2eb8eca79a6c94690",
      "tree": "5309985f4ea706859677eb5e17b36a3d0782a985",
      "parents": [
        "6215e8d357ca8489dec5c60f171d9be826b43609"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:48 2024 -0700"
      },
      "message": "xfs_db: add a command to list xattrs\n\nAdd a command to list extended attributes from xfs_db.  We\u0027ll need this\nlater to manage the fs properties when unmounted.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "6215e8d357ca8489dec5c60f171d9be826b43609",
      "tree": "d67d08ca08f5732ec48bf342797991f1be951400",
      "parents": [
        "a1ae399a5eaabf29a39b7135b4d54894cd44c8a8"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "message": "libxfs: pass a transaction context through listxattr\n\nPass a transaction context so that a new caller can walk the attr names\nand query the values all in one go without deadlocking on nested buffer\naccess.\n\nWhile we\u0027re at it, make the existing xfs_repair callers try to use\nempty transactions so that we don\u0027t deadlock on cycles in the xattr\nstructure.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "a1ae399a5eaabf29a39b7135b4d54894cd44c8a8",
      "tree": "46e39d594416eeb706e222417aef129d01c3e312",
      "parents": [
        "9b4c9c608967846dab1059ac62c759847013b7c6"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "message": "libxfs: hoist listxattr from xfs_repair\n\nHoist the listxattr code from xfs_repair so that we can use it in\nxfs_db.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "9b4c9c608967846dab1059ac62c759847013b7c6",
      "tree": "2394d113fd0158a275f6822688eb780aa0bbb794",
      "parents": [
        "d194cb818305a53c3f4194b9571c064be9ec86af"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "message": "xfs_db: improve getting and setting extended attributes\n\nAdd an attr_get command to retrieve the value of an xattr from a file;\nand extend the attr_set command to allow passing of string values.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "d194cb818305a53c3f4194b9571c064be9ec86af",
      "tree": "074985856407ad50c81344bd1e054ce93dca580c",
      "parents": [
        "47aa17b5acd5d226ca4ebfd62f2e1c62b26bfa32"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "message": "xfs_io: edit filesystem properties\n\nAdd new subcommands to xfs_io so that users can administer filesystem\nproperties.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nAcked-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "47aa17b5acd5d226ca4ebfd62f2e1c62b26bfa32",
      "tree": "a9cdabef4719fb2e62b11f04f689370ffc39b513",
      "parents": [
        "5a43a00432ebe9ab8b54155703a9eb9e1a1dd4ec"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Thu Aug 08 09:38:47 2024 -0700"
      },
      "message": "libfrog: support editing filesystem property sets\n\nAdd some library functions so that spaceman and scrub can share the same\ncode to edit and retrieve filesystem properties.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "0cc863935691308e16903ffc6f53208f18e2a158",
      "tree": "15c5abb885ae0355bcee46ed7ddb37d2004307ff",
      "parents": [
        "7df134231479885821783e4620bb08dc5e63fb51",
        "5a43a00432ebe9ab8b54155703a9eb9e1a1dd4ec"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:50:38 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:50:38 2024 +0200"
      },
      "message": "Merge tag \u0027repair-fixes-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_repair: fixes for kernel 6.10 [v30.9 23/28]\n\nFix some incorrect validation problems in xfs_repair.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "7df134231479885821783e4620bb08dc5e63fb51",
      "tree": "8d0ce2bfecc16dd434c8f9e3f05957e4e6739664",
      "parents": [
        "faa07d835f5f6ed5aab6946ec8497e8cc1cf55b7",
        "df914edeeb1e1919831192951d657cfc73b46418"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:50:18 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:50:18 2024 +0200"
      },
      "message": "Merge tag \u0027vectorized-scrub-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: vectorize kernel calls [v30.9 22/28]\n\nCreate a vectorized version of the metadata scrub and repair ioctl, and\nadapt xfs_scrub to use that.  This is an experiment to measure overhead\nand to try refactoring xfs_scrub.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "faa07d835f5f6ed5aab6946ec8497e8cc1cf55b7",
      "tree": "434273ea507e82a640485eca52c2ff30b59d9fa2",
      "parents": [
        "34052f31e3af6fb4f24b6617a09aead54de84328",
        "5a30504f0c60e10dc0cecd201c5afc18083fd0ac"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:50:08 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:50:08 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-directory-tree-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: detect and correct directory tree problems [v13.8 21/28]\n\nHistorically, checking the tree-ness of the directory tree structure has\nnot been complete.  Cycles of subdirectories break the tree properties,\nas do subdirectories with multiple parents.  It\u0027s easy enough for DFS to\ndetect problems as long as one of the participants is reachable from the\nroot, but this technique cannot find unconnected cycles.\n\nDirectory parent pointers change that, because we can discover all of\nthese problems from a simple walk from a subdirectory towards the root.\nFor each child we start with, if the walk terminates without reaching\nthe root, we know the path is disconnected and ought to be attached to\nthe lost and found.  If we find ourselves, we know this is a cycle and\ncan delete an incoming edge.  If we find multiple paths to the root, we\nknow to delete an incoming edge.\n\nEven better, once we\u0027ve finished walking paths, we\u0027ve identified the\ngood ones and know which other path(s) to remove.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "34052f31e3af6fb4f24b6617a09aead54de84328",
      "tree": "68404e694a269de5e29bf0ec338fcbdd473a4b75",
      "parents": [
        "edce07cc553d9bdcef5f5fabbfa1fe8cc35193b6",
        "7ea215189a3cac45cb9323439318fcc3410727d4"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:48 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:48 2024 +0200"
      },
      "message": "Merge tag \u0027repair-pptrs-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: offline repair for parent pointers [v13.8 20/28]\n\nThis series implements online checking and repair for directory parent\npointer metadata.  The checking half is fairly straightforward -- for\neach outgoing directory link (forward or backwards), grab the inode at\nthe other end, and confirm that there\u0027s a corresponding link.  If we\ncan\u0027t grab an inode or lock it, we\u0027ll save that link for a slower loop\nthat cycles all the locks, confirms the continued existence of the link,\nand rechecks the link if it\u0027s actually still there.\n\nRepairs are a bit more involved -- for directories, we walk the entire\nfilesystem to rebuild the dirents from parent pointer information.\nParent pointer repairs do the same walk but rebuild the pptrs from the\ndirent information, but with the added twist that it duplicates all the\nxattrs so that it can use the atomic extent swapping code to commit the\nrepairs atomically.\n\nThis introduces an added twist to the xattr repair code -- we use dirent\nhooks to detect a colliding update to the pptr data while we\u0027re not\nholding the ILOCKs; if one is detected, we restart the xattr salvaging\nprocess but this time hold all the ILOCKs until the end of the scan.\n\nFor offline repair, the phase6 directory connectivity scan generates an\nindex of all the expected parent pointers in the filesystem.  Then it\nwalks each file and compares the parent pointers attached to that file\nagainst the index generated, and resyncs the results as necessary.\n\nThe last patch teaches xfs_scrub to report pathnames of files that are\nbeing repaired, when possible.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "edce07cc553d9bdcef5f5fabbfa1fe8cc35193b6",
      "tree": "117e80855a7c6f8c3ad017fd5e0dd3412c38b4b5",
      "parents": [
        "00b2fff3f6cbb7871784800fe6e31742e06d5b00",
        "4b327cc2f5d03b772dd6d3352cbe28452cd41ef0"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:36 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:36 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-pptrs-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: scrubbing for parent pointers [v13.8 19/28]\n\nTeach online fsck to use parent pointers to assist in checking\ndirectories, parent pointers, extended attributes, and link counts.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "00b2fff3f6cbb7871784800fe6e31742e06d5b00",
      "tree": "07a682b987aa694b7cdd542546b581ac9880c9eb",
      "parents": [
        "7a3563ea851c315f0f54c0218de607631bad6ac6",
        "b2677fa4f4009abf8de4c15960a2e97dd5370d41"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:21 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:21 2024 +0200"
      },
      "message": "Merge tag \u0027pptrs-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: Parent Pointers [v13.8 18/28]\n\nThis is the latest parent pointer attributes for xfs.  The goal of this\npatch set is to add a parent pointer attribute to each inode.  The\nattribute name containing the parent inode, generation, and directory\noffset, while the  attribute value contains the file name.  This feature\nwill enable future optimizations for online scrub, shrink, nfs handles,\nverity, or any other feature that could make use of quickly deriving an\ninodes path from the mount point.\n\nDirectory parent pointers are stored as namespaced extended attributes\nof a file.  Because parent pointers are an indivisible tuple of\n(dirent_name, parent_ino, parent_gen) we cannot use the usual attr name\nlookup functions to find a parent pointer.  This is solvable by\nintroducing a new lookup mode that checks both the name and the value of\nthe xattr.\n\nTherefore, introduce this new name-value lookup mode that\u0027s gated on the\nXFS_ATTR_PARENT namespace.  This requires the introduction of new\nopcodes for the extended attribute update log intent items, which\nactually means that parent pointers (itself an INCOMPAT feature) does\nnot depend on the LOGGED_XATTRS log incompat feature bit.\n\nTo reduce collisions on the dirent names of parent pointers, introduce a\nnew attr hash mode that is the dir2 namehash of the dirent name xor\u0027d\nwith the parent inode number.\n\nAt this point, Allison has moved on to other things, so I\u0027ve merged her\npatchset into djwong-dev for merging.\n\nUpdates since v12 [djwong]:\n\nRebase on 6.9-rc and update the online fsck design document.\nRedesign the ondisk format to use the name-value lookups to get us back\nto the point where the attr is (dirent_name -\u003e parent_ino/gen).\n\nUpdates since v11 [djwong]:\n\nRebase on 6.4-rc and make some tweaks and bugfixes to enable the repair\nprototypes.  Merge with djwong-dev and make online repair actually work.\n\nUpdates since v10 [djwong]:\n\nMerge in the ondisk format changes to get rid of the diroffset conflicts\nwith the parent pointer repair code, rebase the entire series with the\nattr vlookup changes first, and merge all the other random fixes.\n\nUpdates since v9:\n\nReordered patches 2 and 3 to be 6 and 7\n\nxfs: Add xfs_verify_pptr\n   moved parent pointer validators to xfs_parent\n\nxfs: Add parent pointer ioctl\n   Extra validation checks for fs id\n   added missing release for the inode\n   use GFP_KERNEL flags for malloc/realloc\n   reworked ioctl to use pptr listenty and flex array\n\nNEW\n   xfs: don\u0027t remove the attr fork when parent pointers are enabled\n\nNEW\n   directory lookups should return diroffsets too\n\nNEW\n   xfs: move/add parent pointer validators to xfs_parent\n\nUpdates since v8:\n\nxfs: parent pointer attribute creation\n   Fix xfs_parent_init to release log assist on alloc fail\n   Add slab cache for xfs_parent_defer\n   Fix xfs_create to release after unlock\n   Add xfs_parent_start and xfs_parent_finish wrappers\n   removed unused xfs_parent_name_irec and xfs_init_parent_name_irec\n\nxfs: add parent attributes to link\n   Start/finish wrapper updates\n   Fix xfs_link to disallow reservationless quotas\n\nxfs: add parent attributes to symlink\n   Fix xfs_symlink to release after unlock\n   Start/finish wrapper updates\n\nxfs: remove parent pointers in unlink\n   Start/finish wrapper updates\n   Add missing parent free\n\nxfs: Add parent pointers to rename\n   Start/finish wrapper updates\n   Fix rename to only grab logged xattr once\n   Fix xfs_rename to disallow reservationless quotas\n   Fix double unlock on dqattach fail\n   Move parent frees to out_release_wip\n\nxfs: Add parent pointers to xfs_cross_rename\n   Hoist parent pointers into rename\n\nQuestions comments and feedback appreciated!\n\nThanks all!\nAllison\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "7a3563ea851c315f0f54c0218de607631bad6ac6",
      "tree": "8b506d4c9c40129e09c1eeeaeb21d956b5929f99",
      "parents": [
        "97570c9764ba10f1adcafc9fd8574b1c17a1c990",
        "2823d8ed93da2bd3880abb52a58e91a920961e27"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:06 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:49:06 2024 +0200"
      },
      "message": "Merge tag \u0027improve-attr-validation-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: improve extended attribute validation [v13.8 17/28]\n\nPrior to introducing parent pointer extended attributes, let\u0027s spend\nsome time cleaning up the attr code and strengthening the validation\nthat it performs on attrs coming in from the disk.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "97570c9764ba10f1adcafc9fd8574b1c17a1c990",
      "tree": "3ead48a48c30b356de78649ec2ebac848f6d47e5",
      "parents": [
        "673f24ec8200ee3e7083cbe1349178f0468c9225",
        "e46249ec0b96ac5ced5b49928d3b3865b6d9546c"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:48:55 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:48:55 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-all-improve-systemd-handling-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub_all: improve systemd handling [v30.9 16/28]\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "673f24ec8200ee3e7083cbe1349178f0468c9225",
      "tree": "8bc8c5f36ba7fb705c56c8a13e0a844c4dc5ebf3",
      "parents": [
        "aa9a4293b44b3f579c64f550c6551b3483d06d04",
        "e040916f649f71fb6a695dfcc6f6c9f576c5c4db"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:48:39 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:48:39 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-media-scan-service-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub_all: automatic media scan service [v30.9 15/28]\n\nNow that we\u0027ve completed the online fsck functionality, there are a few\nthings that could be improved in the automatic service.  Specifically,\nwe would like to perform a more intensive metadata + media scan once per\nmonth, to give the user confidence that the filesystem isn\u0027t losing data\nsilently.  To accomplish this, enhance xfs_scrub_all to be able to\ntrigger media scans.  Next, add a duplicate set of system services that\nstart the media scans automatically.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "aa9a4293b44b3f579c64f550c6551b3483d06d04",
      "tree": "1d79393846d325d3fb02b5f9acfb07b64628b92c",
      "parents": [
        "cc4a2d4ee566783f8e8b0e7ae670398d35496e0d",
        "50411335572120153cc84d54213cd5ca9dd11b14"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:48:23 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:48:23 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-service-security-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: tighten security of systemd services [v30.9 14/28]\n\nTo reduce the risk of the online fsck service suffering some sort of\ncatastrophic breach that results in attackers reconfiguring the running\nsystem, I embarked on a security audit of the systemd service files.\nThe result should be that all elements of the background service\n(individual scrub jobs, the scrub_all initiator, and the failure\nreporting) run with as few privileges and within as strong of a sandbox\nas possible.\n\nGranted, this does nothing about the potential for the /kernel/ screwing\nup, but at least we could prevent obvious container escapes.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "cc4a2d4ee566783f8e8b0e7ae670398d35496e0d",
      "tree": "cede486cfab2c47d1792aa412e434733df1a3f09",
      "parents": [
        "3dab1af58bdd37db30021c4dead55402248bd65b",
        "34bed605490f936c3ead49e2e1cad78505260461"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:58 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:58 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-fstrim-minlen-freesp-histogram-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: use free space histograms to reduce fstrim runtime [v30.9 13/28]\n\nThis patchset dramatically reduces the runtime of the FITRIM calls made\nduring phase 8 of xfs_scrub.  It turns out that phase 8 can really get\nbogged down if the free space contains a large number of very small\nextents.  In these cases, the runtime can increase by an order of\nmagnitude to free less than 1%% of the free space.  This is not worth the\ntime, since we\u0027re spending a lot of time to do very little work.  The\nFITRIM ioctl allows us to specify a minimum extent length, so we can use\nstatistical methods to compute a minlen parameter.\n\nIt turns out xfs_db/spaceman already have the code needed to create\nhistograms of free space extent lengths.  We add the ability to compute\na CDF of the extent lengths, which make it easy to pick a minimum length\ncorresponding to 99%% of the free space.  In most cases, this results in\ndramatic reductions in phase 8 runtime.  Hence, move the histogram code\nto libfrog, and wire up xfs_scrub, since phase 7 already walks the\nfsmap.\n\nWe also add a new -o suboption to xfs_scrub so that people who /do/ want\nto examine every free extent can do so.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "3dab1af58bdd37db30021c4dead55402248bd65b",
      "tree": "1e62bce66b4de63ddf660e239d4fed26d8cf0a46",
      "parents": [
        "8dfca6229488ae855270251a347a7d7ed6e34399",
        "5ccdd24dc9987b50333332b7381ff1a305e67ef7"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:46 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:46 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-fstrim-phase-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: move fstrim to a separate phase [v30.9 12/28]\n\nBack when I originally designed xfs_scrub, all filesystem metadata\nchecks were complete by the end of phase 3, and phase 4 was where all\nthe metadata repairs occurred.  On the grounds that the filesystem\nshould be fully consistent by then, I made a call to FITRIM at the end\nof phase 4 to discard empty space in the filesystem.\n\nUnfortunately, that\u0027s no longer the case -- summary counters, link\ncounts, and quota counters are not checked until phase 7.  It\u0027s not safe\nto instruct the storage to unmap \"empty\" areas if we don\u0027t know where\nthose empty areas are, so we need to create a phase 8 to trim the fs.\nWhile we\u0027re at it, make it more obvious that fstrim only gets to run if\nthere are no unfixed corruptions and no other runtime errors have\noccurred.\n\nFinally, reduce the latency impacts on the rest of the system by\nbreaking up the fstrim work into a loop that targets only 16GB per call.\nThis enables better progress reporting for interactive runs and cgroup\nbased resource constraints for background runs.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "8dfca6229488ae855270251a347a7d7ed6e34399",
      "tree": "055ba99134e9007e47ae571ffc067e14c6364a01",
      "parents": [
        "aaf930f5168411e4bb3745cea387b0e9975ce325",
        "746ee95b71649b4ae515893ffa3bbe7b5e815d0d"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:28 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:28 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-detect-deceptive-extensions-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: detect deceptive filename extensions [v30.9 11/28]\n\nIn early 2023, malware researchers disclosed a phishing attack that was\ntargeted at people running Linux workstations.  The attack vector\ninvolved the use of filenames containing what looked like a file\nextension but instead contained a lookalike for the full stop (\".\")\nand a common extension (\"pdf\").  Enhance xfs_scrub phase 5 to detect\nthese types of attacks and warn the system administrator.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "aaf930f5168411e4bb3745cea387b0e9975ce325",
      "tree": "f640a936ad39f20aea315f7dd586404459c64885",
      "parents": [
        "e1d04345ac1faebd043d0c2dc9b560b6b366c6f8",
        "474ff27d466c053f1cd51024e6b0c5a741a2d4bd"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:09 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:47:09 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-repair-scheduling-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: improve scheduling of repair items [v30.9 10/28]\n\nCurrently, phase 4 of xfs_scrub uses per-AG repair item lists to\nschedule repair work across a thread pool.  This scheme is suboptimal\nwhen most of the repairs involve a single AG because all the work gets\ndumped on a single pool thread.\n\nInstead, we should create a thread pool with the same number of workers\nas CPUs, and dispatch individual repair tickets as separate work items\nto maximize parallelization.\n\nHowever, we also need to ensure that repairs to space metadata and file\nmetadata are kept in separate queues because file repairs generally\ndepend on correctness of space metadata.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "e1d04345ac1faebd043d0c2dc9b560b6b366c6f8",
      "tree": "5409eb0c08a426a30852af3cb6344b14d2c75989",
      "parents": [
        "680c6f3a4707f33afeb7eeaf7671e916bc2df5ce",
        "8dd67c8eccbe0e6b8dd7975ba53f9ccaf532aa9c"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:46:57 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:46:57 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-object-tracking-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: use scrub_item to track check progress [v30.9 09/28]\n\nNow that we\u0027ve introduced tickets to track the status of repairs to a\nspecific principal XFS object (fs, ag, file), use them to track the\nscrub state of those same objects.  Ultimately, we want to make it easy\nto introduce vectorized repair, where we send a batch of repair requests\nto the kernel instead of making millions of ioctl calls.  For now,\nhowever, we\u0027ll settle for easier bookkeepping.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "680c6f3a4707f33afeb7eeaf7671e916bc2df5ce",
      "tree": "c3f597f27c800b36dc4b285b96ba9b84f66c0613",
      "parents": [
        "80a327fc2239eb40faf8b6f6c4568a4c15d07767",
        "81bfd0ad04a58892e2c153a22c361e7ff959f3fd"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:46:15 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:46:15 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-repair-data-deps-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: track data dependencies for repairs [v30.9 08/28]\n\nCertain kinds of XFS metadata depend on the correctness of lower level\nmetadata.  For example, directory indexes depends on the directory data\nfork, which in turn depend on the directory inode to be correct.  The\ncurrent scrub code does not strictly preserve these dependencies if it\nhas to defer a repair until phase 4, because phase 4 prioritizes repairs\nby type (corruption, then cross referencing, and then preening) and\nloses the ordering of in the previous phases.  This leads to absurd\nthings like trying to repair a directory before repairing its corrupted\nfork, which is absurd.\n\nTo solve this problem, introduce a repair ticket structure to track all\nthe repairs pending for a principal object (inode, AG, etc).  This\nreduces memory requirements if an object requires more than one type of\nrepair and makes it very easy to track the data dependencies between\nsub-objects of a principal object.  Repair dependencies between object\ntypes (e.g.  bnobt before inodes) must still be encoded statically into\nphase 4.\n\nA secondary benefit of this new ticket structure is that we can decide\nto attempt a repair of an object A that was flagged for a cross\nreferencing error during the scan if a different object B depends on A\nbut only B showed definitive signs of corruption.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "80a327fc2239eb40faf8b6f6c4568a4c15d07767",
      "tree": "8ae9e2d4b001d80110e2502e2dd958cb139a3240",
      "parents": [
        "0ab4613d3be72ff278a9036023558763fdd81926",
        "bf15d7766e3dd63eda56f6b2f7976e529cd07575"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:53 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:53 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-better-repair-warnings-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: improve warnings about difficult repairs [v30.9 07/28]\n\nWhile I was poking through the QA results for xfs_scrub, I noticed that\nit doesn\u0027t warn the user when the primary and secondary realtime\nmetadata are so out of whack that the chances of a successful repair are\nnot so high.  I decided that it was worth refactoring the scrub code a\nbit so that we could warn the user about these types of things, and\nended up refactoring unnecessary helpers out of existence and fixing\nother reporting gaps.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "0ab4613d3be72ff278a9036023558763fdd81926",
      "tree": "d322d85aa0d8eeb98ee82ea398354ceb7c72fc1e",
      "parents": [
        "abe789fb9f90a5760b48e12fcd053b1ec253b74d",
        "4b959abc5f353123775973cd98c94d819cc9de79"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:40 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:40 2024 +0200"
      },
      "message": "Merge tag \u0027scrub-repair-fixes-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfs_scrub: fixes to the repair code [v30.9 06/28]\n\nNow that we\u0027ve landed the new kernel code, it\u0027s time to reorganize the\nxfs_scrub code that handles repairs.  Clean up various naming warts and\nmisleading error messages.  Move the repair code to scrub/repair.c as\nthe first step.  Then, fix various issues in the repair code before we\nstart reorganizing things.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "abe789fb9f90a5760b48e12fcd053b1ec253b74d",
      "tree": "0b28f0421040d2a1fff228c6531cc59ead7afea0",
      "parents": [
        "9a11b6777b6b9194b269eab55877456fc6f84883",
        "ebf05a446c09336c08865dc29a6332be6ff8223c"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:27 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:27 2024 +0200"
      },
      "message": "Merge tag \u0027inode-repair-improvements-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: inode-related repair fixes [v30.9 05/28]\n\nWhile doing QA of the online fsck code, I made a few observations:\nFirst, nobody was checking that the di_onlink field is actually zero;\nSecond, that allocating a temporary file for repairs can fail (and\nthus bring down the entire fs) if the inode cluster is corrupt; and\nThird, that file link counts do not pin at ~0U to prevent integer\noverflows.\n\nThis scattered patchset fixes those three problems.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "9a11b6777b6b9194b269eab55877456fc6f84883",
      "tree": "a068da791f40e13226bc8dffce6b2b3bbc46e770",
      "parents": [
        "19e60c10c009419ca4338edc86a2a22831d388a5",
        "7e74984e652fab200bc7319d7c3d90f6ae36be2e"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:05 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:45:05 2024 +0200"
      },
      "message": "Merge tag \u0027dirattr-validate-owners-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: set and validate dir/attr block owners [v30.9 04/28]\n\nThere are a couple of significatn changes that need to be made to the\ndirectory and xattr code before we can support online repairs of those\ndata structures.\n\nThe first change is because online repair is designed to use libxfs to\ncreate a replacement dir/xattr structure in a temporary file, and use\natomic extent swapping to commit the corrected structure.  To avoid the\nperformance hit of walking every block of the new structure to rewrite\nthe owner number, we instead change libxfs to allow callers of the dir\nand xattr code the ability to set an explicit owner number to be written\ninto the header fields of any new blocks that are created.\n\nThe second change is to update the dir/xattr code to actually *check*\nthe owner number in each block that is read off the disk, since we don\u0027t\ncurrently do that.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "19e60c10c009419ca4338edc86a2a22831d388a5",
      "tree": "7ecb5ee82a50e17175a772d063e883af89e97dfe",
      "parents": [
        "57b814018ae4b7f3513bc10d141db995f2f31bb1",
        "39e346ba525c51dd2f405ed5d6368db712fac586"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:44:20 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:44:20 2024 +0200"
      },
      "message": "Merge tag \u0027atomic-file-updates-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nxfsprogs: atomic file updates [v30.9 03/28]\n\nThis series creates a new XFS_IOC_EXCHANGE_RANGE ioctl to exchange\nranges of bytes between two files atomically.\n\nThis new functionality enables data storage programs to stage and commit\nfile updates such that reader programs will see either the old contents\nor the new contents in their entirety, with no chance of torn writes.  A\nsuccessful call completion guarantees that the new contents will be seen\neven if the system fails.\n\nThe ability to exchange file fork mappings between files in this manner\nis critical to supporting online filesystem repair, which is built upon\nthe strategy of constructing a clean copy of a damaged structure and\ncommitting the new structure into the metadata file atomically.  The\nioctls exist to facilitate testing of the new functionality and to\nenable future application program designs.\n\nUser programs will be able to update files atomically by opening an\nO_TMPFILE, reflinking the source file to it, making whatever updates\nthey want to make, and exchange the relevant ranges of the temp file\nwith the original file.  If the updates are aligned with the file block\nsize, a new (since v2) flag provides for exchanging only the written\nareas.  Note that application software must quiesce writes to the file\nwhile it stages an atomic update.  This will be addressed by a\nsubsequent series.\n\nThis mechanism solves the clunkiness of two existing atomic file update\nmechanisms: for O_TRUNC + rewrite, this eliminates the brief period\nwhere other programs can see an empty file.  For create tempfile +\nrename, the need to copy file attributes and extended attributes for\neach file update is eliminated.\n\nHowever, this method introduces its own awkwardness -- any program\ninitiating an exchange now needs to have a way to signal to other\nprograms that the file contents have changed.  For file access mediated\nvia read and write, fanotify or inotify are probably sufficient.  For\nmmaped files, that may not be fast enough.\n\nThe reference implementation in XFS creates a new log incompat feature\nand log intent items to track high level progress of swapping ranges of\ntwo files and finish interrupted work if the system goes down.  Sample\ncode can be found in the corresponding changes to xfs_io to exercise the\nuse case mentioned above.\n\nNote that this function is /not/ the O_DIRECT atomic untorn file writes\nconcept that has also been floating around for years.  It is also not\nthe RWF_ATOMIC patchset that has been shared.  This RFC is constructed\nentirely in software, which means that there are no limitations other\nthan the general filesystem limits.\n\nAs a side note, the original motivation behind the kernel functionality\nis online repair of file-based metadata.  The atomic file content\nexchange is implemented as an atomic exchange of file fork mappings,\nwhich means that we can implement online reconstruction of extended\nattributes and directories by building a new one in another inode and\nexchanging the contents.\n\nSubsequent patchsets adapt the online filesystem repair code to use\natomic file exchanges.  This enables repair functions to construct a\nclean copy of a directory, xattr information, symbolic links, realtime\nbitmaps, and realtime summary information in a temporary inode.  If this\ncompletes successfully, the new contents can be committed atomically\ninto the inode being repaired.  This is essential to avoid making\ncorruption problems worse if the system goes down in the middle of\nrunning repair.\n\nFor userspace, this series also includes the userspace pieces needed to\ntest the new functionality, and a sample implementation of atomic file\nupdates.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "57b814018ae4b7f3513bc10d141db995f2f31bb1",
      "tree": "0a8f618f9681830dc71055470566e88ecf3adac9",
      "parents": [
        "cf11de780e757a904abebb6e99581a008f6c7f41",
        "7fbf8e036dc1d5b9caaf6f64ad4bc88d40c8292b"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:43:49 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:43:49 2024 +0200"
      },
      "message": "Merge tag \u0027libxfs-sync-6.10_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nlibxfs: sync with 6.10 [02/28]\n\nSynchronize libxfs with the kernel.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "cf11de780e757a904abebb6e99581a008f6c7f41",
      "tree": "22b3c9008c1a791d6c0d33fdae6220581853c379",
      "parents": [
        "1ac2403fefb57478cf1933e72e4ff0caabe508d2",
        "c6438c3e740e139adcd6c236606498d49bbb5655"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:42:46 2024 +0200"
      },
      "committer": {
        "name": "Carlos Maiolino",
        "email": "cem@kernel.org",
        "time": "Tue Aug 06 15:42:46 2024 +0200"
      },
      "message": "Merge tag \u0027libxfs-6.9-fixes_2024-07-29\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev into for-next\n\nlibxfs: fixes for 6.9 [01/28]\n\nA couple more last minute fixes for 6.9.\n\nThis has been running on the djcloud for months with no problems.  Enjoy!\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n"
    },
    {
      "commit": "5a43a00432ebe9ab8b54155703a9eb9e1a1dd4ec",
      "tree": "826cc3e88da96282f9b5a2d7313cae3405498231",
      "parents": [
        "df914edeeb1e1919831192951d657cfc73b46418"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:31 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_repair: allow symlinks with short remote targets\n\nSymbolic links can have extended attributes.  If the attr fork consumes\nenough space in the inode record, a shortform symlink can become a\nremote symlink.  However, if we delete those extended attributes, the\ntarget is not moved back into the inode core.\n\nIOWs, we can end up with a symlink inode that looks like this:\n\ncore.magic \u003d 0x494e\ncore.mode \u003d 0120777\ncore.version \u003d 3\ncore.format \u003d 2 (extents)\ncore.nlinkv2 \u003d 1\ncore.nextents \u003d 1\ncore.size \u003d 297\ncore.nblocks \u003d 1\ncore.naextents \u003d 0\ncore.forkoff \u003d 0\ncore.aformat \u003d 2 (extents)\nu3.bmx[0] \u003d [startoff,startblock,blockcount,extentflag]\n0:[0,12,1,0]\n\nThis is a symbolic link with a 297-byte target stored in a disk block,\nwhich is to say this is a symlink with a remote target.  The forkoff is\n0, which is to say that there\u0027s 512 - 176 \u003d\u003d 336 bytes in the inode core\nto store the data fork.\n\nPrior to kernel commit 1eb70f54c445f, the kernel was ok with this\narrangement, but the change to symlink validation in that patch now\nproduces corruption errors on filesystems written by older kernels that\nare not otherwise inconsistent.  Those changes were inspired by reports\nof illegal memory accesses, which I think were a result of making data\nfork access decisions based on symlink di_size and not on di_format.\n\nUnfortunately, for a very long time xfs_repair has flagged these inodes\nas being corrupt, even though the kernel has historically been willing\nto read and write symlinks with these properties.  Resolve the conflict\nby adjusting the xfs_repair corruption tests to allow extents format.\nThis change matches the kernel patch \"xfs: allow symlinks with short\nremote targets\".\n\nWhile we\u0027re at it, fix a lurking bad symlink fork access.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "df914edeeb1e1919831192951d657cfc73b46418",
      "tree": "4712b391dcdc4bd65b28fdc7a80df2edf0625fc8",
      "parents": [
        "a5ea24f0a3128d8d7b41cde3bf77c1b906a21ed2"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:31 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: try spot repairs of metadata items to make scrub progress\n\nNow that we\u0027ve enabled scrub dependency barriers, it\u0027s possible that a\nscrub_item_check call will return with some of the scrub items still in\nNEEDSCHECK state.  If, for example, scrub type B depends on scrub type\nA being clean and A is not clean, B will still be in NEEDSCHECK state.\n\nIn order to make as much scanning progress as possible during phase 2\nand phase 3, allow ourselves to try some spot repairs in the hopes that\nit will enable us to make progress towards at least scanning the whole\nmetadata item.  If we can\u0027t make any forward progress, we\u0027ll queue the\nscrub item for repair in phase 4, which means that anything still in in\nNEEDSCHECK state becomes CORRUPT state.  (At worst, the NEEDSCHECK item\nwill actually be clean by phase 4, and xfs_scrub will report that it\ndidn\u0027t need any work after all.)\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5a30504f0c60e10dc0cecd201c5afc18083fd0ac",
      "tree": "fcf3c0eeb5d841883c0778d98aa30896b0170e0b",
      "parents": [
        "0300ffbae7401a132dc8944a9281db3df81a667b"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:28 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: defer phase5 file scans if dirloop fails\n\nIf we cannot fix dirloop problems during the initial phase 5 inode scan,\ndefer them until later.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7ea215189a3cac45cb9323439318fcc3410727d4",
      "tree": "a59240f3ad45504090a0e5e414942a9f3793e2a1",
      "parents": [
        "258d34543e9c378a6cfe38fba905d868b6f18ced"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:27 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_repair: wipe ondisk parent pointers when there are none\n\nErase all the parent pointers when there aren\u0027t any found by the\ndirectory entry scan.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a5ea24f0a3128d8d7b41cde3bf77c1b906a21ed2",
      "tree": "199a5adabfe91d94bfbf97f32c40dd200667a50c",
      "parents": [
        "d275548fd7d2fe68aef3fb14caad0f022f19953a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:31 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: use scrub barriers to reduce kernel calls\n\nUse scrub barriers so that we can submit a single scrub request for a\nbunch of things, and have the kernel stop midway through if it finds\nanything broken.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "0300ffbae7401a132dc8944a9281db3df81a667b",
      "tree": "6d8fb14183091d0a564a522e50bd5c212f807bb8",
      "parents": [
        "1fe7d5ef7a0b47e375f7a51d502f574f9ad8811a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:28 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: detect and repair directory tree corruptions\n\nNow that we have online fsck for directory tree structure problems, we\nneed to find a place to call it.  The scanner requires that parent\npointers are enabled, that directory link counts are correct, and that\nevery directory entry has a corresponding parent pointer.  Therefore, we\ncan only run it after phase 4 fixes every file, and phase 5 resets the\nlink counts.\n\nIn other words, we call it as part of the phase 5 file scan that we do\nto warn about weird looking file names.  This has the added benefit that\nopening the directory by handle is less likely to fail if there are\nloops in the directory structure.  For now, only plumb in enough to try\nto fix directory tree problems right away; the next patch will make\nphase 5 retry the dirloop scanner until the problems are fixed or we\nstop making forward progress.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "258d34543e9c378a6cfe38fba905d868b6f18ced",
      "tree": "106fc3e91a92245018404000023e91fcc48676ce",
      "parents": [
        "08e3280cbae9a6908aa6b1300ce6e8c097ef3140"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:27 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_repair: update ondisk parent pointer records\n\nUpdate the ondisk parent pointer records as necessary.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d275548fd7d2fe68aef3fb14caad0f022f19953a",
      "tree": "d4989b3e50d9c07b44451028838968a286bf129d",
      "parents": [
        "75e2c655606c35ccd0f9f8335b4e0290178543a6"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:30 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: vectorize repair calls\n\nUse the new vectorized scrub kernel calls to reduce the overhead of\nperforming repairs.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1fe7d5ef7a0b47e375f7a51d502f574f9ad8811a",
      "tree": "2b8e078b19cc4f57d1e865791dc3abfc64e63882",
      "parents": [
        "9eea3288aed85b06d13a682f8f79e1fa6e2ce71c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:28 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: fix erroring out of check_inode_names\n\nThe early exit logic in this function is a bit suboptimal -- we don\u0027t\nneed to close the @fd if we haven\u0027t even opened it, and since all errors\nare fatal, we don\u0027t need to bump the progress counter.  The logic in\nthis function is about to get more involved due to the addition of the\ndirectory tree structure checker, so clean up these warts.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "75e2c655606c35ccd0f9f8335b4e0290178543a6",
      "tree": "4549e0b39a75d6c2e3d1375ac79b78c707cd95bb",
      "parents": [
        "c3827cdce270f4d3dcd524713425cec9721a1756"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:30 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: vectorize scrub calls\n\nUse the new vectorized kernel scrub calls to reduce the overhead of\nchecking metadata.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9eea3288aed85b06d13a682f8f79e1fa6e2ce71c",
      "tree": "1b6fa40327f1243febab5716636f03a10274ebf0",
      "parents": [
        "ddafc2f7f34add789fdb1e86c0715bcaf057623f"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:28 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_spaceman: report directory tree corruption in the health information\n\nReport directories that are the source of corruption in the directory\ntree.  While we\u0027re at it, add the documentation updates for the new\nreporting flags and scrub type.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c3827cdce270f4d3dcd524713425cec9721a1756",
      "tree": "4ea237f267745696c76c48d560f0ef8434217a57",
      "parents": [
        "352f9e462557817deeecf4658acbce4b37407648"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:30 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: convert scrub and repair epilogues to use xfs_scrub_vec\n\nConvert the scrub and repair epilogue code to pass around xfs_scrub_vecs\nas we prepare for vectorized operation.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ddafc2f7f34add789fdb1e86c0715bcaf057623f",
      "tree": "001e3e89ad0bf391c7448c21fb89ad0da88697ac",
      "parents": [
        "7ea215189a3cac45cb9323439318fcc3410727d4"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:27 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "libfrog: add directory tree structure scrubber to scrub library\n\nMake it so that scrub clients can detect corruptions within the\ndirectory tree structure itself.  Update the documentation for the scrub\nioctl to mention this new functionality.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "352f9e462557817deeecf4658acbce4b37407648",
      "tree": "0c78f60bab32361d77eba5aad970b7e2fa1ef7d5",
      "parents": [
        "627d5dbd498e4b3c0599af34f242750facd560c0"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:30 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: split the repair epilogue code into a separate function\n\nMove all the code that updates the internal state in response to a\nrepair ioctl() call completion into a separate function.  This will help\nwith vectorizing repair calls later on.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "627d5dbd498e4b3c0599af34f242750facd560c0",
      "tree": "4fe5e0a3ee188a03e56549fdbef00830a809369e",
      "parents": [
        "cad03cc6d068f494e305ff0f0aa33513ce9f4954"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:29 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_scrub: split the scrub epilogue code into a separate function\n\nMove all the code that updates the internal state in response to a scrub\nioctl() call completion into a separate function.  This will help with\nvectorizing scrub calls later on.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "cad03cc6d068f494e305ff0f0aa33513ce9f4954",
      "tree": "57d6cd58a40eebe2b04d351f72773e9e3b8fea35",
      "parents": [
        "6ec22c1dee7733523b7795738376f1b4e26efee9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:29 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "xfs_io: support vectored scrub\n\nCreate a new scrubv command to xfs_io to support the vectored scrub\nioctl.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6ec22c1dee7733523b7795738376f1b4e26efee9",
      "tree": "dd2838d9105179f3dcd917dbba337a6ff9cba9d1",
      "parents": [
        "1845002e65bf1cb0c0545126b646012de06ae5a9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:29 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "libfrog: support vectored scrub\n\nEnhance libfrog to support performing vectored metadata scrub.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1845002e65bf1cb0c0545126b646012de06ae5a9",
      "tree": "5c7dd2265520153c5d5cc2b71a8937a1a316f17a",
      "parents": [
        "5a30504f0c60e10dc0cecd201c5afc18083fd0ac"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:29 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:13 2024 -0700"
      },
      "message": "man: document vectored scrub mode\n\nAdd a manpage to document XFS_IOC_SCRUBV_METADATA.  From the kernel\npatch:\n\nIntroduce a variant on XFS_SCRUB_METADATA that allows for a vectored\nmode.  The caller specifies the principal metadata object that they want\nto scrub (allocation group, inode, etc.) once, followed by an array of\nscrub types they want called on that object.  The kernel runs the scrub\noperations and writes the output flags and errno code to the\ncorresponding array element.\n\nA new pseudo scrub type BARRIER is introduced to force the kernel to\nreturn to userspace if any corruptions have been found when scrubbing\nthe previous scrub types in the array.  This enables userspace to\nschedule, for example, the sequence:\n\n 1. data fork\n 2. barrier\n 3. directory\n\nIf the data fork scrub is clean, then the kernel will perform the\ndirectory scrub.  If not, the barrier in 2 will exit back to userspace.\n\nThe alternative would have been an interface where userspace passes a\npointer to an empty buffer, and the kernel formats that with\nxfs_scrub_vecs that tell userspace what it scrubbed and what the outcome\nwas.  With that the kernel would have to communicate that the buffer\nneeded to have been at least X size, even though for our cases\nXFS_SCRUB_TYPE_NR + 2 would always be enough.\n\nCompared to that, this design keeps all the dependency policy and\nordering logic in userspace where it already resides instead of\nduplicating it in the kernel. The downside of that is that it needs the\nbarrier logic.\n\nWhen running fstests in \"rebuild all metadata after each test\" mode, I\nobserved a 10% reduction in runtime due to fewer transitions across the\nsystem call boundary.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "4b327cc2f5d03b772dd6d3352cbe28452cd41ef0",
      "tree": "09c24d2dbf320117dc844ce9196b440bd3087e52",
      "parents": [
        "7bc368927f02e2d3e4c86a2116eb2bcf53e8ee1c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:25 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "man2: update ioctl_xfs_scrub_metadata.2 for parent pointers\n\nUpdate the man page for the scrub ioctl to reflect the new scrubbing\nabilities when parent pointers are enabled.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b2677fa4f4009abf8de4c15960a2e97dd5370d41",
      "tree": "d0e2f0cba94ad0e4e1f96b6cfa196e2b5ff888a7",
      "parents": [
        "77b39b176ab68bbb6b140c758e0ec5d323f961ed"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "allison.henderson@oracle.com",
        "time": "Mon Jul 29 16:23:24 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "mkfs: enable formatting with parent pointers\n\nEnable parent pointer support in mkfs via the \u0027-n parent\u0027 parameter.\n\nSigned-off-by: Allison Henderson \u003callison.henderson@oracle.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n[djwong: move the no-V4 filesystem check to join the rest]\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "08e3280cbae9a6908aa6b1300ce6e8c097ef3140",
      "tree": "f7fdd7bac2413eebbfc2b75c71372770ab39aa7a",
      "parents": [
        "6eb16ee466ed22272e6c6858906ed7c71a933cdd"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:27 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: dump garbage parent pointer attributes\n\nDelete xattrs that have ATTR_PARENT set but are so garbage that they\nclearly aren\u0027t parent pointers.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7bc368927f02e2d3e4c86a2116eb2bcf53e8ee1c",
      "tree": "0dbd1711d12341afa9a96d3cc36cabd40b6039e4",
      "parents": [
        "b2677fa4f4009abf8de4c15960a2e97dd5370d41"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:25 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs: create a blob array data structure\n\nCreate a simple \u0027blob array\u0027 data structure for storage of arbitrarily\nsized metadata objects that will be used to reconstruct metadata.  For\nthe intended usage (temporarily storing extended attribute names and\nvalues) we only have to support storing objects and retrieving them.\nUse the xfile abstraction to store the attribute information in memory\nthat can be swapped out.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "77b39b176ab68bbb6b140c758e0ec5d323f961ed",
      "tree": "f69d8e7c41377d723b513fb44a234d6f084ee5d8",
      "parents": [
        "30b4d5d66fa1fa6543080c2df1d30594927712bd"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "allison.henderson@oracle.com",
        "time": "Mon Jul 29 16:23:24 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "mkfs: Add parent pointers during protofile creation\n\nInodes created from protofile parsing will also need to add the\nappropriate parent pointers.\n\nSigned-off-by: Allison Henderson \u003callison.henderson@oracle.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n[djwong: use xfs_parent_add from libxfs instead of open-coding xfs_attr_set]\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6eb16ee466ed22272e6c6858906ed7c71a933cdd",
      "tree": "9f85685faa3449f2d698d4971491aad93cf0267f",
      "parents": [
        "09c23caae4280d2adf4bb3de4da21efccf9d8fd8"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:27 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: check parent pointers\n\nUse the parent pointer index that we constructed in the previous patch\nto check that each file\u0027s parent pointer records exactly match the\ndirectory entries that we recorded while walking directory entries.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "30b4d5d66fa1fa6543080c2df1d30594927712bd",
      "tree": "7783ce7df59facfa9e7c663e06a161621103040a",
      "parents": [
        "40a59ddd73057b3d031e3f0b38f6b154a68cbef9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:24 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "libxfs: create new files with attr forks if necessary\n\nCreate new files with attr forks if they\u0027re going to have parent\npointers.  In the next patch we\u0027ll fix mkfs to use the same parent\ncreation functions as the kernel, so we\u0027re going to need this.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "09c23caae4280d2adf4bb3de4da21efccf9d8fd8",
      "tree": "097f6c053fef937d67b0f7c41cb7f32f5a26a650",
      "parents": [
        "f043df1a010857a374b6fabdc388f9b427741ccb"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:26 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: deduplicate strings stored in string blob\n\nReduce the memory requirements of the string blob structure by\ndeduplicating the strings stored within.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "40a59ddd73057b3d031e3f0b38f6b154a68cbef9",
      "tree": "933916cecd44f4b0a49fee1d925dd5b884864d82",
      "parents": [
        "7b3f2025b491af1927fd91c64e41ea71c30a6690"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:24 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_db: compute hashes of parent pointers\n\nEnhance the hash command to compute the hashes of parent pointers.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "f043df1a010857a374b6fabdc388f9b427741ccb",
      "tree": "d52e4a76df522e5833d430639e80fc43497cb9db",
      "parents": [
        "80763b46791c32f5d7c7f855bb4e2f7cb5784b58"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:26 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: move the global dirent name store to a separate object\n\nAbstract the main parent pointer dirent names xfblob object into a\nseparate data structure to hide implementation details.\n\nThe goals here are (a) reduce memory usage when we can by deduplicating\ndirent names that exist in multiple directories; and (b) provide a\nunique id for each name in the system so that sorting incore parent\npointer records can be done in a stable manner.  Fast stable sorting of\nrecords is required for the dirent \u003c-\u003e pptr matching algorithm.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7b3f2025b491af1927fd91c64e41ea71c30a6690",
      "tree": "fc8fc7357a1038a1e8c0ad76170b1023b9a84390",
      "parents": [
        "e65a67fb42cc734d7bac5f94162214a6c1bd6eec"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:23 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_db: add link and unlink expert commands\n\nCreate a pair of commands to create and remove directory entries to\nsupport functional testing of directory tree corruption.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "80763b46791c32f5d7c7f855bb4e2f7cb5784b58",
      "tree": "289e8ca1f4642645fb3a56043a486228bd7620ed",
      "parents": [
        "27e6390054c4f250728b687421e3afd99e0695e5"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:26 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: build a parent pointer index\n\nWhen we\u0027re walking directories during phase 6, build an index of parent\npointers that we expect to find.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e65a67fb42cc734d7bac5f94162214a6c1bd6eec",
      "tree": "887dabcb989fde0891d6c861737f8bb02afc4664",
      "parents": [
        "34d3b1079425abae21cc066a7fd045334e8e5d6c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:23 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_db: make attr_set and attr_remove handle parent pointers\n\nMake it so that xfs_db can load up the filesystem (somewhat uselessly)\nwith parent pointers.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "27e6390054c4f250728b687421e3afd99e0695e5",
      "tree": "17da0f329909f32c9e86b85428d941c97463077d",
      "parents": [
        "a0ea90f543fa0080bbbddeca49a272e9b99117f2"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:26 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: junk duplicate hashtab entries when processing sf dirents\n\ndir_hash_add() adds the passed-in dirent to the directory hashtab even\nif there\u0027s already a duplicate.  Therefore, if we detect a duplicate or\na garbage entry while processing the a shortform directory\u0027s entries, we\nneed to junk the newly added entry, just like we do when processing\ndirectory data blocks.\n\nThis will become particularly relevant in the next patch, where we\ngenerate a master index of parent pointers from the non-junked hashtab\nentries of each directory that phase6 scans.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "34d3b1079425abae21cc066a7fd045334e8e5d6c",
      "tree": "35e84bfe3178c6e72eedf48427a461764aab3b34",
      "parents": [
        "1962f4e8e8f3bc186f29cbf9c6952a5e1108f52b"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:23 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_db: add a parents command to list the parents of a file\n\nCreate a command to dump the parents of a file.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a0ea90f543fa0080bbbddeca49a272e9b99117f2",
      "tree": "ad6fee4103cfb29534aeefcf962388ccf21ac125",
      "parents": [
        "5d8b51bce11c5adfa2f8e4f36ff23e06a1dbdce5"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:26 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: add parent pointers when messing with /lost+found\n\nMake sure that the /lost+found gets created with parent pointers, and\nthat lost children being put in there get new parent pointers.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1962f4e8e8f3bc186f29cbf9c6952a5e1108f52b",
      "tree": "1d2bb1f26f128eeb466f3c18d244bda431d0944c",
      "parents": [
        "295fde6d15dd0fff1d006ff7324f43bd735c119e"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:23 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "libxfs: export attr3_leaf_hdr_from_disk via libxfs_api_defs.h\n\nDo the xfs -\u003e libxfs switcheroo and cleanups separately so the next\npatch doesn\u0027t become an even larger mess.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5d8b51bce11c5adfa2f8e4f36ff23e06a1dbdce5",
      "tree": "cf19446bf6c27fac9155c67f4208a814e6d67479",
      "parents": [
        "361af16fce3006fdff161e821d112115a258d00a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:25 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_repair: junk parent pointer attributes when filesystem doesn\u0027t support them\n\nDrop a parent pointer xattr if the filesystem doesn\u0027t support parent\npointers.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "361af16fce3006fdff161e821d112115a258d00a",
      "tree": "b32c956c4a371bef063eea70113e258ea1543364",
      "parents": [
        "28488a3590b1cb0008fe5934ad2e56df40cf9d8c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:25 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_db: actually report errors from libxfs_attr_set\n\nActually tell the user what went wrong when setting or removing xattrs.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "28488a3590b1cb0008fe5934ad2e56df40cf9d8c",
      "tree": "a143c69b0a2e52a1f951754b94ef6143d83c6248",
      "parents": [
        "4b327cc2f5d03b772dd6d3352cbe28452cd41ef0"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:25 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:12 2024 -0700"
      },
      "message": "xfs_db: remove some boilerplate from xfs_attr_set\n\nIn preparation for online/offline repair wanting to use xfs_attr_set,\nmove some of the boilerplate out of this function into the callers.\nRepair can initialize the da_args completely, and the userspace flag\nhandling/twisting goes away once we move it to xfs_attr_change.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "2823d8ed93da2bd3880abb52a58e91a920961e27",
      "tree": "8070cdf8730d0b196d201e5c26b1801525e66554",
      "parents": [
        "fde7ec73d5c4316118bf7e9eabfe5ee71fc7685b"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:19 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_repair: check for unknown flags in attr entries\n\nExplicitly check for unknown bits being set in the shortform and leaf\nattr entries.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "295fde6d15dd0fff1d006ff7324f43bd735c119e",
      "tree": "48ea26748b965a8e391352417f8c9f117eea03c8",
      "parents": [
        "04f06c2872315652d1eebcbf91bce145200a8afd"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:22 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_db: obfuscate dirent and parent pointer names consistently\n\nWhen someone wants to perform an obfuscated metadump of a filesystem\nwhere parent pointers are enabled, we have to use the *exact* same\nobfuscated name for both the directory entry and the parent pointer.\n\nCreate a name remapping table so that when we obfuscate a dirent name or\na parent pointer name, we can apply the same obfuscation when we find\nthe corresponding parent pointer or dirent.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "fde7ec73d5c4316118bf7e9eabfe5ee71fc7685b",
      "tree": "2953f9ae7e39d8168c14e58814b92448eb0f2509",
      "parents": [
        "1bb554e3bb768728d078b7b46f75a2f54adf2334"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:19 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_repair: enforce one namespace bit per extended attribute\n\nEnforce that all extended attributes have at most one namespace bit.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "04f06c2872315652d1eebcbf91bce145200a8afd",
      "tree": "8ec4e90eeb1f346bfc560dfcc7524f4572ed93f4",
      "parents": [
        "c120c7e6f74c852bb385fa69d88750b23d28f9fc"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:22 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_db: report parent pointers embedded in xattrs\n\nDecode the parent pointer inode, generation, and name fields if the\nparent pointer passes basic validation checks.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c120c7e6f74c852bb385fa69d88750b23d28f9fc",
      "tree": "cbb39eeef7b89375b6cbd136c6a53a4ddd0f7edd",
      "parents": [
        "d5c47fe434c6a65b6c7aeaa4b291932e4d0ce56c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:22 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_db: report parent bit on xattrs\n\nDisplay the parent bit on xattr keys\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Allison Henderson \u003callison.henderson@oracle.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d5c47fe434c6a65b6c7aeaa4b291932e4d0ce56c",
      "tree": "168b9f43441122cc52043553dbfa672bf63f5f6d",
      "parents": [
        "9b5d1349ca5fb16b0913f05390e96823f2d201ce"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:22 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_db: report parent pointers in version command\n\nReport the presents of PARENT pointers from the version subcommand.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9b5d1349ca5fb16b0913f05390e96823f2d201ce",
      "tree": "9f1d3c58f7d0c28af53fe005267d086c7a62e74f",
      "parents": [
        "9a8b09762f9a52342e145e52d7bc58d28db754b4"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:22 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_scrub: use parent pointers to report lost file data\n\nIf parent pointers are enabled, compute the path to the file while we\u0027re\ndoing the fsmap scan and report that, instead of walking the entire\ndirectory tree to print the paths of the (hopefully few) files that lost\ndata.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9a8b09762f9a52342e145e52d7bc58d28db754b4",
      "tree": "4dbacd81821660157d2dd0d5c8317d353d1081a1",
      "parents": [
        "764d8cb864f7dc53fa258a07dc0f16546ae327fd"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:21 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_scrub: use parent pointers when possible to report file operations\n\nIf parent pointers are available, use them to supply file paths when\ndoing things to files, instead of merely printing the inode number.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "764d8cb864f7dc53fa258a07dc0f16546ae327fd",
      "tree": "8079600c4b662b5cf2e6d7240061d3f222008992",
      "parents": [
        "6a3ecdaeb1df80bb928b471baa09dc1405fbd693"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:21 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_spaceman: report file paths\n\nTeach the health command to report file paths when possible.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6a3ecdaeb1df80bb928b471baa09dc1405fbd693",
      "tree": "afb00c30f1c35c86f8067795dce40b1b33faf8db",
      "parents": [
        "36770bef64a8f19eb2c2b302cd7a28cfeec4b416"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "allison.henderson@oracle.com",
        "time": "Mon Jul 29 16:23:21 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_logprint: decode parent pointers in ATTRI items fully\n\nThis patch modifies the ATTRI print routines to look for the parent\npointer flag, and decode logged parent pointers fully when dumping log\ncontents.  Between the existing ATTRI: printouts and the new ones\nintroduced here, we can figure out what was stored in each log iovec,\nas well as the higher level parent pointer that was logged.\n\nSigned-off-by: Allison Henderson \u003callison.henderson@oracle.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n[djwong: adjust to new ondisk format]\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "36770bef64a8f19eb2c2b302cd7a28cfeec4b416",
      "tree": "b724fba3080922c286c5221b4edbf3d59607df2e",
      "parents": [
        "17eceafcf14d49a4ca4b58dc37ff1d02be717c6c"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "allison.henderson@oracle.com",
        "time": "Mon Jul 29 16:23:21 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_io: Add i, n and f flags to parent command\n\nThis patch adds the flags i, n, and f to the parent command. These flags add\nfiltering options that are used by the new parent pointer tests in xfstests, and\nhelp to improve the test run time.  The flags are:\n\n-i: Only show parent pointer records containing the given inode\n-n: Only show parent pointer records containing the given filename\n-f: Print records in short format: ino/gen/namelen/name\n\nSigned-off-by: Allison Henderson \u003callison.henderson@oracle.com\u003e\nReviewed-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\n[djwong: adapt to new getparents ioctl]\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "17eceafcf14d49a4ca4b58dc37ff1d02be717c6c",
      "tree": "38d07e83653118fa91a5a4f88772711923bf607d",
      "parents": [
        "56f6ba21e97756131eefbf3cfb8faa9b57ad0ee7"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:20 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_io: adapt parent command to new parent pointer ioctls\n\nFor ages, xfs_io has had a totally useless \u0027parent\u0027 command that enabled\ncallers to walk the parents or print the directory tree path of an open\nfile.  This code used the ioctl interface presented by SGI\u0027s version of\nparent pointers that was never merged.  Rework the code in here to use\nthe new ioctl interfaces that we\u0027ve settled upon.  Get rid of the old\nparent pointer checking code since xfs_repair/xfs_scrub will take care\nof that.\n\n(This originally was in the \"xfsprogs: implement the upper half of\nparent pointers\" megapatch.)\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Allison Henderson \u003callison.henderson@oracle.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "56f6ba21e97756131eefbf3cfb8faa9b57ad0ee7",
      "tree": "1381ae565b8391ee14e3423b1b57e33c75bf16d3",
      "parents": [
        "540a0a03983a561d9c93d35ab90f1c9ccc4dfae1"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:20 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "libfrog: add parent pointer support code\n\nAdd some support code to libfrog so that client programs can walk file\ndescriptors and handles upwards through the directory tree; and obtain a\nreasonable file path from a file descriptor/handle.  This code will be\nused in xfsprogs utilities.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "540a0a03983a561d9c93d35ab90f1c9ccc4dfae1",
      "tree": "24490f46706c4c9342f5eff3a60cafcdacf4ee46",
      "parents": [
        "a24294c252d4a695392c52987cdb474b193b8ef3"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:20 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "libfrog: report parent pointers to userspace\n\nReport the presence of parent pointer to userspace.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a24294c252d4a695392c52987cdb474b193b8ef3",
      "tree": "ffba2bc007a04f9339ae88f7526d321ce17b7e7d",
      "parents": [
        "9132000a50badbc708360f8c70cf6635d20051bb"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:20 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "man: document the XFS_IOC_GETPARENTS ioctl\n\nDocument how this new ioctl works.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9132000a50badbc708360f8c70cf6635d20051bb",
      "tree": "e28de701fd11d22d07e931ea90bb8833145a9789",
      "parents": [
        "6db2bc3d1978b556d545c8e267d7822372ac6eaf"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:20 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_logprint: dump new attr log item fields\n\nDump the new extended attribute log item fields.  This was split out\nfrom the previous patch to make libxfs resyncing easier.  This code\nneeds more cleaning, which we\u0027ll do in the next few patches before\nmoving on to the parent pointer code.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6db2bc3d1978b556d545c8e267d7822372ac6eaf",
      "tree": "3710507987b50d8e3e9b6520607b6eba4aa4e655",
      "parents": [
        "2c08c981c3467466fa9d6f7456870149485e6800"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:19 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "xfs_{db,repair}: implement new attr hash value function\n\nPort existing utilities to use libxfs_attr_hashname instead of calling\nlibxfs_da_hashname directly.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "2c08c981c3467466fa9d6f7456870149485e6800",
      "tree": "c61648b193c169d61d600b035986c61e7c9e3267",
      "parents": [
        "2823d8ed93da2bd3880abb52a58e91a920961e27"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:19 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:11 2024 -0700"
      },
      "message": "libxfs: create attr log item opcodes and formats for parent pointers\n\nUpdate xfs_attr_defer_add to use the pptr-specific opcodes if it\u0027s\nreading or writing parent pointers.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e46249ec0b96ac5ced5b49928d3b3865b6d9546c",
      "tree": "39f47e9ead0369dd4c9117c9f7d6498e2dd7d9c5",
      "parents": [
        "6d831e770359fffdfa53d1049776da81a1417a4a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 16:23:18 2024 -0700"
      },
      "committer": {
        "name": "Darrick J. Wong",
        "email": "djwong@kernel.org",
        "time": "Mon Jul 29 17:01:10 2024 -0700"
      },
      "message": "xfs_scrub_all: implement retry and backoff for dbus calls\n\nCalls to systemd across dbus are remote procedure calls, which means\nthat they\u0027re subject to transitory connection failures (e.g. systemd\nre-exec itself).  We don\u0027t want to fail at the *first* sign of what\ncould be temporary trouble, so implement a limited retry with fibonacci\nbackoff before we resort to invoking xfs_scrub as a subprocess.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    }
  ],
  "next": "e040916f649f71fb6a695dfcc6f6c9f576c5c4db"
}
