)]}'
{
  "commit": "f75bbfb4dda68c86eb33cde7e2b5c1343c6d5812",
  "tree": "42d5f7a3637061cddc3170aac8e57c4933007898",
  "parents": [
    "13d921e37174e3d1042deeb303537c1d935da553"
  ],
  "author": {
    "name": "Steven Whitehouse",
    "email": "swhiteho@redhat.com",
    "time": "Thu Sep 08 10:21:13 2011 +0100"
  },
  "committer": {
    "name": "Steven Whitehouse",
    "email": "swhiteho@redhat.com",
    "time": "Fri Oct 21 12:39:46 2011 +0100"
  },
  "message": "GFS2: Fix off-by-one in gfs2_blk2rgrpd\n\nBob reported:\n\nI found an off-by-one problem with how I coded this section:\nIt should be:\n\n+ else if (blk \u003e\u003d cur-\u003erd_data0 + cur-\u003erd_data)\n\nIn fact, cur-\u003erd_data0 + cur-\u003erd_data is the start of the next\nrgrp (the next ri_addr), so without the \"\u003d\" check it can land on\nthe wrong rgrp.\n\nIn all normal cases, this won\u0027t be a problem: you\u0027re searching\nfor a block _within_ the rgrp, which will pass the test properly.\nWhere it gets into trouble is if you search the rgrps for the\nblock exactly equal to ri_addr.  I don\u0027t think anything in the\nkernel does this, but I found a place in gfs2-utils gfs2_edit\nwhere it does.  So I definitely need to fix it in libgfs2.  I\u0027d\nlike to suggest we fix it in the kernel as well for the sake of\nkeeping the functions similar.\n\nSo this patch fixes the above mentioned off by one error as well\nas removing the unused parent pointer.\n\nReported-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8ec41744594bb30c59167defcc105af868cbbf88",
      "old_mode": 33188,
      "old_path": "fs/gfs2/rgrp.c",
      "new_id": "1daf8a78c7339e4f822df624c336ee91ea65e4e4",
      "new_mode": 33188,
      "new_path": "fs/gfs2/rgrp.c"
    }
  ]
}
