)]}'
{
  "log": [
    {
      "commit": "0ef28f9aec4dccfba33cef74412f601c1b48b658",
      "tree": "12018cde66a20b8e8804c11296ac19a3aec59fea",
      "parents": [
        "0cc1283881d3fcc9011c713e067795ccec322ae7"
      ],
      "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:56 2011 +0900"
      },
      "message": "nilfs2: get rid of NILFS_I_NILFS\n\nThis replaces all references of NILFS_I_NILFS(inode)-\u003ens_bdev with\ninode-\u003ei_sb-\u003es_bdev and unfolds remaining uses of NILFS_I_NILFS inline\nfunction.\n\nBefore 2.6.37, referring to a nilfs object from inodes needed a\nconditional judgement, and NILFS_I_NILFS was helpful to simplify it.\nBut now we can simply do it by going through a super block instance\nlike inode-\u003ei_sb-\u003es_fs_info.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e3154e9748f0f337e9f6ff9dc7d7bf24d426bd1a",
      "tree": "ac2a3f3dca6189b8a608571c49da66386fd1bdec",
      "parents": [
        "f7545144c2e3d280139260df934043e0a6ccce6f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:54:26 2011 +0900"
      },
      "message": "nilfs2: get rid of nilfs_sb_info structure\n\nThis directly uses sb-\u003es_fs_info to keep a nilfs filesystem object and\nfully removes the intermediate nilfs_sb_info structure.  With this\nchange, the hierarchy of on-memory structures of nilfs will be\nsimplified as follows:\n\nBefore:\n  super_block\n       -\u003e nilfs_sb_info\n             -\u003e the_nilfs\n                   -\u003e cptree --+-\u003e nilfs_root (current file system)\n                               +-\u003e nilfs_root (snapshot A)\n                               +-\u003e nilfs_root (snapshot B)\n                               :\n             -\u003e nilfs_sc_info (log writer structure)\nAfter:\n  super_block\n       -\u003e the_nilfs\n             -\u003e cptree --+-\u003e nilfs_root (current file system)\n                         +-\u003e nilfs_root (snapshot A)\n                         +-\u003e nilfs_root (snapshot B)\n                         :\n             -\u003e nilfs_sc_info (log writer structure)\n\nThe reason why we didn\u0027t design so from the beginning is because the\ninitial shape also differed from the above.  The early hierachy was\ncomposed of \"per-mount-point\" super_block -\u003e nilfs_sb_info pairs and a\nshared nilfs object.  On the kernel 2.6.37, it was changed to the\ncurrent shape in order to unify super block instances into one per\ndevice, and this cleanup became applicable as the result.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "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": "365e215ce1f154e288ff0f7c9acbdf5421f57949",
      "tree": "864a8cadeb2c373a0fbbbd90464cf745ac7616f7",
      "parents": [
        "bcbc8c648d6cc88f771435d8031c1a13e00945ed"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Dec 27 00:07:30 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:38:39 2011 +0900"
      },
      "message": "nilfs2: unfold nilfs_dat_inode function\n\nnilfs_dat_inode function was a wrapper to switch between normal dat\ninode and gcdat, a clone of the dat inode for garbage collection.\n\nThis function got obsolete when the gcdat inode was removed, and now\nwe can access the dat inode directly from a nilfs object.  So, we will\nunfold the wrapper and remove it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e828949e5b42bfd234ee537cdb7c5e3a577958a3",
      "tree": "c2e259a3020acdb943669fb01e5a7dc5598a6fe9",
      "parents": [
        "b004a5eb0babec7ef91558f73315ef49e5a1f285"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 19 15:26:20 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:45 2011 +0900"
      },
      "message": "nilfs2: call nilfs_error inside bmap routines\n\nSome functions using nilfs bmap routines can wrongly return invalid\nargument error (i.e. -EINVAL) that bmap returns as an internal code\nfor btree corruption.\n\nThis fixes the issue by catching and converting the internal EINVAL to\nEIO and calling nilfs_error function inside bmap routines.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c1c1d7092072093ad960db2f6c08f06705c57fa4",
      "tree": "115796528882ed5d8d21258ad8cf481765a5035a",
      "parents": [
        "b1f6a4f294088b3fcf9ae67915ca550a1ded2819"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Aug 29 12:44:56 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:38 2010 +0900"
      },
      "message": "nilfs2: get rid of GCDAT inode\n\nThis applies prepared rollback function and redirect function of\nmetadata file to DAT file, and eliminates GCDAT inode.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a8070dd365dd995f6139a2fc3aeee10159bdcc45",
      "tree": "11a16157b10ed0b6d3f773ded6bd5b82c3f8c4bc",
      "parents": [
        "adbb39b5485b72dca963a2bc9b1b22bfc19d4967"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Aug 30 23:42:18 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Oct 23 09:24:37 2010 +0900"
      },
      "message": "nilfs2: add routines to save and restore bmap state\n\nThis adds routines to save and restore the state of bmap structure.\nThe bmap state is stored in a given nilfs_bmap_store object.\n\nThese routines will be used to roll back the state of dat inode\nwithout using gcdat inode.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "05d0e94b66dbdf9d90371b39dc7a6b390ba74d41",
      "tree": "10476599c8102fc58f635d63e4e9a7aa58bf905e",
      "parents": [
        "dc935be2a094087bc561d80f8cf9e66bbc1f7b18"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jul 10 20:52:09 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:14 2010 +0900"
      },
      "message": "nilfs2: get rid of nilfs_bmap_union\n\nThis removes nilfs_bmap_union and finally unifies three structures and\nthe union in bmap/btree code into one.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "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"
    }
  ]
}
