)]}'
{
  "commit": "f446daaea9d4a420d16c606f755f3689dcb2d0ce",
  "tree": "be2afc18f79aa4ff9be245b0a036aa06185b5dc4",
  "parents": [
    "ebf8aa44beed48cd17893a83d92a4403e5f9d9e2"
  ],
  "author": {
    "name": "Jan Kara",
    "email": "jack@suse.cz",
    "time": "Mon Aug 09 17:19:12 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Mon Aug 09 20:44:59 2010 -0700"
  },
  "message": "mm: implement writeback livelock avoidance using page tagging\n\nWe try to avoid livelocks of writeback when some steadily creates dirty\npages in a mapping we are writing out.  For memory-cleaning writeback,\nusing nr_to_write works reasonably well but we cannot really use it for\ndata integrity writeback.  This patch tries to solve the problem.\n\nThe idea is simple: Tag all pages that should be written back with a\nspecial tag (TOWRITE) in the radix tree.  This can be done rather quickly\nand thus livelocks should not happen in practice.  Then we start doing the\nhard work of locking pages and sending them to disk only for those pages\nthat have TOWRITE tag set.\n\nNote: Adding new radix tree tag grows radix tree node from 288 to 296\nbytes for 32-bit archs and from 552 to 560 bytes for 64-bit archs.\nHowever, the number of slab/slub items per page remains the same (13 and 7\nrespectively).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\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": "e5106e49bd2ccce31cad95a2fe5f30efb5233dae",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "488efec09d148dc91972962048540adfe261e5ac",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    },
    {
      "type": "modify",
      "old_id": "a4b00e9cca90148981d5334ad5889043539304da",
      "old_mode": 33188,
      "old_path": "include/linux/radix-tree.h",
      "new_id": "634b8e674ac578e2916b110a28b992bf2e8dfd22",
      "new_mode": 33188,
      "new_path": "include/linux/radix-tree.h"
    },
    {
      "type": "modify",
      "old_id": "37498ef6154836943f3478304bf7440ab255669a",
      "old_mode": 33188,
      "old_path": "mm/page-writeback.c",
      "new_id": "df8202ebc7b80c0849dfd1486fb0130eed875557",
      "new_mode": 33188,
      "new_path": "mm/page-writeback.c"
    }
  ]
}
