)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "003ff182fddde09ddfb8d079bbdb02f9d2122082",
      "tree": "d949fa673353767d8854355987e49d82821935f6",
      "parents": [
        "258ef67e246fd548e7ad91c23004ad157c03cce5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 12 03:58:47 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:11 2009 +0900"
      },
      "message": "nilfs2: allow future expansion of metadata read out via get info ioctl\n\nNilfs has some ioctl commands to read out metadata from meta data\nfiles:\n\n - NILFS_IOCTL_GET_CPINFO for checkpoint file,\n - NILFS_IOCTL_GET_SUINFO for segment usage file, and\n - NILFS_IOCTL_GET_VINFO for Disk Address Transalation (DAT) file,\n   respectively.\n\nEvery routine on these metadata files is implemented so that it allows\nfuture expansion of on-disk format.  But, the above ioctl commands do\nnot support expansion even though nilfs_argv structure can handle\narbitrary size for data exchanged via ioctl.\n\nThis allows future expansion of the following structures which give\nbasic format of the \"get information\" ioctls:\n\n - struct nilfs_cpinfo\n - struct nilfs_suinfo\n - struct nilfs_vinfo\n\nSo, this introduces forward compatility of such ioctl commands.\n\nIn this patch, a sanity check in nilfs_ioctl_get_info() function is\nchanged to accept larger data structure [1], and metadata read\nroutines are rewritten so that they become compatible for larger\nstructures; the routines will just ignore the remaining fields which\nthe current version of nilfs doesn\u0027t know.\n\n[1] The ioctl function already has another upper limit (PAGE_SIZE\n    against a structure, which appears in nilfs_ioctl_wrap_copy\n    function), and this will not cause security problem.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "dda54f4b872512eba484c38631bd6ae5b5716f41",
      "tree": "bf9bf0b18c9cf232fa34a6f3de08e90a658259f2",
      "parents": [
        "d97a51a7e3c298d9899ea91165dfa0783fa5cc5c"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat May 16 21:49:10 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Jun 10 23:41:09 2009 +0900"
      },
      "message": "nilfs2: add sufile function that can modify multiple segment usages\n\nThis is a preparation for the later cleanup patch (\"nilfs2: remove\nlist of freeing segments\").\n\nThis adds nilfs_sufile_updatev() to sufile, which can modify multiple\nsegment usages at a time.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "c85399c2da8b86de8f6877980294fa1a4a88a5a4",
      "tree": "0319b8ab4d8b7da4d614e46949755b8a9ba4eab0",
      "parents": [
        "a703018f7bbec8109419318f5d51f235fdce5155"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Apr 05 18:30:58 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 13 09:53:52 2009 +0900"
      },
      "message": "nilfs2: fix possible mismatch of sufile counters on recovery\n\nOn-disk counters ndirtysegs and ncleansegs of sufile, can go wrong\nafter roll-forward recovery because\nnilfs_prepare_segment_for_recovery() function marks segments dirty\nwithout adjusting value of these counters.\n\nThis fixes the problem by adding a function to sufile which does the\noperation adjusting the counters, and by letting the recovery function\nuse it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a703018f7bbec8109419318f5d51f235fdce5155",
      "tree": "6bad3f70892ba54b95b6eb0e994542beddde6840",
      "parents": [
        "88072faf9a32c92f37c15065496bb6eb309aebe3"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Apr 05 18:24:11 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 13 09:53:51 2009 +0900"
      },
      "message": "nilfs2: segment usage file cleanups\n\nThis will simplify sufile.c by sharing common code which repeatedly\nappears in routines updating a segment usage entry; a wrapper function\nnilfs_sufile_update() is introduced for the purpose, and counter\nmodifications are integrated to a new function\nnilfs_sufile_mod_counter().\n\nThis is a preparation for the successive bugfix patch (\"nilfs2: fix\npossible mismatch of sufile counters on recovery\").\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "88072faf9a32c92f37c15065496bb6eb309aebe3",
      "tree": "a99478df82c69a97b7e4644dbbd4b9d5df8f5949",
      "parents": [
        "3efb55b496952e0d29a9ec66d0ceaab175c4e8ca"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Apr 05 15:03:16 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 13 09:53:51 2009 +0900"
      },
      "message": "nilfs2: fix wrong accounting and duplicate brelse in nilfs_sufile_set_error\n\nThe nilfs_sufile_set_error() function wrongly adjusts the number of\ndirty segments instead of the number of clean segments.  In addition,\nthe function calls brelse() twice for the same buffer head.\n\nThis fixes these bugs.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "3efb55b496952e0d29a9ec66d0ceaab175c4e8ca",
      "tree": "d53771031086e9801343a1a990af7d1eb80f1827",
      "parents": [
        "e7a7402c0d392dcadc74cae8922f8fae4667605a"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Mar 30 00:50:19 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 13 09:53:51 2009 +0900"
      },
      "message": "nilfs2: simplify handling of active state of segments fix\n\nThis fixes a bug of (\"nilfs2: simplify handling of active state of\nsegments\") patch.  The patch did not take account that a base index is\nincreased in nilfs_sufile_get_suinfo() function if requested entries\ngo across block boundary on sufile.\n\nDue to this bug, the active flag sometimes appears on wrong segments\nand has induced malfunction of garbage collection.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "cece552074c591970353ad48308d65f110aeaf28",
      "tree": "2dcca7913d38df89711504f5daeecccfedb5a3eb",
      "parents": [
        "c96fa464a567a2a8796009af0e79bc68af73f485"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:20 2009 -0700"
      },
      "message": "nilfs2: simplify handling of active state of segments\n\nwill reduce some lines of segment constructor.  Previously, the state was\ncomplexly controlled through a list of segments in order to keep\nconsistency in meta data of usage state of segments.  Instead, this\npresents ``calculated\u0027\u0027 active flags to userland cleaner program and stop\nmaintaining its real flag on disk.\n\nOnly by this fake flag, the cleaner cannot exactly know if each segment is\nreclaimable or not.  However, the recent extension of nilfs_sustat ioctl\nstruct (nilfs2-extend-nilfs_sustat-ioctl-struct.patch) can prevent the\ncleaner from reclaiming in-use segment wrongly.\n\nSo, now I can apply this for simplification.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f5abe7e7dbcd83e73212c6cb135a6106cea6a0b",
      "tree": "f80e97297d5badebd31bbb17003d76a4ea30453a",
      "parents": [
        "2c2e52fc4fca251e68f90821c9ff5cb18be4df58"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: replace BUG_ON and BUG calls triggerable from ioctl\n\nPekka Enberg advised me:\n\u003e It would be nice if BUG(), BUG_ON(), and panic() calls would be\n\u003e converted to proper error handling using WARN_ON() calls. The BUG()\n\u003e call in nilfs_cpfile_delete_checkpoints(), for example, looks to be\n\u003e triggerable from user-space via the ioctl() system call.\n\nThis will follow the comment and keep them to a minimum.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c2e52fc4fca251e68f90821c9ff5cb18be4df58",
      "tree": "fb0b86203bb5f4dda4d5907e29bd2b1b6cc0be90",
      "parents": [
        "7a9461939a46345860622ea36ff267ee4446f00f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: extend nilfs_sustat ioctl struct\n\nThis adds a new argument to the nilfs_sustat structure.\n\nThe extended field allows to delete volatile active state of segments,\nwhich was needed to protect freshly-created segments from garbage\ncollection but has confused code dealing with segments.  This\nextension alleviates the mess and gives room for further\nsimplifications.\n\nThe volatile active flag is not persistent, so it\u0027s eliminable on this\noccasion without affecting compatibility other than the ioctl change.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c98cd4ecb0ae35f0368c5c2190712689c2064aa",
      "tree": "5d8fae2ce980cae3a97e0e88068527ce5937a8df",
      "parents": [
        "29619809727a4e524e26dbd7bfdc93ff7f50aa74"
      ],
      "author": {
        "name": "Koji Sato",
        "email": "sato.koji@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:14 2009 -0700"
      },
      "message": "nilfs2: segment usage file\n\nThis adds a meta data file which stores the allocation state of segments.\n\n[konishi.ryusuke@lab.ntt.co.jp: fix wrong counting of checkpoints and dirty segments]\nSigned-off-by: Koji Sato \u003csato.koji@lab.ntt.co.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
