)]}'
{
  "log": [
    {
      "commit": "1cb2d38cb3e59d58e8321a0592e84b5761afb063",
      "tree": "151e7ffccd72f786a3da511b0f23906961835a22",
      "parents": [
        "eaae0f37d83bed7ccd0c6d0f52de1de44f92aecc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 04 12:53:28 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:44 2011 +0900"
      },
      "message": "nilfs2: get rid of private page allocator\n\nPreviously, nilfs was cloning pages for mmapped region to freeze their\ndata and ensure consistency of checksum during writeback cycles.  A\nprivate page allocator was used for this page cloning.  But, we no\nlonger need to do that since clear_page_dirty_for_io function sets up\npte so that vm_ops-\u003epage_mkwrite function is called right before the\nmmapped pages are modified and nilfs_page_mkwrite function can safely\nwait for the pages to be written back to disk.\n\nSo, this stops making a copy of mmapped pages during writeback, and\neliminates the private page allocation and deallocation functions from\nnilfs.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "34094537943113467faee98fe67c8a3d3f9a0a8b",
      "tree": "b848b18c90bfd29655e5806e81c54d02946c980d",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 27 22:50:49 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 10:45:31 2011 +0900"
      },
      "message": "nilfs2: fix data loss in mmap page write for hole blocks\n\nFrom the result of a function test of mmap, mmap write to shared pages\nturned out to be broken for hole blocks.  It doesn\u0027t write out filled\nblocks and the data will be lost after umount.  This is due to a bug\nthat the target file is not queued for log writer when filling hole\nblocks.\n\nAlso, nilfs_page_mkwrite function exits normal code path even after\nsuccessfully filled hole blocks due to a change of block_page_mkwrite\nfunction; just after nilfs was merged into the mainline,\nblock_page_mkwrite() started to return VM_FAULT_LOCKED instead of zero\nby the patch \"mm: close page_mkwrite races\" (commit:\nb827e496c893de0c).  The current nilfs_page_mkwrite() is not handling\nthis value properly.\n\nThis corrects nilfs_page_mkwrite() and will resolve the data loss\nproblem in mmap write.\n\n[This should be applied to every kernel since 2.6.30 but a fix is\n needed for 2.6.37 and prior kernels]\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e  [2.6.38]\n"
    },
    {
      "commit": "e3154e9748f0f337e9f6ff9dc7d7bf24d426bd1a",
      "tree": "ac2a3f3dca6189b8a608571c49da66386fd1bdec",
      "parents": [
        "f7545144c2e3d280139260df934043e0a6ccce6f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:54:26 2011 +0900"
      },
      "message": "nilfs2: get rid of nilfs_sb_info structure\n\nThis directly uses sb-\u003es_fs_info to keep a nilfs filesystem object and\nfully removes the intermediate nilfs_sb_info structure.  With this\nchange, the hierarchy of on-memory structures of nilfs will be\nsimplified as follows:\n\nBefore:\n  super_block\n       -\u003e nilfs_sb_info\n             -\u003e the_nilfs\n                   -\u003e cptree --+-\u003e nilfs_root (current file system)\n                               +-\u003e nilfs_root (snapshot A)\n                               +-\u003e nilfs_root (snapshot B)\n                               :\n             -\u003e nilfs_sc_info (log writer structure)\nAfter:\n  super_block\n       -\u003e the_nilfs\n             -\u003e cptree --+-\u003e nilfs_root (current file system)\n                         +-\u003e nilfs_root (snapshot A)\n                         +-\u003e nilfs_root (snapshot B)\n                         :\n             -\u003e nilfs_sc_info (log writer structure)\n\nThe reason why we didn\u0027t design so from the beginning is because the\ninitial shape also differed from the above.  The early hierachy was\ncomposed of \"per-mount-point\" super_block -\u003e nilfs_sb_info pairs and a\nshared nilfs object.  On the kernel 2.6.37, it was changed to the\ncurrent shape in order to unify super block instances into one per\ndevice, and this cleanup became applicable as the result.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "828b1c50ae11e6dda68f8dfefe43b74c7182b157",
      "tree": "9c258f65382865edb71e06bf11007071fb058806",
      "parents": [
        "cde98f0f84ccff78e87235cb7b551747d6ad00de"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Feb 03 21:26:17 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:30 2011 +0900"
      },
      "message": "nilfs2: add compat ioctl\n\nThe current FS_IOC_GETFLAGS/SETFLAGS/GETVERSION will fail if\napplication is 32 bit and kernel is 64 bit.\n\nThis issue is avoidable by adding compat_ioctl method.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "622daaff0a8975fb5c5b95f24f3234550ba32e92",
      "tree": "5ae5de9044f962471fa2694654134f5b58f73ace",
      "parents": [
        "27e6c7a3ce29ae5fa5bec4ed5917f8508bfac120"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Dec 26 16:38:43 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:46 2011 +0900"
      },
      "message": "nilfs2: fiemap support\n\nThis adds fiemap to nilfs.  Two new functions, nilfs_fiemap and\nnilfs_find_uncommitted_extent are added.\n\nnilfs_fiemap() implements the fiemap inode operation, and\nnilfs_find_uncommitted_extent() helps to get a range of data blocks\nwhose physical location has not been determined.\n\nnilfs_fiemap() collects extent information by looping through\nnilfs_bmap_lookup_contig and nilfs_find_uncommitted_extent routines.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e1d5dcc2bbbe71dbf010c747e15739bef6b7218",
      "tree": "2edb0f6cc65acbae95e42df1bc763ec048e6c2e0",
      "parents": [
        "7f09410bbc4306f592cfb43812389ea1c7905a20"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining inode_operations as const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a9461939a46345860622ea36ff267ee4446f00f",
      "tree": "5607ba81b9580e2979bcfb806d5b04f5fbfd53d9",
      "parents": [
        "8082d36aed26c4fb6ed43e4008303682eabf839e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: use unlocked_ioctl\n\nPekka Enberg suggested converting -\u003eioctl operations to use\n-\u003eunlocked_ioctl to avoid BKL.\n\nThe conversion was verified to be safe, so I will take it on this\noccasion.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8082d36aed26c4fb6ed43e4008303682eabf839e",
      "tree": "d51eff46a3ebe29e0a445597570599b5b7c4a037",
      "parents": [
        "dc498d09be28172846cacded35ca2378222a8c7b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:18 2009 -0700"
      },
      "message": "nilfs2: remove compat ioctl code\n\nThis removes compat code from the nilfs ioctls and applies the same\nfunction for both .ioctl and .compat_ioctl file operations.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f30bf3e40f80ef50c17f55271deae3abc03e793e",
      "tree": "2e6d69611d1443688c1a79c5e5aed60cf38672e7",
      "parents": [
        "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: fix missed-sync issue for do_sync_mapping_range()\n\nChris Mason pointed out that there is a missed sync issue in\nnilfs_writepages():\n\nOn Wed, 17 Dec 2008 21:52:55 -0500, Chris Mason wrote:\n\u003e It looks like nilfs_writepage ignores WB_SYNC_NONE, which is used by\n\u003e do_sync_mapping_range().\n\nwhere WB_SYNC_NONE in do_sync_mapping_range() was replaced with\nWB_SYNC_ALL by Nick\u0027s patch (commit:\nee53a891f47444c53318b98dac947ede963db400).\n\nThis fixes the problem by letting nilfs_writepages() write out the log of\nfile data within the range if sync_mode is WB_SYNC_ALL.\n\nThis involves removal of nilfs_file_aio_write() which was previously\nneeded to ensure O_SYNC sync writes.\n\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453",
      "tree": "056c7bdc2395c8baf77bc63a54a1f747cbf5b650",
      "parents": [
        "64b5a32e0b3680a9655b3f2e668a646068e71d33"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: segment constructor\n\nThis adds the segment constructor (also called log writer).\n\nThe segment constructor collects dirty buffers for every dirty inode,\nmakes summaries of the buffers, assigns disk block addresses to the\nbuffers, and then submits BIOs for the buffers.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f183ff4f05317b7929337455b233496f68217c1a",
      "tree": "46db0219720683f00f0566f50bafe0da1143d02e",
      "parents": [
        "05fe58fdc10df9ebea04c0eaed57adc47af5c184"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: file operations\n\nThis adds primitives for regular file handling.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
