)]}'
{
  "commit": "4f881c327573cce04977c116330d0a9e05366c60",
  "tree": "5056e1066275b540afed4771bf8d0d2e97a55b4c",
  "parents": [
    "ce353f5b6b5b64e7bc39187f1b40a3f73d8d22b2"
  ],
  "author": {
    "name": "David Howells",
    "email": "dhowells@redhat.com",
    "time": "Thu Jan 21 14:01:48 2016 +0000"
  },
  "committer": {
    "name": "David Howells",
    "email": "dhowells@redhat.com",
    "time": "Wed Feb 03 13:46:02 2016 +0000"
  },
  "message": "Suspend/resume culling based on recently released file/block counts\n\nNewer kernels include the counts of objects and blocks unpinned since last\nthe status was read over the control device fd.  The unpinning is usually\nthrough relinquishment by the netfs.\n\nIf these fields are present, extract them and use them to work out whether\nthere can be anything to cull.  The fields are reset when read and POLLIN\nis signalled when the file counter is increased from 0.\n\nIf there is nothing new to cull, scanning to build a cull table is\nsuspended until more stuff is available.  If the new fields are present,\nwork on that basis - otherwise we sleep for 30s and try again.\n\nThe thresholds at which culling should be resumed can be set by adding:\n\n\tresume_thresholds \u003cblock\u003e \u003cfile\u003e\n\nto the config file.  The cull scan is retried when sufficient cumulative\nunpinning has happened that either threshold is exceeded.  The block\nthreshold watches the cumulative i_blocks for unpinned cache inodes and the\nfile threshold watches the number of cache inodes unpinned.  If either is\n\"-\" then that threshold is disabled.  The default is 5 files and no block\nthreshold.\n\nFurther:\n\n (*) Some of the variable names are changed to be more obvious as to what\n     they do.\n\n (*) If time-based culling is used, then SIGALRM must be blocked between\n     the did-it-happen check and the call to poll.  SIGINT, SIGTERM and\n     SIGIO are already so blocked.\n\n (*) All the decision making logic is moved into the cachefilesd() function\n     rather than being spread out.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: Steve Dickson \u003csteved@redhat.com\u003e\nReviewed-by: John Snow \u003cjsnow@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8446a3b456a09562e6d5a274fd691901718f0f14",
      "old_mode": 33188,
      "old_path": "README",
      "new_id": "6ed7de216cb2c937110d6dc398a754d2a80b2c43",
      "new_mode": 33188,
      "new_path": "README"
    },
    {
      "type": "modify",
      "old_id": "eaa1bb071484daee7b1672aedcec59bf5c0eb359",
      "old_mode": 33188,
      "old_path": "cachefilesd.c",
      "new_id": "bb05a38757730709a4e1634f6663c8e2cad7f998",
      "new_mode": 33188,
      "new_path": "cachefilesd.c"
    },
    {
      "type": "modify",
      "old_id": "028105e0b3812ec3b383fe15864d14769c35441b",
      "old_mode": 33188,
      "old_path": "cachefilesd.conf.5",
      "new_id": "b108bdc1f6df39efd8df4d822fbd467c17f4b4ae",
      "new_mode": 33188,
      "new_path": "cachefilesd.conf.5"
    }
  ]
}
