)]}'
{
  "commit": "ac2e5327a5e4f6477afc6a3b3b0dc6e0476d71d4",
  "tree": "e8193241c1789655f2168013d1ee434c21f12bac",
  "parents": [
    "06004e6eebdaf101a0f9b533fac77b5768d2c09c"
  ],
  "author": {
    "name": "Ming Lei",
    "email": "ming.lei@canonical.com",
    "time": "Wed Feb 27 17:05:19 2013 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Feb 27 19:10:21 2013 -0800"
  },
  "message": "block/partitions: optimize memory allocation in check_partition()\n\nCurrently, sizeof(struct parsed_partitions) may be 64KB in 32bit arch, so\nit is easy to trigger page allocation failure by check_partition,\nespecially in hotplug block device situation(such as, USB mass storage,\nMMC card, ...), and Felipe Balbi has observed the failure.\n\nThis patch does below optimizations on the allocation of struct\nparsed_partitions to try to address the issue:\n\n- make parsed_partitions.parts as pointer so that the pointed memory can\n  fit in 32KB buffer, then approximate 32KB memory can be saved\n\n- vmalloc the buffer pointed by parsed_partitions.parts because 32KB is\n  still a bit big for kmalloc\n\n- given that many devices have the partition count limit, so only\n  allocate disk_max_parts() partitions instead of 256 partitions always\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nReported-by: Felipe Balbi \u003cbalbi@ti.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1cb4deca1324a0afd1d8239e6d564d5d3c8be1ec",
      "old_mode": 33188,
      "old_path": "block/partition-generic.c",
      "new_id": "789cdea05893bb8e3420ede5d1aa65e7af408e1b",
      "new_mode": 33188,
      "new_path": "block/partition-generic.c"
    },
    {
      "type": "modify",
      "old_id": "bc908672c9764ca782f1e575825c1495e11a6ab4",
      "old_mode": 33188,
      "old_path": "block/partitions/check.c",
      "new_id": "19ba207ea7d12de48ae0a6182c71df3d188c2b3a",
      "new_mode": 33188,
      "new_path": "block/partitions/check.c"
    },
    {
      "type": "modify",
      "old_id": "52b100311ec3fec4b47c88a43c132a2c316314d7",
      "old_mode": 33188,
      "old_path": "block/partitions/check.h",
      "new_id": "eade17ea910b7f7f5e5e210e58170afb8f711e46",
      "new_mode": 33188,
      "new_path": "block/partitions/check.h"
    }
  ]
}
