)]}'
{
  "commit": "95ecbd0f162fc06ef4c4045a66f653f47b62a2d3",
  "tree": "b9f25c38265bb65d0ca8493c1d8741a69c1c2982",
  "parents": [
    "5dc4c995db9eb45f6373a956eb1f69460e69e6d4"
  ],
  "author": {
    "name": "Andreas Gruenbacher",
    "email": "agruenba@redhat.com",
    "time": "Thu Jan 19 20:14:42 2023 +0100"
  },
  "committer": {
    "name": "Andreas Gruenbacher",
    "email": "agruenba@redhat.com",
    "time": "Sun Jan 22 09:46:14 2023 +0100"
  },
  "message": "Revert \"gfs2: stop using generic_writepages in gfs2_ail1_start_one\"\n\nCommit b2b0a5e97855 switched from generic_writepages() to\nfilemap_fdatawrite_wbc() in gfs2_ail1_start_one() on the path to\nreplacing -\u003ewritepage() with -\u003ewritepages() and eventually eliminating\nthe former.  Function gfs2_ail1_start_one() is called from\ngfs2_log_flush(), our main function for flushing the filesystem log.\n\nUnfortunately, at least as implemented today, -\u003ewritepage() and\n-\u003ewritepages() are entirely different operations for journaled data\ninodes: while the former creates and submits transactions covering the\ndata to be written, the latter flushes dirty buffers out to disk.\n\nWith gfs2_ail1_start_one() now calling -\u003ewritepages(), we end up\ncreating filesystem transactions while we are in the course of a log\nflush, which immediately deadlocks on the sdp-\u003esd_log_flush_lock\nsemaphore.\n\nWork around that by going back to how things used to work before commit\nb2b0a5e97855 for now; figuring out a superior solution will take time we\ndon\u0027t have available right now.  However ...\n\nSince the removal of generic_writepages() is imminent, open-code it\nhere.  We\u0027re already inside a blk_start_plug() ...  blk_finish_plug()\nsection here, so skip that part of the original generic_writepages().\n\nThis reverts commit b2b0a5e978552e348f85ad9c7568b630a5ede659.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruenba@redhat.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "723639376ae2a1c125e8c0f8604f8066bf8c4f24",
      "old_mode": 33188,
      "old_path": "fs/gfs2/log.c",
      "new_id": "61323deb80bc7b70d91a161898fff3ea6a31e2a1",
      "new_mode": 33188,
      "new_path": "fs/gfs2/log.c"
    }
  ]
}
