)]}'
{
  "commit": "cc3e1bea5d87635c519da657303690f5538bb4eb",
  "tree": "727b348d0389a2fe6618fb224fe1d81d207668c4",
  "parents": [
    "034fb4c95fc0fed4ec4a50778127b92c6f2aec01"
  ],
  "author": {
    "name": "Theodore Ts\u0027o",
    "email": "tytso@mit.edu",
    "time": "Wed Dec 23 06:52:08 2009 -0500"
  },
  "committer": {
    "name": "Theodore Ts\u0027o",
    "email": "tytso@mit.edu",
    "time": "Wed Dec 23 06:52:08 2009 -0500"
  },
  "message": "ext4, jbd2: Add barriers for file systems with exernal journals\n\nThis is a bit complicated because we are trying to optimize when we\nsend barriers to the fs data disk.  We could just throw in an extra\nbarrier to the data disk whenever we send a barrier to the journal\ndisk, but that\u0027s not always strictly necessary.\n\nWe only need to send a barrier during a commit when there are data\nblocks which are must be written out due to an inode written in\nordered mode, or if fsync() depends on the commit to force data blocks\nto disk.  Finally, before we drop transactions from the beginning of\nthe journal during a checkpoint operation, we need to guarantee that\nany blocks that were flushed out to the data disk are firmly on the\nrust platter before we drop the transaction from the journal.\n\nThanks to Oleg Drokin for pointing out this flaw in ext3/ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0b22497d92e1b079e2eb10c22eb7a6ce6f546153",
      "old_mode": 33188,
      "old_path": "fs/ext4/fsync.c",
      "new_id": "98bd140aad01148b07a85d2ca7ee59b97c1ac8c4",
      "new_mode": 33188,
      "new_path": "fs/ext4/fsync.c"
    },
    {
      "type": "modify",
      "old_id": "ca0f5eb62b20e450b38ef84b52c64bc2a214bc17",
      "old_mode": 33188,
      "old_path": "fs/jbd2/checkpoint.c",
      "new_id": "886849370950f462627f0a9d2df692ec4d117d97",
      "new_mode": 33188,
      "new_path": "fs/jbd2/checkpoint.c"
    },
    {
      "type": "modify",
      "old_id": "6a10238d2c63d3f7c7945d1d6cbe6a4adcb57d04",
      "old_mode": 33188,
      "old_path": "fs/jbd2/commit.c",
      "new_id": "1bc74b6f26d2cbb9d159f9f49aef102fa7dda30e",
      "new_mode": 33188,
      "new_path": "fs/jbd2/commit.c"
    },
    {
      "type": "modify",
      "old_id": "f1011f7f3d4142bf5771007661cec4cd8a6c3315",
      "old_mode": 33188,
      "old_path": "include/linux/jbd2.h",
      "new_id": "638ce4554c76e903d632720b3d25dea3350c745b",
      "new_mode": 33188,
      "new_path": "include/linux/jbd2.h"
    }
  ]
}
