)]}'
{
  "commit": "837c7878771c15ed8d85ecf814ece7fcb4551b46",
  "tree": "28b06f0734958802ab98e1e6712ac3c6bf8f2518",
  "parents": [
    "4c5d0bbde9669cfb7f7fd4670dc9a117aea90384"
  ],
  "author": {
    "name": "Ben Woodard",
    "email": "woodard@redhat.com",
    "time": "Wed Mar 22 08:09:31 2006 +0100"
  },
  "committer": {
    "name": "Jens Axboe",
    "email": "axboe@nelson.home.kernel.dk",
    "time": "Mon Mar 27 09:29:02 2006 +0200"
  },
  "message": "[BLOCK] increase size of disk stat counters\n\nThe kernel\u0027s representation of the disk statistics uses the type unsigned\nwhich is 32b on both 32b and 64b platforms.  Unfortunately, most system\ntools that work with these numbers that are exported in /proc/diskstats\nincluding iostat read these numbers into unsigned longs.  This works fine\non 32b platforms and when the number of IO transactions are small on 64b\nplatforms.  However, when the numbers wrap on 64b platforms \u0026 you read the\nnumbers into unsigned longs, and compare the numbers to previous readings,\nthen you get an unsigned representation of a negative number.  This looks\nlike a very large 64b number \u0026 gives you bizarre readouts in iostat:\n\nilc4: Device:    rrqm/s wrqm/s r/s    w/s  rsec/s  wsec/s    rkB/s wkB/s avgrq-sz avgqu-sz   await  svctm  %util\nilc4: sda        5.50   0.00   143.96 0.00 307496983987862656.00 0.00 153748491993931328.00     0.00 2136028725038430.00     7.94   55.12    5.59  80.42\n\nThough fixing iostat in user space is possible, and a quick survey\nindicates that several other similar tools also use unsigned longs when\nprocessing /proc/diskstats.  Therefore, it seems like a better approach\nwould be to extend the length of the disk_stats structure on 64b\narchitectures to 64b.  The following patch does that.  It should not affect\nthe operation on 32b platforms.\n\nSigned-off-by: Ben Woodard \u003cwoodard@redhat.com\u003e\nCc: Rick Lindsley \u003cricklind@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "64510fd88621245c82dc0064c67a9b312ea47072",
      "old_mode": 33188,
      "old_path": "block/genhd.c",
      "new_id": "db4c60c802d6da5bc00a2bf7c3be5e1179250e64",
      "new_mode": 33188,
      "new_path": "block/genhd.c"
    },
    {
      "type": "modify",
      "old_id": "fd647fde5ec18f0aba4124346fd4363d97fe4569",
      "old_mode": 33188,
      "old_path": "include/linux/genhd.h",
      "new_id": "179fea53fc81194bcd01cddd5edca402a9475dc1",
      "new_mode": 33188,
      "new_path": "include/linux/genhd.h"
    }
  ]
}
