)]}'
{
  "commit": "fce2a4e6b2da1bcc03837aff53b5bcb02bee4cee",
  "tree": "a56d9f42f183f0952e1327090681fb120ffb4adb",
  "parents": [
    "704de49d2be665be44933300f60023c889832fca"
  ],
  "author": {
    "name": "Filipe Manana",
    "email": "fdmanana@suse.com",
    "time": "Mon Oct 06 22:14:23 2014 +0100"
  },
  "committer": {
    "name": "Chris Mason",
    "email": "clm@fb.com",
    "time": "Thu Nov 20 17:14:25 2014 -0800"
  },
  "message": "Btrfs: fix hang on compressed write error\n\nIn inode.c:submit_compressed_extents(), before calling btrfs_submit_compressed_write()\nwe start writeback for all pages, clear their dirty flag, unlock them, etc, but if\nbtrfs_submit_compressed_write() fails (at the moment it can only fail with -ENOMEM),\nwe never end the writeback on the pages, so any filemap_fdatawait_range() call will\nhang forever. We were also not calling the writepage end io hook, which means the\ncorresponding ordered extent will never complete and all its waiters will block\nforever, such as a full fsync (via btrfs_wait_ordered_range()).\n\nSigned-off-by: Filipe Manana \u003cfdmanana@suse.com\u003e\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fcb9a38fc9d35ff62df6e16161d39779d0833d3f",
      "old_mode": 33188,
      "old_path": "fs/btrfs/inode.c",
      "new_id": "ec68eaef05d7ed39bfc3c9a10065a91b0375bfe2",
      "new_mode": 33188,
      "new_path": "fs/btrfs/inode.c"
    }
  ]
}
