)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "2e0c2c73923fed27337039ddfd69985e6c4b91fe",
      "tree": "a6c4a318776f5804f53994acad7254c7404418f0",
      "parents": [
        "bd8169efae8bdd292675c386010f6b35f0771057"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 15:34:33 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:16 2009 +0900"
      },
      "message": "nilfs2: allow btree code to directly call dat operations\n\nThe current btree code is written so that btree functions call dat\noperations via wrapper functions in bmap.c when they allocate, free,\nor modify virtual block addresses.\n\nThis abstraction requires additional function calls and causes\nfrequent call of nilfs_bmap_get_dat() function since it is used in the\nevery wrapper function.\n\nThis removes the wrapper functions and makes them available from\nbtree.c and direct.c, which will increase the opportunity of\ncompiler optimization.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "bd8169efae8bdd292675c386010f6b35f0771057",
      "tree": "aea73bd670910874eb78fd1f2c8ce8b2a494dfcb",
      "parents": [
        "7a102b09232be1ad7c180dfd1f46c7aa95dff1e0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 17:22:13 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: add update functions of virtual block address to dat\n\nThis is a preparation for the successive cleanup (\"nilfs2: allow btree\nto directly call dat operations\").\n\nThis adds functions bundling a few operations to change an entry of\nvirtual block address on the dat file.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ff54de363afa4583e2a6249f25fe21dfaeb11ea2",
      "tree": "67a1553ca7f75d57678abc969a4361139b2335b2",
      "parents": [
        "4a52df779700080de4afb0436d9dd9188514a69b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jun 19 02:53:56 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jul 05 10:44:20 2009 +0900"
      },
      "message": "nilfs2: fix lockdep warning between regular file and inode file\n\nThis will fix the following false positive of recursive locking which\nlockdep has 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\n[ INFO: possible recursive locking detected ]\n2.6.30-nilfs #42\n---------------------------------------------\nnilfs_cleanerd/10607 is trying to acquire lock:\n (\u0026bmap-\u003eb_sem){++++-.}, at: [\u003ce0d025b7\u003e] nilfs_bmap_lookup_at_level+0x1a/0x74 [nilfs2]\n\nbut task is already holding lock:\n (\u0026bmap-\u003eb_sem){++++-.}, at: [\u003ce0d024e0\u003e] nilfs_bmap_truncate+0x19/0x6a [nilfs2]\nother info that might help us debug this:\n2 locks held by nilfs_cleanerd/10607:\n #0:  (\u0026nilfs-\u003ens_segctor_sem){++++.+}, at: [\u003ce0d0d75a\u003e] nilfs_transaction_begin+0xb6/0x10c [nilfs2]\n #1:  (\u0026bmap-\u003eb_sem){++++-.}, at: [\u003ce0d024e0\u003e] nilfs_bmap_truncate+0x19/0x6a [nilfs2]\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c3a7abf06ce719a51139e62a034590be99abbc2c",
      "tree": "14d61bbd8c34d1b1c7997c9afad79158b7af2914",
      "parents": [
        "fa032744ad41de1b0a1807e7c379c6196e72ad80"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 25 02:47:14 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:12 2009 +0900"
      },
      "message": "nilfs2: support contiguous lookup of blocks\n\nAlthough get_block() callback function can return extent of contiguous\nblocks with bh-\u003eb_size, nilfs_get_block() function did not support\nthis feature.\n\nThis adds contiguous lookup feature to the block mapping codes of\nnilfs, and allows the nilfs_get_blocks() function to return the extent\ninformation by applying the feature.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d4b961576df2769b936bd967b01e8c607c3c9ad8",
      "tree": "3d5d31cb7b4ba31a5b8232d0cd0edac2cf368fae",
      "parents": [
        "3033342a0b76048e32ce1faebfa85cf8f1aa93b5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 24 03:25:44 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:10 2009 +0900"
      },
      "message": "nilfs2: remove bmap pointer operations\n\nPreviously, the bmap codes of nilfs used three types of function\ntables.  The abuse of indirect function calls decreased source\nreadability and suffered many indirect jumps which would confuse\nbranch prediction of processors.\n\nThis eliminates one type of the function tables,\nnilfs_bmap_ptr_operations, which was used to dispatch low level\npointer operations of the nilfs bmap.\n\nThis adds a new integer variable \"b_ptr_type\" to nilfs_bmap struct,\nand uses the value to select the pointer operations.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "3033342a0b76048e32ce1faebfa85cf8f1aa93b5",
      "tree": "9bffaa21381c58e476f26d12352d471748550993",
      "parents": [
        "e473c1f265f429427e09531435ceaf0fdbb86d15"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 24 00:09:44 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:10 2009 +0900"
      },
      "message": "nilfs2: remove useless b_low and b_high fields from nilfs_bmap struct\n\nThis will cut off 16 bytes from the nilfs_bmap struct which is\nembedded in the on-memory inode of nilfs.\n\nThe b_high field was never used, and the b_low field stores a constant\nvalue which can be determined by whether the inode uses btree for\nblock mapping or not.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "f198dbb9cf580c09644ebdf46846115c6daff14e",
      "tree": "0792f2044153e35bea1c2b93d69ba8045cd86551",
      "parents": [
        "9f098900ad34edfe3bcc2498cfa372f588b96c62"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri May 22 01:07:13 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:10 2009 +0900"
      },
      "message": "nilfs2: move get block functions in bmap.c into btree codes\n\nTwo get block function for btree nodes, nilfs_bmap_get_block() and\nnilfs_bmap_get_new_block(), are called only from the btree codes.\nThis relocation will increase opportunities of compiler optimization.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9f098900ad34edfe3bcc2498cfa372f588b96c62",
      "tree": "87622fa169eb988319637f0ce1cca02242006fee",
      "parents": [
        "087d01b4253b611773ca81ad894486e7e17e74f6"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri May 22 00:38:56 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:10 2009 +0900"
      },
      "message": "nilfs2: remove nilfs_bmap_delete_block\n\nnilfs_bmap_delete_block() is a wrapper function calling\nnilfs_btnode_delete().  This removes it for simplicity.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "087d01b4253b611773ca81ad894486e7e17e74f6",
      "tree": "b7705eef195bbd3d2bb2bb2e1bf35f05ca05af42",
      "parents": [
        "654137dd46bc7e9f088a4a551a2b77a8541dfdb8"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri May 22 00:33:13 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:10 2009 +0900"
      },
      "message": "nilfs2: remove nilfs_bmap_put_block\n\nnilfs_bmap_put_block() is a wrapper function calling brelse().  This\neliminates the wrapper for simplicity.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d97a51a7e3c298d9899ea91165dfa0783fa5cc5c",
      "tree": "31c3b082565cd3004c2036fe79657297a29a5824",
      "parents": [
        "65822070646ed7f2cf520439006dd863529be16e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 03 21:43:01 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:09 2009 +0900"
      },
      "message": "nilfs2: unify bmap operations starting use of indirect block address\n\nThis simplifies some low level functions of bmap.\n\nThree bmap pointer operations, nilfs_bmap_start_v(),\nnilfs_bmap_commit_v(), and nilfs_bmap_abort_v(), are unified into one\nnilfs_bmap_start_v() function. And the related indirect function calls\nare replaced with it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "bcb48891b05b4179edc86298d3dccb2ce90d5413",
      "tree": "c7cd9e37ca46e4f7241be2faa5f5c6e7625d7520",
      "parents": [
        "c306af23e19d3c94c9229263c39fe487e915e774"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Mar 27 02:51:39 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 13 09:53:49 2009 +0900"
      },
      "message": "nilfs2: fix lockdep recursive locking warning on bmap\n\nThe bmap semaphore of DAT file can be held while a bmap of other files\nis locked.  This has caused the following false detection of lockdep\ncheck:\n\nmount.nilfs2/4667 is trying to acquire lock:\n (\u0026bmap-\u003eb_sem){..--}, at: [\u003cd0c6c4b4\u003e] nilfs_bmap_lookup_at_level+0x1a/0x74 [nilfs2]\n\nbut task is already holding lock:\n (\u0026bmap-\u003eb_sem){..--}, at: [\u003cd0c6c4b4\u003e] nilfs_bmap_lookup_at_level+0x1a/0x74 [nilfs2]\n\nThis will fix the false detection by distinguishing semaphores of the\nDAT and other files.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "8acfbf0939e98cc77dab94c24899c9930ddd1e13",
      "tree": "0f261ee58584db9a89a874f85646ab827105143f",
      "parents": [
        "7fa10d20012296300dfe645cb3e628a4e9a0d5ef"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Apr 06 19:01:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: clean up indirect function calling conventions\n\nThis cleans up the strange indirect function calling convention used in\nnilfs to follow the normal kernel coding style.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdb265eae08db578e7cf5739be16f389d495fc75",
      "tree": "34f3b37b067504b945e851ef2a8ead07347a27df",
      "parents": [
        "65b4643d3babeb203fa9571d12fd5e1bf74d27b0"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: integrated block mapping\n\nThis adds structures and operations for the block mapping (bmap for\nshort).  NILFS2 uses direct mappings for short files or B-tree based\nmappings for longer files.\n\nEvery on-disk data block is held with inodes and managed through this\nblock mapping.  The nilfs_bmap structure and a set of functions here\nprovide this capability to the NILFS2 inode.\n\n[penberg@cs.helsinki.fi: remove a bunch of bmap wrapper macros]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
