)]}'
{
  "commit": "3699e3a44bf56e0cd58c97e8655f375ad9b65d9d",
  "tree": "9ac31dd5b99373614f0cd52cc5a41536aeea271e",
  "parents": [
    "a8d638e30e768adc6956541f79f7bf05139ba475"
  ],
  "author": {
    "name": "Steven Whitehouse",
    "email": "swhiteho@redhat.com",
    "time": "Wed Jan 17 15:09:20 2007 +0000"
  },
  "committer": {
    "name": "Steven Whitehouse",
    "email": "swhiteho@redhat.com",
    "time": "Mon Feb 05 13:37:04 2007 -0500"
  },
  "message": "[GFS2] Clean up/speed up readdir\n\nThis removes the extra filldir callback which gfs2 was using to\nenclose an attempt at readahead for inodes during readdir. The\ncode was too complicated and also hurts performance badly in the\ncase that the getdents64/readdir call isn\u0027t being followed by\nstat() and it wasn\u0027t even getting it right all the time when it\nwas.\n\nAs a result, on my test box an \"ls\" of a directory containing 250000\nfiles fell from about 7mins (freshly mounted, so nothing cached) to\nbetween about 15 to 25 seconds. When the directory content was cached,\nthe time taken fell from about 3mins to about 4 or 5 seconds.\n\nInterestingly in the cached case, running \"ls -l\" once reduced the time\ntaken for subsequent runs of \"ls\" to about 6 secs even without this\npatch. Now it turns out that there was a special case of glocks being\nused for prefetching the metadata, but because of the timeouts for these\nlocks (set to 10 secs) the metadata was being timed out before it was\nbeing used and this the prefetch code was constantly trying to prefetch\nthe same data over and over.\n\nCalling \"ls -l\" meant that the inodes were brought into memory and once\nthe inodes are cached, the glocks are not disposed of until the inodes\nare pushed out of the cache, thus extending the lifetime of the glocks,\nand thus bringing down the time for subsequent runs of \"ls\"\nconsiderably.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0fdcb7713cd9378c1fe723b61b6eda9e7a1711ee",
      "old_mode": 33188,
      "old_path": "fs/gfs2/dir.c",
      "new_id": "0eceb051084f9214d9189fe50bd0d239ec128e26",
      "new_mode": 33188,
      "new_path": "fs/gfs2/dir.c"
    },
    {
      "type": "modify",
      "old_id": "b21b33668a5bc4ee2ea29c7658c2f8f343232900",
      "old_mode": 33188,
      "old_path": "fs/gfs2/dir.h",
      "new_id": "48fe89046bbad39af0277bb3a38d0e1f7f5de813",
      "new_mode": 33188,
      "new_path": "fs/gfs2/dir.h"
    },
    {
      "type": "modify",
      "old_id": "438146904b5839727ac2c378c5df87f574cfedaa",
      "old_mode": 33188,
      "old_path": "fs/gfs2/glock.c",
      "new_id": "fb1960b7fdde5be2c3dfe94b3cc21c7d8d1825ba",
      "new_mode": 33188,
      "new_path": "fs/gfs2/glock.c"
    },
    {
      "type": "modify",
      "old_id": "fb39108fc05c2e378f6d349775ab808a986e3594",
      "old_mode": 33188,
      "old_path": "fs/gfs2/glock.h",
      "new_id": "bde02a7061ecd35c3905f2abd4f78539e3c81899",
      "new_mode": 33188,
      "new_path": "fs/gfs2/glock.h"
    },
    {
      "type": "modify",
      "old_id": "734421edae85a21ac02bf00e6735228208965919",
      "old_mode": 33188,
      "old_path": "fs/gfs2/incore.h",
      "new_id": "807587050384befe8b19ddeb2e4b028ec31aaa00",
      "new_mode": 33188,
      "new_path": "fs/gfs2/incore.h"
    },
    {
      "type": "modify",
      "old_id": "6ea979c74b6b9334824fd58e73fc8dc14b5c2401",
      "old_mode": 33188,
      "old_path": "fs/gfs2/ops_export.c",
      "new_id": "fbf55063928fbc40cd32e6073c663c8581aeb000",
      "new_mode": 33188,
      "new_path": "fs/gfs2/ops_export.c"
    },
    {
      "type": "modify",
      "old_id": "faa07e4b97d025709cc246a22d51fd367e2c6d89",
      "old_mode": 33188,
      "old_path": "fs/gfs2/ops_file.c",
      "new_id": "c996aa739a0515f5c11229591a83805a4abb6f99",
      "new_mode": 33188,
      "new_path": "fs/gfs2/ops_file.c"
    },
    {
      "type": "modify",
      "old_id": "43a24f2e5905f9a26be19bcc032b4761a777baef",
      "old_mode": 33188,
      "old_path": "fs/gfs2/super.c",
      "new_id": "100852a61b5dd584f2355901238868ea50a7ea26",
      "new_mode": 33188,
      "new_path": "fs/gfs2/super.c"
    },
    {
      "type": "modify",
      "old_id": "983eaf1e06becb3e0c6516bb04ffa397bc121ab9",
      "old_mode": 33188,
      "old_path": "fs/gfs2/sys.c",
      "new_id": "cd28f08b244cb88e9581eb19ed8b0a87a9a3cc12",
      "new_mode": 33188,
      "new_path": "fs/gfs2/sys.c"
    }
  ]
}
