)]}'
{
  "commit": "ffb5387e85d528fb6d0d924abfa3fbf0fc484071",
  "tree": "b4e444479eada05eb93c3f1b2099a018c5aef116",
  "parents": [
    "8f0d8163b50e01f398b14bcd4dc039ac5ab18d64"
  ],
  "author": {
    "name": "Eric Sandeen",
    "email": "sandeen@redhat.com",
    "time": "Sun Oct 28 22:24:57 2012 -0400"
  },
  "committer": {
    "name": "Theodore Ts\u0027o",
    "email": "tytso@mit.edu",
    "time": "Sun Oct 28 22:24:57 2012 -0400"
  },
  "message": "ext4: fix unjournaled inode bitmap modification\n\ncommit 119c0d4460b001e44b41dcf73dc6ee794b98bd31 changed\next4_new_inode() such that the inode bitmap was being modified\noutside a transaction, which could lead to corruption, and was\ndiscovered when journal_checksum found a bad checksum in the\njournal during log replay.\n\nNix ran into this when using the journal_async_commit mount\noption, which enables journal checksumming.  The ensuing\njournal replay failures due to the bad checksums led to\nfilesystem corruption reported as the now infamous\n\"Apparent serious progressive ext4 data corruption bug\"\n\n[ Changed by tytso to only call ext4_journal_get_write_access() only\n  when we\u0027re fairly certain that we\u0027re going to allocate the inode. ]\n\nI\u0027ve tested this by mounting with journal_checksum and\nrunning fsstress then dropping power; I\u0027ve also tested by\nhacking DM to create snapshots w/o first quiescing, which\nallows me to test journal replay repeatedly w/o actually\npower-cycling the box.  Without the patch I hit a journal\nchecksum error every time.  With this fix it survives\nmany iterations.\n\nReported-by: Nix \u003cnix@esperi.org.uk\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4facdd29a350f1d8250d17373e94c44a393ab78f",
      "old_mode": 33188,
      "old_path": "fs/ext4/ialloc.c",
      "new_id": "3a100e7a62a8343d31912a423330e11ea40e2e2a",
      "new_mode": 33188,
      "new_path": "fs/ext4/ialloc.c"
    }
  ]
}
