)]}'
{
  "log": [
    {
      "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": "44fa2b4bee5b07d506a7b002b4e2eb73654db7e0",
      "tree": "5415a4988e326de7d3456d72115ac74f548ca8d1",
      "parents": [
        "0eddb519b9127c73d53db4bf3ec1d45b13f844d1",
        "be3bd2223b89d270853302ab0a5909fa875fd831"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 12 18:34:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 12 18:34:25 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:\n  nilfs2: fix typo \"numer\" -\u003e \"number\" in alloc.c\n  nilfs2: Remove an uninitialization warning in nilfs_btree_propagate_v()\n  nilfs2: fix a wrong type conversion in nilfs_ioctl()\n"
    },
    {
      "commit": "be3bd2223b89d270853302ab0a5909fa875fd831",
      "tree": "7f309ea90c33c6306790c4f6dfc2d42ab0066ac7",
      "parents": [
        "308f44193f796b1c522b3b87760e43d8d8e316d2"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 12 01:51:03 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 12 01:51:03 2010 +0900"
      },
      "message": "nilfs2: fix typo \"numer\" -\u003e \"number\" in alloc.c\n\nFixes the typo found in a warning message of a persistent object\nallocator function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "308f44193f796b1c522b3b87760e43d8d8e316d2",
      "tree": "da0fae6f13ce7ae48d67b6d362303fea312a6d88",
      "parents": [
        "753234007f4ac2c96921cfb19ec1ba535ac29790"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Apr 02 18:40:39 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Apr 02 20:03:30 2010 +0900"
      },
      "message": "nilfs2: Remove an uninitialization warning in nilfs_btree_propagate_v()\n\n`make CONFIG_NILFS2_FS\u003dm M\u003dfs/nilfs2/` will give the following warnings:\n\nfs/nilfs2/btree.c: In function \u0027nilfs_btree_propagate\u0027:\nfs/nilfs2/btree.c:1882: warning: \u0027maxlevel\u0027 may be used uninitialized in this function\nfs/nilfs2/btree.c:1882: note: \u0027maxlevel\u0027 was declared here\n\nSet maxlevel \u003d 0 to fix it.\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": "753234007f4ac2c96921cfb19ec1ba535ac29790",
      "tree": "c238c54daff482ba3e91153b0d13e2c646a6e1bd",
      "parents": [
        "2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Wed Mar 31 15:41:00 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 31 16:55:00 2010 +0900"
      },
      "message": "nilfs2: fix a wrong type conversion in nilfs_ioctl()\n\n(void * __user *) should be (void __user *)\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": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "d067633b4483f3c7d971d8f889f35340a8635bb5",
      "tree": "4b27e195b6006b1fffe8c952d0a208b1e0491583",
      "parents": [
        "110d735a0ae69bdd11af9acb6ea3b979137eb118"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Mar 22 19:33:43 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 24 01:17:20 2010 +0900"
      },
      "message": "nilfs2: fix imperfect completion wait in nilfs_wait_on_logs\n\nnilfs_wait_on_logs has a potential to slip out before completion of\nall bio requests when it met an error.  This synchronization fault may\ncause unexpected results, for instance, violative access to freed\nsegment buffers from an end-bio callback routine.\n\nThis fixes the issue by ensuring that nilfs_wait_on_logs waits all\ngiven logs.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "110d735a0ae69bdd11af9acb6ea3b979137eb118",
      "tree": "aa25160aad878031823920a00e802ac3da76b5bb",
      "parents": [
        "2d8428acaee5468d194d8a84de22a0797791cb33"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Mar 22 21:36:06 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 24 00:03:06 2010 +0900"
      },
      "message": "nilfs2: fix hang-up of cleaner after log writer returned with error\n\nAccording to the report from Andreas Beckmann (Message-ID:\n\u003c4BA54677.3090902@abeckmann.de\u003e), nilfs in 2.6.33 kernel got stuck\nafter a disk full error.\n\nThis turned out to be a regression by log writer updates merged at\nkernel 2.6.33.  nilfs_segctor_abort_construction, which is a cleanup\nfunction for erroneous cases, was skipping writeback completion for\nsome logs.\n\nThis fixes the bug and would resolve the hang issue.\n\nReported-by: Andreas Beckmann \u003cdebian@abeckmann.de\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e                     [2.6.33.x]\n"
    },
    {
      "commit": "2d8428acaee5468d194d8a84de22a0797791cb33",
      "tree": "4d7b400be54f01b9756bffe421c109c19dafe458",
      "parents": [
        "220bf991b0366cc50a94feede3d7341fa5710ee4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Mar 22 14:01:24 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Mar 22 14:41:07 2010 +0900"
      },
      "message": "nilfs2: fix duplicate call to nilfs_segctor_cancel_freev\n\nAndreas Beckmann gave me a report that nilfs logged the following\nwarnings when it got a disk full:\n\n  nilfs_sufile_do_cancel_free: segment 0 must be clean\n  nilfs_sufile_do_cancel_free: segment 1 must be clean\n\nThese arise from a duplicate call to nilfs_segctor_cancel_freev in an\nerror path of log writer.  This will fix the issue.\n\nReported-by: Andreas Beckmann \u003cdebian@abeckmann.de\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\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": "55480a06e9ee8d05d0e580bf46611df489653c76",
      "tree": "5e84360a299051720943a3ce0a2713f4165d1ca0",
      "parents": [
        "7a65004bbaa6a21a0438aac9c64814e46084dc3f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 03:55:56 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 spaces before tabs\n\nThis kills the following checkpatch warnings:\n\n WARNING: please, no space before tabs\n #74: FILE: segment.h:74:\n +^Iunsigned ^I^Iflags;$\n\n WARNING: please, no space before tabs\n #35: FILE: segbuf.c:35:\n +^Iint ^I^I^Istart, end; /* The region to be submitted */$\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": "1621562b6ac55aa69239895d90276577547a5f62",
      "tree": "27d33991e28ac824a8262f1beddecad52cdd304e",
      "parents": [
        "9ccf56c13831c5fe0edecd8c1184c9a6fe805d23"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 03:17:45 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 10:29:50 2010 +0900"
      },
      "message": "nilfs2: fix typo \"cout\" -\u003e \"count\" in error message\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9ccf56c13831c5fe0edecd8c1184c9a6fe805d23",
      "tree": "f3e3810e1d12e6ba88b7dfd922f0185a90112073",
      "parents": [
        "6c477d44a7dad43a2783b4dea7f4ca3882d77126"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 03:01:03 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 10:29:50 2010 +0900"
      },
      "message": "nilfs2: fix function name typos in docbook comments\n\nFixes the following typos in docbook comments:\n\n nilfs_detroy_transaction_cache -\u003e nilfs_destroy_transaction_cache\n nilfs_secgtor_start_timer -\u003e nilfs_segctor_start_timer\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "6c477d44a7dad43a2783b4dea7f4ca3882d77126",
      "tree": "7a0e051ddbb9c2c0f11910983efe3d98c8bcf8c5",
      "parents": [
        "57d54889cd00db2752994b389ba714138652e60c"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 02:01:51 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 14 10:27:27 2010 +0900"
      },
      "message": "nilfs2: fix discrepancy in use of static specifier\n\nTwo segbuf functions, nilfs_segbuf_write and nilfs_segbuf_wait, are\ndeclared with the static storage class specifier, but their\nimplementations are not.\n\nThis fixes the discrepancy.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "0f2cc4ecd81dc1917a041dc93db0ada28f8356fa",
      "tree": "f128b50f48f50f0cda6d2b20b53e9ad6e2dfded3",
      "parents": [
        "1fae4cfb97302289bb5df6a8195eb28385d0b002",
        "9643f5d94aadd47a5fa9754fb60f2c957de05903"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "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: (52 commits)\n  init: Open /dev/console from rootfs\n  mqueue: fix typo \"failues\" -\u003e \"failures\"\n  mqueue: only set error codes if they are really necessary\n  mqueue: simplify do_open() error handling\n  mqueue: apply mathematics distributivity on mq_bytes calculation\n  mqueue: remove unneeded info-\u003emessages initialization\n  mqueue: fix mq_open() file descriptor leak on user-space processes\n  fix race in d_splice_alias()\n  set S_DEAD on unlink() and non-directory rename() victims\n  vfs: add NOFOLLOW flag to umount(2)\n  get rid of -\u003emnt_parent in tomoyo/realpath\n  hppfs can use existing proc_mnt, no need for do_kern_mount() in there\n  Mirror MS_KERNMOUNT in -\u003emnt_flags\n  get rid of useless vfsmount_lock use in put_mnt_ns()\n  Take vfsmount_lock to fs/internal.h\n  get rid of insanity with namespace roots in tomoyo\n  take check for new events in namespace (guts of mounts_poll()) to namespace.c\n  Don\u0027t mess with generic_permission() under -\u003ed_lock in hpfs\n  sanitize const/signedness for udf\n  nilfs: sanitize const/signedness in dealing with -\u003ed_name.name\n  ...\n\nFix up fairly trivial (famous last words...) conflicts in\ndrivers/infiniband/core/uverbs_main.c and security/tomoyo/realpath.c\n"
    },
    {
      "commit": "072f98b4637eddcbdf2178fc84f382e2ee522f08",
      "tree": "ee260375c1be79a1ba4f60f5211a18ba913b93e6",
      "parents": [
        "0319003d0d229735770c185ddf132c666e9cd01a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 31 21:03:58 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:58 2010 -0500"
      },
      "message": "nilfs: sanitize const/signedness in dealing with -\u003ed_name.name\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0319003d0d229735770c185ddf132c666e9cd01a",
      "tree": "b6c7e8d10bc09816ae20711fac24fd5b9f63a4ca",
      "parents": [
        "89031bc79782a93fc65adabd0e123c89645bee6e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 31 21:02:09 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:58 2010 -0500"
      },
      "message": "nilfs really shouldn\u0027t slap struct dentry on stack...\n\n... especially when it only needs (and initializes) .d_name of it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0d561f12b490dd2b993d73112d3297007688e6df",
      "tree": "3c754966cb9ec6647048ae2fd41428c9fa4b1b84",
      "parents": [
        "03f29365e84ff6d651be4e6186e0400ca59da6cd"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Sat Feb 20 19:47:49 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Feb 20 21:18:19 2010 +0900"
      },
      "message": "nilfs2: add reader\u0027s lock for cno in nilfs_ioctl_sync\n\nThis adds reader\u0027s lock for the_nilfs-\u003ecno in nilfs_ioctl_sync,\nfor the_nilfs-\u003ecno should be proctected by segctor_sem when reading.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "03f29365e84ff6d651be4e6186e0400ca59da6cd",
      "tree": "c017d0f58954acd7f5e15bd97fa0871eb4024da9",
      "parents": [
        "d1c6b72a7224f6cd6924f7079f79580cde696d68"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Thu Feb 18 19:11:35 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Feb 18 20:09:03 2010 +0900"
      },
      "message": "nilfs2: delete unnecessary condition in load_segment_summary\n\nThis is a trivial patch to remove unnecessary condition.\n\nload_segment_summary() checks crc of segment_summary OR crc of whole\nlog data blocks based on boolean argument full_check.  However,\ncallers of the function pass only 1 as full_check, which means only\nwhole log data blocks checking code is running all the time.\n\nThis patch deletes the condition and full_check argument and also\ndeletes enum \u0027NILFS_SEG_FAIL_CHECKSUM_SEGSUM\u0027 and corresponding case\nclause, for it is nolonger 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": "d1c6b72a7224f6cd6924f7079f79580cde696d68",
      "tree": "0046a65c661f0bdade1e6afe1d995ea624ede7cb",
      "parents": [
        "e605f0a7249d8002c660af379f884896cbaa45ae"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Dec 17 00:55:40 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Feb 13 12:26:03 2010 +0900"
      },
      "message": "nilfs2: move iterator to write log into segment buffer\n\nThis moves iterator to submit write requests for a series of logs into\nsegbuf.c, and hides nilfs_segbuf_write() and nilfs_segbuf_wait() in\nthe file.\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": "dcd76186955e2b595c378dbe5b9bb6c8c5374b10",
      "tree": "96efa3758e289ddaf5279b8c77f7f9e2f8a3a142",
      "parents": [
        "086d1764b22bb2d9d79bb8e2198927acf028d732"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jan 26 15:20:15 2010 +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 nilfs_segctor_req struct\n\nThis will clean up nilfs_segctor_req struct and the obscure request\nargument passed among private methods of segment constructor.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "086d1764b22bb2d9d79bb8e2198927acf028d732",
      "tree": "c52f5319998362c208d3f764c2666935c5dfce21",
      "parents": [
        "fe5f171bb272946ce5fbf843ce2f8467d0d41b9a"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Feb 05 23:15:26 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Feb 13 12:26:03 2010 +0900"
      },
      "message": "nilfs2: delete unnecessary condition in nilfs_dat_translate\n\nThis is a trivial patch to delete unnecessary condition in nilfs_dat_translate.\n\nnilfs_dat_translate() will asign translated address to *blocknrp if blocknrp\nis not NULL.  However the condition is unneeded, because all callers of\nnilfs_dat_translate() pass blocknrp properly.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.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": "7512487e6d6459e4c3f9c7cedc53050a6c30e387",
      "tree": "a2f7ed0a787be5ccd3bcd92b6e9f2f3e4eb3267b",
      "parents": [
        "e902ec9906e844f4613fa6190c6fa65f162dc86e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jan 26 13:59:40 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Feb 13 12:26:02 2010 +0900"
      },
      "message": "nilfs2: use mnt_want_write in ioctls where write access is needed\n\nA few nilfs2 ioctls need to ask for and then later release write\naccess to the mount in order to avoid potential write to read-only\nmounts.\n\nThis adds the missing mnt_want_write and mnt_drop_write in\nnilfs_ioctl_change_cpmode, nilfs_ioctl_delete_checkpoint, and\nnilfs_ioctl_clean_segments.\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": "3256a05531b1164a9c138da701b922a113bddf82",
      "tree": "cbaf7f9c6ee23683eef59922ae08e60da110a487",
      "parents": [
        "abe94c756c08d50566c09a65b9c7fe72f83071c5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jan 31 12:39:50 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jan 31 14:57:31 2010 +0900"
      },
      "message": "nilfs2: fix potential leak of dirty data on umount\n\nThis fixes incorrect usage of nilfs_segctor_confirm() test function in\nnilfs_segctor_destroy(); nilfs_segctor_confirm() returns zero if the\nfilesystem is not clean, so its use in nilfs_segctor_destroy() needs\ninversion.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "33e189bd5754dead3ece130da8e62f470f526f36",
      "tree": "61898f01f76d014e5572950f696794ce92c961ee",
      "parents": [
        "5ee581483246e832ca5a9fc1ac669bba0b6ec468"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Wed Dec 23 13:57:47 2009 +0100"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Dec 25 13:01:50 2009 +0900"
      },
      "message": "nilfs2: Storage class should be before const qualifier\n\nThe C99 specification states in section 6.11.5:\n\nThe placement of a storage-class specifier other than at the beginning\nof the declaration specifiers in a declaration is an obsolescent\nfeature.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "5ee581483246e832ca5a9fc1ac669bba0b6ec468",
      "tree": "3fd7399a073ef487b0096563a4aaa3ab790d4321",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@sekiba.com",
        "time": "Sun Dec 06 15:43:56 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Dec 25 13:01:50 2009 +0900"
      },
      "message": "nilfs2: trivial coding style fix\n\nThis is a trivial style fix patch to mend errors/warnings\nreported by \"checkpatch.pl --file\".\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b6e3224fb20954f155e41ec5709b2ab70b50ae2d",
      "tree": "96302d1b564c879779b9cc5d7aae7c3c4471ed14",
      "parents": [
        "a2770d86b33024f71df269fde2de096df89d6a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "message": "Revert \"task_struct: make journal_info conditional\"\n\nThis reverts commit e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319, as\nrequested by Alexey:\n\n \"I think I gave a good enough arguments to not merge it.\n  To iterate:\n   * patch makes impossible to start using ext3 on EXT3_FS\u003dn kernels\n     without reboot.\n   * this is done only for one pointer on task_struct\"\n\n  None of config options which define task_struct are tristate directly\n  or effectively.\"\n\nRequested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319",
      "tree": "ce2be0a79fa2e8d8271426f0fc27b25e83c050b4",
      "parents": [
        "8420e7efa1cf155765c6d77c91d3e3547c7aa557"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Mon Dec 14 18:00:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:27 2009 -0800"
      },
      "message": "task_struct: make journal_info conditional\n\njournal_info in task_struct is used in journaling file system only.  So\nintroduce CONFIG_FS_JOURNAL_INFO and make it conditional.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a694291a6211537189c6080f77f63cdabfc9b63e",
      "tree": "ec23d36fc493eeaaedd72f54187652f9df3b4819",
      "parents": [
        "e29df395bc6d2d0c89b3d8a5939a24b1b43c2fb6"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 29 23:03:04 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Nov 30 21:17:52 2009 +0900"
      },
      "message": "nilfs2: separate wait function from nilfs_segctor_write\n\nThis separates wait function for submitted logs from the write\nfunction nilfs_segctor_write().  A new list of segment buffers\n\"sc_write_logs\" is added to hold logs under writing, and double\nbuffering is partially applied to hide io latency.\n\nAt this point, the double buffering is disabled for blocksize \u003c\npagesize because page dirty flag is turned off during write and dirty\nbuffers are not properly collected for pages crossing over segments.\n\nTo receive full benefit of the double buffering, further refinement is\nneeded to move the io wait outside the lock section of log writer.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e29df395bc6d2d0c89b3d8a5939a24b1b43c2fb6",
      "tree": "6d6f570d8158d7a18570492d9f5f5edf843ed28c",
      "parents": [
        "9c965bac169f786cc6cca8ff81d3b636e923c960"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 29 16:51:16 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Nov 30 21:06:35 2009 +0900"
      },
      "message": "nilfs2: add iterator for segment buffers\n\nThis adds a few iterator functions for segment buffers to make it easy\nto handle multiple series of logs.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9c965bac169f786cc6cca8ff81d3b636e923c960",
      "tree": "71c05d6e981e2b2c5c3797cbcf8b8e619b48e966",
      "parents": [
        "9284ad2a9016ad631460caf8fd01fc21d84f118c"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 29 01:17:31 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Nov 30 21:06:35 2009 +0900"
      },
      "message": "nilfs2: hide nilfs_write_info struct in segment buffer code\n\nHides nilfs_write_info struct and nilfs_segbuf_prepare_write function\nin segbuf.c to simplify the interface of nilfs_segbuf_write function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9284ad2a9016ad631460caf8fd01fc21d84f118c",
      "tree": "6ef77d51ca75017a1632bf215703ed9ee12feade",
      "parents": [
        "5f1586d0dd8f6eeecf6c0d35cbca6291afd6f1cc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 25 01:04:21 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Nov 30 21:05:57 2009 +0900"
      },
      "message": "nilfs2: relocate io status variables to segment buffer\n\nThis moves io status variables in nilfs_write_info struct to\nnilfs_segment_buffer struct.\n\nThis is a preparation to hide nilfs_write_info in segment buffer code.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "5f1586d0dd8f6eeecf6c0d35cbca6291afd6f1cc",
      "tree": "1f38cd3b11e99b44712b8a075bf34c1cbfcc1ade",
      "parents": [
        "0935db747739782fc779eb58529610c12db88ea2"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 29 19:14:17 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 29 19:59:00 2009 +0900"
      },
      "message": "nilfs2: do not return io error for bio allocation failure\n\nPreviously, log writer had possibility to set an io error flag on\nsegments even in case of memory allocation failure.\n\nThis fixes the issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "0935db747739782fc779eb58529610c12db88ea2",
      "tree": "27df2a16a8eb06c0548ea8fd4feb28aa1cbc5e1b",
      "parents": [
        "abdb318b79d387a723af5db2aa79f812cefd0797"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 29 02:39:11 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 29 02:50:46 2009 +0900"
      },
      "message": "nilfs2: use list_splice_tail or list_splice_tail_init\n\nThis applies list_splice_tail (or list_splice_tail_init) operation\ninstead of list_splice (or list_splice_init, respectively) to append a\nnew list to tail of an existing list.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "abdb318b79d387a723af5db2aa79f812cefd0797",
      "tree": "7915b48a984df976ed639b7b0a99672e7dc049c6",
      "parents": [
        "3534573b58fd7576d3dc8dd66a9973592ac08b2d"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:14 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:16 2009 +0900"
      },
      "message": "nilfs2: replace mark_inode_dirty as nilfs_mark_inode_dirty\n\nReplace mark_inode_dirty() as nilfs_mark_inode_dirty()\nto reduce deep function calls.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "3534573b58fd7576d3dc8dd66a9973592ac08b2d",
      "tree": "336143c737901da8612baac5e0434d80ee4aade8",
      "parents": [
        "58d55471cb1911f7493aba7bf3b6b87ca91e4314"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:13 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:16 2009 +0900"
      },
      "message": "nilfs2: delete mark_inode_dirty in nilfs_delete_entry\n\nDelete mark_inode_dirty() in nilfs_delete_entry() to reduce duplicate\nmark_inode_dirty() calls both in nilfs_rename() and nilfs_delete_entry().\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "58d55471cb1911f7493aba7bf3b6b87ca91e4314",
      "tree": "a66a97fb1f5b1bec314a471de9deaae7dd110f55",
      "parents": [
        "2093abf9cbcec3cb1409a67d8bce51854595b1d5"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:12 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:16 2009 +0900"
      },
      "message": "nilfs2: delete mark_inode_dirty in nilfs_commit_chunk\n\nDelete mark_inode_dirty() in nilfs_commit_chunk(), for callers of\nnilfs_commit_chunk() will call equivalent mark_inode_dirty()\nafter calling nilfs_commit_chunk().\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "2093abf9cbcec3cb1409a67d8bce51854595b1d5",
      "tree": "039e2b5f9108a9285ac8f01a34ee7f4515ef1f6a",
      "parents": [
        "4cd76c3c930993cf70657775bb521cad006e37b4"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:11 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:15 2009 +0900"
      },
      "message": "nilfs2: change return type of nilfs_commit_chunk\n\nchange return type of nilfs_commit_chunk() as void from int,\nfor nilfs_set_file_dirty() usually does not return error.\n\nThis is an intermediate patch to reduce mark_inode_dirty() in\nnilfs_commit_chunk().\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4cd76c3c930993cf70657775bb521cad006e37b4",
      "tree": "f29b80420e2214d08785580f11e400728750d10a",
      "parents": [
        "17491472769abbf4dac694d96c65eed5a7e1c81c"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:10 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:15 2009 +0900"
      },
      "message": "nilfs2: split nilfs_unlink as nilfs_do_unlink and nilfs_unlink\n\nSplit nilfs_unlink() to reduce nested transaction and duplicate\nmark_inode_dirty() calls when calling nilfs_unlink() from nilfs_rmdir().\n\nnilfs_do_unlink() is an actual unlink functionality which is not\nin transaction and does not call mark_inode_dirty() for dentry argument.\n\nnilfs_unlink() is a wrapper function for do_nilfs_unlink() with\ntransaction and mark_inode_dirty() for dentry argument.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "17491472769abbf4dac694d96c65eed5a7e1c81c",
      "tree": "a811e18a9c29df370cdbf9018c1aded35d93ffa8",
      "parents": [
        "565de406e7bfa92ffec6315e89857986da657192"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:09 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:15 2009 +0900"
      },
      "message": "nilfs2: delete redundant mark_inode_dirty\n\ndelete redundant mark_inode_dirty() calls\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "565de406e7bfa92ffec6315e89857986da657192",
      "tree": "43ac1b59a748a91e2d22505843823fbae5e63c50",
      "parents": [
        "43f8bc262fcfadc7583b2353d2708e6eb77788ff"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:08 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:15 2009 +0900"
      },
      "message": "nilfs2: expand inode_inc_link_count and inode_dec_link_count\n\nThis is an intermidiate patch to reduce redandunt mark_inode_dirty() calls\nby calling inode_inc_link_count() and inode_dec_link_count() functions.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "43f8bc262fcfadc7583b2353d2708e6eb77788ff",
      "tree": "1c899548d8c16d5f77e3d39eff5263fddaa6400a",
      "parents": [
        "9ca941d4b62e72571948efe5a73c563b4cacc98d"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:07 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:15 2009 +0900"
      },
      "message": "nilfs2: delete mark_inode_dirty from nilfs_set_link\n\nDelete mark_inode_dirty() from nilfs_set_link() to reduce redundant\nmark_inode_dirty() calls in caller of nilfs_set_link().\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9ca941d4b62e72571948efe5a73c563b4cacc98d",
      "tree": "8c4a5cde6c2e626758c0aed85fe9cd7759747890",
      "parents": [
        "0234576d041b9b2cc7043691ea61d2c2ca597aaa"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Fri Nov 27 19:41:06 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 27 20:05:15 2009 +0900"
      },
      "message": "nilfs2: delete mark_inode_dirty in nilfs_new_inode\n\nIt is redundant to call mark_inode_dirty() in nilfs_new_inode() because\nall caller of nilfs_new_inode() will call mark_inode_dirty()\nafter calling nilfs_new_inode() directly or indirectly in transaction.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\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": "a057d2c01161444c48b12a60351ae6c7135f6e61",
      "tree": "066316a4e9a9d1d2979873c31e7855eb9c093c49",
      "parents": [
        "f50a4c8149cc135921a8a0476bff8e622f59aef9"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 19 19:58:46 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 helper to get if volume is in a valid state\n\nThis adds a helper function, nilfs_valid_fs() which returns if nilfs\nis in a valid state or not.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\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": "050b4142c9f3cb3a213f254bd1a1fa1476800585",
      "tree": "e9c128ab00463ca903edf15457fd76a4df7911d7",
      "parents": [
        "f021759d74d71bacc73fc3e00d6e3d35e1f2e123"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 19 22:24:48 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:51 2009 +0900"
      },
      "message": "nilfs2: apply readahead for recovery on mount\n\nThis inserts readahead in the recovery code.  The readahead request is\nissued per segment while searching the latest super root block.\n\nThis will shorten mount time after unclean unmount.  A measurement\nshows the recovery time was reduced by more than 60 percent:\n\n e.g. real  0m11.586s -\u003e 0m3.918s  (x 2.96)\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "f021759d74d71bacc73fc3e00d6e3d35e1f2e123",
      "tree": "245b128351c6bd30f1c34c409198b42a63b77fbb",
      "parents": [
        "071ec54dd730307ee0e703a105872b9a1c6fd2aa"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 18 18:37:28 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:51 2009 +0900"
      },
      "message": "nilfs2: clean up get/put function of a segment usage\n\nThis eliminates obsolete nilfs_get_sufile_get_segment_usage() and\nnilfs_set_sufile_segment_usage() from sufile.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "071ec54dd730307ee0e703a105872b9a1c6fd2aa",
      "tree": "fb6629e471adf24d432487e0641549fd38d20ef3",
      "parents": [
        "61a189e9c62359cd12b2aa3bd6ab9cffa6cf2745"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 18 18:23:34 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:51 2009 +0900"
      },
      "message": "nilfs2: move routine to set segment usage into sufile\n\nThis adds nilfs_sufile_set_segment_usage() function in sufile to\nreplace direct access to the sufile metadata in log writer code.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "61a189e9c62359cd12b2aa3bd6ab9cffa6cf2745",
      "tree": "03c5cb693a5ea01474055fa26028c42d37011b1d",
      "parents": [
        "70622a2091647840013c1e982e56a8808768847e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 18 17:25:12 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:51 2009 +0900"
      },
      "message": "nilfs2: move routine marking segment usage dirty into sufile\n\nThis adds nilfs_sufile_mark_dirty() function in sufile to replace\nnilfs_touch_segusage() function in log writer code.  This is a\npreparation for the further cleanup which will move out low level\nsufile operations in the log writer.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "70622a2091647840013c1e982e56a8808768847e",
      "tree": "28f8bd21ddbda3d0fdbfb7eeccae6ae8052aa78e",
      "parents": [
        "49fa7a590208b439cc74f2cafdb15568abb3f8d1"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 14 18:40:27 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:51 2009 +0900"
      },
      "message": "nilfs2: insert cache operation in palloc get block routines\n\nThis implements cache operation in get block routines of palloc code:\nnilfs_palloc_get_desc_block(), nilfs_palloc_get_bitmap_block(), and\nnilfs_palloc_get_entry_block().\n\nThis will complete the palloc cache.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "49fa7a590208b439cc74f2cafdb15568abb3f8d1",
      "tree": "2e6b235dff922a0a7529c601887ff3d47e826496",
      "parents": [
        "c3ea56c80081b826df4a0ac797432179cf5b7cd2"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 14 16:44:22 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:50 2009 +0900"
      },
      "message": "nilfs2: add palloc cache to ifile\n\nThis adds the palloc cache to ifile.  The palloc cache is allocated on\nthe extended region of nilfs_mdt_info struct.  The struct\nnilfs_ifile_info defines the extended on memory structure of ifile.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c3ea56c80081b826df4a0ac797432179cf5b7cd2",
      "tree": "49c80180a36bf52fe7ca5bb043412b2271829307",
      "parents": [
        "8908b2f70b795299d21706b5a97676cfe7f9056a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 15 20:13:21 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:50 2009 +0900"
      },
      "message": "nilfs2: flush palloc cache before manipulating data pages of GC dat\n\nData pages in gcdat metadata file (i.e. the secondary DAT for GC), are\ncleared or even moved back to the normal DAT when a shot of garbage\ncollection was done.\n\nBuffer heads held by the palloc cache of gcdat must be cleared before\nthese page cache manipulation.  This adds nilfs_palloc_clear_cache()\nto ensure this.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "8908b2f70b795299d21706b5a97676cfe7f9056a",
      "tree": "527071b03f3dfb541a6306c59e601dce5c99fabd",
      "parents": [
        "db38d5ad323362bfca118b52fe5906f97a69fb45"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 14 16:35:01 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:50 2009 +0900"
      },
      "message": "nilfs2: add palloc cache to dat\n\nThis adds the palloc cache to DAT file.  The palloc cache is allocated\non the extended region of nilfs_mdt_info struct.  The struct\nnilfs_dat_info defines the extended on memory structure of DAT.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "db38d5ad323362bfca118b52fe5906f97a69fb45",
      "tree": "11940fedf0eb0ff80527094bd435ec89641f8adc",
      "parents": [
        "141bbdba9c2c1592d56b019277774099a5412aea"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 14 15:54:27 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:50 2009 +0900"
      },
      "message": "nilfs2: add cache framework for persistent object allocator\n\nThis adds setup and cleanup routines of the persistent object\nallocator cache.\n\nAccording to ftrace analyses, accessing buffers of the DAT file\nsuffers indispensable overhead many times.  To mitigate the overhead,\nThis introduce cache framework for the persistent object allocator\n(palloc) which the DAT file and ifile are using.\n\nstruct nilfs_palloc_cache represents the cache object per metadata\nfile using palloc.\n\nThe cache is initialized through nilfs_palloc_setup_cache() and\ndestroyed by nilfs_palloc_destroy_cache(); callers of the former\nfunction will be added to individual allocators of DAT and ifile on\nsuccessive patches.\n\nnilfs_palloc_destroy_cache() will be called from nilfs_mdt_destroy()\nif the cache is attached to a metadata file.  A companion function\nnilfs_palloc_clear_cache() is provided to allow releasing buffer head\nreferences independently with the cleanup task.  This adjunctive\nfunction will be used before invalidating pages of metadata file with\nthe cache.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "141bbdba9c2c1592d56b019277774099a5412aea",
      "tree": "253f97f5843e5d80a42c281f474a36396823d6f7",
      "parents": [
        "1376e931b75f954057b1547ba25fcba594cef804"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 14 13:48:06 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:50 2009 +0900"
      },
      "message": "nilfs2: unfold nilfs_palloc_block_get_bitmap function\n\nThis expands a trivial address calculation in the function into its\nevery callsite. This expansion improves readability of the callers.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1376e931b75f954057b1547ba25fcba594cef804",
      "tree": "b8e75d8dddb705c661542b534b4a74f9e1e87aa4",
      "parents": [
        "75f65edfcc4a19d14fc8ab860846fad070c8db49"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 16:49:09 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:50 2009 +0900"
      },
      "message": "nilfs2: eliminate nilfs_btnode_get function\n\nThis removes the obsolete nilfs_btnode_get() function and makes\nnilfs_btree_get_block() directly call nilfs_btnode_submit_block().\n\nThis expansion will provide better opportunity for code optimization.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "75f65edfcc4a19d14fc8ab860846fad070c8db49",
      "tree": "e0edfb5767630f95620e5e7b670e0871e1d51e7b",
      "parents": [
        "45f4910bc0bb904bcf53aa04ee1b807abe1387a6"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 16:30:41 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:50 2009 +0900"
      },
      "message": "nilfs2: remove newblk argument from nilfs_btnode_submit_block\n\nThis removes the obsolete argument from nilfs_btnode_submit_block().\nThis will complete separating a create function of btree node.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "45f4910bc0bb904bcf53aa04ee1b807abe1387a6",
      "tree": "d40f556ef778f9d4c2b37b4978fae29835de150d",
      "parents": [
        "d501d7368937740e8d06671a4bfe4e236ed25bd0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 16:25:19 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:49 2009 +0900"
      },
      "message": "nilfs2: use nilfs_btnode_create_block function\n\nThis displaces nilfs_btnode_get() use to create new btree node block\nwith nilfs_btnode_create_block.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d501d7368937740e8d06671a4bfe4e236ed25bd0",
      "tree": "c0abbdc89862cfdb5e85321cbc6f2959af376cd9",
      "parents": [
        "b34a65069caa56b691ebab5ae0b8e54d16406d16"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 16:04:11 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:49 2009 +0900"
      },
      "message": "nilfs2: separate function for creating new btree node block\n\nAdds a separate routine for creating a btree node block.  This is a\npreparation to reduce the depth of function calls during submitting\nbtree node buffer.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b34a65069caa56b691ebab5ae0b8e54d16406d16",
      "tree": "f2eacf08be4471cd1ca781c9d4c56bbb81448531",
      "parents": [
        "ef7d4757a5b7b07a3a0d30d3ba6b587e574b28b9"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 14 00:09:47 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:49 2009 +0900"
      },
      "message": "nilfs2: avoid readahead on metadata file for create mode\n\nThis turns off readhead action of metadata file if nilfs_mdt_get_block\nfunction was called with a create flag.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ef7d4757a5b7b07a3a0d30d3ba6b587e574b28b9",
      "tree": "5f1f1cad0c9bb755cd332017f66fe502d1286a94",
      "parents": [
        "aa474a220180d997caafcee372770d6ed6bf798a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 08:45:32 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:49 2009 +0900"
      },
      "message": "nilfs2: simplify nilfs_sufile_get_ncleansegs function\n\nPreviously, this function took an status code to return possible error\ncodes.  The (\"nilfs2: add local variable to cache the number of clean\nsegments\") patch removed the possibility to return errors.\n\nSo, this simplifies the function definition to make it directly return\nthe number of clean segments.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "aa474a220180d997caafcee372770d6ed6bf798a",
      "tree": "f94f79d076a3abaffa80dc466d9f6d4a228f5e69",
      "parents": [
        "7b16c8a211c87d465c48ea324928f8057590b853"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 03:41:55 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:49 2009 +0900"
      },
      "message": "nilfs2: add local variable to cache the number of clean segments\n\nThis makes it possible for sufile to get the number of clean segments\nfaster.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7b16c8a211c87d465c48ea324928f8057590b853",
      "tree": "3afd724d8d6240516d58793d8c3f373ca16e4f40",
      "parents": [
        "fd66c0d5c377ee8146909d0eb9258539e4b0f293"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 03:10:21 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:48 2009 +0900"
      },
      "message": "nilfs2: unfold nilfs_sufile_block_get_header function\n\nThis unfolds the nilfs_sufile_block_get_header() function for\nsimplicity.\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": "3961f0e2775f84a8f81b0dcddb0b356ebfe0696b",
      "tree": "908bf31a9a3ae79c8f122bdcaa6102e0996a6ac1",
      "parents": [
        "8707df38478c8e0958b706f0ea1cdf99d00a9469"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 01:55:02 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:48 2009 +0900"
      },
      "message": "nilfs2: eliminate inlines to directly read/write inode of metadata files\n\nRemoves two inline functions: nilfs_mdt_read_inode_direct() and\nnilfs_mdt_write_inode_direct().\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "8707df38478c8e0958b706f0ea1cdf99d00a9469",
      "tree": "5bc882fda214b4020f65f1df217e7fae40c10145",
      "parents": [
        "79739565e15f2adbc482207a0800fc127c84d1a0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 01:36:56 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 read method of meta data files on super root block\n\nWill displace nilfs_mdt_read_inode_direct function with an individual\nread method: nilfs_dat_read, nilfs_sufile_read, nilfs_cpfile_read.\n\nThis provides the opportunity to initialize local variables of each\nmetadata file after reading the inode.\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": "9cb4e0d2b99e8b0e5e269d898ae6ab1967647c5a",
      "tree": "09ac1daa4985b4717afc818f89cfe2439664b44a",
      "parents": [
        "09bf4aae0a3c471b721c43e7bdb6132200d907b2"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 06 01:00:48 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:47 2009 +0900"
      },
      "message": "nilfs2: move out mark_inode_dirty calls from bmap routines\n\nPreviously, nilfs_bmap_add_blocks() and nilfs_bmap_sub_blocks() called\nmark_inode_dirty() after they changed the number of data blocks.\n\nThis moves these calls outside bmap outermost functions like\nnilfs_bmap_insert() or nilfs_bmap_truncate().\n\nThis will mitigate overhead for truncate or delete operation since\nthey repeatedly remove set of blocks.  Nearly 10 percent improvement\nwas observed for removal of a large file:\n\n # dd if\u003d/dev/zero of\u003d/test/aaa bs\u003d1M count\u003d512\n # time rm /test/aaa\n\n  real  2.968s -\u003e 2.705s\n\nFurther optimization may be possible by eliminating these\nmark_inode_dirty() uses though I avoid mixing separate changes here.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "09bf4aae0a3c471b721c43e7bdb6132200d907b2",
      "tree": "b2f8a8507abfd1a443a9a0965650899ce68f923f",
      "parents": [
        "30db4e6c3d51a89e4923e525303f714e6508bbd0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 05 15:53: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: stop marking metadata inode dirty within btree operations\n\nSince metadata file routines mark the inode dirty after they\nsuccessfully changed bmap objects, nilfs_mdt_mark_dirty() calls in\nnilfs_bmap_add_blocks() and nilfs_bmap_sub_blocks() are redundant.\n\nThis removes these overlapping calls from the bmap routines.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "30db4e6c3d51a89e4923e525303f714e6508bbd0",
      "tree": "c1c83cff8e73b2534a391f2c89926b3badfdaa83",
      "parents": [
        "a49762fd119d191dcbb2f638a2dbc2ed53f4e2bb"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 11 22:37:59 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:47 2009 +0900"
      },
      "message": "nilfs2: remove buffer locking from btree code\n\nlock_buffer() and unlock_buffer() uses in btree.c are eliminable\nbecause btree functions gain buffer heads through nilfs_btnode_get(),\nwhich never returns an on-the-fly buffer.\n\nAlthough nilfs_clear_dirty_page() and nilfs_copy_back_pages() in\nnilfs_commit_gcdat_inode() juggle btree node buffers of DAT, this is\nsafe because these operations are protected by a log writer lock or\nthe metadata file semaphore of DAT.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a49762fd119d191dcbb2f638a2dbc2ed53f4e2bb",
      "tree": "5cd999854d4b156c7bcd901694998e60b479f6e8",
      "parents": [
        "e2073e78575e3690ea3cce67b11b7b1de8e85fd3"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 11 01:28:48 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:47 2009 +0900"
      },
      "message": "nilfs2: remove buffer locking in nilfs_mark_inode_dirty\n\nThis lock is eliminable because inodes on the buffer can be updated\nindependently.  Although a log writer also fills in bmap data on the\non-disk inodes, this update is exclusively done by a log writer lock.\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": "6600b9dd8e0d4a60c610f216b78d992a598bc52a",
      "tree": "9c1b718ab0c5d8dea2f200eaa1b8296e655e4657",
      "parents": [
        "9b945d537db86557e5b5820b4b52df94c35b3829"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Mon Nov 09 19:10:11 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:46 2009 +0900"
      },
      "message": "nilfs2: move definition of struct nilfs_btree_node\n\nThis is a trivial patch to expose struct nilfs_fs_btree_node.\nThe struct should be exposed outside of kernel, for it is disk format.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9b945d537db86557e5b5820b4b52df94c35b3829",
      "tree": "84f041ec97f26d79709e93623f75371f6449d7ef",
      "parents": [
        "648f4e3e50c4793d9dbf9a09afa193631f76fa26"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 10 22:58:10 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 20 10:05:46 2009 +0900"
      },
      "message": "nilfs2: get rid of BUG_ON use in btree lookup routines\n\nThe current btree lookup routines make a kernel oops when detected\ninconsistency in btree blocks.  These routines should instead return a\nproper error code because the inconsistency usually comes from\ncorruption of on-disk metadata.\n\nThis fixes the issue by converting BUG_ON calls to proper error\nhandlings.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "18dafac1a4c6c88867a50f9a82492976f20383d6",
      "tree": "27800ccab2a98cccc903ed68348de1abc9b18a7d",
      "parents": [
        "1a7af63108f07637504300671a72432c34e10021"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Sun Nov 15 13:49:45 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 15 17:17:46 2009 +0900"
      },
      "message": "nilfs2: deleted inconsistent comment in nilfs_load_inode_block()\n\nThe comment says, \"Caller of this function MUST lock s_inode_lock\",\nhowever just above the comment, it locks s_inode_lock in the function.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c1ea985c710f41e97f1c72c29bbf367375370f0b",
      "tree": "7345a5041a7ea432dcdebe664b7e57066d968e9f",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Nov 12 00:13:32 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 13 10:33:24 2009 +0900"
      },
      "message": "nilfs2: fix lock order reversal in chcp operation\n\nWill fix the following lock order reversal lockdep detected:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible circular locking dependency detected ]\n2.6.32-rc6 #7\n-------------------------------------------------------\nchcp/30157 is trying to acquire lock:\n (\u0026nilfs-\u003ens_mount_mutex){+.+.+.}, at: [\u003cfed7cfcc\u003e] nilfs_cpfile_change_cpmode+0x46/0x752 [nilfs2]\n\nbut task is already holding lock:\n (\u0026nilfs-\u003ens_segctor_sem){++++.+}, at: [\u003cfed7ca32\u003e] nilfs_transaction_begin+0xba/0x110 [nilfs2]\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #2 (\u0026nilfs-\u003ens_segctor_sem){++++.+}:\n       [\u003cc105799c\u003e] __lock_acquire+0x109c/0x139d\n       [\u003cc1057d26\u003e] lock_acquire+0x89/0xa0\n       [\u003cc14151e2\u003e] down_read+0x31/0x45\n       [\u003cfed6d77b\u003e] nilfs_attach_checkpoint+0x8f/0x16b [nilfs2]\n       [\u003cfed6e393\u003e] nilfs_get_sb+0x3e7/0x653 [nilfs2]\n       [\u003cc10c0ccb\u003e] vfs_kern_mount+0x8b/0x124\n       [\u003cc10c0db2\u003e] do_kern_mount+0x37/0xc3\n       [\u003cc10d7517\u003e] do_mount+0x64d/0x69d\n       [\u003cc10d75cd\u003e] sys_mount+0x66/0x95\n       [\u003cc1002a14\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #1 (\u0026type-\u003es_umount_key#31/1){+.+.+.}:\n       [\u003cc105799c\u003e] __lock_acquire+0x109c/0x139d\n       [\u003cc1057d26\u003e] lock_acquire+0x89/0xa0\n       [\u003cc104c0f3\u003e] down_write_nested+0x34/0x52\n       [\u003cc10c08fe\u003e] sget+0x22e/0x389\n       [\u003cfed6e133\u003e] nilfs_get_sb+0x187/0x653 [nilfs2]\n       [\u003cc10c0ccb\u003e] vfs_kern_mount+0x8b/0x124\n       [\u003cc10c0db2\u003e] do_kern_mount+0x37/0xc3\n       [\u003cc10d7517\u003e] do_mount+0x64d/0x69d\n       [\u003cc10d75cd\u003e] sys_mount+0x66/0x95\n       [\u003cc1002a14\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #0 (\u0026nilfs-\u003ens_mount_mutex){+.+.+.}:\n       [\u003cc1057727\u003e] __lock_acquire+0xe27/0x139d\n       [\u003cc1057d26\u003e] lock_acquire+0x89/0xa0\n       [\u003cc1414d63\u003e] mutex_lock_nested+0x41/0x23e\n       [\u003cfed7cfcc\u003e] nilfs_cpfile_change_cpmode+0x46/0x752 [nilfs2]\n       [\u003cfed801b2\u003e] nilfs_ioctl+0x11a/0x7da [nilfs2]\n       [\u003cc10cca12\u003e] vfs_ioctl+0x27/0x6e\n       [\u003cc10ccf93\u003e] do_vfs_ioctl+0x491/0x4db\n       [\u003cc10cd022\u003e] sys_ioctl+0x45/0x5f\n       [\u003cc1002a14\u003e] sysenter_do_call+0x12/0x32\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c083234f1592ef3fad3d8083663c5e4a357ec77c",
      "tree": "8c90897b1fa11920a4edbf043aa59a5123eaa2cb",
      "parents": [
        "5399dd1fc8f5e812db931225ef5f67d89f3b1a56"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 08 12:09:24 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 08 19:04:25 2009 +0900"
      },
      "message": "nilfs2: fix missing cleanup of gc cache on error cases\n\nThis fixes an -rc1 regression brought by the commit:\n1cf58fa840472ec7df6bf2312885949ebb308853 (\"nilfs2: shorten freeze\nperiod due to GC in write operation v3\").\n\nAlthough the patch moved out a function call of\nnilfs_ioctl_move_blocks() to nilfs_ioctl_clean_segments() from\nnilfs_ioctl_prepare_clean_segments(), it didn\u0027t move corresponding\ncleanup job needed for the error case.\n\nThis will move the missing cleanup job to the destination function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\n"
    },
    {
      "commit": "5399dd1fc8f5e812db931225ef5f67d89f3b1a56",
      "tree": "cb75ad2f91fb2ec6ad70f3c1a055090418fc643f",
      "parents": [
        "b419148e567728f6af0c3b01965c1cc141e3e13a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Nov 07 18:45:16 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 08 19:01:35 2009 +0900"
      },
      "message": "nilfs2: fix kernel oops in error case of nilfs_ioctl_move_blocks\n\nThis fixes a kernel oops reported by Markus Trippelsdorf in the email\ntitled \"[NILFS users] kernel Oops while running nilfs_cleanerd\".\n\nThe oops was caused by a bug of error path in\nnilfs_ioctl_move_blocks() function, which was inlined in\nnilfs_ioctl_clean_segments().\n\nnilfs_ioctl_move_blocks checks duplication of blocks which will be\nmoved in garbage collection.  But, the check should have be done\nwithin nilfs_ioctl_move_inode_block() to prevent list corruption among\nbuffers storing the target blocks.\n\nTo fix the kernel oops, this moves forward the duplication check\nbefore the list insertion.\n\nI also tested this for stable trees [2.6.30, 2.6.31].\n\nReported-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "05b4358ad564d7a6a51b3717afe771d36711e9c4",
      "tree": "ad8473aadd4a8f8e25aa40bf1bef8f16f7490d83",
      "parents": [
        "aeda7f6343e6375a832e52ff5ed389c115023ca5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 01:20:35 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 12:32:03 2009 +0900"
      },
      "message": "nilfs2: add zero-fill for new btree node buffers\n\nAdds missing initialization of newly allocated b-tree node buffers.\nThis avoids garbage data to be mixed in b-tree node blocks.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "aeda7f6343e6375a832e52ff5ed389c115023ca5",
      "tree": "2543be730f7fff44e23fbe302108afa0093cc643",
      "parents": [
        "b1e19e5601277845b4f17ecd7c9ba04f73ee11aa"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Nov 02 15:08:13 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 12:32:03 2009 +0900"
      },
      "message": "nilfs2: fix irregular checkpoint creation due to data flush\n\nWhen nilfs flushes out dirty data to reduce memory pressure, creation\nof checkpoints is wrongly postponed.  This bug causes irregular\ncheckpoint creation especially in small footprint systems.\n\nTo correct this issue, a timer for the checkpoint creation has to be\ncontinued if a log writer does not create a checkpoint.\n\nThis will do the correction.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b1e19e5601277845b4f17ecd7c9ba04f73ee11aa",
      "tree": "bdc23c9fcc4bfe58787b63e9c739c0692b79dc4d",
      "parents": [
        "1836d95928a0f41ada0cbb2a6c4e46b027db9491"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 00:25:53 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 03 12:31:36 2009 +0900"
      },
      "message": "nilfs2: fix dirty page accounting leak causing hang at write\n\nBruno Prémont and Dunphy, Bill noticed me that NILFS will certainly\nhang on ARM-based targets.\n\nI found this was caused by an underflow of dirty pages counter.  A\nb-tree cache routine was marking page dirty without adjusting page\naccount information.\n\nThis fixes the dirty page accounting leak and resolves the hang on\narm-based targets.\n\nReported-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nReported-by: Dunphy, Bill \u003cWDunphy@tandbergdata.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nCc: stable \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cc811bffdf35ebaf1467fbec71a49b57800fc74",
      "tree": "b00abe8ad3687faeacf9b543492f0b91c7abc600",
      "parents": [
        "1f28fcd925b2b3157411bbd08f0024b55b70d8dd"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 28 13:02:46 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Sep 29 20:32:13 2009 +0900"
      },
      "message": "nilfs2: fix missing initialization of i_dir_start_lookup member\n\nThe i_dir_start_lookup field in nilfs_inode_info objects should be\ncleared when the objects are allocated, but the the initialization was\nmissing in case of reading from disk.  This adds the initialization.\n\nSince the variable just gives a start page on directory lookups, the\nbug was nonfatal until now.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1f28fcd925b2b3157411bbd08f0024b55b70d8dd",
      "tree": "339976516f9d8c25f4efb3ba8bbffcc395d58c83",
      "parents": [
        "17d857be649a21ca90008c6dc425d849fa83db5c"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 28 01:46:11 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Sep 29 20:12:56 2009 +0900"
      },
      "message": "nilfs2: fix missing zero-fill initialization of btree node cache\n\nThis will fix file system corruption which infrequently happens after\nmount.  The problem was reported from users with the title \"[NILFS\nusers] Fail to mount NILFS.\" (Message-ID:\n\u003c200908211918.34720.yuri@itinteg.net\u003e), and so forth.  I\u0027ve also\nexperienced the corruption multiple times on kernel 2.6.30 and 2.6.31.\n\nThe problem turned out to be caused due to discordance between\nmapping-\u003enrpages of a btree node cache and the actual number of pages\nhung on the cache; if the mapping-\u003enrpages becomes zero even as it has\npages, truncate_inode_pages() returns without doing anything.  Usually\nthis is harmless except it may cause page leak, but garbage collection\nfairly infrequently sees a stale page remained in the btree node cache\nof DAT (i.e. disk address translation file of nilfs), and induces the\ncorruption.\n\nI identified a missing initialization in btree node caches was the\nroot cause.  This corrects the bug.\n\nI\u0027ve tested this for kernel 2.6.30 and 2.6.31.\n\nReported-by: Yuri Chislov \u003cyuri@itinteg.net\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e1d5dcc2bbbe71dbf010c747e15739bef6b7218",
      "tree": "2edb0f6cc65acbae95e42df1bc763ec048e6c2e0",
      "parents": [
        "7f09410bbc4306f592cfb43812389ea1c7905a20"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining inode_operations as const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f09410bbc4306f592cfb43812389ea1c7905a20",
      "tree": "18f179435f70c4ec9231883501062d5ea0357af5",
      "parents": [
        "ac4cfdd6d141c319a7af8655f750ed504c187a74"
      ],
      "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 address_space_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": "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": "2c96ce9f2084c1e04d02883e622f74a537a63aea",
      "tree": "cad3c6773d2886103b05f7b090b3385d23076a03",
      "parents": [
        "0cb583fd2862f19ea88b02eb307d11c09e51e2f8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 15 09:43:56 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:16:18 2009 +0200"
      },
      "message": "fs: remove bdev-\u003ebd_inode_backing_dev_info\n\nIt has been unused since it was introduced in:\n\ncommit 520808bf20e90fdbdb320264ba7dd5cf9d47dcac\nAuthor: Andrew Morton \u003cakpm@osdl.org\u003e\nDate:   Fri May 21 00:46:17 2004 -0700\n\n    [PATCH] block device layer: separate backing_dev_info infrastructure\n\nSo lets just kill it.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "41f4db0f48c72db3a93cc1a0b18368d9a9aca700",
      "tree": "1cf648ef55b9cfa28012268ab6b0b5c3477534f1",
      "parents": [
        "0f3fe33b398abbecfcf9f08c16959d1a9a14a49a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 08 16:09:46 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:16 2009 +0900"
      },
      "message": "fs/Kconfig: move nilfs2 outside misc filesystems\n\nSome people asked me questions like the following:\n\nOn Wed, 15 Jul 2009 13:11:21 +0200, Leon Woestenberg wrote:\n\u003e just wondering, any reasons why NILFS2 is one of the miscellaneous\n\u003e filesystems and, for example, btrfs, is not in Kconfig?\n\nActually, nilfs is NOT a filesystem came from other operating systems,\nbut a filesystem created purely for Linux.  Nor is it a flash\nfilesystem but that for generic block devices.\n\nSo, this moves nilfs outside the misc category as I responded in LKML\n\"Re: Why does NILFS2 hide under Miscellaneous filesystems?\"\n(Message-Id: \u003c20090716.002526.93465395.ryusuke@osrg.net\u003e).\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "0f3fe33b398abbecfcf9f08c16959d1a9a14a49a",
      "tree": "a60a3e8a3b90b173a58a2ba9d86e1363598bd279",
      "parents": [
        "2e0c2c73923fed27337039ddfd69985e6c4b91fe"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 02:29:28 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:16 2009 +0900"
      },
      "message": "nilfs2: convert nilfs_bmap_lookup to an inline function\n\nThe nilfs_bmap_lookup() is now a wrapper function of\nnilfs_bmap_lookup_at_level().\n\nThis moves the nilfs_bmap_lookup() to a header file converting it to\nan inline function and gives an opportunity for optimization.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    }
  ],
  "next": "2e0c2c73923fed27337039ddfd69985e6c4b91fe"
}
