)]}'
{
  "commit": "9ada7340987aa24395809570840c7c6847044f52",
  "tree": "e2a57c184d15cbd2415f4fce35534cf635e9fa9f",
  "parents": [
    "8e0a43d8fa953179505869ec28de78550246e795"
  ],
  "author": {
    "name": "Jan Kara",
    "email": "jack@suse.cz",
    "time": "Fri Jun 23 02:05:25 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Fri Jun 23 07:43:04 2006 -0700"
  },
  "message": "[PATCH] jbd: fix BUG in journal_commit_transaction()\n\nFix possible assertion failure in journal_commit_transaction() on\njh-\u003eb_next_transaction \u003d\u003d NULL (when we are processing BJ_Forget list and\nbuffer is not jbddirty).\n\n!jbddirty buffers can be placed on BJ_Forget list for example by\njournal_forget() or by __dispose_buffer() - generally such buffer means\nthat it has been freed by this transaction.\n\nFreed buffers should not be reallocated until the transaction has committed\n(that\u0027s why we have the assertion there) but they *can* be reallocated when\nthe transaction has already been committed to disk and we are just\nprocessing the BJ_Forget list (as soon as we remove b_committed_data from\nthe bitmap bh, ext3 will be able to reallocate buffers freed by the\ncommitting transaction).  So we have to also count with the case that the\nbuffer has been reallocated and b_next_transaction has been already set.\n\nAnd one more subtle point: it can happen that we manage to reallocate the\nbuffer and also mark it jbddirty.  Then we also add the freed buffer to the\ncheckpoint list of the committing trasaction.  But that should do no harm.\n\nNon-jbddirty buffers should be filed to BJ_Reserved and not BJ_Metadata\nlist.  It can actually happen that we refile such buffers during the commit\nphase when we reallocate in the running transaction blocks deleted in\ncommitting transaction (and that can happen if the committing transaction\nalready wrote all the data and is just cleaning up BJ_Forget list).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "002ad2bbc76992b6acda52def147799886147693",
      "old_mode": 33188,
      "old_path": "fs/jbd/commit.c",
      "new_id": "0971814c38b8572eca8ca90bbce4d7f307b69fb9",
      "new_mode": 33188,
      "new_path": "fs/jbd/commit.c"
    },
    {
      "type": "modify",
      "old_id": "c609f5034fcd567efd056a8d49bdd21be589b2b2",
      "old_mode": 33188,
      "old_path": "fs/jbd/transaction.c",
      "new_id": "ff75afe9b185cbb428a63495a3f0f247d73e9086",
      "new_mode": 33188,
      "new_path": "fs/jbd/transaction.c"
    }
  ]
}
