)]}'
{
  "commit": "db2f0169e56aa3188ac2007fe61d79465048efe6",
  "tree": "9922ff39af5ee0b023bed3e3e9a80e767f62ff75",
  "parents": [
    "74840bd078f6f954db8f543dab7ba18a1f4e253a"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Thu May 28 14:06:49 2015 -0400"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Thu May 28 14:06:49 2015 -0400"
  },
  "message": "writeback: disassociate inodes from dying bdi_writebacks\n\nFor the purpose of foreign inode detection, wb\u0027s (bdi_writeback\u0027s) are\nidentified by the associated memcg ID.  As we create a separate wb for\neach memcg, this is enough to identify the active wb\u0027s; however, when\nblkcg is enabled or disabled higher up in the hierarchy, the mapping\nbetween memcg and blkcg changes which in turn creates a new wb to\nservice the new mapping.  The old wb is unlinked from index and\nreleased after all references are drained.  The foreign inode\ndetection logic can\u0027t detect this condition because both the old and\nnew wb\u0027s point to the same memcg and thus never decides to move inodes\nattached to the old wb to the new one.\n\nThis patch adds logic to initiate switching immediately in\nwbc_attach_and_unlock_inode() if the associated wb is dying.  We can\nmake the usual foreign detection logic to distinguish the different\nwb\u0027s mapped to the memcg but the dying wb is never gonna be in active\nservice again and there\u0027s no point in tracking the usage history and\nreaching the switch verdict after enough data points are collected.\nIt\u0027s already known that the wb has to be switched.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5eeb24a8082f94bfdb8b814c8d07d2ce2f0f744a",
      "old_mode": 33188,
      "old_path": "fs/fs-writeback.c",
      "new_id": "f60de54d204284f225b820474c689ac41f5588d0",
      "new_mode": 33188,
      "new_path": "fs/fs-writeback.c"
    },
    {
      "type": "modify",
      "old_id": "e047b496a0b9e930c50ec3f72fe4f33e8480c1f8",
      "old_mode": 33188,
      "old_path": "include/linux/backing-dev-defs.h",
      "new_id": "a48d90e3bcbb86d98d911f21d248897c3c563730",
      "new_mode": 33188,
      "new_path": "include/linux/backing-dev-defs.h"
    }
  ]
}
