)]}'
{
  "log": [
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8de52778798fe39660a8d6b26f290e0c93202761",
      "tree": "56384beb7863c1f338f2b66b509bf58eea5a99c2",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 06 12:45:27 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:32 2012 -0400"
      },
      "message": "vfs: check i_nlink limits in vfs_{mkdir,rename_dir,link}\n\nNew field of struct super_block - -\u003es_max_links.  Maximal allowed\nvalue of -\u003ei_nlink or 0; in the latter case all checks still need\nto be done in -\u003elink/-\u003emkdir/-\u003erename instances.  Note that this\nlimit applies both to directoris and to non-directories.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aa405b1f4238401616e7d98620170b424b2dbefc",
      "tree": "c42986a31c3383490d010ae55a97c37f5095220c",
      "parents": [
        "0ef28f9aec4dccfba33cef74412f601c1b48b658"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 12:56:51 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:57 2011 +0900"
      },
      "message": "nilfs2: always set back pointer to host inode in mapping-\u003ehost\n\nIn the current nilfs, page cache for btree nodes and meta data files\ndo not set a valid back pointer to the host inode in mapping-\u003ehost.\n\nThis will change it so that every address space in nilfs uses\nmapping-\u003ehost to hold its host inode.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4e33f9eab07e985282fece4121066c2db1d332ed",
      "tree": "08161cabc013f0543d65d9c9ed63689f9f68803d",
      "parents": [
        "78eb64c2479e0f408b725c3c8e1cdf557857af48"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 01:23:58 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:46 2011 +0900"
      },
      "message": "nilfs2: implement resize ioctl\n\nThis adds resize ioctl which makes online resize possible.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "cfb0a4bfd8736418cbe5cbc115cabc84b527111e",
      "tree": "9faf66ad535fea01e19bc3f7bf59fe8fd75d8082",
      "parents": [
        "619205da5b567504310daf829dede1187fa29bbc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 01:23:57 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:45 2011 +0900"
      },
      "message": "nilfs2: add routine to move secondary super block\n\nAfter resizing the filesystem, the secondary super block must be moved\nto a new location.  This adds a helper function for this.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\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": "f7545144c2e3d280139260df934043e0a6ccce6f",
      "tree": "4e0930f2d4c45a71e300c7ac45c6e55a6d1c6675",
      "parents": [
        "d96bbfa28aa7a1d5a5bf549026a594d7a273c5d7"
      ],
      "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:05:08 2011 +0900"
      },
      "message": "nilfs2: use sb instance instead of nilfs_sb_info struct\n\nThis replaces sbi uses with direct reference to sb instance.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9b1fc4e4973469dd3fab27ba5d78eca1cd5c13fe",
      "tree": "0f51872d41cbc1e43db2fafab0074c107dfce7e7",
      "parents": [
        "693dd321222f03b17668f88ceb0f7d518900191e"
      ],
      "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:05:08 2011 +0900"
      },
      "message": "nilfs2: move next generation counter into nilfs object\n\nMoves s_next_generation counter and a spinlock protecting it to nilfs\nobject from nilfs_sb_info structure.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "693dd321222f03b17668f88ceb0f7d518900191e",
      "tree": "b0088ee73f3499e0b3301fc5dcf44c677cfd092d",
      "parents": [
        "574e6c3145c5754141361c695b58736c294a8ae1"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "message": "nilfs2: move s_inode_lock and s_dirty_files into nilfs object\n\nMoves s_inode_lock spinlock and s_dirty_files list to nilfs object\nfrom nilfs_sb_info structure.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "574e6c3145c5754141361c695b58736c294a8ae1",
      "tree": "42fdaf8a107b8a42a1ea239675ac9461e97d0990",
      "parents": [
        "3b2ce58b0f3c1633750529713be0e467282abd78"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "message": "nilfs2: move parameters on nilfs_sb_info into nilfs object\n\nThis moves four parameter variables on nilfs_sb_info s_resuid,\ns_resgid, s_interval and s_watermark to the nilfs object.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "3b2ce58b0f3c1633750529713be0e467282abd78",
      "tree": "48c0111adadf00e67933fb5d9883296754fca6ce",
      "parents": [
        "be667377a8b8cd73e1b923f33fb5be4034aa4bfa"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "message": "nilfs2: move mount options to nilfs object\n\nThis moves mount_opt local variable to nilfs object from nilfs_sb_info\nstruct.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "2aa15890f3c191326678f1bd68af61ec6b8753ec",
      "tree": "347f5fdcd0678b12be92f266cd2a5e7a74749403",
      "parents": [
        "78794b2cdeac37ac1fd950fc9c4454b56d88ac03"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 23 13:49:47 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 23 19:52:52 2011 -0800"
      },
      "message": "mm: prevent concurrent unmap_mapping_range() on the same inode\n\nMichael Leun reported that running parallel opens on a fuse filesystem\ncan trigger a \"kernel BUG at mm/truncate.c:475\"\n\nGurudas Pai reported the same bug on NFS.\n\nThe reason is, unmap_mapping_range() is not prepared for more than\none concurrent invocation per inode.  For example:\n\n  thread1: going through a big range, stops in the middle of a vma and\n     stores the restart address in vm_truncate_count.\n\n  thread2: comes in with a small (e.g. single page) unmap request on\n     the same vma, somewhere before restart_address, finds that the\n     vma was already unmapped up to the restart address and happily\n     returns without doing anything.\n\nAnother scenario would be two big unmap requests, both having to\nrestart the unmapping and each one setting vm_truncate_count to its\nown value.  This could go on forever without any of them being able to\nfinish.\n\nTruncate and hole punching already serialize with i_mutex.  Other\ncallers of unmap_mapping_range() do not, and it\u0027s difficult to get\ni_mutex protection for all callers.  In particular -\u003ed_revalidate(),\nwhich calls invalidate_inode_pages2_range() in fuse, may be called\nwith or without i_mutex.\n\nThis patch adds a new mutex to \u0027struct address_space\u0027 to prevent\nrunning multiple concurrent unmap_mapping_range() on the same mapping.\n\n[ We\u0027ll hopefully get rid of all this with the upcoming mm\n  preemptibility series by Peter Zijlstra, the \"mm: Remove i_mmap_mutex\n  lockbreak\" patch in particular.  But that is for 2.6.39 ]\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nReported-by: Michael Leun \u003clkml20101129@newton.leun.net\u003e\nReported-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nTested-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ca7a5b9ac5d301845dd6382ff25a699b6263a81",
      "tree": "52d0ab285bd2dfabbba164a9df72468fdd92d29b",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jan 21 16:40:31 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jan 22 15:22:36 2011 +0900"
      },
      "message": "nilfs2: fix crash after one superblock became unavailable\n\nFixes the following kernel oops in nilfs_setup_super() which could\narise if one of two super-blocks is unavailable.\n\n\u003e BUG: unable to handle kernel NULL pointer dereference at   (null)\n\u003e Pid: 3529, comm: mount.nilfs2 Not tainted 2.6.37 #1 /\n\u003e EIP: 0060:[\u003cc03196bc\u003e] EFLAGS: 00010202 CPU: 3\n\u003e EIP is at memcpy+0xc/0x1b\n\u003e Call Trace:\n\u003e  [\u003cf953720e\u003e] ? nilfs_setup_super+0x6c/0xa5 [nilfs2]\n\u003e  [\u003cf95369e9\u003e] ? nilfs_get_root_dentry+0x81/0xcb [nilfs2]\n\u003e  [\u003cf9537a08\u003e] ? nilfs_mount+0x4f9/0x62c [nilfs2]\n\u003e  [\u003cc02745cf\u003e] ? kstrdup+0x36/0x3f\n\u003e  [\u003cf953750f\u003e] ? nilfs_mount+0x0/0x62c [nilfs2]\n\u003e  [\u003cc0293940\u003e] ? vfs_kern_mount+0x4d/0x12c\n\u003e  [\u003cc02a5100\u003e] ? get_fs_type+0x76/0x8f\n\u003e  [\u003cc0293a68\u003e] ? do_kern_mount+0x33/0xbf\n\u003e  [\u003cc02a784a\u003e] ? do_mount+0x2ed/0x714\n\u003e  [\u003cc02a6171\u003e] ? copy_mount_options+0x28/0xfc\n\u003e  [\u003cc02a7ce3\u003e] ? sys_mount+0x72/0xaf\n\u003e  [\u003cc0473085\u003e] ? syscall_call+0x7/0xb\n\nReported-by: Wakko Warner \u003cwakko@animx.eu.org\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Wakko Warner \u003cwakko@animx.eu.org\u003e\nCc: stable \u003cstable@kernel.org\u003e [2.6.37, 2.6.36]\nLKML-Reference: \u003c20110121024918.GA29598@animx.eu.org\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "57cc7215b70856dc6bae8e55b00ecd7b1d7429b1",
      "tree": "f6dedefd41e6745a9b801166b99af7d830e41ef2",
      "parents": [
        "37721e1b0cf98cb65895f234d8c500d270546529"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jan 10 08:18:25 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:51:44 2011 -0800"
      },
      "message": "headers: kobject.h redux\n\nRemove kobject.h from files which don\u0027t need it, notably,\nsched.h and fs.h.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06df0f999247a3153c3ec284c7ada36ef785eb97",
      "tree": "28474b360eb4c21ce6ebe0efc460530fd99d923a",
      "parents": [
        "a7a8447edef2cfa9b28cc3892993d9fafb362671"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Dec 27 00:04:06 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:46 2011 +0900"
      },
      "message": "nilfs2: get rid of nilfs_mount_options structure\n\nOnly mount_opt member is used in the nilfs_mount_options structure,\nand we can simplify it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b004a5eb0babec7ef91558f73315ef49e5a1f285",
      "tree": "93683947103b7305889dd3d3bb3cb951a2c0409b",
      "parents": [
        "af1761f268ff2a58f2ea22e9b9de6359f7b2048e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Nov 09 16:35:21 2010 -0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:45 2011 +0900"
      },
      "message": "fs/nilfs2/super.c: Use printf extension %pV\n\nUsing %pV reduces the number of printk calls and\neliminates any possible message interleaving from\nother printk calls.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "d4d77629953eabd3c14f6fa5746f6b28babfc55f",
      "tree": "38cce0d4764ecb34a9f7f49332959780e28bb786",
      "parents": [
        "75f1dc0d076d1c1168f2115f1941ea627d38bd5a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "message": "block: clean up blkdev_get() wrappers and their users\n\nAfter recent blkdev_get() modifications, open_by_devnum() and\nopen_bdev_exclusive() are simple wrappers around blkdev_get().\nReplace them with blkdev_get_by_dev() and blkdev_get_by_path().\n\nblkdev_get_by_dev() is identical to open_by_devnum().\nblkdev_get_by_path() is slightly different in that it doesn\u0027t\nautomatically add %FMODE_EXCL to @mode.\n\nAll users are converted.  Most conversions are mechanical and don\u0027t\nintroduce any behavior difference.  There are several exceptions.\n\n* btrfs now sets FMODE_EXCL in btrfs_device-\u003emode, so there\u0027s no\n  reason to OR it explicitly on blkdev_put().\n\n* gfs2, nilfs2 and the generic mount_bdev() now set FMODE_EXCL in\n  sb-\u003es_mode.\n\n* With the above changes, sb-\u003es_mode now always should contain\n  FMODE_EXCL.  WARN_ON_ONCE() added to kill_block_super() to detect\n  errors.\n\nThe new blkdev_get_*() functions are with proper docbook comments.\nWhile at it, add function description to blkdev_get() too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Joern Engel \u003cjoern@lazybastard.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: xfs-masters@oss.sgi.com\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e525fd89d380c4a94c0d63913a1dd1a593ed25e7",
      "tree": "d226ef40d3f99e42fcf272ad432585cbd641ebec",
      "parents": [
        "e09b457bdb7e8d23fc54dcef0930ac697d8de895"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: make blkdev_get/put() handle exclusive access\n\nOver time, block layer has accumulated a set of APIs dealing with bdev\nopen, close, claim and release.\n\n* blkdev_get/put() are the primary open and close functions.\n\n* bd_claim/release() deal with exclusive open.\n\n* open/close_bdev_exclusive() are combination of open and claim and\n  the other way around, respectively.\n\n* bd_link/unlink_disk_holder() to create and remove holder/slave\n  symlinks.\n\n* open_by_devnum() wraps bdget() + blkdev_get().\n\nThe interface is a bit confusing and the decoupling of open and claim\nmakes it impossible to properly guarantee exclusive access as\nin-kernel open + claim sequence can disturb the existing exclusive\nopen even before the block layer knows the current open if for another\nexclusive access.  Reorganize the interface such that,\n\n* blkdev_get() is extended to include exclusive access management.\n  @holder argument is added and, if is @FMODE_EXCL specified, it will\n  gain exclusive access atomically w.r.t. other exclusive accesses.\n\n* blkdev_put() is similarly extended.  It now takes @mode argument and\n  if @FMODE_EXCL is set, it releases an exclusive access.  Also, when\n  the last exclusive claim is released, the holder/slave symlinks are\n  removed automatically.\n\n* bd_claim/release() and close_bdev_exclusive() are no longer\n  necessary and either made static or removed.\n\n* bd_link_disk_holder() remains the same but bd_unlink_disk_holder()\n  is no longer necessary and removed.\n\n* open_bdev_exclusive() becomes a simple wrapper around lookup_bdev()\n  and blkdev_get().  It also has an unexpected extra bdev_read_only()\n  test which probably should be moved into blkdev_get().\n\n* open_by_devnum() is modified to take @holder argument and pass it to\n  blkdev_get().\n\nMost of bdev open/close operations are unified into blkdev_get/put()\nand most exclusive accesses are tested atomically at the open time (as\nit should).  This cleans up code and removes some, both valid and\ninvalid, but unnecessary all the same, corner cases.\n\nopen_bdev_exclusive() and open_by_devnum() can use further cleanup -\nrename to blkdev_get_by_path() and blkdev_get_by_devt() and drop\nspecial features.  Well, let\u0027s leave them for another day.\n\nMost conversions are straight-forward.  drbd conversion is a bit more\ninvolved as there was some reordering, but the logic should stay the\nsame.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: dm-devel@redhat.com\nCc: drbd-dev@lists.linbit.com\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e4c59d61e80529aebca4a3690b4378f2c6fc4e82",
      "tree": "b222689f42121011920f15a378e24a68bd65f582",
      "parents": [
        "a1da9e8ab687e6496482b7b2aa17d0da31e55b20"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 12:19:34 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:53 2010 -0400"
      },
      "message": "convert nilfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ab34c02afeafd047a831e6fe2a4dd875ce86bee0",
      "tree": "833e385e8387e3d4d4531ade23c1d92fba8ed075",
      "parents": [
        "7f3883962870dd28b5f2322ac44a9d03640ef448",
        "6b81e14e645016597c81e71cd27ee5c57c3a3c36"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 01:26:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 01:26:47 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (36 commits)\n  nilfs2: eliminate sparse warning - \"context imbalance\"\n  nilfs2: eliminate sparse warnings - \"symbol not declared\"\n  nilfs2: get rid of bdi from nilfs object\n  nilfs2: change license of exported header file\n  nilfs2: add bdev freeze/thaw support\n  nilfs2: accept 64-bit checkpoint numbers in cp mount option\n  nilfs2: remove own inode allocator and destructor for metadata files\n  nilfs2: get rid of back pointer to writable sb instance\n  nilfs2: get rid of mi_nilfs back pointer to nilfs object\n  nilfs2: see state of root dentry for mount check of snapshots\n  nilfs2: use iget for all metadata files\n  nilfs2: get rid of GCDAT inode\n  nilfs2: add routines to redirect access to buffers of DAT file\n  nilfs2: add routines to roll back state of DAT file\n  nilfs2: add routines to save and restore bmap state\n  nilfs2: do not allocate nilfs_mdt_info structure to gc-inodes\n  nilfs2: allow nilfs_clear_inode to clear metadata file inodes\n  nilfs2: get rid of snapshot mount flag\n  nilfs2: simplify life cycle management of nilfs object\n  nilfs2: do not allocate multiple super block instances for a device\n  ...\n"
    },
    {
      "commit": "abc0b50b6b9a9de8ae210f059598265a5438f2c4",
      "tree": "ebfde65b5472e4e7c2c5073d58e5778cb742648a",
      "parents": [
        "026a7d63d55ba8656ed8c8a0733265cc7d47bb8c"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Oct 08 22:37:27 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:40 2010 +0900"
      },
      "message": "nilfs2: eliminate sparse warnings - \"symbol not declared\"\n\nchange nilfs_dat_commit_free and nilfs_inode_cachep static\nto fix following warnings\n\nfs/nilfs2/super.c:72:19: warning: symbol \u0027nilfs_inode_cachep\u0027 was not declared. Should it be static?\nfs/nilfs2/dat.c:106:6: warning: symbol \u0027nilfs_dat_commit_free\u0027 was not declared. Should it be static?\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "026a7d63d55ba8656ed8c8a0733265cc7d47bb8c",
      "tree": "094f32e7aec1c514153b880ce1c6ef4f700fe481",
      "parents": [
        "c486f3895d6dc751f7c0f04f0fa67390ce4d168e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Oct 07 14:19:48 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:39 2010 +0900"
      },
      "message": "nilfs2: get rid of bdi from nilfs object\n\nNilfs now can use sb-\u003es_bdi to get backing_dev_info, so we use it\ninstead of ns_bdi on the nilfs object and remove ns_bdi.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "5beb6e0b2008386571fd342d0a4a14f5c8c0baf8",
      "tree": "b5b86e48c3fe5041ce495ca9bee2e5f93f788293",
      "parents": [
        "c05dbfc2609993ccc067879579e2a7726e12b3f1"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 20 18:19:06 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:39 2010 +0900"
      },
      "message": "nilfs2: add bdev freeze/thaw support\n\nNilfs hasn\u0027t supported the freeze/thaw feature because it didn\u0027t work\ndue to the peculiar design that multiple super block instances could\nbe allocated for a device.  This limitation was removed by the patch\n\"nilfs2: do not allocate multiple super block instances for a device\".\n\nSo now this adds the freeze/thaw support to nilfs.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c05dbfc2609993ccc067879579e2a7726e12b3f1",
      "tree": "d5b20ce06901a05b8649d31eb8694fef8f2dddb7",
      "parents": [
        "2879ed66e4c6da1dfc6bb0bd04566b61824f9256"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Sep 16 00:36:24 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:39 2010 +0900"
      },
      "message": "nilfs2: accept 64-bit checkpoint numbers in cp mount option\n\nThe current implementation doesn\u0027t mount snapshots with checkpoint\nnumbers larger than INT_MAX since it uses match_int() for parsing\n\"cp\u003d\" mount option.\n\nThis uses simple_strtoull() for the conversion to resolve the issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "2879ed66e4c6da1dfc6bb0bd04566b61824f9256",
      "tree": "f6d5b47abac374fb9ecd516eaea424d990821d83",
      "parents": [
        "090fd5b10165033d7c30afde0a7e59141d820602"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Sep 05 13:35:53 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:39 2010 +0900"
      },
      "message": "nilfs2: remove own inode allocator and destructor for metadata files\n\nThis finally removes own inode allocator and destructor functions for\nmetadata files.  Several routines, nilfs_mdt_new(),\nnilfs_mdt_new_common(), nilfs_mdt_clear(), nilfs_mdt_destroy(), and\nnilfs_alloc_inode_common() will be gone.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "032dbb3b503a30fce732ec4c05525d0abed1f1d6",
      "tree": "462696abcf0783d50efe97a3ca2641beecc91a3e",
      "parents": [
        "f1e89c86fdd0f5e59f6768146c86437934202033"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 13 11:16:34 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:38 2010 +0900"
      },
      "message": "nilfs2: see state of root dentry for mount check of snapshots\n\nAfter applied the patch that unified sb instances, root dentry of\nsnapshots can be left in dcache even after their trees are unmounted.\n\nThe orphan root dentry/inode keeps a root object, and this causes\nfalse positive of nilfs_checkpoint_is_mounted function.\n\nThis resolves the issue by having nilfs_checkpoint_is_mounted test\nwhether the root dentry is busy or not.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "f1e89c86fdd0f5e59f6768146c86437934202033",
      "tree": "c5ba8766a3a029f0c10d6d0d09a57a7e28b7a51b",
      "parents": [
        "c1c1d7092072093ad960db2f6c08f06705c57fa4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Sep 05 12:20:59 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:38 2010 +0900"
      },
      "message": "nilfs2: use iget for all metadata files\n\nThis makes use of iget5_locked to allocate or get inode for metadata\nfiles to stop using own inode allocator.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "348fe8da13621b3d14ab2d156e74551611997017",
      "tree": "82e60058d2af36e5f6e8bb7851b5b25ba3e72909",
      "parents": [
        "f11459ad7dab9e9eb5a05b8bd3bec338ea8f485d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Sep 09 02:07:56 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:36 2010 +0900"
      },
      "message": "nilfs2: simplify life cycle management of nilfs object\n\nThis stops pre-allocating nilfs object in nilfs_get_sb routine, and\nstops managing its life cycle by reference counting.\n\nnilfs_find_or_create_nilfs() function, nilfs-\u003ens_mount_mutex,\nnilfs_objects list, and the reference counter will be removed through\nthe simplification.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "f11459ad7dab9e9eb5a05b8bd3bec338ea8f485d",
      "tree": "91808a1f88f6ad24f381473e1bde22f10cac49e6",
      "parents": [
        "ab4d8f7ebf33beff97e766d18db47f1ea9635769"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Aug 16 01:54:52 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:36 2010 +0900"
      },
      "message": "nilfs2: do not allocate multiple super block instances for a device\n\nThis stops allocating multiple super block instances for a device.\n\nAll snapshots and a current mode mount (i.e. latest tree) will be\ncontrolled with nilfs_root objects that are kept within an sb\ninstance.\n\nnilfs_get_sb() is rewritten so that it always has a root object for\nthe latest tree and snapshots make additional root objects.\n\nThe root dentry of the latest tree is binded to sb-\u003es_root even if it\nisn\u0027t attached on a directory.  Root dentries of snapshots or the\nlatest tree are binded to mnt-\u003emnt_root on which they are mounted.\n\nWith this patch, nilfs_find_sbinfo() function, nilfs-\u003ens_supers list,\nand nilfs-\u003ens_current back pointer, are deleted.  In addition,\ninit_nilfs() and load_nilfs() are simplified since they will be called\nonce for a device, not repeatedly called for mount points.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ab4d8f7ebf33beff97e766d18db47f1ea9635769",
      "tree": "063af215681e934d5b0d62a997f0811e4d85684a",
      "parents": [
        "367ea33486a68f935a01311a3be9b7e97d2e5ead"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Aug 26 02:15:41 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:36 2010 +0900"
      },
      "message": "nilfs2: split out nilfs_attach_snapshot\n\nThis splits the code to attach snapshots into a separate routine for\nconvenience sake.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "367ea33486a68f935a01311a3be9b7e97d2e5ead",
      "tree": "de5ccfd05a527bc85ba63b9f22fdef57bfa80053",
      "parents": [
        "dc3d3b810a644dfa329efaa230cd514226f8981d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Aug 26 01:52:51 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:35 2010 +0900"
      },
      "message": "nilfs2: split out nilfs_get_root_dentry\n\nThis splits the code to allocate root dentry into a separate routine\nfor convenience in successive changes.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b7c0634204993d7c6678c852e4bd118426599111",
      "tree": "4934238a49a56aaa072b4dea79b836439be760d8",
      "parents": [
        "e912a5b66837ee89fb025e67b5efeaa11930c2ce"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 14 14:48:32 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:35 2010 +0900"
      },
      "message": "nilfs2: move inode count and block count into root object\n\nThis moves sbi-\u003es_inodes_count and sbi-\u003es_blocks_count into nilfs_root\nobject.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e912a5b66837ee89fb025e67b5efeaa11930c2ce",
      "tree": "46209cdf7417863024131ff54f56120e43ae7a7b",
      "parents": [
        "8e656fd518784b49453f60c5f78b78703bc85cb2"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 14 13:07:15 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:35 2010 +0900"
      },
      "message": "nilfs2: use root object to get ifile\n\nThis rewrites functions using ifile so that they get ifile from\nnilfs_root object, and will remove sbi-\u003es_ifile.  Some functions that\ndon\u0027t know the root object are extended to receive it from caller.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "8e656fd518784b49453f60c5f78b78703bc85cb2",
      "tree": "7adf4b71aba4bdf31dc05489a06933c48a0ea6f2",
      "parents": [
        "4d8d9293dce503eb0e083e17a02a328d397e7f00"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Aug 27 00:23:02 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:34 2010 +0900"
      },
      "message": "nilfs2: make snapshots in checkpoint tree exportable\n\nThe previous export operations cannot handle multiple versions of\na filesystem if they belong to the same sb instance.\n\nThis adds a new type of file handle and extends export operations so\nthat they can get the inode specified by a checkpoint number as well\nas an inode number and a generation number.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4d8d9293dce503eb0e083e17a02a328d397e7f00",
      "tree": "ffa2dce7f100b1346131adc01cf93e280b225509",
      "parents": [
        "ba65ae4729bf81c58d9fc847f67d57eec525b042"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Aug 25 17:45:44 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:34 2010 +0900"
      },
      "message": "nilfs2: set pointer to root object in inodes\n\nThis puts a pointer to nilfs_root object in the private part of\non-memory inode, and makes nilfs_iget function pick up the inode with\nthe same root object.\n\nNon-root inodes inherit its nilfs_root object from parent inode.  That\nof the root inode is allocated through nilfs_attach_checkpoint()\nfunction.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "0e14a3595bddedfb27b51a6b0a29b5173aa2511a",
      "tree": "ec1e831c77a7de04315871e687082bb9230a17d7",
      "parents": [
        "6c43f41000312fefa482c3bfdd97e7f81d6be0ec"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Aug 20 21:20:29 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:33 2010 +0900"
      },
      "message": "nilfs2: use iget5_locked to get inode\n\nThis uses iget5_locked instead of iget_locked so that gc cache can\nlook up inodes with an inode number and an optional checkpoint number.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b91c9a97c9333c87fe2a0c94b3b22b24df1c5fc2",
      "tree": "c407ef3a87117f9ecb92b54bebb055110cafb64f",
      "parents": [
        "9566a7a851eb7201e3207eab53ee81efd0850fee"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Aug 20 23:46:06 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:33 2010 +0900"
      },
      "message": "nilfs2: allow nilfs_destroy_inode to destroy metadata file inodes\n\nThe current nilfs_destroy_inode() doesn\u0027t handle metadata file inodes\nincluding gc inodes (dummy inodes used for garbage collection).\n\nThis allows nilfs_destroy_inode() to destroy inodes of metadata files.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a2887097f25cd38cadfc11d10769e2b349fb5eca",
      "tree": "cd4adcb305365d6ba9acd2c02d4eb9d0125c6f8d",
      "parents": [
        "8abfc6e7a45eb74e51904bbae676fae008b11366",
        "005a1d15f5a6b2bb4ada80349513effbf22b4588"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block: (46 commits)\n  xen-blkfront: disable barrier/flush write support\n  Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c\n  block: remove BLKDEV_IFL_WAIT\n  aic7xxx_old: removed unused \u0027req\u0027 variable\n  block: remove the BH_Eopnotsupp flag\n  block: remove the BLKDEV_IFL_BARRIER flag\n  block: remove the WRITE_BARRIER flag\n  swap: do not send discards as barriers\n  fat: do not send discards as barriers\n  ext4: do not send discards as barriers\n  jbd2: replace barriers with explicit flush / FUA usage\n  jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n  jbd: replace barriers with explicit flush / FUA usage\n  nilfs2: replace barriers with explicit flush / FUA usage\n  reiserfs: replace barriers with explicit flush / FUA usage\n  gfs2: replace barriers with explicit flush / FUA usage\n  btrfs: replace barriers with explicit flush / FUA usage\n  xfs: replace barriers with explicit flush / FUA usage\n  block: pass gfp_mask and flags to sb_issue_discard\n  dm: convey that all flushes are processed as empty\n  ...\n"
    },
    {
      "commit": "d6d4c19c5f9ac5972e30e89b3c81ad1fd6e11fee",
      "tree": "e2f2e8204e0ff1f7af40aacbf50ee5fbbaa14030",
      "parents": [
        "22b26db6f82bfa9a7f2b44443af3b5541927a130"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Wed Feb 24 13:25:32 2010 +0100"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:41 2010 +0200"
      },
      "message": "BKL: Remove BKL from NILFS2\n\nThe BKL is only used in put_super, fill_super and remount_fs that are all\nthree protected by the superblocks s_umount rw_semaphore. Therefore it is\nsafe to remove the BKL entirely.\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "db71922217a214e5c9268448e537b54fc1f301ea",
      "tree": "9c9afbf29411547891f6968e5ade29ce59d66c07",
      "parents": [
        "899611ee7d373e5eeda08e9a8632684e1ebbbf00"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Sun Aug 15 22:51:10 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:10 2010 +0200"
      },
      "message": "BKL: Explicitly add BKL around get_sb/fill_super\n\nThis patch is a preparation necessary to remove the BKL from do_new_mount().\nIt explicitly adds calls to lock_kernel()/unlock_kernel() around\nget_sb/fill_super operations for filesystems that still uses the BKL.\n\nI\u0027ve read through all the code formerly covered by the BKL inside\ndo_kern_mount() and have satisfied myself that it doesn\u0027t need the BKL\nany more.\n\ndo_kern_mount() is already called without the BKL when mounting the rootfs\nand in nfsctl. do_kern_mount() calls vfs_kern_mount(), which is called\nfrom various places without BKL: simple_pin_fs(), nfs_do_clone_mount()\nthrough nfs_follow_mountpoint(), afs_mntpt_do_automount() through\nafs_mntpt_follow_link(). Both later functions are actually the filesystems\nfollow_link inode operation. vfs_kern_mount() is calling the specified\nget_sb function and lets the filesystem do its job by calling the given\nfill_super function.\n\nTherefore I think it is safe to push down the BKL from the VFS to the\nlow-level filesystems get_sb/fill_super operation.\n\n[arnd: do not add the BKL to those file systems that already\n       don\u0027t use it elsewhere]\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "f8c131f5b6ffc899a70b30e541f367d47f89691c",
      "tree": "c1f4bc92dc382b80004b5b63223f16e67219986e",
      "parents": [
        "7cd33ad23ec41d685902159be8b2c6552fab8bd0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 18 05:29:15 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:39 2010 +0200"
      },
      "message": "nilfs2: replace barriers with explicit flush / FUA usage\n\nSwitch to the WRITE_FLUSH_FUA flag for log writes, remove the EOPNOTSUPP\ndetection for barriers and stop setting the barrier flag for discards.\n\ntj: nilfs is now fixed to wait for discard completion.  Updated this\n    patch accordingly and dropped warning about it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "145c3ae46b37993b0debb0b3da6256daea4a6ec5",
      "tree": "0dbff382ce36b23b3d2dbff87d3eaab73a07a2a4",
      "parents": [
        "81ca03a0e2ea0207b2df80e0edcf4c775c07a505",
        "99b7db7b8ffd6bb755eb0a175596421a0b581cb2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 09:35:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 09:35:08 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  fs: brlock vfsmount_lock\n  fs: scale files_lock\n  lglock: introduce special lglock and brlock spin locks\n  tty: fix fu_list abuse\n  fs: cleanup files_lock locking\n  fs: remove extra lookup in __lookup_hash\n  fs: fs_struct rwlock to spinlock\n  apparmor: use task path helpers\n  fs: dentry allocation consolidation\n  fs: fix do_lookup false negative\n  mbcache: Limit the maximum number of cache entries\n  hostfs -\u003efollow_link() braino\n  hostfs: dumb (and usually harmless) tpyo - strncpy instead of strlcpy\n  remove SWRITE* I/O types\n  kill BH_Ordered flag\n  vfs: update ctime when changing the file\u0027s permission by setfacl\n  cramfs: only unlock new inodes\n  fix reiserfs_evict_inode end_writeback second call\n"
    },
    {
      "commit": "87e99511ea54510ffb60b98001d108794d5037f8",
      "tree": "359228828515e02302d9b259a066a1f1118eba0a",
      "parents": [
        "dad5eb6daa7eeb63d4fc9d982892c59faa07e797"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:05:45 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:00 2010 -0400"
      },
      "message": "kill BH_Ordered flag\n\nInstead of abusing a buffer_head flag just add a variant of\nsync_dirty_buffer which allows passing the exact type of write\nflag required.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "af4e36318edb848fcc0a8d5f75000ca00cdc7595",
      "tree": "c23ce8d1839f31ec4c472da184f16542a59752dd",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Aug 13 12:42:24 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Aug 16 11:08:36 2010 +0900"
      },
      "message": "nilfs2: fix list corruption after ifile creation failure\n\nIf nilfs_attach_checkpoint() gets a memory allocation failure during\ncreation of ifile, it will return without removing nilfs_sb_info\nstruct from ns_supers list.  When a concurrently mounted snapshot is\nunmounted or another new snapshot is mounted after that, this causes\nkernel oops as below:\n\n\u003e BUG: unable to handle kernel NULL pointer dereference at (null)\n\u003e IP: [\u003cf83662ff\u003e] nilfs_find_sbinfo+0x74/0xa4 [nilfs2]\n\u003e *pde \u003d 00000000\n\u003e Oops: 0000 [#1] SMP\n\u003csnip\u003e\n\u003e Call Trace:\n\u003e  [\u003cf835dc29\u003e] ? nilfs_get_sb+0x165/0x532 [nilfs2]\n\u003e  [\u003cc1173c87\u003e] ? ida_get_new_above+0x16d/0x187\n\u003e  [\u003cc109a7f8\u003e] ? alloc_vfsmnt+0x7e/0x10a\n\u003e  [\u003cc1070790\u003e] ? kstrdup+0x2c/0x40\n\u003e  [\u003cc1089041\u003e] ? vfs_kern_mount+0x96/0x14e\n\u003e  [\u003cc108913d\u003e] ? do_kern_mount+0x32/0xbd\n\u003e  [\u003cc109b331\u003e] ? do_mount+0x642/0x6a1\n\u003e  [\u003cc101a415\u003e] ? do_page_fault+0x0/0x2d1\n\u003e  [\u003cc1099c00\u003e] ? copy_mount_options+0x80/0xe2\n\u003e  [\u003cc10705d8\u003e] ? strndup_user+0x48/0x67\n\u003e  [\u003cc109b3f1\u003e] ? sys_mount+0x61/0x90\n\u003e  [\u003cc10027cc\u003e] ? sysenter_do_call+0x12/0x22\n\nThis fixes the problem.\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@kernel.org\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "6fd1e5c994c392ebdbe45600051b2a32ec4860f1",
      "tree": "672de56405c3a7dd4ffb079304661e4ef14401b7",
      "parents": [
        "4ec70c9b46b032e7f1b41b543c607d6a33b78a1a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 07 11:55:00 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:25 2010 -0400"
      },
      "message": "convert nilfs2 to -\u003eevict_inode()\n\n[folded build fix from sfr]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c5ca48aabe8b11674bf1102abe52d17ecc053f9c",
      "tree": "18c7647b42981d457c59cd4a842ca342a239770d",
      "parents": [
        "1a80a1763fb760b3a84a28df87515f7cdc07a4f4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Jul 22 03:22:20 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:16 2010 +0900"
      },
      "message": "nilfs2: reject incompatible filesystem\n\nThis forces nilfs to check compatibility of feature flags so as to\nreject a filesystem with unknown features when it mounts or remounts\nthe filesystem.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "05d0e94b66dbdf9d90371b39dc7a6b390ba74d41",
      "tree": "10476599c8102fc58f635d63e4e9a7aa58bf905e",
      "parents": [
        "dc935be2a094087bc561d80f8cf9e66bbc1f7b18"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jul 10 20:52:09 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:14 2010 +0900"
      },
      "message": "nilfs2: get rid of nilfs_bmap_union\n\nThis removes nilfs_bmap_union and finally unifies three structures and\nthe union in bmap/btree code into one.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7c01745781177795e39f78b2c2c42c470a13833a",
      "tree": "20ffcebedce21dba5b9fb8180cdca1e06b42fd41",
      "parents": [
        "c6b4d57ddf12f3fd4d41d7b3b9181de46748418d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jul 05 20:08:33 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:12 2010 +0900"
      },
      "message": "nilfs2: pass remount flag to parse_options\n\nThis adds is_remount argument to the parse_options() function that\nobtains mount options from strings.\n\nPreviously, parse_options did not distinguish context whether it\u0027s\ncalled for a new mount or remount, so the caller needed additional\nverifications outside the function.\n\nThis allows parse_options to verify options and print messages\ndepending on the context.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c6b4d57ddf12f3fd4d41d7b3b9181de46748418d",
      "tree": "66e748018b5f5bd0c343381f88b946a777fd8c13",
      "parents": [
        "802d31775404ee335ca1e97a82e1e706a4c843be"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jul 05 14:40:27 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:12 2010 +0900"
      },
      "message": "nilfs2: use seq_puts to print mount options without argument\n\nThis replaces seq_printf() with seq_puts() in nilfs_show_options for\nmount options which have no argument.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "802d31775404ee335ca1e97a82e1e706a4c843be",
      "tree": "3753263ea97748e6c2b01f29fb7f81c19381eb7b",
      "parents": [
        "773bc4f3b6898634a80a41c72a1f34cb89992dcd"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jul 05 14:27:04 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:12 2010 +0900"
      },
      "message": "nilfs2: add nodiscard mount option\n\nNilfs has \"discard\" mount option which issues discard/TRIM commands to\nunderlying block device, but it lacks a complementary option and has\nno way to disable the feature through remount.\n\nThis adds \"nodiscard\" option to resolve this imbalance.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "773bc4f3b6898634a80a41c72a1f34cb89992dcd",
      "tree": "ee6f12c0fbfa959a79861904498d04db8d899cc2",
      "parents": [
        "325020477a51ffa849418b3e38189fd266f2ae20"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jul 05 13:00:08 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:12 2010 +0900"
      },
      "message": "nilfs2: add barrier mount option\n\nNilfs enables write barriers by default and has \"nobarrier\" mount\noption to disable this feature.  But it lacks the complementary option\nand has no way to re-enable the feature on remount.\n\nThis adds \"barrier\" option to resolve this imbalance.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b2ac86e1a8e3a3b0ab4449d062c582f07a078e7b",
      "tree": "b681ea820685a278e06995ff23b58f7a85904b70",
      "parents": [
        "d26493b6f017c0b0063a15bf893411ddae85eee4"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Mon Jun 28 17:49:33 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:11 2010 +0900"
      },
      "message": "nilfs2: sync super blocks in turns\n\nThis will sync super blocks in turns instead of syncing duplicate\nsuper blocks at the time.  This will help searching valid super root\nwhen super block is written into disk before log is written, which is\nhappen when barrier-less block devices are unmounted uncleanly.  In\nthe situation, old super block likely points to valid log.\n\nThis patch introduces ns_sbwcount member to the nilfs object and adds\nnilfs_sb_will_flip() function; ns_sbwcount counts how many times super\nblocks write back to the disk.  And, nilfs_sb_will_flip() decides\nwhether flipping required or not based on the count of ns_sbwcount to\nsync super blocks asymmetrically.\n\nThe following functions are also changed:\n\n - nilfs_prepare_super(): flips super blocks according to the\n   argument.  The argument is calculated by nilfs_sb_will_flip()\n   function.\n\n - nilfs_cleanup_super(): sets \"clean\" flag to both super blocks if\n   they point to the same checkpoint.\n\nTo update both of super block information, caller of\nnilfs_commit_super must set the information on both super blocks.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d26493b6f017c0b0063a15bf893411ddae85eee4",
      "tree": "994de3e7c0383f0e30e5e9c88c0c5d0261a834bc",
      "parents": [
        "60f46b7efc1d6b980511c2644cb89903062f6e98"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Mon Jun 28 17:49:32 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:10 2010 +0900"
      },
      "message": "nilfs2: introduce nilfs_prepare_super\n\nThis function checks validity of super block pointers.\nIf first super block is invalid, it will swap the super blocks.\nThe function should be called before any super block information updates.\nCaller must obtain nilfs-\u003ens_sem.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "60f46b7efc1d6b980511c2644cb89903062f6e98",
      "tree": "6a0093650f858279db262c3b39de721bf3b20098",
      "parents": [
        "c8a11c8a1455c380286cfd3d3442e2b60edee49a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 28 17:49:31 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:10 2010 +0900"
      },
      "message": "nilfs2: separate function that updates log position\n\nThis moves out section that updates information of the recent log\nposition stored in super blocks from nilfs_commit_super to a new\nroutine named nilfs_set_log_cursor.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c8a11c8a1455c380286cfd3d3442e2b60edee49a",
      "tree": "351227134573d3a95855fe8a4b352c8baf20efb9",
      "parents": [
        "7ecaa46cfea453238a369b3019739d50ff5d7c37"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 28 17:49:30 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:10 2010 +0900"
      },
      "message": "nilfs2: add nilfs_set_error\n\nThis function marks error state and write it on super blocks.  This is\na preparation for making super block writeback alternately.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7ecaa46cfea453238a369b3019739d50ff5d7c37",
      "tree": "c69911a31c3a2cd4966979de2d34764e08471f2a",
      "parents": [
        "bde4e696e4a527c3cc579ed77e4844d11ca17e12"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 28 17:49:29 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:10 2010 +0900"
      },
      "message": "nilfs2: add nilfs_cleanup_super\n\nThis function write out filesystem state to super blocks in order to\nshare the same cleanup work.  This is a preparation for making super\nblock writeback alternately.\n\nCc: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "bde4e696e4a527c3cc579ed77e4844d11ca17e12",
      "tree": "fb93204331c64f1cac3a7cd8e579941224580b73",
      "parents": [
        "57a4bfc486727b68e4422031aeba427fb7262668"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jun 27 21:38:05 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:10 2010 +0900"
      },
      "message": "nilfs2: do not update mount time on rw-\u003ero remount\n\nMount time field in super block is wrongly updated when nilfs remounts\nthe partition from read-write to read-only.  This fixes the issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "84cb0999851e25bc4bd4aaa717cc8f8acbf42b2a",
      "tree": "7e7cdd687ea97cf41543ae543cb17ec5ad11317b",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat May 22 12:49:32 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 31 20:50:29 2010 +0900"
      },
      "message": "nilfs2: fix style issue in nilfs_destroy_cachep\n\nThis gets rid of unwanted space chars in front of conditional\nsentences of nilfs_destroy_cachep().\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d240e06713007bba309b074a386b7072b73c31a6",
      "tree": "3c9133ae5b349aeec8c0a93338b9dd13b9c9dac1",
      "parents": [
        "cdce214e39814fd46d47e0e660ca3ddf3fdce8a6"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 21:51:53 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:34 2010 +0900"
      },
      "message": "nilfs2: disallow remount of snapshot from/to a regular mount\n\nSnapshots and regular ro/rw mounts are essentially-different within\nthe meaning whether the checkpoint is static or not and is marked with\na snapshot flag or not.\n\nThe current implemenation, however, allows to remount a snapshot to a\nregular rw-mount if the checkpoint number equals the latest one.\n\nThis transition is actually impossible since changing a checkpoint to\na snapshot makes another checkpoint, thus the condition is never\nsatisfied.\n\nThis fixes the weird state of affairs, and specifically separates\nsnapshots and regular rw/ro-mounts.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b87ca91948843472c05ae49e4c5e1714001d24c9",
      "tree": "d7609414530230fb5f1c9b8910b83915fa8c7251",
      "parents": [
        "e2d1591a13118b2bccb41af06830a2904478a514"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 10:05:21 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:34 2010 +0900"
      },
      "message": "nilfs2: update comment on deactivate_super at nilfs_get_sb\n\ndeactivate_super was replaced with deactivate_locked_super, but the\ncomment of nilfs_get_sb remain unchanged.  This renews the comment.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e2d1591a13118b2bccb41af06830a2904478a514",
      "tree": "5ac3c5bddc08acdfe75c2b8ea970f057b4190f75",
      "parents": [
        "4571b82cdcd076a3b8ecaddcf9846cb52f9979e5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 09:48:31 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:34 2010 +0900"
      },
      "message": "nilfs2: replace MS_VERBOSE with MS_SILENT\n\nMS_VERBOSE is deprecated.  This replaces it with MS_SILENT in\nreference to get_sb_bdev function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4571b82cdcd076a3b8ecaddcf9846cb52f9979e5",
      "tree": "f7a69603d07fbfd14da3e0abaa13dd493d4c2f19",
      "parents": [
        "13e905592b3daacb6ec27a5a4169afe725c3b668"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 03:01:32 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:33 2010 +0900"
      },
      "message": "nilfs2: add missing initialization of s_mode\n\nAn fmode_t argument is passed to kill_block_super() through s_mode\nmember of the super_block structure.  This is used to release the\nblock device with the same mode, however, nilfs does not set s_mode\nanywhere.\n\nThis modifies nilfs_get_sb function to properly initialize the s_mode\nmember.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "13e905592b3daacb6ec27a5a4169afe725c3b668",
      "tree": "1eb7a70bf662d1efcea73e4e06239dee333dbdf8",
      "parents": [
        "400ade845cb9930552e791bbd658a0953f68499d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 02:57:57 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:33 2010 +0900"
      },
      "message": "nilfs2: fix misuse of open_bdev_exclusive/close_bdev_exclusive\n\nThe second argument of open_bdev_exclusive/close_bdev_exclusive takes\nfmode_t flags instead of mount flags.  This fixes the misuse.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "34cb9b5c973ac06449b96884be932da9a9b99819",
      "tree": "5009abb0edc749f78d60f7f1e8c098b1ab5fb509",
      "parents": [
        "4e819509cba664e7cbfba5c4d1517df4dfda86f5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat May 01 10:07:07 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:32 2010 +0900"
      },
      "message": "nilfs2: add missing endian conversion on super block magic number\n\nThis adds missing endian conversions in comparision of the magic\nnumber of super blocks.  It was coincidence that prior versions didn\u0027t\nincur problems; the upper byte of the magic number happened to be\nequal to the lower byte.  But, semantically it\u0027s wrong to depend on\nthis.\n\nThis won\u0027t change anything else nor suffer any compatibility issues.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9f130263f30233a44a3175db3218dd89af143d64",
      "tree": "66e48783682bdffaf56eb1c06823b39bc25d0836",
      "parents": [
        "41c88bd74d372db5102996a4ea6167a725c24b5e"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Apr 09 23:09:53 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: add a print message after loading nilfs2\n\nPrinting a message after loading a file system is a practice. Add this to\nprovide a better user-friendly experience.\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "41c88bd74d372db5102996a4ea6167a725c24b5e",
      "tree": "98b8e208d41f7760458e82569e297843415bbe7d",
      "parents": [
        "aaed1d5bfac459ead9aaad324e7fe3326250f50a"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Tue Apr 06 00:54:11 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: cleanup multi kmem_cache_{create,destroy} code\n\nThis cleanup patch gives several improvements:\n\n - Moving all kmem_cache_{create_destroy} calls into one place, which removes\n some small function calls, cleans up error check code and clarify the logic.\n\n - Mark all initial code in __init section.\n\n - Remove some very obvious comments.\n\n - Adjust some declarations.\n\n - Fix some space-tab issues.\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "277a6a34175dcb0ee98dceee619e0e3190347a25",
      "tree": "bda68b681972c608b78de87f5e856a649f2a04e7",
      "parents": [
        "73bb48869b14fd5094b9ec173a2bf86bc0e464d4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Apr 02 18:02:33 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: change default of \u0027errors\u0027 mount option to \u0027remount-ro\u0027 mode\n\nLike ext3, nilfs has \u0027errors\u0027 mount option to allow specifying desired\nbehavior on severe errors.\n\nCurrently, the default action is \u0027errors\u003dcontinue\u0027 and has potential\nto advance filesystem corruption for severe errors.\n\nThis will change the action to \u0027errors\u003dremount-ro\u0027 to avoid the issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "973bec34bfc1bc2465646181653d67f767d418c8",
      "tree": "05c84524a1c1fb273e399a9eb99c099e84499182",
      "parents": [
        "54413b825ca502b9384edabf972c512c29d64010"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 03 21:00:48 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 03 07:36:01 2010 -0700"
      },
      "message": "nilfs2: fix sync silent failure\n\nAs of 32a88aa1, __sync_filesystem() will return 0 if s_bdi is not set.\nAnd nilfs does not set s_bdi anywhere.  I noticed this problem by the\nwarning introduced by the recent commit 5129a469 (\"Catch filesystem\nlacking s_bdi\").\n\n WARNING: at fs/super.c:959 vfs_kern_mount+0xc5/0x14e()\n Hardware name: PowerEdge 2850\n Modules linked in: nilfs2 loop tpm_tis tpm tpm_bios video shpchp pci_hotplug output dcdbas\n Pid: 3773, comm: mount.nilfs2 Not tainted 2.6.34-rc6-debug #38\n Call Trace:\n  [\u003cc1028422\u003e] warn_slowpath_common+0x60/0x90\n  [\u003cc102845f\u003e] warn_slowpath_null+0xd/0x10\n  [\u003cc1095936\u003e] vfs_kern_mount+0xc5/0x14e\n  [\u003cc1095a03\u003e] do_kern_mount+0x32/0xbd\n  [\u003cc10a811e\u003e] do_mount+0x671/0x6d0\n  [\u003cc1073794\u003e] ? __get_free_pages+0x1f/0x21\n  [\u003cc10a684f\u003e] ? copy_mount_options+0x2b/0xe2\n  [\u003cc107b634\u003e] ? strndup_user+0x48/0x67\n  [\u003cc10a81de\u003e] sys_mount+0x61/0x8f\n  [\u003cc100280c\u003e] sysenter_do_call+0x12/0x32\n\nThis ensures to set s_bdi for nilfs and fixes the sync silent failure.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c91cea11dfec65968ff9d1b4239c1eab63bf72fd",
      "tree": "2749de610dd52786d7fb3ccdd3e1b5872feb544d",
      "parents": [
        "55480a06e9ee8d05d0e580bf46611df489653c76"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 04:01:27 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 10:29:51 2010 +0900"
      },
      "message": "nilfs2: remove whitespaces before quoted newlines\n\nThis kills the following checkpatch warnings:\n\n WARNING: unnecessary whitespace before a quoted newline\n #869: FILE: super.c:869:\n +     \t           \"remount to a different snapshot. \\n\",\n\n WARNING: unnecessary whitespace before a quoted newline\n #389: FILE: the_nilfs.c:389:\n +     \t    printk(KERN_ERR \"NILFS: too short segment. \\n\");\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7a65004bbaa6a21a0438aac9c64814e46084dc3f",
      "tree": "3153527bf645a5ee5865f9059b08282ec00e99f5",
      "parents": [
        "1621562b6ac55aa69239895d90276577547a5f62"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 03:32:40 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 10:29:51 2010 +0900"
      },
      "message": "nilfs2: fix various typos in comments\n\nThis fixes various typos I found in comments of nilfs2.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e605f0a7249d8002c660af379f884896cbaa45ae",
      "tree": "8daadf8848cd8f6c7817c399e568a2fcecdf0255",
      "parents": [
        "dcd76186955e2b595c378dbe5b9bb6c8c5374b10"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Dec 09 00:57:52 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Feb 13 12:26:03 2010 +0900"
      },
      "message": "nilfs2: get rid of s_dirt flag use\n\nThis replaces s_dirt flag use in nilfs with a new flag added on the\nnilfs object.  The s_dirt flag was used to indicate if\nsop-\u003ewrite_super() should be called, however the current version of\nnilfs does not use the callback.  Thus, it can be replaced with the\nown flag.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Jiro SEKIBA \u003cjir@unicus.jp\u003e\n"
    },
    {
      "commit": "fe5f171bb272946ce5fbf843ce2f8467d0d41b9a",
      "tree": "fc3917cd7b3fae605e464f94af815dc9d9cce36f",
      "parents": [
        "7512487e6d6459e4c3f9c7cedc53050a6c30e387"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jan 31 19:46:40 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Feb 13 12:26:03 2010 +0900"
      },
      "message": "nilfs2: fix potential hang in nilfs_error on errors\u003dremount-ro\n\nnilfs_error() calls nilfs_detach_segment_constructor() if\nerrors\u003dremount-ro option is specified, and this may lead to a hang due\nto recursive locking of, for instance, nilfs-\u003ens_segctor_sem and\nothers.\n\nIn this case, detaching segment constructor is not necessary because\nread-only flag is set to the filesystem and further writes are\nblocked.\n\nThis fixes the potential hang issue by removing the\nnilfs_detach_segment_constructor() call from nilfs_error.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e902ec9906e844f4613fa6190c6fa65f162dc86e",
      "tree": "ee0ea829ae04a30fb01c119f050a3967304e55ba",
      "parents": [
        "724e6d3fe8003c3f60bf404bf22e4e331327c596"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Sat Jan 30 18:06:35 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Feb 13 12:26:02 2010 +0900"
      },
      "message": "nilfs2: issue discard request after cleaning segments\n\nThis adds a function to send discard requests for given array of\nsegment numbers, and calls the function when garbage collection\nsucceeded.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a95161aaa801c18c52b2e7cf3d6b4b141c00a20a",
      "tree": "62d9989ea04a37ae276101de8d151eadeea86c88",
      "parents": [
        "3d1e463158febf6e047897597722f768b15350cd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Aug 09 00:52:02 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:42 2009 -0500"
      },
      "message": "switch nilfs2 to deactivate_locked_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0234576d041b9b2cc7043691ea61d2c2ca597aaa",
      "tree": "1fd5f397cf0a7cb010a3e383a715438e64582b65",
      "parents": [
        "a057d2c01161444c48b12a60351ae6c7135f6e61"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 03:28:01 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:52 2009 +0900"
      },
      "message": "nilfs2: add norecovery mount option\n\nThis adds \"norecovery\" mount option which disables temporal write\naccess to read-only mounts or snapshots during mount/recovery.\nWithout this option, write access will be even performed for those\ntypes of mounts; the temporal write access is needed to mount root\nfile system read-only after an unclean shutdown.\n\nThis option will be helpful when user wants to prevent any write\naccess to the device.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "f50a4c8149cc135921a8a0476bff8e622f59aef9",
      "tree": "eba1d25b71d85daf34153ffc1b1e8eaf8b83cccc",
      "parents": [
        "050b4142c9f3cb3a213f254bd1a1fa1476800585"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 19 16:58:40 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:52 2009 +0900"
      },
      "message": "nilfs2: move recovery completion into load_nilfs function\n\nAlthough mount recovery of nilfs is integrated in load_nilfs()\nprocedure, the completion of recovery was isolated from the procedure\nand performed at the end of the fill_super routine.\n\nThis was somewhat confusing since the recovery is needed for the nilfs\nobject, not for a super block instance.\n\nTo resolve the inconsistency, this will integrate the recovery\ncompletion into load_nilfs().\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "fd66c0d5c377ee8146909d0eb9258539e4b0f293",
      "tree": "7fefab4c3108aff9d18943a17cd3522a53bdc3bd",
      "parents": [
        "3961f0e2775f84a8f81b0dcddb0b356ebfe0696b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 02:25:41 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:48 2009 +0900"
      },
      "message": "nilfs2: hide nilfs_mdt_clear calls in nilfs_mdt_destroy\n\nThis will hide a function call of nilfs_mdt_clear() in\nnilfs_mdt_destroy().\n\nThis ensures nilfs_mdt_destroy() to do cleanup jobs included in\nnilfs_mdt_clear().\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "79739565e15f2adbc482207a0800fc127c84d1a0",
      "tree": "10d61f5a31e4de5c90a6c9c10f0f0bc8e68d1550",
      "parents": [
        "5731e191f254af9135ad843119804a500528ecf3"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 12 23:56:43 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:48 2009 +0900"
      },
      "message": "nilfs2: separate constructor of metadata files\n\nThis will displace nilfs_mdt_new() constructor with individual\nmetadata file constructors like nilfs_dat_new(), new_sufile_new(),\nnilfs_cpfile_new(), and nilfs_ifile_new().\n\nThis makes it possible for each metadata file to have own\nintialization code.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "5731e191f254af9135ad843119804a500528ecf3",
      "tree": "1ababce01647674af0e9c6bfb36f5ab5e96ab76c",
      "parents": [
        "9cb4e0d2b99e8b0e5e269d898ae6ab1967647c5a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 12 22:42:04 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:48 2009 +0900"
      },
      "message": "nilfs2: add size option of private object to metadata file allocator\n\nThis adds an optional \"object size\" argument to nilfs_mdt_new_common()\nfunction; the argument specifies the size of private object attached\nto a newly allocated metadata file inode.\n\nThis will afford space to keep local variables for meta data files.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e2073e78575e3690ea3cce67b11b7b1de8e85fd3",
      "tree": "46a43afec32b87abac0967bb5b19dec0a8708f3d",
      "parents": [
        "91f1953bf3243a4215b57d8e2f317a7035924de7"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Nov 12 14:07:27 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:47 2009 +0900"
      },
      "message": "nilfs2: cleanup unused match_bool function\n\nmatch_bool function is not used anymore.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "91f1953bf3243a4215b57d8e2f317a7035924de7",
      "tree": "78bec48dc558ebd130c67a6144e2e981286a603c",
      "parents": [
        "6600b9dd8e0d4a60c610f216b78d992a598bc52a"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Nov 12 14:07:26 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:47 2009 +0900"
      },
      "message": "nilfs2: Using nobarrier option instead of barrier\u003doff\n\nSince most of fs using nofoobar style option,\nmodified barrier\u003doff option as nobarrier.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ac4cfdd6d141c319a7af8655f750ed504c187a74",
      "tree": "2143509e0d585667203892a5036676e955273e52",
      "parents": [
        "b87221de6a4934eda856475a0065688d12973a04"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining export_operations 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": "b87221de6a4934eda856475a0065688d12973a04",
      "tree": "6bcf0628e106c4833538f4c23d710fbbe3d7609a",
      "parents": [
        "0d54b217a247f39605361f867fefbb9e099a5432"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining super_operations 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": "7a102b09232be1ad7c180dfd1f46c7aa95dff1e0",
      "tree": "81691c3a48e3108db1a5341c8dcf4531ac404cac",
      "parents": [
        "3218929dbd25245e0f601df1e359a3ed3f7fb03b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 13:47:09 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: remove individual gfp constants for each metadata file\n\nThis gets rid of NILFS_CPFILE_GFP, NILFS_SUFILE_GFP, NILFS_DAT_GFP,\nand NILFS_IFILE_GFP.  All of these constants refer to NILFS_MDT_GFP,\nand can be removed.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "43be0ec0387a5ccce2e064cb78502e7b2b4dd590",
      "tree": "e412246fce3f999b46b960ef416f1f10653ca895",
      "parents": [
        "a4f0b9c5b4ae83636dafde8f3a0e04b5e411a0f3"
      ],
      "author": {
        "name": "Zhu Yanhai",
        "email": "zhu.yanhai@gmail.com",
        "time": "Wed Aug 12 14:17:59 2009 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: add more check routines in mount process\n\nnilfs2: Add more safeguard routines and protections in mount process,\nwhich also makes nilfs2 report consistency error messages when\ncheckpoint number is invalid.\n\nSigned-off-by: Zhu Yanhai \u003czhu.yanhai@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a4f0b9c5b4ae83636dafde8f3a0e04b5e411a0f3",
      "tree": "885111c7beec6e69680768c7fb1a8b22d53cd175",
      "parents": [
        "c1b353f04a42f1b531be920149b85343d56a6b3b"
      ],
      "author": {
        "name": "Zhang Qiang",
        "email": "zhangqiang.buaa@gmail.com",
        "time": "Sun Aug 09 19:13:10 2009 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: An unassigned variable is assigned to a never used structure member\n\nnilfs2: In procedure \u0027nilfs_get_sb()\u0027, when a nilfs filesysttem is\nmounted for the first time, local variable \u0027nilfs-\u003ens_last_cno\u0027 is\nused before loading the latest checkpoint number from disk (in\n\u0027nilfs_fill_super\u0027). \u0027nilfs-\u003ens_last_cno\u0027 is assigned to \u0027sd.cno\u0027, but\n\u0027sd.cno\u0027 has never been used in the procedure.\n\nSigned-off-by: Zhang Qiang \u003czhangqiang.buaa@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1dfa27105a6cf4171c439fd40a004a0a17838115",
      "tree": "7d348398a9e623324ca86eafd050b8c12abf3cea",
      "parents": [
        "79efdd94111f30c373fce05e4e5822d8ff671c2a"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Jul 23 01:33:49 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: stop using periodic write_super callback\n\nThis removes nilfs_write_super and commit super block in nilfs\ninternal thread, instead of periodic write_super callback.\n\nVFS layer calls -\u003ewrite_super callback periodically.  However,\nit looks like that calling back is ommited when disk I/O is busy.\nAnd when cleanerd (nilfs GC) is runnig, disk I/O tend to be busy thus\nnilfs superblock is not synchronized as nilfs designed.\n\nTo avoid it, syncing superblock by nilfs thread instead of pdflush.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "79efdd94111f30c373fce05e4e5822d8ff671c2a",
      "tree": "9d12c0e87146fb4fb63362f567e574d629a222a1",
      "parents": [
        "6233caa9d5b153c2190d6c1c35c1dd1010104fc1"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Jul 23 01:26:34 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: clean up nilfs_write_super\n\nSeparate conditions that check if syncing super block and alternative\nsuper block are required as inline functions to reuse the conditions.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "6233caa9d5b153c2190d6c1c35c1dd1010104fc1",
      "tree": "885fdeacf10bbbecebf94fc274bfd84ff28066f6",
      "parents": [
        "ec5d66abdb0caf8b753a138568f20770a3d64c8c"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Jul 23 01:26:33 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:14 2009 +0900"
      },
      "message": "nilfs2: fix disorder of nilfs_write_super in nilfs_sync_fs\n\nThis fixes disorder of nilfs_write_super in nilfs_sync_fs.  Commiting\nsuper block must be the end of the function so that every changes are\nreflected.\n\n-\u003esync_fs() is not called frequently so this makes nilfs_sync_fs call\nnilfs_commit_super instead of nilfs_write_super.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ec5d66abdb0caf8b753a138568f20770a3d64c8c",
      "tree": "238dab276eab98a6aa0f560812e62adde759143a",
      "parents": [
        "b58a285ba40866e22e5876969a8f796a74311d9e"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Jul 10 19:57:28 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:13 2009 +0900"
      },
      "message": "nilfs2: remove redundant super block commit\n\nThis removes redundant super block commit.\n\nnilfs_write_super will call nilfs_commit_super to store super block\ninto block device.  However, nilfs_put_super will call\nnilfs_commit_super right after calling nilfs_write_super.  So calling\nnilfs_write_super in nilfs_put_super would be redundant.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b58a285ba40866e22e5876969a8f796a74311d9e",
      "tree": "9a667fdb99c0429c1871da626cb7589dec54adb7",
      "parents": [
        "143511046765504d2d1be633efd710f8d84e0407"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Wed Jun 24 20:06:34 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:13 2009 +0900"
      },
      "message": "nilfs2: implement nilfs_show_options to display mount options in /proc/mounts\n\nThis is a patch to display mount options in procfs.\nMount options will show up in the /proc/mounts as other fs does.\n\n...\n/dev/sda6 /mnt nilfs2 ro,relatime,barrier\u003doff,cp\u003d3,order\u003dstrict 0 0\n...\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1154ecbd2f8298ef75609f5f8ed5aca96be599fb",
      "tree": "a6801fc442fecf4c0b2a1dc1d7a5350910983041",
      "parents": [
        "64f1607ffbbc772685733ea63e6f7f4183df1b16"
      ],
      "author": {
        "name": "Zhang Qiang",
        "email": "zhangqiang.buaa@gmail.com",
        "time": "Tue Aug 18 14:58:24 2009 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Aug 18 17:32:27 2009 +0900"
      },
      "message": "nilfs2: missing a read lock for segment writer in nilfs_attach_checkpoint()\n\n\u0027ns_cno\u0027 of structure \u0027the_nilfs\u0027 must be protected from segment\nwriter, in other words, the caller of nilfs_get_checkpoint should hold\nread lock for nilfs-\u003ens_segctor_sem.  This patch adds the lock/unlock\noperations in nilfs_attach_checkpoint() when calling\nnilfs_cpfile_get_checkpoint().\n\nSigned-off-by: Zhang Qiang \u003czhangqiang.buaa@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d441b1c293149212045de00f346c8ea6cd41cce4",
      "tree": "cbc7aa520feeabaa90ff4b8ff83e6e8fade216c7",
      "parents": [
        "5affd88a104af43f0063a12ad1ee4c7a587945dc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 19:56:34 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:05 2009 -0400"
      },
      "message": "switch nilfs2 to inode-\u003ei_acl\n\nActually, get rid of private analog, since nothing in there is\nusing ACLs at all so far.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c7cb99a8202452d3e0440a5505c5c6d262771d9",
      "tree": "56d2fe83150f7bea3446b28bfa3094066c5f26b5",
      "parents": [
        "0a8eba9b7f7aa3ad0305627c99ad4d6deedd871d",
        "c3a7abf06ce719a51139e62a034590be99abbc2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:13:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:13:49 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (22 commits)\n  nilfs2: support contiguous lookup of blocks\n  nilfs2: add sync_page method to page caches of meta data\n  nilfs2: use device\u0027s backing_dev_info for btree node caches\n  nilfs2: return EBUSY against delete request on snapshot\n  nilfs2: modify list of unsupported features in caveats\n  nilfs2: enable sync_page method\n  nilfs2: set bio unplug flag for the last bio in segment\n  nilfs2: allow future expansion of metadata read out via get info ioctl\n  NILFS2: Pagecache usage optimization on NILFS2\n  nilfs2: remove nilfs_btree_operations from btree mapping\n  nilfs2: remove nilfs_direct_operations from direct mapping\n  nilfs2: remove bmap pointer operations\n  nilfs2: remove useless b_low and b_high fields from nilfs_bmap struct\n  nilfs2: remove pointless NULL check of bpop_commit_alloc_ptr function\n  nilfs2: move get block functions in bmap.c into btree codes\n  nilfs2: remove nilfs_bmap_delete_block\n  nilfs2: remove nilfs_bmap_put_block\n  nilfs2: remove header file for segment list operations\n  nilfs2: eliminate removal list of segments\n  nilfs2: add sufile function that can modify multiple segment usages\n  ...\n"
    }
  ],
  "next": "aa7dfb8954ccf49e026ba13d12991a4eb7defb96"
}
