)]}'
{
  "commit": "5f820f648c92a5ecc771a96b3c29aa6e90013bba",
  "tree": "0445b45fa33072d37b32c6ef592a4d0c102e05cc",
  "parents": [
    "67ec7d3ab779ad9001ef57a6b4cfdf80ac9f9acc"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "htejun@gmail.com",
    "time": "Tue Jan 06 14:40:59 2009 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Jan 06 15:59:12 2009 -0800"
  },
  "message": "poll: allow f_op-\u003epoll to sleep\n\nf_op-\u003epoll is the only vfs operation which is not allowed to sleep.  It\u0027s\nbecause poll and select implementation used task state to synchronize\nagainst wake ups, which doesn\u0027t have to be the case anymore as wait/wake\ninterface can now use custom wake up functions.  The non-sleep restriction\ncan be a bit tricky because -\u003epoll is not called from an atomic context\nand the result of accidentally sleeping in -\u003epoll only shows up as\ntemporary busy looping when the timing is right or rather wrong.\n\nThis patch converts poll/select to use custom wake up function and use\nseparate triggered variable to synchronize against wake up events.  The\nonly added overhead is an extra function call during wake up and\nnegligible.\n\nThis patch removes the one non-sleep exception from vfs locking rules and\nis beneficial to userland filesystem implementations like FUSE, 9p or\npeculiar fs like spufs as it\u0027s very difficult for those to implement\nnon-sleeping poll method.\n\nWhile at it, make the following cosmetic changes to make poll.h and\nselect.c checkpatch friendly.\n\n* s/type * symbol/type *symbol/\t\t   : three places in poll.h\n* remove blank line before EXPORT_SYMBOL() : two places in select.c\n\nOleg: spotted missing barrier in poll_schedule_timeout()\nDavide: spotted missing write barrier in pollwake()\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Brad Boyer \u003cflar@allandria.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.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": "ccec55394380393ccf69a0272078ebd5465ceae3",
      "old_mode": 33188,
      "old_path": "Documentation/filesystems/Locking",
      "new_id": "cfbfa15a46ba6af6d642b8439f31ebf3abd46503",
      "new_mode": 33188,
      "new_path": "Documentation/filesystems/Locking"
    },
    {
      "type": "modify",
      "old_id": "d450cab20be4d09f8e92e259ba424b235ba36139",
      "old_mode": 33188,
      "old_path": "drivers/media/video/v4l1-compat.c",
      "new_id": "b617bf05e2d7ce39f1a34a5b0bdd1b704e2188a5",
      "new_mode": 33188,
      "new_path": "drivers/media/video/v4l1-compat.c"
    },
    {
      "type": "modify",
      "old_id": "87df51eadcf2bd170ab0271e189cf8a580aa1adb",
      "old_mode": 33188,
      "old_path": "fs/select.c",
      "new_id": "08b91beed80644a3cd35c95a33bdff120b42a4e1",
      "new_mode": 33188,
      "new_path": "fs/select.c"
    },
    {
      "type": "modify",
      "old_id": "badd98ab06f662a43cf5fc3285aa80ac42c1d849",
      "old_mode": 33188,
      "old_path": "include/linux/poll.h",
      "new_id": "8c24ef8d99769520e737f2735bbf9dc8f1931db7",
      "new_mode": 33188,
      "new_path": "include/linux/poll.h"
    }
  ]
}
