)]}'
{
  "commit": "8c111b3f56332a216b18cd57950bdf04ac8f2a98",
  "tree": "9295744be006082391c9bfeed2cabf43b29cc4ea",
  "parents": [
    "63894ab9f63a688f6b0b8cdd01ac0a9f36d507b8"
  ],
  "author": {
    "name": "Yongqiang Yang",
    "email": "xiaoqiangnk@gmail.com",
    "time": "Sat Nov 19 17:34:29 2011 +0800"
  },
  "committer": {
    "name": "Jan Kara",
    "email": "jack@suse.cz",
    "time": "Tue Nov 22 01:20:53 2011 +0100"
  },
  "message": "jbd: clear revoked flag on buffers before a new transaction started\n\nCurrently, we clear revoked flag only when a block is reused.  However,\nthis can tigger a false journal error.  Consider a situation when a block\nis used as a meta block and is deleted(revoked) in ordered mode, then the\nblock is allocated as a data block to a file.  At this moment, user changes\nthe file\u0027s journal mode from ordered to journaled and truncates the file.\nThe block will be considered re-revoked by journal because it has revoked\nflag still pending from the last transaction and an assertion triggers.\n\nWe fix the problem by keeping the revoked status more uptodate - we clear\nrevoked flag when switching revoke tables to reflect there is no revoked\nbuffers in current transaction any more.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8799207df058bbe24fa2f852fcc78dbba14828ca",
      "old_mode": 33188,
      "old_path": "fs/jbd/commit.c",
      "new_id": "f2b9a571f4cf51f8a61995c43b131851c504f567",
      "new_mode": 33188,
      "new_path": "fs/jbd/commit.c"
    },
    {
      "type": "modify",
      "old_id": "305a9076315466f27b2afea67c358cd27d74a3b6",
      "old_mode": 33188,
      "old_path": "fs/jbd/revoke.c",
      "new_id": "25c713e7071c75617dbda7dcf941efadf9eff30b",
      "new_mode": 33188,
      "new_path": "fs/jbd/revoke.c"
    },
    {
      "type": "modify",
      "old_id": "c7acdde3243d6886391856c6ccd62261a4f8b9cf",
      "old_mode": 33188,
      "old_path": "include/linux/jbd.h",
      "new_id": "492cc12244fdff51b6e657a1d4d666e3fd319880",
      "new_mode": 33188,
      "new_path": "include/linux/jbd.h"
    }
  ]
}
