)]}'
{
  "commit": "415cb800375cc4e89fb5a6a454e484bd4adbffb4",
  "tree": "816021a5279047702d5fa8180783b1c710f31746",
  "parents": [
    "6d0b842d3bf0cc027dcff57a89fb8a6b1fd610e1"
  ],
  "author": {
    "name": "Mark Fasheh",
    "email": "mark.fasheh@oracle.com",
    "time": "Sun Sep 16 20:10:16 2007 -0700"
  },
  "committer": {
    "name": "Mark Fasheh",
    "email": "mark.fasheh@oracle.com",
    "time": "Thu Sep 20 15:06:09 2007 -0700"
  },
  "message": "ocfs2: Allow smaller allocations during large writes\n\nThe ocfs2 write code loops through a page much like the block code, except\nthat ocfs2 allocation units can be any size, including larger than page\nsize. Typically it\u0027s equal to or larger than page size - most kernels run 4k\npages, the minimum ocfs2 allocation (cluster) size.\n\nSome changes introduced during 2.6.23 changed the way writes to pages are\nhandled, and inadvertantly broke support for \u003e 4k page size. Instead of just\nwriting one cluster at a time, we now handle the whole page in one pass.\n\nThis means that multiple (small) seperate allocations might happen in the\nsame pass. The allocation code howver typically optimizes by getting the\nmaximum which was reserved. This triggered a BUG_ON in the extend code where\nit\u0027d ask for a single bit (for one part of a \u003e 4k page) and get back more\nthan it asked for.\n\nFix this by providing a variant of the high level allocation function which\nallows the caller to specify a maximum. The traditional function remains and\njust calls the new one with a maximum determined from the initial\nreservation.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7e34e66159c690cb13beb43abaebe58b8f285333",
      "old_mode": 33188,
      "old_path": "fs/ocfs2/file.c",
      "new_id": "f3bc3658e7a5ef69ee677c2822b541c557da84b7",
      "new_mode": 33188,
      "new_path": "fs/ocfs2/file.c"
    },
    {
      "type": "modify",
      "old_id": "545f7892cdf39b645888e12fa8614598dbb86bfb",
      "old_mode": 33188,
      "old_path": "fs/ocfs2/localalloc.c",
      "new_id": "de984d2725760ee1d523b8fe588831c09891ec2f",
      "new_mode": 33188,
      "new_path": "fs/ocfs2/localalloc.c"
    },
    {
      "type": "modify",
      "old_id": "385a10152f9c8a7fd72cad76ec2a0bc6a90eff09",
      "old_mode": 33188,
      "old_path": "fs/ocfs2/localalloc.h",
      "new_id": "3f76631e110c5a6284963cfe186b2c9a0917dabd",
      "new_mode": 33188,
      "new_path": "fs/ocfs2/localalloc.h"
    },
    {
      "type": "modify",
      "old_id": "d9c5c9fcb30fc300bb9132f54f0526156f5847b8",
      "old_mode": 33188,
      "old_path": "fs/ocfs2/suballoc.c",
      "new_id": "8f09f5235e3a68651ca279ab34598f2f22270cc8",
      "new_mode": 33188,
      "new_path": "fs/ocfs2/suballoc.c"
    },
    {
      "type": "modify",
      "old_id": "f212dc01a84bd83088f5f7a70460a44efddc1b4a",
      "old_mode": 33188,
      "old_path": "fs/ocfs2/suballoc.h",
      "new_id": "cafe93703095f187a5fadf825a6415c9d1837bad",
      "new_mode": 33188,
      "new_path": "fs/ocfs2/suballoc.h"
    }
  ]
}
