)]}'
{
  "commit": "55ab3a1ff843e3f0e24d2da44e71bffa5d853010",
  "tree": "092f383aab3dc57d6780348aa9638d01e99041cf",
  "parents": [
    "da258016293f5e82b36db67ac3db3931a4fbbc4d"
  ],
  "author": {
    "name": "Anton Blanchard",
    "email": "anton@samba.org",
    "time": "Tue Apr 06 14:34:58 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Apr 07 08:38:04 2010 -0700"
  },
  "message": "raw: fsync method is now required\n\nCommit 148f948ba877f4d3cdef036b1ff6d9f68986706a (vfs: Introduce new\nhelpers for syncing after writing to O_SYNC file or IS_SYNC inode) broke\nthe raw driver.\n\nWe now call through generic_file_aio_write -\u003e generic_write_sync -\u003e\nvfs_fsync_range.  vfs_fsync_range has:\n\n        if (!fop || !fop-\u003efsync) {\n                ret \u003d -EINVAL;\n                goto out;\n        }\n\nBut drivers/char/raw.c doesn\u0027t set an fsync method.\n\nWe have two options: fix it or remove the raw driver completely.  I\u0027m\nhappy to do either, the fact this has been broken for so long suggests it\nis rarely used.\n\nThe patch below adds an fsync method to the raw driver.  My knowledge of\nthe block layer is pretty sketchy so this could do with a once over.\n\nIf we instead decide to remove the raw driver, this patch might still be\nuseful as a backport to 2.6.33 and 2.6.32.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nTested-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: \u003cstable@kernel.org\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": "d331c59b571c5c2520787e8a753062a91e2ef22c",
      "old_mode": 33188,
      "old_path": "drivers/char/raw.c",
      "new_id": "f5a32317b751ef4de691c42407bdac85c7bbecb0",
      "new_mode": 33188,
      "new_path": "drivers/char/raw.c"
    },
    {
      "type": "modify",
      "old_id": "d11d0289f3d24bf9489acba6059c5d8ada9eda52",
      "old_mode": 33188,
      "old_path": "fs/block_dev.c",
      "new_id": "8db62b2b6df8ad4522ab49e1e1c4a0408236b2c4",
      "new_mode": 33188,
      "new_path": "fs/block_dev.c"
    },
    {
      "type": "modify",
      "old_id": "10b8dedcd18b82a82491129a2baaef0f18ca4ce1",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "5d9c7e27c5a43b2c5902a89966ebb57ced16dc7b",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    }
  ]
}
