)]}'
{
  "commit": "8109f282668d0396c1a8df05d38ed215b0b8feac",
  "tree": "81b1495d50e5322744670bef40030dceec89e7e9",
  "parents": [
    "fedf646c79c44061ca62f5ae3019fe1198ec07d2"
  ],
  "author": {
    "name": "Christopher Haster",
    "email": "chaster@utexas.edu",
    "time": "Sun Feb 27 10:51:49 2022 -0600"
  },
  "committer": {
    "name": "Christopher Haster",
    "email": "chaster@utexas.edu",
    "time": "Sun Mar 20 04:27:54 2022 -0500"
  },
  "message": "Removed recursion from lfs_dir_traverse\n\nlfs_dir_traverse is a bit unpleasant in that it is inherently a\nrecursive function, but without a strict bound of 4 calls (commit -\u003e filter -\u003e\nmove -\u003e filter), and efforts to unroll the recursion comes at a\nsignification code cost.\n\nIt turns out the best solution I\u0027ve found so far is to simple create an\nexplicit stack with an explicit bound of 4 calls (or more accurately,\n3 pushed frames).\n\n---\n\nThis actually highlights one of the bigger flaws in littlefs right now,\nwhich is that this function, lfs_dir_traverse, takes O(n^2) disk reads\nto traverse.\n\nNote that LFS_FROM_MOVE can only occur once per commit, which is why\nthis code is O(n^2) and not O(n^4).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0fcc3d6951755cc08411c9f4c9978aaf8391763c",
      "old_mode": 33188,
      "old_path": "lfs.c",
      "new_id": "c36d2e0b41d423e1594dc09370aacfac6c7e1f4b",
      "new_mode": 33188,
      "new_path": "lfs.c"
    }
  ]
}
