)]}'
{
  "commit": "be4f27d324e8ddd57cc0d4d604fe85ee0425cba9",
  "tree": "e4262a9e1ade9095e1bf937dc4b9d56a08824eda",
  "parents": [
    "0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c"
  ],
  "author": {
    "name": "Yongqiang Yang",
    "email": "xiaoqiangnk@gmail.com",
    "time": "Sun Apr 10 22:06:07 2011 -0400"
  },
  "committer": {
    "name": "Theodore Ts\u0027o",
    "email": "tytso@mit.edu",
    "time": "Sun Apr 10 22:06:07 2011 -0400"
  },
  "message": "ext4: allow an active handle to be started when freezing\n\next4_journal_start_sb() should not prevent an active handle from being\nstarted due to s_frozen.  Otherwise, deadlock is easy to happen, below\nis a situation.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     freeze         |       truncate\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    |  ext4_ext_truncate()\n    freeze_super()  |   starts a handle\n    sets s_frozen   |\n                    |  ext4_ext_truncate()\n                    |  holds i_data_sem\n  ext4_freeze()     |\n  waits for updates |\n                    |  ext4_free_blocks()\n                    |  calls dquot_free_block()\n                    |\n                    |  dquot_free_blocks()\n                    |  calls ext4_dirty_inode()\n                    |\n                    |  ext4_dirty_inode()\n                    |  trys to start an active\n                    |  handle\n                    |\n                    |  block due to s_frozen\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "551cb8e2110c85d452353a9833e29d7dd1596e10",
      "old_mode": 33188,
      "old_path": "fs/ext4/super.c",
      "new_id": "7b636ceb878a9974929e94ca7165174f79af2dee",
      "new_mode": 33188,
      "new_path": "fs/ext4/super.c"
    }
  ]
}
