)]}'
{
  "commit": "f5f90e4c39ea94673670c7939f21890b878d0ce1",
  "tree": "1780a0f08bf4bf7b14e62ae1d037c765f709f7d0",
  "parents": [
    "3254c84ce646e6376c70e07aed28762d9b05d2c2"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Fri Oct 28 11:08:54 2016 -0400"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Fri Oct 28 11:08:54 2016 -0400"
  },
  "message": "jbd2: use mutex_lock_io() for journal-\u003ej_checkpoint_mutex\n\nWhen an ext4 fs is bogged down by a lot of metadata IOs (in the\nreported case, it was deletion of millions of files, but any massive\namount of journal writes would do), after the journal is filled up,\ntasks which try to access the filesystem and aren\u0027t currently\nperforming the journal writes end up waiting in\n__jbd2_log_wait_for_space() for journal-\u003ej_checkpoint_mutex.\n\nBecause those mutex sleeps aren\u0027t marked as iowait, this condition can\nlead to misleadingly low iowait and /proc/stat:procs_blocked.  While\niowait propagation is far from strict, this condition can be triggered\nfairly easily and annotating these sleeps correctly helps initial\ndiagnosis quite a bit.\n\nUse the new mutex_lock_io() for journal-\u003ej_checkpoint_mutex so that\nthese sleeps are properly marked as iowait.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Mingbo Wan \u003cmingbo@fb.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Jan Kara \u003cjack@suse.com\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: linux-ext4@vger.kernel.org\nCc: linux-fsdevel@vger.kernel.org\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "31f8ca0466392eef588a2e61fbc5b34b132c5345",
      "old_mode": 33188,
      "old_path": "fs/jbd2/commit.c",
      "new_id": "e7728814d5001a6f1989d7115cfb50cfcb23e94a",
      "new_mode": 33188,
      "new_path": "fs/jbd2/commit.c"
    },
    {
      "type": "modify",
      "old_id": "927da4956a89e5306cf918efbaceea108a7dfd27",
      "old_mode": 33188,
      "old_path": "fs/jbd2/journal.c",
      "new_id": "0aa7d0659adf133d0c6a6b7ac23f4d35a0761415",
      "new_mode": 33188,
      "new_path": "fs/jbd2/journal.c"
    }
  ]
}
