)]}'
{
  "commit": "d63b70902befe189ba2672925f28ec3f4db41352",
  "tree": "727b00bf66ebb3d1de20d630f310429fa5063325",
  "parents": [
    "7ba3485947ee7bc89a17f86250fe9b692a615dff"
  ],
  "author": {
    "name": "Evgeniy Dushistov",
    "email": "dushistov@mail.ru",
    "time": "Fri Jan 05 16:37:04 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.osdl.org",
    "time": "Fri Jan 05 23:55:29 2007 -0800"
  },
  "message": "[PATCH] fix garbage instead of zeroes in UFS\n\nLooks like this is the problem, which point Al Viro some time ago:\n\nufs\u0027s get_block callback allocates 16k of disk at a time, and links that\nentire 16k into the file\u0027s metadata.  But because get_block is called for only\na single buffer_head (a 2k buffer_head in this case?) we are only able to tell\nthe VFS that this 2k is buffer_new().\n\nSo when ufs_getfrag_block() is later called to map some more data in the file,\nand when that data resides within the remaining 14k of this fragment,\nufs_getfrag_block() will incorrectly return a !buffer_new() buffer_head.\n\nI don\u0027t see _right_ way to do nullification of whole block, if use inode\npage cache, some pages may be outside of inode limits (inode size), and\nwill be lost; if use blockdev page cache it is possible to zero real data,\nif later inode page cache will be used.\n\nThe simpliest way, as can I see usage of block device page cache, but not only\nmark dirty, but also sync it during \"nullification\".  I use my simple tests\ncollection, which I used for check that create,open,write,read,close works on\nufs, and I see that this patch makes ufs code 18% slower then before.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b82381475779b59ecdd52685eafc05db391d6bb2",
      "old_mode": 33188,
      "old_path": "fs/ufs/balloc.c",
      "new_id": "2e0021e8f3662e2f9fad8313efcd002ca56d6862",
      "new_mode": 33188,
      "new_path": "fs/ufs/balloc.c"
    },
    {
      "type": "modify",
      "old_id": "ee1eaa6f4ec2187f0f669324d2aaa7253932318a",
      "old_mode": 33188,
      "old_path": "fs/ufs/inode.c",
      "new_id": "2fbab0aab6883e749f87716440434a46467af37f",
      "new_mode": 33188,
      "new_path": "fs/ufs/inode.c"
    }
  ]
}
