)]}'
{
  "commit": "b16b1deb553adcd7b3b7ce3e6d6fd1b923f314da",
  "tree": "90818c22fd780699cdcb7c35b12f47b860de682a",
  "parents": [
    "21c6321fbb3a3787af07f1bc031d713a707fb69c"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Tue Jun 02 08:39:48 2015 -0600"
  },
  "committer": {
    "name": "Jens Axboe",
    "email": "axboe@fb.com",
    "time": "Tue Jun 02 08:39:48 2015 -0600"
  },
  "message": "writeback: make writeback_control track the inode being written back\n\nCurrently, for cgroup writeback, the IO submission paths directly\nassociate the bio\u0027s with the blkcg from inode_to_wb_blkcg_css();\nhowever, it\u0027d be necessary to keep more writeback context to implement\nforeign inode writeback detection.  wbc (writeback_control) is the\nnatural fit for the extra context - it persists throughout the\nwriteback of each inode and is passed all the way down to IO\nsubmission paths.\n\nThis patch adds wbc_attach_and_unlock_inode(), wbc_detach_inode(), and\nwbc_attach_fdatawrite_inode() which are used to associate wbc with the\ninode being written back.  IO submission paths now use wbc_init_bio()\ninstead of directly associating bio\u0027s with blkcg themselves.  This\nleaves inode_to_wb_blkcg_css() w/o any user.  The function is removed.\n\nwbc currently only tracks the associated wb (bdi_writeback).  Future\npatches will add more for foreign inode detection.  The association is\nestablished under i_lock which will be depended upon when migrating\nforeign inodes to other wb\u0027s.\n\nAs currently, once established, inode to wb association never changes,\ngoing through wbc when initializing bio\u0027s doesn\u0027t cause any behavior\nchanges.\n\nv2: submit_blk_blkcg() now checks whether the wbc is associated with a\n    wb before dereferencing it.  This can happen when pageout() is\n    writing pages directly without going through the usual writeback\n    path.  As pageout() path is single-threaded, we don\u0027t want it to\n    be blocked behind a slow cgroup and ultimately want it to delegate\n    actual writing to the usual writeback path.\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\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b85e94134ea6a5a7915e9fbf8e9aa2f55c51ce61",
      "old_mode": 33188,
      "old_path": "fs/buffer.c",
      "new_id": "d883c799fb454f2f46f98c8f86d63bc81f8c8c47",
      "new_mode": 33188,
      "new_path": "fs/buffer.c"
    },
    {
      "type": "modify",
      "old_id": "cf6ccfb01e0371cc92bcd370fd0bd9f1980a2518",
      "old_mode": 33188,
      "old_path": "fs/fs-writeback.c",
      "new_id": "755e8ef8d1f0444a52cd20b9a123390cb274da86",
      "new_mode": 33188,
      "new_path": "fs/fs-writeback.c"
    },
    {
      "type": "modify",
      "old_id": "a3ccb0bd465a75de511cbbe2e028bdf726bacd0e",
      "old_mode": 33188,
      "old_path": "fs/mpage.c",
      "new_id": "388fde6ac2553baecaae8427dff2fff7c23ff8a0",
      "new_mode": 33188,
      "new_path": "fs/mpage.c"
    },
    {
      "type": "modify",
      "old_id": "5c978a924157419123582bb30b7f4135281d23a8",
      "old_mode": 33188,
      "old_path": "include/linux/backing-dev.h",
      "new_id": "b1d2489a65368793d8e59e80c5c7d15c8194ea25",
      "new_mode": 33188,
      "new_path": "include/linux/backing-dev.h"
    },
    {
      "type": "modify",
      "old_id": "6726b7e56beb04e7b6c3b8fd4f2d5159bfc1de93",
      "old_mode": 33188,
      "old_path": "include/linux/writeback.h",
      "new_id": "8f964e558af5057c37d5ce051dde588d5deb194d",
      "new_mode": 33188,
      "new_path": "include/linux/writeback.h"
    },
    {
      "type": "modify",
      "old_id": "7b1443dc3ad0ad79a2fea7d966d6cd3eb24309c6",
      "old_mode": 33188,
      "old_path": "mm/filemap.c",
      "new_id": "2f065b19b6350941b6b0d3d1bc3c5a8a6e78a49c",
      "new_mode": 33188,
      "new_path": "mm/filemap.c"
    }
  ]
}
