)]}'
{
  "log": [
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d",
      "tree": "c0d82cbd11daaf579b74121c6641d58947091094",
      "parents": [
        "6109e2ce2600e2db26cd0424bb9c6ed019723288",
        "82f3952c02add60b15eea9151d4d99b6b82066c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)\n  fix handling of offsets in cris eeprom.c, get rid of fake on-stack files\n  get rid of home-grown mutex in cris eeprom.c\n  switch ecryptfs_write() to struct inode *, kill on-stack fake files\n  switch ecryptfs_get_locked_page() to struct inode *\n  simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n  AFS: Don\u0027t put struct file on the stack\n  Ban ecryptfs over ecryptfs\n  logfs: replace inode uid,gid,mode initialization with helper function\n  ufs: replace inode uid,gid,mode initialization with helper function\n  udf: replace inode uid,gid,mode init with helper\n  ubifs: replace inode uid,gid,mode initialization with helper function\n  sysv: replace inode uid,gid,mode initialization with helper function\n  reiserfs: replace inode uid,gid,mode initialization with helper function\n  ramfs: replace inode uid,gid,mode initialization with helper function\n  omfs: replace inode uid,gid,mode initialization with helper function\n  bfs: replace inode uid,gid,mode initialization with helper function\n  ocfs2: replace inode uid,gid,mode initialization with helper function\n  nilfs2: replace inode uid,gid,mode initialization with helper function\n  minix: replace inode uid,gid,mode init with helper\n  ext4: replace inode uid,gid,mode init with helper\n  ...\n\nTrivial conflict in fs/fs-writeback.c (mark bitfields unsigned)\n"
    },
    {
      "commit": "73459dcc67e77aa5cb28d51b2d84dd145977ace3",
      "tree": "140b6bc33f01b5549b7ab9c0a0ad085a382169e9",
      "parents": [
        "9eed1fb721c6c512795f8847bccc413f3a1143bb"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:15 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "nilfs2: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d240e06713007bba309b074a386b7072b73c31a6",
      "tree": "3c9133ae5b349aeec8c0a93338b9dd13b9c9dac1",
      "parents": [
        "cdce214e39814fd46d47e0e660ca3ddf3fdce8a6"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 21:51:53 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:34 2010 +0900"
      },
      "message": "nilfs2: disallow remount of snapshot from/to a regular mount\n\nSnapshots and regular ro/rw mounts are essentially-different within\nthe meaning whether the checkpoint is static or not and is marked with\na snapshot flag or not.\n\nThe current implemenation, however, allows to remount a snapshot to a\nregular rw-mount if the checkpoint number equals the latest one.\n\nThis transition is actually impossible since changing a checkpoint to\na snapshot makes another checkpoint, thus the condition is never\nsatisfied.\n\nThis fixes the weird state of affairs, and specifically separates\nsnapshots and regular rw/ro-mounts.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "cdce214e39814fd46d47e0e660ca3ddf3fdce8a6",
      "tree": "18473658f4e8128d4a8012301ec1c3acaf18182f",
      "parents": [
        "b87ca91948843472c05ae49e4c5e1714001d24c9"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 15:31:22 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:34 2010 +0900"
      },
      "message": "nilfs2: use huge_encode_dev/huge_decode_dev\n\nThis replaces uses of new_encode_dev/new_decode_dev with their 64-bit\ncounterparts, huge_encode_dev/huge_decode_dev respectively.\n\nThis is just for clarification and has no impact on the disk format.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b87ca91948843472c05ae49e4c5e1714001d24c9",
      "tree": "d7609414530230fb5f1c9b8910b83915fa8c7251",
      "parents": [
        "e2d1591a13118b2bccb41af06830a2904478a514"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 10:05:21 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:34 2010 +0900"
      },
      "message": "nilfs2: update comment on deactivate_super at nilfs_get_sb\n\ndeactivate_super was replaced with deactivate_locked_super, but the\ncomment of nilfs_get_sb remain unchanged.  This renews the comment.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e2d1591a13118b2bccb41af06830a2904478a514",
      "tree": "5ac3c5bddc08acdfe75c2b8ea970f057b4190f75",
      "parents": [
        "4571b82cdcd076a3b8ecaddcf9846cb52f9979e5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 09:48:31 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:34 2010 +0900"
      },
      "message": "nilfs2: replace MS_VERBOSE with MS_SILENT\n\nMS_VERBOSE is deprecated.  This replaces it with MS_SILENT in\nreference to get_sb_bdev function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4571b82cdcd076a3b8ecaddcf9846cb52f9979e5",
      "tree": "f7a69603d07fbfd14da3e0abaa13dd493d4c2f19",
      "parents": [
        "13e905592b3daacb6ec27a5a4169afe725c3b668"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 03:01:32 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:33 2010 +0900"
      },
      "message": "nilfs2: add missing initialization of s_mode\n\nAn fmode_t argument is passed to kill_block_super() through s_mode\nmember of the super_block structure.  This is used to release the\nblock device with the same mode, however, nilfs does not set s_mode\nanywhere.\n\nThis modifies nilfs_get_sb function to properly initialize the s_mode\nmember.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "13e905592b3daacb6ec27a5a4169afe725c3b668",
      "tree": "1eb7a70bf662d1efcea73e4e06239dee333dbdf8",
      "parents": [
        "400ade845cb9930552e791bbd658a0953f68499d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun May 09 02:57:57 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:33 2010 +0900"
      },
      "message": "nilfs2: fix misuse of open_bdev_exclusive/close_bdev_exclusive\n\nThe second argument of open_bdev_exclusive/close_bdev_exclusive takes\nfmode_t flags instead of mount flags.  This fixes the misuse.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "25294d8c376296b1420694317e9856eaaea710ca",
      "tree": "0241728923929381293a738222967952531d5625",
      "parents": [
        "34cb9b5c973ac06449b96884be932da9a9b99819"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat May 01 11:54:21 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:32 2010 +0900"
      },
      "message": "nilfs2: use checkpoint number instead of timestamp to select super block\n\nNilfs maintains two super blocks, and selects the new one on mount\ntime if they both have valid checksums and their timestamps differ.\n\nHowever, this has potential for mis-selection since the system clock\nmay be rewinded and the resolution of the timestamps is not high.\n\nUsually this doesn\u0027t become an issue because both super blocks are\nupdated at the same time when the file system is unmounted.  Even if\nthe file system wasn\u0027t unmounted cleanly, the roll-forward recovery\nwill find the proper log which stores the latest super root.  Thus,\nthe issue can appear only if update of one super block fails and the\nclock happens to be rewinded.\n\nThis fixes the issue by using checkpoint numbers instead of timestamps\nto pick the super block storing the location of the latest log.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "34cb9b5c973ac06449b96884be932da9a9b99819",
      "tree": "5009abb0edc749f78d60f7f1e8c098b1ab5fb509",
      "parents": [
        "4e819509cba664e7cbfba5c4d1517df4dfda86f5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat May 01 10:07:07 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:32 2010 +0900"
      },
      "message": "nilfs2: add missing endian conversion on super block magic number\n\nThis adds missing endian conversions in comparision of the magic\nnumber of super blocks.  It was coincidence that prior versions didn\u0027t\nincur problems; the upper byte of the magic number happened to be\nequal to the lower byte.  But, semantically it\u0027s wrong to depend on\nthis.\n\nThis won\u0027t change anything else nor suffer any compatibility issues.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4e819509cba664e7cbfba5c4d1517df4dfda86f5",
      "tree": "ade615c9d48d18e31a6906ac0955339e917a2a48",
      "parents": [
        "db55d92252c07c0e5561966ecca95c6f332dd892"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Apr 23 17:35:23 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:31 2010 +0900"
      },
      "message": "nilfs2: make nilfs_sc_*_ops static\n\nThis kills the following sparse warnings:\n\nfs/nilfs2/segment.c:567:28: warning: symbol \u0027nilfs_sc_file_ops\u0027 was not declared. Should it be static?\nfs/nilfs2/segment.c:617:28: warning: symbol \u0027nilfs_sc_dat_ops\u0027 was not declared. Should it be static?\nfs/nilfs2/segment.c:625:28: warning: symbol \u0027nilfs_sc_dsync_ops\u0027 was not declared. Should it be static?\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "db55d92252c07c0e5561966ecca95c6f332dd892",
      "tree": "624aacfce2e287a89f4a49f03b543af3b5e4a6da",
      "parents": [
        "fdce895ea5dd4e24edf1f4d693827349a4e5b3b4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 12 01:46:02 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:31 2010 +0900"
      },
      "message": "nilfs2: add kernel doc comments to persistent object allocator functions\n\nThe implementation of persistent object allocator (alloc.c) is poorly\ndocumented.  This adds kernel doc style comments on that functions.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "fdce895ea5dd4e24edf1f4d693827349a4e5b3b4",
      "tree": "77a1a4cd496ed8459813eddf68efe8b777c3c058",
      "parents": [
        "154ac5a83014cd6ea72e4ac5018bf8c10ee9a79e"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Sat Apr 10 23:25:39 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:31 2010 +0900"
      },
      "message": "nilfs2: change sc_timer from a pointer to an embedded one in struct nilfs_sc_info\n\nIn nilfs_segctor_thread(), timer is a local variable allocated on stack. Its\naddress can\u0027t be set to sci-\u003esc_timer and passed in several procedures.\n\nIt works now by chance, just because other procedures are called by\nnilfs_segctor_thread() directly or indirectly and the stack hasn\u0027t been\ndeallocated yet.\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": "154ac5a83014cd6ea72e4ac5018bf8c10ee9a79e",
      "tree": "ea772f3e5b301e1dbf81c6ff9821711c9de61db6",
      "parents": [
        "50614bcf29d0cec6df5b84c0d8331e8b8c7d72a7"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Sat Apr 10 21:57:11 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:31 2010 +0900"
      },
      "message": "nilfs2: remove nilfs_segctor_init() in segment.c\n\nThere are only two lines of code in nilfs_segctor_init(). From a logic\ndesign view, the first line \u0027sci-\u003esc_seq_done \u003d sci-\u003esc_seq_request;\u0027\nshould be put in nilfs_segctor_new(). Even in nilfs_segctor_new(),\nthis initialization is needless because sci is kzalloc-ed. So\nnilfs_segctor_init() is only a wrap call to\nnilfs_segctor_start_thread().\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": "50614bcf29d0cec6df5b84c0d8331e8b8c7d72a7",
      "tree": "3a91f6af1396f377a3bced903d605feb9b811b15",
      "parents": [
        "9f130263f30233a44a3175db3218dd89af143d64"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Apr 10 17:59:15 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:31 2010 +0900"
      },
      "message": "nilfs2: insert checkpoint number in segment summary header\n\nThis adds a field to record the latest checkpoint number in the\nnilfs_segment_summary structure.  This will help to recover the latest\ncheckpoint number from logs on disk.  This field is intended for\ncrucial cases in which super blocks have lost pointer to the latest\nlog.\n\nEven though this will change the disk format, both backward and\nforward compatibility is preserved by a size field prepared in the\nsegment summary header.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9f130263f30233a44a3175db3218dd89af143d64",
      "tree": "66e48783682bdffaf56eb1c06823b39bc25d0836",
      "parents": [
        "41c88bd74d372db5102996a4ea6167a725c24b5e"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Apr 09 23:09:53 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: add a print message after loading nilfs2\n\nPrinting a message after loading a file system is a practice. Add this to\nprovide a better user-friendly experience.\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "41c88bd74d372db5102996a4ea6167a725c24b5e",
      "tree": "98b8e208d41f7760458e82569e297843415bbe7d",
      "parents": [
        "aaed1d5bfac459ead9aaad324e7fe3326250f50a"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Tue Apr 06 00:54:11 2010 +0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: cleanup multi kmem_cache_{create,destroy} code\n\nThis cleanup patch gives several improvements:\n\n - Moving all kmem_cache_{create_destroy} calls into one place, which removes\n some small function calls, cleans up error check code and clarify the logic.\n\n - Mark all initial code in __init section.\n\n - Remove some very obvious comments.\n\n - Adjust some declarations.\n\n - Fix some space-tab issues.\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "aaed1d5bfac459ead9aaad324e7fe3326250f50a",
      "tree": "389f305354db9a45a482ff38e5f0ffab030c76bd",
      "parents": [
        "1e2b68bf285dce604388fcb6f85b7e612156db17"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 23 01:50:38 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: move out checksum routines to segment buffer code\n\nThis moves out checksum routines in log writer to segbuf.c for\ncleanup.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1e2b68bf285dce604388fcb6f85b7e612156db17",
      "tree": "5cf59247e8171edceb77a521fd2cdf865f0ec9d2",
      "parents": [
        "277a6a34175dcb0ee98dceee619e0e3190347a25"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 23 01:15:31 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: move pointer to super root block into logs\n\nThis moves a pointer to buffer storing super root block to each log\nbuffer from nilfs_sc_info struct for simplicity.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "277a6a34175dcb0ee98dceee619e0e3190347a25",
      "tree": "bda68b681972c608b78de87f5e856a649f2a04e7",
      "parents": [
        "73bb48869b14fd5094b9ec173a2bf86bc0e464d4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Apr 02 18:02:33 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: change default of \u0027errors\u0027 mount option to \u0027remount-ro\u0027 mode\n\nLike ext3, nilfs has \u0027errors\u0027 mount option to allow specifying desired\nbehavior on severe errors.\n\nCurrently, the default action is \u0027errors\u003dcontinue\u0027 and has potential\nto advance filesystem corruption for severe errors.\n\nThis will change the action to \u0027errors\u003dremount-ro\u0027 to avoid the issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "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": "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": "6a47dc1418682c83d603b491df1d048f73aa973e",
      "tree": "4a73ae4ce74be630b8862dcaf2a757f2f268ebbd",
      "parents": [
        "0341aafb7f3313bcedc6811a098500be85f3fc77"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Apr 29 09:32:00 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 09:32:00 2010 +0200"
      },
      "message": "nilfs: fix breakage caused by barrier flag changes\n\nAfter merging the block tree, today\u0027s linux-next build (powerpc ppc64_defconfig)\nfailed like this:\n\nfs/nilfs2/the_nilfs.c: In function \u0027nilfs_discard_segments\u0027:\nfs/nilfs2/the_nilfs.c:673: error: \u0027DISCARD_FL_BARRIER\u0027 undeclared (first use in this function)\n\nCaused by commit fbd9b09a177a481eda256447c881f014f29034fe (\"blkdev:\ngeneralize flags for blkdev_issue_fn functions\") interacting with commit\ne902ec9906e844f4613fa6190c6fa65f162dc86e (\"nilfs2: issue discard request\nafter cleaning segments\") (which netered Linus\u0027 tree on about March 4 -\nbefore v2.6.34-rc1).\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\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"
    }
  ],
  "next": "09bf4aae0a3c471b721c43e7bdb6132200d907b2"
}
