)]}'
{
  "commit": "4f8ad655dbc82cf05d2edc11e66b78a42d38bf93",
  "tree": "a2692bde34b45857e14c05c10c61e33763ac1bde",
  "parents": [
    "f0d07b7ffde758a27a48509ceda9a9ef413e0ea0"
  ],
  "author": {
    "name": "Jan Kara",
    "email": "jack@suse.cz",
    "time": "Thu May 03 14:48:00 2012 +0200"
  },
  "committer": {
    "name": "Fengguang Wu",
    "email": "fengguang.wu@intel.com",
    "time": "Sun May 06 13:43:40 2012 +0800"
  },
  "message": "writeback: Refactor writeback_single_inode()\n\nThe code in writeback_single_inode() is relatively complex. The list requeing\nlogic makes sense only for flusher thread but not really for sync_inode() or\nwrite_inode_now() callers. Also when we want to get rid of inode references\nheld by flusher thread, we will need a special I_SYNC handling there.\n\nSo separate part of writeback_single_inode() which does the real writeback work\ninto __writeback_single_inode() and make writeback_single_inode() do only stuff\nnecessary for callers writing only one inode, moving the special list handling\ninto writeback_sb_inodes(). As a sideeffect this fixes a possible race where we\ncould skip some inode during sync(2) because other writer refiled it from b_io\nto b_dirty list. Also I_SYNC handling is moved into the callers of\n__writeback_single_inode() to make locking easier.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3b87dc80fd304f52e2a9b5417b585c7211986c22",
      "old_mode": 33188,
      "old_path": "fs/fs-writeback.c",
      "new_id": "5f2c682896105653d3fe21da537ab03a658487f9",
      "new_mode": 33188,
      "new_path": "fs/fs-writeback.c"
    }
  ]
}
