)]}'
{
  "commit": "b524fe646c9a226a847e30ca1221dc22e952f16b",
  "tree": "873b37ab81cadbcc73b02c83cbfd85c1a5ccbee9",
  "parents": [
    "7dcca30a32aadb0520417521b0c44f42d09fe05c"
  ],
  "author": {
    "name": "Benjamin Marzinski",
    "email": "bmarzins@redhat.com",
    "time": "Wed May 02 09:44:03 2007 -0500"
  },
  "committer": {
    "name": "Steven Whitehouse",
    "email": "swhiteho@redhat.com",
    "time": "Mon Jul 09 08:22:07 2007 +0100"
  },
  "message": "[GFS2] flush the glock completely in inode_go_sync\n\nFix for bz #231910\nWhen filemap_fdatawrite() is called on the inode mapping in data\u003dordered mode,\nit will add the glock to the log. In inode_go_sync(), if you do the\ngfs2_log_flush() before this, after the filemap_fdatawrite() call, the glock\nand its associated data buffers will be on the log again. This means you can\ndemote a lock from exclusive, without having it flushed from the log. The\nattached patch simply moves the gfs2_log_flush up to after the\nfilemap_fdatawrite() call.\n\nOriginally, I tried moving the gfs2_log_flush to after gfs2_meta_sync(), but\nthat caused me to trip the following assert.\n\nGFS2: fsid\u003dcypher-36:test.0: fatal: assertion \"!buffer_busy(bh)\" failed\nGFS2: fsid\u003dcypher-36:test.0:   function \u003d gfs2_ail_empty_gl, file \u003d fs/gfs2/glops.c, line \u003d 61\n\nIt appears that gfs2_log_flush() puts some of the glocks buffers in the busy\nstate and the filemap_fdatawrite() call is necessary to flush them. This makes\nme worry slightly that a related problem could happen because of moving the\ngfs2_log_flush() after the initial filemap_fdatawrite(), but I assume that\ngfs2_ail_empty_gl() would catch that case as well.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7b82657a991096bea7291522f2bd357a5213d24e",
      "old_mode": 33188,
      "old_path": "fs/gfs2/glops.c",
      "new_id": "777ca46010e875907a49d5972f937cf5f83cdba1",
      "new_mode": 33188,
      "new_path": "fs/gfs2/glops.c"
    }
  ]
}
