)]}'
{
  "log": [
    {
      "commit": "e339ad31f59925b48a92ee3947692fdf9758b8c7",
      "tree": "6bb85c43bfd100b0a220c788c654f2f74ca553e4",
      "parents": [
        "cece552074c591970353ad48308d65f110aeaf28"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:20 2009 -0700"
      },
      "message": "nilfs2: introduce secondary super block\n\nThe former versions didn\u0027t have extra super blocks.  This improves the\nweak point by introducing another super block at unused region in tail of\nthe partition.\n\nThis doesn\u0027t break disk format compatibility; older versions just ingore\nthe secondary super block, and new versions just recover it if it doesn\u0027t\nexist.  The partition created by an old mkfs may not have unused region,\nbut in that case, the secondary super block will not be added.\n\nThis doesn\u0027t make more redundant copies of the super block; it is a future\nwork.\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": "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": "c96fa464a567a2a8796009af0e79bc68af73f485",
      "tree": "5467fcdc2a4a64dfad3c5cb627451b6f7e76809b",
      "parents": [
        "458c5b0822a669d170fdb7bb16c9145f652ebe06"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: mark minor flag for checkpoint created by internal operation\n\nNilfs creates checkpoints even for garbage collection or metadata updates\nsuch as checkpoint mode change.  So, user often sees checkpoints created\nonly by such internal operations.\n\nThis is inconvenient in some situations.  For example, application that\nmonitors checkpoints and changes them to snapshots, will fall into an\ninfinite loop because it cannot distinguish internally created\ncheckpoints.\n\nThis patch solves this sort of problem by adding a flag to checkpoint for\nidentification.\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": "458c5b0822a669d170fdb7bb16c9145f652ebe06",
      "tree": "f2c53998492306a8aaf6d20ded229b69cba17348",
      "parents": [
        "e62687468588f47c32256e3c8c36157c40111b6e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:19 2009 -0700"
      },
      "message": "nilfs2: clean up sketch file\n\nThe sketch file is a file to mark checkpoints with user data.  It was\nexperimentally introduced in the original implementation, and now\nobsolete.  The file was handled differently with regular files; the file\nsize got truncated when a checkpoint was created.\n\nThis stops the special treatment and will treat it as a regular file.\nMost users are not affected because mkfs.nilfs2 no longer makes this file.\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": "1088dcf4c3a0a27fdad5214781d5084b11405238",
      "tree": "4d08f45ff4867d629e5ad4e94e0362e897ffa1e1",
      "parents": [
        "76068c4ff1cc03d9d24d17fd9e6a1475bc2f6730"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:18 2009 -0700"
      },
      "message": "nilfs2: remove timedwait ioctl command\n\nThis removes NILFS_IOCTL_TIMEDWAIT command from ioctl interface along\nwith the related flags and wait queue.\n\nThe command is terrible because it just sleeps in the ioctl.  I prefer\nto avoid this by devising means of event polling in userland program.\nBy reconsidering the userland GC daemon, I found this is possible\nwithout changing behaviour of the daemon and sacrificing efficiency.\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": "47420c799830d4676e544dbec56b2a7f787528f5",
      "tree": "dd61f6c96942b07f762129c893d9cbbbeff60735",
      "parents": [
        "a2e7d2df82cafb76f76809ddf6e2caa8afe4f75e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:17 2009 -0700"
      },
      "message": "nilfs2: avoid double error caused by nilfs_transaction_end\n\nPekka Enberg pointed out that double error handlings found after\nnilfs_transaction_end() can be avoided by separating abort operation:\n\n OK, I don\u0027t understand this. The only way nilfs_transaction_end() can\n fail is if we have NILFS_TI_SYNC set and we fail to construct the\n segment. But why do we want to construct a segment if we don\u0027t commit?\n\n I guess what I\u0027m asking is why don\u0027t we have a separate\n nilfs_transaction_abort() function that can\u0027t fail for the erroneous\n case to avoid this double error value tracking thing?\n\nThis does the separation and renames nilfs_transaction_end() to\nnilfs_transaction_commit() for clarification.\n\nSince, some calls of these functions were used just for exclusion control\nagainst the segment constructor, they are replaced with semaphore\noperations.\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": "f30bf3e40f80ef50c17f55271deae3abc03e793e",
      "tree": "2e6d69611d1443688c1a79c5e5aed60cf38672e7",
      "parents": [
        "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: fix missed-sync issue for do_sync_mapping_range()\n\nChris Mason pointed out that there is a missed sync issue in\nnilfs_writepages():\n\nOn Wed, 17 Dec 2008 21:52:55 -0500, Chris Mason wrote:\n\u003e It looks like nilfs_writepage ignores WB_SYNC_NONE, which is used by\n\u003e do_sync_mapping_range().\n\nwhere WB_SYNC_NONE in do_sync_mapping_range() was replaced with\nWB_SYNC_ALL by Nick\u0027s patch (commit:\nee53a891f47444c53318b98dac947ede963db400).\n\nThis fixes the problem by letting nilfs_writepages() write out the log of\nfile data within the range if sync_mode is WB_SYNC_ALL.\n\nThis involves removal of nilfs_file_aio_write() which was previously\nneeded to ensure O_SYNC sync writes.\n\nCc: Chris Mason \u003cchris.mason@oracle.com\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": "9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453",
      "tree": "056c7bdc2395c8baf77bc63a54a1f747cbf5b650",
      "parents": [
        "64b5a32e0b3680a9655b3f2e668a646068e71d33"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 06 19:01:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:15 2009 -0700"
      },
      "message": "nilfs2: segment constructor\n\nThis adds the segment constructor (also called log writer).\n\nThe segment constructor collects dirty buffers for every dirty inode,\nmakes summaries of the buffers, assigns disk block addresses to the\nbuffers, and then submits BIOs for the buffers.\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"
    }
  ]
}
