)]}'
{
  "commit": "81d73a32d775ae9674ea6edf0b5b721fc3bc57d9",
  "tree": "c4097c3c7715a128cf54252b2ff906d3d8946ae0",
  "parents": [
    "a50aeb40144982eb766053309b6fc33e14ca46f0"
  ],
  "author": {
    "name": "Jan Kara",
    "email": "jack@suse.cz",
    "time": "Wed Aug 11 14:17:44 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Aug 12 08:43:30 2010 -0700"
  },
  "message": "mm: fix writeback_in_progress()\n\nCommit 83ba7b071f3 (\"writeback: simplify the write back thread queue\")\nbroke writeback_in_progress() as in that commit we started to remove work\nitems from the list at the moment we start working on them and not at the\nmoment they are finished.  Thus if the flusher thread was doing some work\nbut there was no other work queued, writeback_in_progress() returned\nfalse.  This could in particular cause unnecessary queueing of background\nwriteback from balance_dirty_pages() or writeout work from\nwriteback_sb_if_idle().\n\nThis patch fixes the problem by introducing a bit in the bdi state which\nindicates that the flusher thread is processing some work and uses this\nbit for writeback_in_progress() test.\n\nNOTE: Both callsites of writeback_in_progress() (namely,\nwriteback_inodes_sb_if_idle() and balance_dirty_pages()) would actually\nneed a different information than what writeback_in_progress() provides.\nThey would need to know whether *the kind of writeback they are going to\nsubmit* is already queued.  But this information isn\u0027t that simple to\nprovide so let\u0027s fix writeback_in_progress() for the time being.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8a5807d2fb9d3407ade2de9386bfa9427d2621c6",
      "old_mode": 33188,
      "old_path": "fs/fs-writeback.c",
      "new_id": "7d9d06ba184b409e2ae90050ce82ca365cf3ce82",
      "new_mode": 33188,
      "new_path": "fs/fs-writeback.c"
    },
    {
      "type": "modify",
      "old_id": "7628219e5386c56e2df863d8f8d4759c1c986f41",
      "old_mode": 33188,
      "old_path": "include/linux/backing-dev.h",
      "new_id": "35b00746c712fc11776e78345edf786b98f9063b",
      "new_mode": 33188,
      "new_path": "include/linux/backing-dev.h"
    }
  ]
}
