)]}'
{
  "commit": "982d816581eeeacfe5b2b7c6d47d13a157616eff",
  "tree": "1f1cb5725646e9de13969c8894b26ab3d5e3102e",
  "parents": [
    "b4d5b10fb2e3a4327838c07d8ebd9e350fcc133d"
  ],
  "author": {
    "name": "Josef Bacik",
    "email": "josef@redhat.com",
    "time": "Mon Jul 18 13:21:35 2011 -0400"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Wed Jul 20 20:47:56 2011 -0400"
  },
  "message": "fs: add SEEK_HOLE and SEEK_DATA flags\n\nThis just gets us ready to support the SEEK_HOLE and SEEK_DATA flags.  Turns out\nusing fiemap in things like cp cause more problems than it solves, so lets try\nand give userspace an interface that doesn\u0027t suck.  We need to match solaris\nhere, and the definitions are\n\n*o* If /whence/ is SEEK_HOLE, the offset of the start of the\nnext hole greater than or equal to the supplied offset\nis returned. The definition of a hole is provided near\nthe end of the DESCRIPTION.\n\n*o* If /whence/ is SEEK_DATA, the file pointer is set to the\nstart of the next non-hole file region greater than or\nequal to the supplied offset.\n\nSo in the generic case the entire file is data and there is a virtual hole at\nthe end.  That means we will just return i_size for SEEK_HOLE and will return\nthe same offset for SEEK_DATA.  This is how Solaris does it so we have to do it\nthe same way.\n\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0eeb3954dea3318e3db0aa179b71c1da38e629e1",
      "old_mode": 33188,
      "old_path": "Documentation/filesystems/porting",
      "new_id": "6b96773e27cb2ef54bd736309e46e25b04aec0db",
      "new_mode": 33188,
      "new_path": "Documentation/filesystems/porting"
    },
    {
      "type": "modify",
      "old_id": "5520f8ad550446d095c6483e67acc0ca5522ff91",
      "old_mode": 33188,
      "old_path": "fs/read_write.c",
      "new_id": "5907b49e4d7ee42bbf6c613802a0522e0827107a",
      "new_mode": 33188,
      "new_path": "fs/read_write.c"
    },
    {
      "type": "modify",
      "old_id": "824453be9feeb2653cabd7abd02e597fb2500d3e",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "4a61f98823a6edb581c61d10f015b33aeb1d0599",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    }
  ]
}
