)]}'
{
  "commit": "b637f85072542b0acc0e67cde40a0a8caf052de1",
  "tree": "4b4f1b4a903730f1cf46ea372fad1178d54413f6",
  "parents": [
    "c754c116f348a8be52dd36d7d630254faa3226db"
  ],
  "author": {
    "name": "Zach Brown",
    "email": "zab@zabbo.net",
    "time": "Tue Aug 04 11:00:49 2026 -0700"
  },
  "committer": {
    "name": "Zach Brown",
    "email": "zab@zabbo.net",
    "time": "Thu Aug 06 11:51:06 2026 -0700"
  },
  "message": "rpdfs: add inode cache invalidation, use in dir\n\nIntroduce the basics of multi-client cache consistency by adding\ncoverage of inodes and dirents.\n\nUsers, the dir code in this case, hold rlocks while using the local\ncache.  The rlock code calls into the inode code to invalidate caches as\nthe rlock loses the modes that protected the cache.  The inodes maintain\nan invalidation counter which can be used to decide if caches that\nsurvived invalidation are stale (dentries, d_revalidate).\n\nSigned-off-by: Zach Brown \u003czab@zabbo.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "94c1aec8ac4fd6c7f4cba76dfec2a4dfed8c2123",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/dir.c",
      "new_id": "72f3626c47a5e644ca82828346dea6f16dceab2a",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/dir.c"
    },
    {
      "type": "modify",
      "old_id": "593bbe0555b58e7fd5721456b9ec22edb9b6721d",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/dir.h",
      "new_id": "3a0ab585474f2e98953e434756d05f7c2cf6d28e",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/dir.h"
    },
    {
      "type": "modify",
      "old_id": "ca9bc38fa23ae4e8aaca203d8df87504242ac593",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/inode.c",
      "new_id": "17c0e367dca5b728782e365899cd3c10b7f1c655",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "6edab8f2db5547934fd5ca4a25c0a387ba32882e",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/inode.h",
      "new_id": "144217cffb9446353be2749ba300a2065db5f782",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/inode.h"
    },
    {
      "type": "modify",
      "old_id": "c18a49c4c2e7f8a98133e9c1c2e7194f099f316a",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/rlock.c",
      "new_id": "eda0028e893d3357099846f8f79c5a1125ed0322",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/rlock.c"
    },
    {
      "type": "modify",
      "old_id": "c0c206eec4a34c2586cf171d2ad2c629d80e0a86",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/rlock.h",
      "new_id": "2a716d6b5ded04983b49504edfb0ec885cbe5c1c",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/rlock.h"
    },
    {
      "type": "modify",
      "old_id": "7ee70a04b46fb84b58c253c23d0a40647ad5fcf0",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/super.c",
      "new_id": "2874c072c9dcf08c4cdfb935301a8a3597f2a2e3",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/super.c"
    },
    {
      "type": "modify",
      "old_id": "ac06391872d69b91b1edccfc98889f3931a1941e",
      "old_mode": 33188,
      "old_path": "fs/rpdfs/super.h",
      "new_id": "9cec00d9cb96ea2b037a024dfa379935d9bd5350",
      "new_mode": 33188,
      "new_path": "fs/rpdfs/super.h"
    }
  ]
}
