)]}'
{
  "log": [
    {
      "commit": "d40990537c9ea85dfe75dbe0ffba5e1002dfdf3f",
      "tree": "3db27e3e911428502942c95b9f8f52e2a041bd54",
      "parents": [
        "fe744fdb74f2417d8571faefa45f72b0ead25f89"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed May 25 23:00:27 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jun 11 15:51:15 2011 +0900"
      },
      "message": "nilfs2: fix missing block address termination in btree node shrinking\n\nnilfs_btree_delete function does not terminate part of virtual block\naddresses when shrinking the last remaining child node into the root\nnode.  The missing address termination causes that dead btree node\nblocks persist and chip away free disk space.\n\nThis fixes the leak bug on the btree node deletion.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "fe744fdb74f2417d8571faefa45f72b0ead25f89",
      "tree": "516655aad7800018483724cce93c24c2418fc1f4",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed May 25 23:00:27 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jun 11 15:51:15 2011 +0900"
      },
      "message": "nilfs2: fix incorrect block address termination in node concatenation\n\nnilfs_btree_delete function wrongly terminates virtual block address\nof the btree node held by its parent at index 0.  When concatenating\nthe index-0 node with its right sibling node, nilfs_btree_delete\nterminates the block address of index-0 node instead of the right\nsibling node which should be deleted.\n\nThis bug not only wears disk space in the long run, but also causes\nfile system corruption.  This will fix it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "5fc7b14177b1a1c2f2511aed62a4ca870d0332e7",
      "tree": "f64f2b0f424e7506dd6bb07c133348a9796b2212",
      "parents": [
        "aa405b1f4238401616e7d98620170b424b2dbefc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 12:56:51 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:57 2011 +0900"
      },
      "message": "nilfs2: use mark_buffer_dirty to mark btnode or meta data dirty\n\nThis replaces nilfs_mdt_mark_buffer_dirty and nilfs_btnode_mark_dirty\nmacros with mark_buffer_dirty and gets rid of nilfs_mark_buffer_dirty,\nan own mark buffer dirty function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "be667377a8b8cd73e1b923f33fb5be4034aa4bfa",
      "tree": "8baee2f9155728331eeade85ec93547402f4e606",
      "parents": [
        "ae191838b0251d73b9d0a7254c6938406f5f6320"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Mar 05 00:19:32 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:31 2011 +0900"
      },
      "message": "nilfs2: record used amount of each checkpoint in checkpoint list\n\nThis records the number of used blocks per checkpoint in each\ncheckpoint entry of cpfile.  Even though userland tools can get the\nblock count via nilfs_get_cpinfo ioctl, it was not updated by the\nnilfs2 kernel code.  This fixes the issue and makes it available for\nuserland tools to calculate used amount per checkpoint.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Jiro SEKIBA \u003cjir@unicus.jp\u003e\n"
    },
    {
      "commit": "03bdb5ac58a2144dfe8cfd73347fdb9f57e2e062",
      "tree": "1ac37bb7c8020a2cf40ff5d8996d51725b190e8d",
      "parents": [
        "4e13e66bee2d792c1aae21797f16c181024834eb"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jul 18 10:42:26 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:16 2010 +0900"
      },
      "message": "nilfs2: apply read-ahead for nilfs_btree_lookup_contig\n\nThis applies read-ahead to nilfs_btree_do_lookup and\nnilfs_btree_lookup_contig functions and extends them to read ahead\nsiblings of level 1 btree nodes that hold data blocks.\n\nAt present, the read-ahead is not applied to most btree operations;\nonly get_block() callback function, which is used during read of\nregular files or directories, receives the benefit.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4e13e66bee2d792c1aae21797f16c181024834eb",
      "tree": "1fa51dade28bc025d9bda0e09dec1f202281a498",
      "parents": [
        "464ece88630d0fb715ca942eabb1da825046a534"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jul 18 10:42:25 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:15 2010 +0900"
      },
      "message": "nilfs2: introduce check flag to btree node buffer\n\nnilfs_btree_get_block() now may return untested buffer due to\nread-ahead.  This adds a new flag for buffer heads so that the btree\ncode can check whether the buffer is already verified or not.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "464ece88630d0fb715ca942eabb1da825046a534",
      "tree": "254185629ce58cf314c5b22b846969a3c26984ed",
      "parents": [
        "26dfdd8e29f28c08aa67861b3c83d0f3f7d30cee"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jul 18 10:42:24 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:15 2010 +0900"
      },
      "message": "nilfs2: add btree get block function with readahead option\n\nThis adds __nilfs_btree_get_block() function that can issue a series\nof read-ahead requests for sibling btree nodes.\n\nThis read-ahead needs parent node block, so nilfs_btree_readahead_info\nstructure is added to pass the information that\n__nilfs_btree_get_block() needs.\n\nThis also replaces the previous nilfs_btree_get_block() implementation\nwith a wrapper function of __nilfs_btree_get_block().\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "26dfdd8e29f28c08aa67861b3c83d0f3f7d30cee",
      "tree": "3cc14a71010b454f6524006e973147837f040a39",
      "parents": [
        "f8e6cc013b896d75d6ce4ec9e168014af1257fd8"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Jul 18 10:42:23 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:15 2010 +0900"
      },
      "message": "nilfs2: add read ahead mode to nilfs_btnode_submit_block\n\nThis adds mode argument to nilfs_btnode_submit_block() function and\nallows it to issue a read-ahead request.\n\nAn optional submit_ptr argument is also added to store the actual\nblock address for which bio is sent.  submit_ptr is used for a series\nof read-ahead requests, and helps to decide if each requested block is\ncontinous to the previous one on disk.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7c397a81fe90c0445df2873700d14e82cca5fbc8",
      "tree": "99e4ecd31923cbdcaaeabb7cf54f548a2716415f",
      "parents": [
        "5ad2686e9266f24a0bb76b01d5c3ae29b4e149fe"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jul 13 23:33:55 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:15 2010 +0900"
      },
      "message": "nilfs2: eliminate inline keywords in btree implementation\n\nThis removes all inline uses from btree.c.  Gcc now agressively apply\ninline expansion even for the functions declared without the keyword;\nthe inline use in btree.c looks excessive.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "5ad2686e9266f24a0bb76b01d5c3ae29b4e149fe",
      "tree": "df7d1d37ec380e58b0b171db07c5d8a7f9bb4ff0",
      "parents": [
        "9b7b265c9ab67fcd1245d6b64fa5ca2eda43ac88"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jul 13 23:33:54 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:14 2010 +0900"
      },
      "message": "nilfs2: get maximum number of child nodes from bmap object\n\nThe patch \"reduce repetitive calculation of max number of child nodes\"\ngathered up the calculation of maximum number of child nodes into\nnilfs_btree_nchildren_per_block() function.  This makes the function\nget resultant value from a private variable in bmap object instead of\ncalculating it for each call.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9b7b265c9ab67fcd1245d6b64fa5ca2eda43ac88",
      "tree": "3aeed58de180351e46ecb4e58f2e55c097eeed0d",
      "parents": [
        "ea64ab87cdba9e1172392d247e6526359e301f12"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jul 13 23:33:53 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:14 2010 +0900"
      },
      "message": "nilfs2: reduce repetitive calculation of max number of child nodes\n\nThe current btree implementation repeats the same calculation on the\nmaximum number of child nodes.  This is because a few low level\nroutines use the calculation for index addressing in a btree node\nblock.\n\nThis reduces the calculation by explicitly passing the maximum number\nof child nodes (ncmax) through their argument.\n\nThis changes parameter passing of the following functions:\n\n - nilfs_btree_node_dptrs\n - nilfs_btree_node_get_ptr\n - nilfs_btree_node_set_ptr\n - nilfs_btree_node_init\n - nilfs_btree_node_move_left\n - nilfs_btree_node_move_right\n - nilfs_btree_node_insert\n - nilfs_btree_node_delete, and\n - nilfs_btree_get_node\n\nThe following functions are removed:\n\n - nilfs_btree_node_nchildren_min\n - nilfs_btree_node_nchildren_max\n\nMost middle level btree operations are rewritten to pass a proper\nncmax value depending on whether each occurrence of node is \"root\" or\nnot.\n\nA constant NILFS_BTREE_ROOT_NCHILDREN_MAX is used for the root node,\nwhereas nilfs_btree_nchildren_per_block() function is used for\nnon-root nodes.  If a node could be either root or a non-root node, an\noutput argument of nilfs_btree_get_node() is used to set up ncmax.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ea64ab87cdba9e1172392d247e6526359e301f12",
      "tree": "644b2af0f1c20e79375d226c167c0b4f4d3a0ade",
      "parents": [
        "364ec2d700223b965620ff4d5031a3665d195873"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jul 13 23:33:52 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:14 2010 +0900"
      },
      "message": "nilfs2: optimize calculation of min/max number of btree node children\n\nnilfs_btree_node_nchildren_max() and nilfs_btree_node_nchildren_min()\nfunctions switch return value depending on whether target node is the\nroot or a node block.  In most uses of these functions, however, the\nnode type is fixed, and moreover the same calculation is repeatedly\nperformed in loop.\n\nThis unfold these functions depending on context and move them outside\nloops wherever possible.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "364ec2d700223b965620ff4d5031a3665d195873",
      "tree": "2cf23dbf1ce4de2125c62f6804f4c672a4127096",
      "parents": [
        "05d0e94b66dbdf9d90371b39dc7a6b390ba74d41"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Jul 13 23:33:51 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:14 2010 +0900"
      },
      "message": "nilfs2: remove redundant pointer checks in bmap lookup functions\n\nnilfs_bmap_lookup and its variants are supposed to take a valid\npointer argument to return a block address, thus pointer checks in\nnilfs_btree_lookup and nilfs_direct_lookup are needless.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "dc935be2a094087bc561d80f8cf9e66bbc1f7b18",
      "tree": "ab7af5a2a40633f74a949916de7797c3d8f345b7",
      "parents": [
        "e7c274f8083793f8f861def63c02a0839b34d26d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jul 10 22:21:54 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:14 2010 +0900"
      },
      "message": "nilfs2: unify bmap set_target_v operations\n\nThis unifies two similar functions nilfs_btree_set_target_v and\nnilfs_direct_set_target_v into one, nilfs_bmap_set_target_v.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e7c274f8083793f8f861def63c02a0839b34d26d",
      "tree": "a03bfd25a6b2736a0fec40c9282bb235691ccc0c",
      "parents": [
        "10ff885ba6f56bf7480ce3b5daf38c07600ecea3"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jul 10 19:09:49 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:13 2010 +0900"
      },
      "message": "nilfs2: get rid of nilfs_btree uses\n\nThis replaces all uses of nilfs_btree struct in implementation of\nbtree mapping with nilfs_bmap struct.\n\nName of local variable \"btree\" is kept not to bloat amount of change.\nAnd, a part of local variables \"bmap\" is renamed to \"btree\" to uniform\nnaming rule.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "583ada4761e18bb105ce5181b0b13cf55ead6201",
      "tree": "01f0ea519265b965e50d87edd826ec56cdc7ca42",
      "parents": [
        "25b8d7ded0e4579bf152882249abfd351e65a17d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jul 10 21:37:47 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:13 2010 +0900"
      },
      "message": "nilfs2: remove constant qualifier from argument of bmap propagate\n\nThe first argument of bops-\u003ebop_propagate operation takes a constant\nqualifier, and causes compilation error when removed cast to pointer\nof nilfs_btree structure type.  This fixes the issue to prepare for\nsuccesive removal of nilfs_btree struct.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "25b8d7ded0e4579bf152882249abfd351e65a17d",
      "tree": "4949d1b531805b5ea2c25a544eea200f0ec3d580",
      "parents": [
        "1d5385b9f30ae43209459db424416a3e1d8f2bde"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jul 10 16:50:41 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:13 2010 +0900"
      },
      "message": "nilfs2: get rid of private conversion macros on bmap key and pointer\n\nWill remove nilfs_bmap_key_to_dkey(), nilfs_bmap_dkey_to_key(),\nnilfs_bmap_ptr_to_dptr(), and nilfs_bmap_dptr_to_ptr() for simplicity.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1d5385b9f30ae43209459db424416a3e1d8f2bde",
      "tree": "202a19586853da9ec598645b5d289d4a0164b232",
      "parents": [
        "cfa913a5077f7619869b2b4d1bf23ccb4f8b3d7b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 16 23:52:40 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:13 2010 +0900"
      },
      "message": "nilfs2: verify btree node after reading\n\nThis inserts sanity checks soon after read btree node from disk.  This\nallows early detection of broken btree nodes, and helps to narrow down\nproblems due to file system corruption.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "cfa913a5077f7619869b2b4d1bf23ccb4f8b3d7b",
      "tree": "f4d8e4e8d8ee220b448566a08e75bccfb0ca966f",
      "parents": [
        "7c01745781177795e39f78b2c2c42c470a13833a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jul 07 17:19:54 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:12 2010 +0900"
      },
      "message": "nilfs2: add sanity check in nilfs_btree_add_dirty_buffer\n\nAccording to the report titled \"problem with nilfs_cleanerd\" from\nŁukasz Wójcicki, nilfs_btree_lookup_dirty_buffers or\nnilfs_btree_add_dirty_buffer got memory violation during garbage\ncollection.\n\nThis could happen if a level field of given btree node buffer is\nincorrect, which is a crucial internal bug.\n\nThis inserts a sanity check to figure out the problem.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "41c88bd74d372db5102996a4ea6167a725c24b5e",
      "tree": "98b8e208d41f7760458e82569e297843415bbe7d",
      "parents": [
        "aaed1d5bfac459ead9aaad324e7fe3326250f50a"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Tue Apr 06 00:54:11 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: cleanup multi kmem_cache_{create,destroy} code\n\nThis cleanup patch gives several improvements:\n\n - Moving all kmem_cache_{create_destroy} calls into one place, which removes\n some small function calls, cleans up error check code and clarify the logic.\n\n - Mark all initial code in __init section.\n\n - Remove some very obvious comments.\n\n - Adjust some declarations.\n\n - Fix some space-tab issues.\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "73bb48869b14fd5094b9ec173a2bf86bc0e464d4",
      "tree": "3c2ffd6ebdf3a821cb7a37fe873fe4e8e957bcd9",
      "parents": [
        "f905440f5edfa70a07e64bdbc973cbdd55dd001d"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Apr 02 18:35:00 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:29 2010 +0900"
      },
      "message": "nilfs2: Combine nilfs_btree_release_path() and nilfs_btree_free_path()\n\nnilfs_btree_release_path() and nilfs_btree_free_path() are bound into each other\ntightly. Make them into one procedure to clearify the logic and avoid some\nmisusages.\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": "f905440f5edfa70a07e64bdbc973cbdd55dd001d",
      "tree": "83f27e8f4ebd473c00e758bb0a52a4949b342a9a",
      "parents": [
        "0d9cc2332df24d3e81060c782b2ecb87c28443f9"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Apr 02 17:36:34 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:29 2010 +0900"
      },
      "message": "nilfs2: Combine nilfs_btree_alloc_path() and nilfs_btree_init_path()\n\nnilfs_btree_alloc_path() and nilfs_btree_init_path() are bound into each other\ntightly. Make them into one procedure to clearify the logic and avoid some\nmisusages.\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": "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": "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": "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": "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": "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": "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": "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": "3218929dbd25245e0f601df1e359a3ed3f7fb03b",
      "tree": "4f3f0f21b9f2e6eaa255315c659c1168ad3b5c96",
      "parents": [
        "6d28f7ea43856449ed2f344cb209af3ba1c6b757"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 01:54:59 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: stop zero-fill of btree path just before free it\n\nThe btree path object is cleared just before it is freed.\n\nThis will remove the code doing the unnecessary clear operation.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "6d28f7ea43856449ed2f344cb209af3ba1c6b757",
      "tree": "e41a19062d0956f698eb6ec7deccb6d8ebabfced",
      "parents": [
        "9ead98637300dc7caefd904bbe1e092bf4d21f87"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Aug 15 01:14:10 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Sep 14 18:27:15 2009 +0900"
      },
      "message": "nilfs2: remove unused btree argument from btree functions\n\nEven though many btree functions take a btree object as their first\nargument, most of them are not used in their functions.\n\nThis sticky use of the btree argument is hurting code readability and\ngiving the possibility of inefficient code generation.\n\nSo, this removes the unnecessary btree arguments.\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": "7cde31d7d6959b2c608aa6b200eb68892d3a6063",
      "tree": "778190ae45040009a629ac3c5f6db670b2546d99",
      "parents": [
        "355c6b61034a571565dcd28801588671255d2329"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 24 18:07:59 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:11 2009 +0900"
      },
      "message": "nilfs2: remove nilfs_btree_operations from btree mapping\n\nwill remove indirect function calls using nilfs_btree_operations\ntable.\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": "e473c1f265f429427e09531435ceaf0fdbb86d15",
      "tree": "2256e57a923beb7c570f67026b1fd177edb3b9db",
      "parents": [
        "f198dbb9cf580c09644ebdf46846115c6daff14e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri May 22 02:18:36 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 pointless NULL check of bpop_commit_alloc_ptr function\n\nThis indirect function is set to NULL only for gc cache inodes, but\nthe gc cache inodes never call this function.\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": "1f5abe7e7dbcd83e73212c6cb135a6106cea6a0b",
      "tree": "f80e97297d5badebd31bbb17003d76a4ea30453a",
      "parents": [
        "2c2e52fc4fca251e68f90821c9ff5cb18be4df58"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: replace BUG_ON and BUG calls triggerable from ioctl\n\nPekka Enberg advised me:\n\u003e It would be nice if BUG(), BUG_ON(), and panic() calls would be\n\u003e converted to proper error handling using WARN_ON() calls. The BUG()\n\u003e call in nilfs_cpfile_delete_checkpoints(), for example, looks to be\n\u003e triggerable from user-space via the ioctl() system call.\n\nThis will follow the comment and keep them to a minimum.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "17c76b0104e4a6513983777e1a17e0297a12b0c4",
      "tree": "49b145378f5004401f71a7aa8d8cb3f149e77f0f",
      "parents": [
        "bdb265eae08db578e7cf5739be16f389d495fc75"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:13 2009 -0700"
      },
      "message": "nilfs2: B-tree based block mapping\n\nThis adds declarations and functions of NILFS2 B-tree.\n\nTwo variants are integrated in the NILFS2 B-tree.  The B-tree for the most\nfiles points to the child nodes or data blocks with virtual block\naddresses, whereas the B-tree of the DAT uses actual block addresses.\n\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: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
