)]}'
{
  "log": [
    {
      "commit": "3e7ee3e7b36fa4e2d88d8fb0a2577be95fc4636d",
      "tree": "46e972e78122f8a719dafc87572bffb25716e745",
      "parents": [
        "ad8d6f0a783ffa2ff9b0cf09910b889715772201"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:11:04 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:11:04 2006 +0200"
      },
      "message": "[PATCH] splice: fix page stealing LRU handling.\n\nOriginally from Nick Piggin, just adapted to the newer branch.\n\nYou can\u0027t check PageLRU without holding zone-\u003elru_lock.  The page\nrelease code can get away with it only because the page refcount is 0 at\nthat point. Also, you can\u0027t reliably remove pages from the LRU unless\nthe refcount is 0. Ever.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "ad8d6f0a783ffa2ff9b0cf09910b889715772201",
      "tree": "0af4adf5026a9f8d7d3bf4abf9a3d0563a4b03db",
      "parents": [
        "059a8f3734a66cb2c41731083b0cbf836721485b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:10:32 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:10:32 2006 +0200"
      },
      "message": "[PATCH] splice: page stealing needs to wait_on_page_writeback()\n\nThanks to Andrew for the good explanation of why this is so. akpm writes:\n\nIf a page is under writeback and we remove it from pagecache, it\u0027s still\ngoing to get written to disk.  But the VFS no longer knows about that page,\nnor that this page is about to modify disk blocks.\n\nSo there might be scenarios in which those\nblocks-which-are-about-to-be-written-to get reused for something else.\nWhen writeback completes, it\u0027ll scribble on those blocks.\n\nThis won\u0027t happen in ext2/ext3-style filesystems in normal mode because the\npage has buffers and try_to_release_page() will fail.\n\nBut ext2 in nobh mode doesn\u0027t attach buffers at all - it just sticks the\npage in a BIO, finds some new blocks, points the BIO at those blocks and\nlets it rip.\n\nWhile that write IO\u0027s in flight, someone could truncate the file.  Truncate\nwon\u0027t block on the writeout because the page isn\u0027t in pagecache any more.\nSo truncate will the free the blocks from the file under the page\u0027s feet.\nThen something else can reallocate those blocks.  Then write data to them.\n\nNow, the original write completes, corrupting the filesystem.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "059a8f3734a66cb2c41731083b0cbf836721485b",
      "tree": "6f6b61d3350b57fb062f26e828dbd218f62caad7",
      "parents": [
        "b2b39fa478db6db89b7ccafb0649973845b0eb75"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:06:05 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:06:05 2006 +0200"
      },
      "message": "[PATCH] splice: export generic_splice_sendpage\n\nForgot that one, thanks Jeff. Also move the other EXPORT_SYMBOL\nto right below the functions.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "b2b39fa478db6db89b7ccafb0649973845b0eb75",
      "tree": "784d85b94fb634e3b33dfd3f1153c98580cfac15",
      "parents": [
        "83f9135bddffded9f1716519b6c147bcf046c87e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:05:41 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:05:41 2006 +0200"
      },
      "message": "[PATCH] splice: add a SPLICE_F_MORE flag\n\nThis lets userspace indicate whether more data will be coming in a\nsubsequent splice call.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "83f9135bddffded9f1716519b6c147bcf046c87e",
      "tree": "24ed3b7e21cda62ff2a1947d04a1333066a5bc65",
      "parents": [
        "4f6f0bd2ffa4e31c3524f5e65c84a29b6ab73307"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:05:09 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:05:09 2006 +0200"
      },
      "message": "[PATCH] splice: add comments documenting more of the code\n\nHopefully this will make Andrew a little more happy.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "4f6f0bd2ffa4e31c3524f5e65c84a29b6ab73307",
      "tree": "682ab1b41c3ee799d37bfa1874c79ae92b3755fd",
      "parents": [
        "53cd9ae886273d6c2b8ba4aa63d6cd6b1217b57f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:04:46 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:04:46 2006 +0200"
      },
      "message": "[PATCH] splice: improve writeback and clean up page stealing\n\nBy cleaning up the writeback logic (killing write_one_page() and the manual\nset_page_dirty()), we can get rid of -\u003estolen inside the pipe_buffer and\njust keep it local in pipe_to_file().\n\nThis also adds dirty page balancing logic and O_SYNC handling.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "53cd9ae886273d6c2b8ba4aa63d6cd6b1217b57f",
      "tree": "859162c3086f7d636ed376d4cb57522f52a8fd82",
      "parents": [
        "b043b673dc8a73daa233d5d92cf70b32e7351314"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:04:21 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Apr 02 23:04:21 2006 +0200"
      },
      "message": "[PATCH] splice: fix shadow[] filling logic\n\nClear the entire range, and don\u0027t increment pidx or we keep filling\nthe same position again and again.\n\nThanks to KAMEZAWA Hiroyuki.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "29e350944fdc2dfca102500790d8ad6d6ff4f69d",
      "tree": "7630809d75149b0053dcc45ad34e95d5506e88b3",
      "parents": [
        "b45e516f701e0fc81fb3dbd1ba9db35f991a4465"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 02 12:46:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 02 12:46:35 2006 -0700"
      },
      "message": "splice: add SPLICE_F_NONBLOCK flag\n\nIt doesn\u0027t make the splice itself necessarily nonblocking (because the\nactual file descriptors that are spliced from/to may block unless they\nhave the O_NONBLOCK flag set), but it makes the splice pipe operations\nnonblocking.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0f067802576d4eb4c65d40b8ee7d6ea3c81dd61",
      "tree": "c0172bf5d2a25e5658ba882cbf5d11468d6bdf53",
      "parents": [
        "ce362c009250340358a7221f3cdb7954cbf19c01"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Mar 30 23:06:13 2006 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 30 22:16:24 2006 -0800"
      },
      "message": "[PATCH] splice exports\n\nWoe be unto he who builds their filesystems as modules.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n[ Obscure quote from the infamous geek bible? ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5abc97aa25b2c41413b3a520faee83f2282d9f18",
      "tree": "4ba13ae0e91f15d02986df7cdca5e9455212d7d4",
      "parents": [
        "5274f052e7b3dbd81935772eb551dfd0325dfa9d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 30 15:16:46 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 30 12:28:18 2006 -0800"
      },
      "message": "[PATCH] splice: add support for SPLICE_F_MOVE flag\n\nThis enables the caller to migrate pages from one address space page\ncache to another.  In buzz word marketing, you can do zero-copy file\ncopies!\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5274f052e7b3dbd81935772eb551dfd0325dfa9d",
      "tree": "c79f813ec513660edb6f1e4a75cb366c6b84f53f",
      "parents": [
        "5d4fe2c1ce83c3e967ccc1ba3d580c1a5603a866"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 30 15:15:30 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 30 12:28:18 2006 -0800"
      },
      "message": "[PATCH] Introduce sys_splice() system call\n\nThis adds support for the sys_splice system call. Using a pipe as a\ntransport, it can connect to files or sockets (latter as output only).\n\nFrom the splice.c comments:\n\n   \"splice\": joining two ropes together by interweaving their strands.\n\n   This is the \"extended pipe\" functionality, where a pipe is used as\n   an arbitrary in-memory buffer. Think of a pipe as a small kernel\n   buffer that you can use to transfer data from one end to the other.\n\n   The traditional unix read/write is extended with a \"splice()\" operation\n   that transfers data buffers to or from a pipe buffer.\n\n   Named by Larry McVoy, original implementation from Linus, extended by\n   Jens to support splicing to files and fixing the initial implementation\n   bugs.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
