)]}'
{
  "log": [
    {
      "commit": "eb59c505f8a5906ad2e053d14fab50eb8574fd6f",
      "tree": "c6e875adc12b481b916e847e8f80b8881a0fb02c",
      "parents": [
        "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
        "c233523b3d392e530033a7587d7970dc62a02361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  PM / Hibernate: Implement compat_ioctl for /dev/snapshot\n  PM / Freezer: fix return value of freezable_schedule_timeout_killable()\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  PM: Drop generic_subsys_pm_ops\n  PM / Sleep: Remove forward-only callbacks from AMBA bus type\n  PM / Sleep: Remove forward-only callbacks from platform bus type\n  PM: Run the driver callback directly if the subsystem one is not there\n  PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n  PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.\n  PM / Sleep: Merge internal functions in generic_ops.c\n  PM / Sleep: Simplify generic system suspend callbacks\n  PM / Hibernate: Remove deprecated hibernation snapshot ioctls\n  PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused\nXBT_FORCE_SLEEP bit\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c6e49e3f266dbe62773941dca8afa65f53b5415f",
      "tree": "d16592189d8ea9fafb15d5dcbfc1a18d3bbf8d97",
      "parents": [
        "64f1426f3c4f8dde9ac9bf3f3b19b88d17f2bae6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:07:14 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:04 2012 -0500"
      },
      "message": "nilfs: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b00f4dc5ff022cb9cbaffd376d9454d7fa1e496f",
      "tree": "40f1b232e2f1e8ac365317a14fdcbcb331722b46",
      "parents": [
        "1eac8111e0763853266a171ce11214da3a347a0a",
        "b9e26dfdad5a4f9cbdaacafac6998614cc9c41bc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into pm-sleep\n\n* master: (848 commits)\n  SELinux: Fix RCU deref check warning in sel_netport_insert()\n  binary_sysctl(): fix memory leak\n  mm/vmalloc.c: remove static declaration of va from __get_vm_area_node\n  ipmi_watchdog: restore settings when BMC reset\n  oom: fix integer overflow of points in oom_badness\n  memcg: keep root group unchanged if creation fails\n  nilfs2: potential integer overflow in nilfs_ioctl_clean_segments()\n  nilfs2: unbreak compat ioctl\n  cpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask\n  evm: prevent racing during tfm allocation\n  evm: key must be set once during initialization\n  mmc: vub300: fix type of firmware_rom_wait_states module parameter\n  Revert \"mmc: enable runtime PM by default\"\n  mmc: sdhci: remove \"state\" argument from sdhci_suspend_host\n  x86, dumpstack: Fix code bytes breakage due to missing KERN_CONT\n  IB/qib: Correct sense on freectxts increment and decrement\n  RDMA/cma: Verify private data length\n  cgroups: fix a css_set not found bug in cgroup_attach_proc\n  oprofile: Fix uninitialized memory access when writing to writing to oprofilefs\n  Revert \"xen/pv-on-hvm kexec: add xs_reset_watches to shutdown watches from old kernel\"\n  ...\n\nConflicts:\n\tkernel/cgroup_freezer.c\n"
    },
    {
      "commit": "481fe17e973fb97aa3edf17c69557afe88d8334f",
      "tree": "3ab58a5f35345d7e61fc4428b18529705ceab1e5",
      "parents": [
        "695c60f21c69e525a89279a5f35bae4ff237afbc"
      ],
      "author": {
        "name": "Haogang Chen",
        "email": "haogangchen@gmail.com",
        "time": "Mon Dec 19 17:11:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 20 10:25:04 2011 -0800"
      },
      "message": "nilfs2: potential integer overflow in nilfs_ioctl_clean_segments()\n\nThere is a potential integer overflow in nilfs_ioctl_clean_segments().\nWhen a large argv[n].v_nmembs is passed from the userspace, the subsequent\ncall to vmalloc() will allocate a buffer smaller than expected, which\nleads to out-of-bound access in nilfs_ioctl_move_blocks() and\nlfs_clean_segments().\n\nThe following check does not prevent the overflow because nsegs is also\ncontrolled by the userspace and could be very large.\n\n\t\tif (argv[n].v_nmembs \u003e nsegs * nilfs-\u003ens_blocks_per_segment)\n\t\t\tgoto out_free;\n\nThis patch clamps argv[n].v_nmembs to UINT_MAX / argv[n].v_size, and\nreturns -EINVAL when overflow.\n\nSigned-off-by: Haogang Chen \u003chaogangchen@gmail.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": "695c60f21c69e525a89279a5f35bae4ff237afbc",
      "tree": "ff706db0f49c246a398d1bbb0fc0336a43334dd1",
      "parents": [
        "b246272ecc5ac68c743b15c9e41a2275f7ce70e2"
      ],
      "author": {
        "name": "Thomas Meyer",
        "email": "thomas@m3y3r.de",
        "time": "Mon Dec 19 17:11:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 20 10:25:04 2011 -0800"
      },
      "message": "nilfs2: unbreak compat ioctl\n\ncommit 828b1c50ae (\"nilfs2: add compat ioctl\") incidentally broke all\nother NILFS compat ioctls.  Make them work again.\n\nSigned-off-by: Thomas Meyer \u003cthomas@m3y3r.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: \u003cstable@vger.kernel.org\u003e [3.0+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6",
      "tree": "0b763388360a5a9043986e1f2201e43df74ebc46",
      "parents": [
        "3a7cbd50f74907580eb47a8d08e1f29741b81abf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "message": "freezer: unexport refrigerator() and update try_to_freeze() slightly\n\nThere is no reason to export two functions for entering the\nrefrigerator.  Calling refrigerator() instead of try_to_freeze()\ndoesn\u0027t save anything noticeable or removes any race condition.\n\n* Rename refrigerator() to __refrigerator() and make it return bool\n  indicating whether it scheduled out for freezing.\n\n* Update try_to_freeze() to return bool and relay the return value of\n  __refrigerator() if freezing().\n\n* Convert all refrigerator() users to try_to_freeze().\n\n* Update documentation accordingly.\n\n* While at it, add might_sleep() to try_to_freeze().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\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: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6d6b77f163c7eabedbba00ed2abb7d4a570bff76",
      "tree": "6ce074a7dd5a25fae28ef9de6f59ddee08ea4e61",
      "parents": [
        "dd2a981f46a0903a8770a784f213d4d40bbb6f19"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:28 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add missing nlink wrappers\n\nReplace direct i_nlink updates with the respective updater function\n(inc_nlink, drop_nlink, clear_nlink, inode_dec_link_count).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aacfc19c626ebd3daa675652457d71019a1f583f",
      "tree": "9c1cfb5945e939f1ba56b4c0101c211e84e544c0",
      "parents": [
        "df2d6f26586f12a24f3ae5df4e236dc5c08d6eb4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:47 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:49 2011 -0400"
      },
      "message": "fs: simplify the blockdev_direct_IO prototype\n\nSimple filesystems always pass inode-\u003ei_sb_bdev as the block device\nargument, and never need a end_io handler.  Let\u0027s simply things for\nthem and for my grepping activity by dropping these arguments.  The\nonly thing not falling into that scheme is ext4, which passes and\nend_io handler without needing special flags (yet), but given how\nmessy the direct I/O code there is use of __blockdev_direct_IO\nin one instead of two out of three cases isn\u0027t going to make a large\ndifference anyway.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "562c72aa57c36b178eacc3500a0215651eca9429",
      "tree": "2c522c53ab26fc72e85e08747a08e3dca1207c87",
      "parents": [
        "11b80f459adaf91a712f95e7734a17655a36bf30"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:45 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:47 2011 -0400"
      },
      "message": "fs: move inode_dio_wait calls into -\u003esetattr\n\nLet filesystems handle waiting for direct I/O requests themselves instead\nof doing it beforehand.  This means filesystem-specific locks to prevent\nnew dio referenes from appearing can be held.  This is important to allow\ngeneralizing i_dio_count to non-DIO_LOCKING filesystems.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a9049376ee05bf966bfe2b081b5071326856890a",
      "tree": "efb3cbfc7760537f201bb28dacbb0d39ec39f04c",
      "parents": [
        "0c1aa9a952c3608eb17bf990466f1491d1ee8b6c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jul 08 21:20:11 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:26 2011 -0400"
      },
      "message": "make d_splice_alias(ERR_PTR(err), dentry) \u003d ERR_PTR(err)\n\n... and simplify the living hell out of callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10556cb21a0d0b24d95f00ea6df16f599a3345b2",
      "tree": "3d7d8dfba807805a55c154f1850717bf3b49f343",
      "parents": [
        "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:28:19 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:24 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003epermission()\n\nnot used by the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890",
      "tree": "bbcebc14bffd000f1dfcbf37e64f56d2f49581ac",
      "parents": [
        "7e40145eb111a5192e6d819f764db9d6828d1abb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:16:29 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:22 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to generic_permission()\n\nredundant; all callers get it duplicated in mask \u0026 MAY_NOT_BLOCK and none of\nthem removes that bit.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "178ea73521d64ba41d7aa5488fb9f549c6d4507d",
      "tree": "7fb6bfb6483577752e307a5bb2e3905658d44294",
      "parents": [
        "07b8ce1ee87d291ff564c02cf878fae973317a52"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 11:31:30 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:16 2011 -0400"
      },
      "message": "kill check_acl callback of generic_permission()\n\nits value depends only on inode and does not change; we might as\nwell store it in -\u003ei_op-\u003echeck_acl and be done with that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "730e908f3539066d4aa01f4720ebfc750ce4d045",
      "tree": "de7b93574d60071b5d2c428cc3ff1a524eac3cd0",
      "parents": [
        "a63ab94d67879bc0630ea9821c582ddf58ba5527"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 18 20:21:44 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 10:44:33 2011 -0400"
      },
      "message": "nilfs2_permission() doesn\u0027t need to bail out in RCU mode\n\nNothing blocking except for generic_permission().  Which will DTRT.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "071d73cfe5c38cf62338b952bd350ff3de541b75",
      "tree": "cf917178d850e458a7091d00cba30c2b54696d48",
      "parents": [
        "d40990537c9ea85dfe75dbe0ffba5e1002dfdf3f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jun 10 00:33:06 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jun 11 15:51:15 2011 +0900"
      },
      "message": "nilfs2: fix problem in setting checkpoint interval\n\nCheckpoint generation interval of nilfs goes wrong after user has\nchanged the interval parameter with nilfs-tune tool.\n\n segctord starting. Construction interval \u003d 5 seconds,\n CP frequency \u003c 30 seconds\n segctord starting. Construction interval \u003d 0 seconds,\n CP frequency \u003c 30 seconds\n\nThis turned out to be caused by a trivial bug in initialization code\nof log writer.  This will fix it.\n\nReported-by: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d40990537c9ea85dfe75dbe0ffba5e1002dfdf3f",
      "tree": "3db27e3e911428502942c95b9f8f52e2a041bd54",
      "parents": [
        "fe744fdb74f2417d8571faefa45f72b0ead25f89"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed May 25 23:00:27 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jun 11 15:51:15 2011 +0900"
      },
      "message": "nilfs2: fix missing block address termination in btree node shrinking\n\nnilfs_btree_delete function does not terminate part of virtual block\naddresses when shrinking the last remaining child node into the root\nnode.  The missing address termination causes that dead btree node\nblocks persist and chip away free disk space.\n\nThis fixes the leak bug on the btree node deletion.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "fe744fdb74f2417d8571faefa45f72b0ead25f89",
      "tree": "516655aad7800018483724cce93c24c2418fc1f4",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed May 25 23:00:27 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jun 11 15:51:15 2011 +0900"
      },
      "message": "nilfs2: fix incorrect block address termination in node concatenation\n\nnilfs_btree_delete function wrongly terminates virtual block address\nof the btree node held by its parent at index 0.  When concatenating\nthe index-0 node with its right sibling node, nilfs_btree_delete\nterminates the block address of index-0 node instead of the right\nsibling node which should be deleted.\n\nThis bug not only wears disk space in the long run, but also causes\nfile system corruption.  This will fix it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "dfb55de89879a1c32a70d0a510b3701ed9a6b855",
      "tree": "eeff0ef23494c5bf6ea23066b80c53156f21aefc",
      "parents": [
        "64370e2f9df572977757d70b1ad293b743dd9e20"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 27 13:41:59 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 28 01:02:51 2011 -0400"
      },
      "message": "nilfs2: remove unnecessary dentry_unhash from rmdir, dir rename\n\nnilfs2 does not have problems with references to unlinked directories.\n\nCC: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCC: linux-nilfs@vger.kernel.org\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aa38572954ade525817fe88c54faebf85e5a61c0",
      "tree": "ef398ec06c97134592f62a49c99f3f80041b427c",
      "parents": [
        "d6e9bd256c88ce5f4b668249e363a74f51393daa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri May 27 06:53:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 27 07:04:40 2011 -0400"
      },
      "message": "fs: pass exact type of data dirties to -\u003edirty_inode\n\nTell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or\nanything else, so that the filesystem can track internally if it\nneeds to push out a transaction for fdatasync or not.\n\nThis is just the prototype change with no user for it yet.  I plan\nto push large XFS changes for the next merge window, and getting\nthis trivial infrastructure in this window would help a lot to avoid\ntree interdependencies.\n\nAlso remove incorrect comments that -\u003edirty_inode can\u0027t block.  That\nhas been changed a long time ago, and many implementations rely on it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "32e51f141fd8d880f57b6a2eb53ce72856254d4a",
      "tree": "d8d7a0d503533a03fb07b2ebd5eccd9043f2d228",
      "parents": [
        "ca16d140af91febe25daeb9e032bf8bd46b8c31f",
        "b6ff24a333267a6810e28ee5b9fc539d149c52f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:52:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:52:14 2011 -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: (25 commits)\n  cifs: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ocfs2: remove unnecessary dentry_unhash on rmdir/rename_dir\n  exofs: remove unnecessary dentry_unhash on rmdir/rename_dir\n  nfs: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ext2: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ext3: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ext4: remove unnecessary dentry_unhash on rmdir/rename_dir\n  btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir\n  ceph: remove unnecessary dentry_unhash calls\n  vfs: clean up vfs_rename_other\n  vfs: clean up vfs_rename_dir\n  vfs: clean up vfs_rmdir\n  vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems\n  libfs: drop unneeded dentry_unhash\n  vfs: update dentry_unhash() comment\n  vfs: push dentry_unhash on rename_dir into file systems\n  vfs: push dentry_unhash on rmdir into file systems\n  vfs: remove dget() from dentry_unhash()\n  vfs: dentry_unhash immediately prior to rmdir\n  vfs: Block mmapped writes while the fs is frozen\n  ...\n"
    },
    {
      "commit": "e4eaac06bcccb2a70bca6a2de9871882dce2aa14",
      "tree": "ca6736d96294cd6e65a1c3055718bfd5adc7336e",
      "parents": [
        "79bf7c732b5ff75b96022ed9d29181afd3d2509c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:07 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:48 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rename_dir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nrename method (except gfs2 and xfs) so that it can be dealt with on a\nper-fs basis.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79bf7c732b5ff75b96022ed9d29181afd3d2509c",
      "tree": "74b8cc690f9a37fff02d0685464e1c695a25ef94",
      "parents": [
        "64252c75a2196a0cf1e0d3777143ecfe0e3ae650"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:06 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:47 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rmdir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nfs rmdir method (except gfs2 and xfs) so it can be dealt with on a per-fs\nbasis.\n\nThis does not change behavior for any in-tree file systems.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5fc7b14177b1a1c2f2511aed62a4ca870d0332e7",
      "tree": "f64f2b0f424e7506dd6bb07c133348a9796b2212",
      "parents": [
        "aa405b1f4238401616e7d98620170b424b2dbefc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 12:56:51 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:57 2011 +0900"
      },
      "message": "nilfs2: use mark_buffer_dirty to mark btnode or meta data dirty\n\nThis replaces nilfs_mdt_mark_buffer_dirty and nilfs_btnode_mark_dirty\nmacros with mark_buffer_dirty and gets rid of nilfs_mark_buffer_dirty,\nan own mark buffer dirty function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "aa405b1f4238401616e7d98620170b424b2dbefc",
      "tree": "c42986a31c3383490d010ae55a97c37f5095220c",
      "parents": [
        "0ef28f9aec4dccfba33cef74412f601c1b48b658"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 12:56:51 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:57 2011 +0900"
      },
      "message": "nilfs2: always set back pointer to host inode in mapping-\u003ehost\n\nIn the current nilfs, page cache for btree nodes and meta data files\ndo not set a valid back pointer to the host inode in mapping-\u003ehost.\n\nThis will change it so that every address space in nilfs uses\nmapping-\u003ehost to hold its host inode.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "0ef28f9aec4dccfba33cef74412f601c1b48b658",
      "tree": "12018cde66a20b8e8804c11296ac19a3aec59fea",
      "parents": [
        "0cc1283881d3fcc9011c713e067795ccec322ae7"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 12:56:51 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:56 2011 +0900"
      },
      "message": "nilfs2: get rid of NILFS_I_NILFS\n\nThis replaces all references of NILFS_I_NILFS(inode)-\u003ens_bdev with\ninode-\u003ei_sb-\u003es_bdev and unfolds remaining uses of NILFS_I_NILFS inline\nfunction.\n\nBefore 2.6.37, referring to a nilfs object from inodes needed a\nconditional judgement, and NILFS_I_NILFS was helpful to simplify it.\nBut now we can simply do it by going through a super block instance\nlike inode-\u003ei_sb-\u003es_fs_info.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "0cc1283881d3fcc9011c713e067795ccec322ae7",
      "tree": "3d4c314f98b3fdcf2a7d2309e4dc468aa0d98ec4",
      "parents": [
        "293ce0ed8c2d22ff044e6e9fa7b1d4be425d189b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 12:56:51 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:56 2011 +0900"
      },
      "message": "nilfs2: use list_first_entry\n\nThis uses list_first_entry macro instead of list_entry if it\u0027s used to\nget the first entry.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "293ce0ed8c2d22ff044e6e9fa7b1d4be425d189b",
      "tree": "182afc8ba9d53fe93049968e43bea74363c58fac",
      "parents": [
        "4e33f9eab07e985282fece4121066c2db1d332ed"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 12:56:51 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:56 2011 +0900"
      },
      "message": "nilfs2: use empty_aops for gc-inodes\n\nApplies empty_aops for address space operations of gc-inodes.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4e33f9eab07e985282fece4121066c2db1d332ed",
      "tree": "08161cabc013f0543d65d9c9ed63689f9f68803d",
      "parents": [
        "78eb64c2479e0f408b725c3c8e1cdf557857af48"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 01:23:58 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:46 2011 +0900"
      },
      "message": "nilfs2: implement resize ioctl\n\nThis adds resize ioctl which makes online resize possible.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "78eb64c2479e0f408b725c3c8e1cdf557857af48",
      "tree": "0aaee16c95e7a1a6ca4b1c7136bebf9dcea48a1b",
      "parents": [
        "cfb0a4bfd8736418cbe5cbc115cabc84b527111e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 01:23:58 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:45 2011 +0900"
      },
      "message": "nilfs2: add truncation routine of segment usage file\n\nWhen shrinking the filesystem, segments to be truncated must be test\nif they are busy or not, and unneeded sufile block should be deleted.\nThis adds routines for the truncation.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "cfb0a4bfd8736418cbe5cbc115cabc84b527111e",
      "tree": "9faf66ad535fea01e19bc3f7bf59fe8fd75d8082",
      "parents": [
        "619205da5b567504310daf829dede1187fa29bbc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 01:23:57 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:45 2011 +0900"
      },
      "message": "nilfs2: add routine to move secondary super block\n\nAfter resizing the filesystem, the secondary super block must be moved\nto a new location.  This adds a helper function for this.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "619205da5b567504310daf829dede1187fa29bbc",
      "tree": "cd672bb647ff22c711d93437fc53821852f27eba",
      "parents": [
        "56eb55388580ebd51f3bbd9af40ebb56849356af"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu May 05 01:23:57 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:45 2011 +0900"
      },
      "message": "nilfs2: add ioctl which limits range of segment to be allocated\n\nThis adds a new ioctl command which limits range of segment to be\nallocated.  This is intended to gather data whithin a range of the\npartition before shrinking the filesystem, or to control new log\nlocation for some purpose.\n\nIf a range is specified by the ioctl, segment allocator of nilfs tries\nto allocate new segments from the range unless no free segments are\navailable there.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "56eb55388580ebd51f3bbd9af40ebb56849356af",
      "tree": "7d1ed80fa05150c40a75d5755981c8d949ae634b",
      "parents": [
        "6c6de1aa65189c37cc3c9af78da756c06a99899b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Apr 30 18:56:12 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:45 2011 +0900"
      },
      "message": "nilfs2: zero fill unused portion of super root block\n\nThe super root block is newly-allocated each time it is written back\nto disk, so unused portion of the block should be cleared.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "6c6de1aa65189c37cc3c9af78da756c06a99899b",
      "tree": "13f6d4a90d81357d581b80b8e400bd0b53b0a3e7",
      "parents": [
        "1cb2d38cb3e59d58e8321a0592e84b5761afb063"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Apr 30 18:56:12 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:44 2011 +0900"
      },
      "message": "nilfs2: super root size should change depending on inode size\n\nThe size of super root structure depends on inode size, so\nNILFS_SR_BYTES macro should be a function of the inode size.  This\nfixes the issue.\n\nEven though a different size value will be written for a possible\nfuture filesystem with extended inode, but fortunately this does not\nbreak disk format compatibility.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "1cb2d38cb3e59d58e8321a0592e84b5761afb063",
      "tree": "151e7ffccd72f786a3da511b0f23906961835a22",
      "parents": [
        "eaae0f37d83bed7ccd0c6d0f52de1de44f92aecc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Apr 04 12:53:28 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:44 2011 +0900"
      },
      "message": "nilfs2: get rid of private page allocator\n\nPreviously, nilfs was cloning pages for mmapped region to freeze their\ndata and ensure consistency of checksum during writeback cycles.  A\nprivate page allocator was used for this page cloning.  But, we no\nlonger need to do that since clear_page_dirty_for_io function sets up\npte so that vm_ops-\u003epage_mkwrite function is called right before the\nmmapped pages are modified and nilfs_page_mkwrite function can safely\nwait for the pages to be written back to disk.\n\nSo, this stops making a copy of mmapped pages during writeback, and\neliminates the private page allocation and deallocation functions from\nnilfs.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "eaae0f37d83bed7ccd0c6d0f52de1de44f92aecc",
      "tree": "15f643a13b7d80ab9406ac84c2430b151983a531",
      "parents": [
        "349dbc3669d043e656f3ed48c7bfe073ca1c6326"
      ],
      "author": {
        "name": "Nicolas Kaiser",
        "email": "nikai@nikai.net",
        "time": "Sat Mar 19 16:45:30 2011 +0100"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:21:44 2011 +0900"
      },
      "message": "nilfs2: merge list_del()/list_add_tail() to list_move_tail()\n\nMerge list_del() + list_add_tail() to list_move_tail().\n\nSigned-off-by: Nicolas Kaiser \u003cnikai@nikai.net\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "349dbc3669d043e656f3ed48c7bfe073ca1c6326",
      "tree": "aaa278f89f4425332dccc37c18f44603f042eaf1",
      "parents": [
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 20:59:34 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 10 22:19:50 2011 +0900"
      },
      "message": "nilfs2: fix infinite loop in nilfs_palloc_freev function\n\nAfter having applied commit 9954e7af14868b8b (\"nilfs2: add free\nentries count only if clear bit operation succeeded\"), a free routine\nof nilfs came to fall into an infinite loop, outputting the same\nmessage endlessly:\n\n nilfs_palloc_freev: entry number 29497 already freed\n nilfs_palloc_freev: entry number 29497 already freed\n nilfs_palloc_freev: entry number 29497 already freed\n nilfs_palloc_freev: entry number 29497 already freed\n nilfs_palloc_freev: entry number 29497 already freed ...\n\nThat patch broke the routine so that a loop counter is never updated\nin an abnormal state.  This fixes the regression.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "7dcda1c96d7c643101d4a05579ef4512a4baa7ef",
      "tree": "62051d63c47a3df7381cdc294815e79da5ebdc93",
      "parents": [
        "929e27252e8ca69363f81f26af5eaba62cb4c572"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:51:48 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:51:48 2011 +0200"
      },
      "message": "fs: export empty_aops\n\nWith the -\u003esync_page() hook gone, we have a few users that\nadd their own static address_space_operations without any\nfunctions defined.\n\nfs/inode.c already has an empty_aops that it uses for init\npurposes. Lets export that and use it in the places where\nan otherwise empty aops was defined.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "af71dda0b8e667d03eec21d25f90265eec5efea1",
      "tree": "fe070073c86352f4ffd30381b8f7ba3a158d4619",
      "parents": [
        "d611b22f1a5ddd0823e9d6a30bac91219f800e41"
      ],
      "author": {
        "name": "Nicolas Kaiser",
        "email": "nikai@nikai.net",
        "time": "Sat Mar 19 16:47:54 2011 +0100"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 17:39:54 2011 +0900"
      },
      "message": "nilfs2: fix whitespace coding style issues\n\nFixes whitespace coding style issues.\n\nSigned-off-by: Nicolas Kaiser \u003cnikai@nikai.net\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d611b22f1a5ddd0823e9d6a30bac91219f800e41",
      "tree": "a0896c5007c47662dd52158e76972cac7a682d4c",
      "parents": [
        "34094537943113467faee98fe67c8a3d3f9a0a8b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 11:49:20 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 17:39:25 2011 +0900"
      },
      "message": "nilfs2: fix oops due to a bad aops initialization\n\nNilfs in 2.6.39-rc1 hit the following oops:\n\n BUG: unable to handle kernel NULL pointer dereference at 0000000000000048\n IP: [\u003cffffffff810ac235\u003e] try_to_release_page+0x2a/0x3d\n PGD 234cb6067 PUD 234c72067 PMD 0\n Oops: 0000 [#1] SMP\n \u003csnip\u003e\n Process truncate (pid: 10995, threadinfo ffff8802353c2000, task ffff880234cfa000)\n Stack:\n  ffff8802333c77b8 ffffffff810b64b0 0000000000003802 ffffffffa0052cca\n  0000000000000000 ffff8802353c3b58 0000000000000000 ffff8802353c3b58\n  0000000000000001 0000000000000000 ffffea0007b92308 ffffea0007b92308\n Call Trace:\n  [\u003cffffffff810b64b0\u003e] ? invalidate_inode_pages2_range+0x15f/0x273\n  [\u003cffffffffa0052cca\u003e] ? nilfs_palloc_get_block+0x2d/0xaf [nilfs2]\n  [\u003cffffffff810589e7\u003e] ? bit_waitqueue+0x14/0xa1\n  [\u003cffffffff81058ab1\u003e] ? wake_up_bit+0x10/0x20\n  [\u003cffffffffa00433fd\u003e] ? nilfs_forget_buffer+0x66/0x7a [nilfs2]\n  [\u003cffffffffa00467b8\u003e] ? nilfs_btree_concat_left+0x5c/0x77 [nilfs2]\n  [\u003cffffffffa00471fc\u003e] ? nilfs_btree_delete+0x395/0x3cf [nilfs2]\n  [\u003cffffffffa00449a3\u003e] ? nilfs_bmap_do_delete+0x6e/0x79 [nilfs2]\n  [\u003cffffffffa0045845\u003e] ? nilfs_btree_last_key+0x14b/0x15e [nilfs2]\n  [\u003cffffffffa00449dd\u003e] ? nilfs_bmap_truncate+0x2f/0x83 [nilfs2]\n  [\u003cffffffffa0044ab2\u003e] ? nilfs_bmap_last_key+0x35/0x62 [nilfs2]\n  [\u003cffffffffa003e99b\u003e] ? nilfs_truncate_bmap+0x6b/0xc7 [nilfs2]\n  [\u003cffffffffa003ee4a\u003e] ? nilfs_truncate+0x79/0xe4 [nilfs2]\n  [\u003cffffffff810b6c00\u003e] ? vmtruncate+0x33/0x3b\n  [\u003cffffffffa003e8f1\u003e] ? nilfs_setattr+0x4d/0x8c [nilfs2]\n  [\u003cffffffff81026106\u003e] ? do_page_fault+0x31b/0x356\n  [\u003cffffffff810f9d61\u003e] ? notify_change+0x17d/0x262\n  [\u003cffffffff810e5046\u003e] ? do_truncate+0x65/0x80\n  [\u003cffffffff810e52af\u003e] ? sys_ftruncate+0xf1/0xf6\n  [\u003cffffffff8132c012\u003e] ? system_call_fastpath+0x16/0x1b\n Code: c3 48 83 ec 08 48 8b 17 48 8b 47 18 80 e2 01 75 04 0f 0b eb fe 48 8b 17 80 e6 20 74 05 31 c0 41 59 c3 48 85 c0 74 11 48 8b 40 58\n  8b 40 48 48 85 c0 74 04 41 58 ff e0 59 e9 b1 b5 05 00 41 54\n RIP  [\u003cffffffff810ac235\u003e] try_to_release_page+0x2a/0x3d\n  RSP \u003cffff8802353c3b08\u003e\n CR2: 0000000000000048\n\nThis oops was brought in by the change \"block: remove per-queue\nplugging\" (commit: 7eaceaccab5f40bb).  It initializes mapping-\u003ea_ops\nwith a NULL pointer for some pages in nilfs (e.g. btree node pages),\nbut mm code doesn\u0027t NULL pointer checks against mapping-\u003ea_ops. (the\ncheck is done for each callback function)\n\nThis corrects the aops initialization and fixes the oops.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "34094537943113467faee98fe67c8a3d3f9a0a8b",
      "tree": "b848b18c90bfd29655e5806e81c54d02946c980d",
      "parents": [
        "0ce790e7d736cedc563e1fb4e998babf5a4dbc3d"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Mar 27 22:50:49 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 30 10:45:31 2011 +0900"
      },
      "message": "nilfs2: fix data loss in mmap page write for hole blocks\n\nFrom the result of a function test of mmap, mmap write to shared pages\nturned out to be broken for hole blocks.  It doesn\u0027t write out filled\nblocks and the data will be lost after umount.  This is due to a bug\nthat the target file is not queued for log writer when filling hole\nblocks.\n\nAlso, nilfs_page_mkwrite function exits normal code path even after\nsuccessfully filled hole blocks due to a change of block_page_mkwrite\nfunction; just after nilfs was merged into the mainline,\nblock_page_mkwrite() started to return VM_FAULT_LOCKED instead of zero\nby the patch \"mm: close page_mkwrite races\" (commit:\nb827e496c893de0c).  The current nilfs_page_mkwrite() is not handling\nthis value properly.\n\nThis corrects nilfs_page_mkwrite() and will resolve the data loss\nproblem in mmap write.\n\n[This should be applied to every kernel since 2.6.30 but a fix is\n needed for 2.6.37 and prior kernels]\n\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.38]\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a49ebbabb084d345991b72818a119616431416f2",
      "tree": "9e89ac864c70ccd83c9f83df5c94d7466c28b394",
      "parents": [
        "c4354d0d6812ad6729ac33d3c8bc64585cfdb890"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:18 2011 -0700"
      },
      "message": "nilfs2: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "e3154e9748f0f337e9f6ff9dc7d7bf24d426bd1a",
      "tree": "ac2a3f3dca6189b8a608571c49da66386fd1bdec",
      "parents": [
        "f7545144c2e3d280139260df934043e0a6ccce6f"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:54:26 2011 +0900"
      },
      "message": "nilfs2: get rid of nilfs_sb_info structure\n\nThis directly uses sb-\u003es_fs_info to keep a nilfs filesystem object and\nfully removes the intermediate nilfs_sb_info structure.  With this\nchange, the hierarchy of on-memory structures of nilfs will be\nsimplified as follows:\n\nBefore:\n  super_block\n       -\u003e nilfs_sb_info\n             -\u003e the_nilfs\n                   -\u003e cptree --+-\u003e nilfs_root (current file system)\n                               +-\u003e nilfs_root (snapshot A)\n                               +-\u003e nilfs_root (snapshot B)\n                               :\n             -\u003e nilfs_sc_info (log writer structure)\nAfter:\n  super_block\n       -\u003e the_nilfs\n             -\u003e cptree --+-\u003e nilfs_root (current file system)\n                         +-\u003e nilfs_root (snapshot A)\n                         +-\u003e nilfs_root (snapshot B)\n                         :\n             -\u003e nilfs_sc_info (log writer structure)\n\nThe reason why we didn\u0027t design so from the beginning is because the\ninitial shape also differed from the above.  The early hierachy was\ncomposed of \"per-mount-point\" super_block -\u003e nilfs_sb_info pairs and a\nshared nilfs object.  On the kernel 2.6.37, it was changed to the\ncurrent shape in order to unify super block instances into one per\ndevice, and this cleanup became applicable as the result.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "f7545144c2e3d280139260df934043e0a6ccce6f",
      "tree": "4e0930f2d4c45a71e300c7ac45c6e55a6d1c6675",
      "parents": [
        "d96bbfa28aa7a1d5a5bf549026a594d7a273c5d7"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "message": "nilfs2: use sb instance instead of nilfs_sb_info struct\n\nThis replaces sbi uses with direct reference to sb instance.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d96bbfa28aa7a1d5a5bf549026a594d7a273c5d7",
      "tree": "da846510626ba9d2182790201db49aaba35dbdf3",
      "parents": [
        "3fd3fe5aeaa171a5638d2bb54a1a170eab7b7cdc"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "message": "nilfs2: get rid of sc_sbi back pointer\n\nRemoves sci-\u003esc_sbi which is a back pointer to nilfs_sb_info struct\nfrom log writer object (nilfs_sc_info).\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "3fd3fe5aeaa171a5638d2bb54a1a170eab7b7cdc",
      "tree": "3feb95a18e045883b0af27da09be10f5e011776f",
      "parents": [
        "9b1fc4e4973469dd3fab27ba5d78eca1cd5c13fe"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "message": "nilfs2: move log writer onto nilfs object\n\nLog writer is held by the nilfs_sb_info structure.  This moves it into\nnilfs object and replaces all uses of NILFS_SC() accessor.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9b1fc4e4973469dd3fab27ba5d78eca1cd5c13fe",
      "tree": "0f51872d41cbc1e43db2fafab0074c107dfce7e7",
      "parents": [
        "693dd321222f03b17668f88ceb0f7d518900191e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:08 2011 +0900"
      },
      "message": "nilfs2: move next generation counter into nilfs object\n\nMoves s_next_generation counter and a spinlock protecting it to nilfs\nobject from nilfs_sb_info structure.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "693dd321222f03b17668f88ceb0f7d518900191e",
      "tree": "b0088ee73f3499e0b3301fc5dcf44c677cfd092d",
      "parents": [
        "574e6c3145c5754141361c695b58736c294a8ae1"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "message": "nilfs2: move s_inode_lock and s_dirty_files into nilfs object\n\nMoves s_inode_lock spinlock and s_dirty_files list to nilfs object\nfrom nilfs_sb_info structure.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "574e6c3145c5754141361c695b58736c294a8ae1",
      "tree": "42fdaf8a107b8a42a1ea239675ac9461e97d0990",
      "parents": [
        "3b2ce58b0f3c1633750529713be0e467282abd78"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "message": "nilfs2: move parameters on nilfs_sb_info into nilfs object\n\nThis moves four parameter variables on nilfs_sb_info s_resuid,\ns_resgid, s_interval and s_watermark to the nilfs object.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "3b2ce58b0f3c1633750529713be0e467282abd78",
      "tree": "48c0111adadf00e67933fb5d9883296754fca6ce",
      "parents": [
        "be667377a8b8cd73e1b923f33fb5be4034aa4bfa"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 09 11:05:07 2011 +0900"
      },
      "message": "nilfs2: move mount options to nilfs object\n\nThis moves mount_opt local variable to nilfs object from nilfs_sb_info\nstruct.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "be667377a8b8cd73e1b923f33fb5be4034aa4bfa",
      "tree": "8baee2f9155728331eeade85ec93547402f4e606",
      "parents": [
        "ae191838b0251d73b9d0a7254c6938406f5f6320"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Mar 05 00:19:32 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:31 2011 +0900"
      },
      "message": "nilfs2: record used amount of each checkpoint in checkpoint list\n\nThis records the number of used blocks per checkpoint in each\ncheckpoint entry of cpfile.  Even though userland tools can get the\nblock count via nilfs_get_cpinfo ioctl, it was not updated by the\nnilfs2 kernel code.  This fixes the issue and makes it available for\nuserland tools to calculate used amount per checkpoint.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Jiro SEKIBA \u003cjir@unicus.jp\u003e\n"
    },
    {
      "commit": "ae191838b0251d73b9d0a7254c6938406f5f6320",
      "tree": "5f2b08f5ab421c3644a988acc5ec7a1c65a631bd",
      "parents": [
        "4138ec23820012009aecc2b02856c62872dd3c34"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Feb 04 01:19:38 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:30 2011 +0900"
      },
      "message": "nilfs2: optimize rec_len functions\n\nThis is a similar change to those in ext2/ext3 codebase (commit\n40a063f6691ce937 and a4ae3094869f18e2, respectively).\n\nThe addition of 64k block capability in the rec_len_from_disk and\nrec_len_to_disk functions added a bit of math overhead which slows\ndown file create workloads needlessly when the architecture cannot\neven support 64k blocks.  This will cut the corner.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "4138ec23820012009aecc2b02856c62872dd3c34",
      "tree": "f222844308880d629b14339c384729f6e089fcf0",
      "parents": [
        "828b1c50ae11e6dda68f8dfefe43b74c7182b157"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 24 00:28:22 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:30 2011 +0900"
      },
      "message": "nilfs2: append blocksize info to warnings during loading super blocks\n\nAt present, the same warning message can be output twice when nilfs\ndetected a problem on super blocks:\n\n NILFS warning: broken superblock. using spare superblock.\n NILFS warning: broken superblock. using spare superblock.\n ...\n\nThis is because these super blocks are reloaded with the block size\nwritten in a super block if it differs from the first block size, but\nthis repetition looks somewhat confusing.  So, we hint at what is\ngoing on by appending block size information to those messages.\n\nReported-by: Wakko Warner \u003cwakko@animx.eu.org\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "828b1c50ae11e6dda68f8dfefe43b74c7182b157",
      "tree": "9c258f65382865edb71e06bf11007071fb058806",
      "parents": [
        "cde98f0f84ccff78e87235cb7b551747d6ad00de"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Feb 03 21:26:17 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:30 2011 +0900"
      },
      "message": "nilfs2: add compat ioctl\n\nThe current FS_IOC_GETFLAGS/SETFLAGS/GETVERSION will fail if\napplication is 32 bit and kernel is 64 bit.\n\nThis issue is avoidable by adding compat_ioctl method.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "cde98f0f84ccff78e87235cb7b551747d6ad00de",
      "tree": "b5cb657b0e0360adf41437819d43a0c9c75912f8",
      "parents": [
        "b253a3e4f2b8eed69b804952ef926df0ac788595"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Jan 20 02:09:53 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:30 2011 +0900"
      },
      "message": "nilfs2: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION\n\nAdd support for the standard attributes set via chattr and read via\nlsattr.  These attributes are already in the flags value in the nilfs2\ninode, but currently we don\u0027t have any ioctl commands that expose them\nto the userland.\n\nCollaterally, this adds the FS_IOC_GETVERSION ioctl for getting\ni_generation, which allows users to list the file\u0027s generation number\nwith \"lsattr -v\".\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b253a3e4f2b8eed69b804952ef926df0ac788595",
      "tree": "fc111c5401f15cd5421fc73372d3f4589716af4f",
      "parents": [
        "32f4aeb31583a85c1e9a5d6d485055c090cebbfb"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Jan 20 02:09:53 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:29 2011 +0900"
      },
      "message": "nilfs2: tighten restrictions on inode flags\n\nNilfs has few rectrictions on which flags may be set on which inodes\nlike ext2/3/4 filesystems used to be.  Specifically DIRSYNC may only\nbe set on directories and IMMUTABLE and APPEND may not be set on\nlinks.  Tighten that to disallow TOPDIR being set on non-directories\nand only NODUMP and NOATIME to be set on non-regular file,\nnon-directories.\n\nThis introduces a flags masking function like those of extN and uses\nit during inode creation.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "32f4aeb31583a85c1e9a5d6d485055c090cebbfb",
      "tree": "b0b0d53b9f12ea00d77d1b3f65a5c03be43ae026",
      "parents": [
        "f0c9f242f947a37675a883deca7f722cac935b0e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Jan 20 02:09:52 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:29 2011 +0900"
      },
      "message": "nilfs2: mark S_NOATIME on inodes only if NOATIME attribute is set\n\nAt present, nilfs marks S_NOATIME flag on all inodes.  This restricts\nnilfs_set_inode_flags function so that it marks S_NOATIME only if a\ngiven inode has an FS_NOATIME_FL flag.\n\nAlthough nilfs does not support atime yet, touch_atime() still safely\nreturns on IS_NOATIME check since MS_NOATIME is always set on sb.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "f0c9f242f947a37675a883deca7f722cac935b0e",
      "tree": "c0aad002f438b6d34123056d075da23792864327",
      "parents": [
        "9954e7af14868b8b79e76b7b88daaf0b3866db33"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Jan 20 02:09:52 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:29 2011 +0900"
      },
      "message": "nilfs2: use common file attribute macros\n\nReplaces uses of own inode flags (i.e. NILFS_SECRM_FL, NILFS_UNRM_FL,\nNILFS_COMPR_FL, and so forth) with common inode flags, and removes the\nown flag declarations.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "9954e7af14868b8b79e76b7b88daaf0b3866db33",
      "tree": "562b473d974ee6715cff8732e518a9e187c50d38",
      "parents": [
        "25b18d39cca207f8559af1aac00313deda2d652e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Feb 23 02:26:17 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:04 2011 +0900"
      },
      "message": "nilfs2: add free entries count only if clear bit operation succeeded\n\nThree functions of the current persistent object allocator,\nnilfs_palloc_commit_free_entry, nilfs_palloc_abort_alloc_entry, and\nnilfs_palloc_freev functions unconditionally add a counter after doing\nclear bit operation on a bitmap block.\n\nIf the clear bit operation overlapped, the counter will not add up.\nThis fixes the issue by making the counter operations conditional.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "25b18d39cca207f8559af1aac00313deda2d652e",
      "tree": "70815c9799a82b53785d9daf75e598f47b84243c",
      "parents": [
        "a5abba989deceb731047425812d268daf7536575"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Feb 11 15:23:27 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Mar 08 14:58:04 2011 +0900"
      },
      "message": "nilfs2: decrement inodes count only if raw inode was successfully deleted\n\nThis fixes the issue that inodes count will not add up after removal\nof raw inodes fails.  Hence, this prevents possible under flow of the\ninodes count.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "8336026942fdf6a96a45057a2fe6d7f7946979d5",
      "tree": "b831d361f5865a86ec645dccd87d74922099ac22",
      "parents": [
        "4c7fd114c65830cb052b6f3d0ab5b11626e64d5d",
        "69102e9b4b61f56a26717659ec2e572a6b18458d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 15:37:59 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 15:37:59 2011 -0800"
      },
      "message": "Merge branch \u0027i_nlink\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027i_nlink\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  hfs: fix rename() over non-empty directory\n  udf: fix i_nlink limit\n  fix reiserfs mkdir() breakage\n  exofs: i_nlink races in rename()\n  nilfs2: i_nlink races in rename()\n  minix: i_nlink races in rename()\n  ufs: i_nlink races in rename()\n  sysv: i_nlink races in rename()\n"
    },
    {
      "commit": "30eb43d31478f0fca28423623f3ec6af13f845fa",
      "tree": "7bcf4777cd9c4da6c5c1f9f44cb59bed73e9c64b",
      "parents": [
        "6f88049caf56022c773272e03ddfa8cf79867059"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 12:01:13 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:17 2011 -0500"
      },
      "message": "nilfs2: i_nlink races in rename()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "72746ac643928f6c3113b5aa783d8ea1b13949d2",
      "tree": "c1d151eae5e963dd3f57079e0287c2259257bc29",
      "parents": [
        "dd9c1549edef02290edced639f67b54a25abbe0e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Feb 28 13:41:11 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 02 09:55:18 2011 +0900"
      },
      "message": "nilfs2: fix regression that i-flag is not set on changeless checkpoints\n\nAccording to the report from Jiro SEKIBA titled \"regression in\n2.6.37?\"  (Message-Id: \u003c8739n8vs1f.wl%jir@sekiba.com\u003e), on 2.6.37 and\nlater kernels, lscp command no longer displays \"i\" flag on checkpoints\nthat snapshot operations or garbage collection created.\n\nThis is a regression of nilfs2 checkpointing function, and it\u0027s\ncritical since it broke behavior of a part of nilfs2 applications.\nFor instance, snapshot manager of TimeBrowse gets to create\nmeaningless snapshots continuously; snapshot creation triggers another\ncheckpoint, but applications cannot distinguish whether the new\ncheckpoint contains meaningful changes or not without the i-flag.\n\nThis patch fixes the regression and brings that application behavior\nback to normal.\n\nReported-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e  [2.6.37]\n"
    },
    {
      "commit": "2aa15890f3c191326678f1bd68af61ec6b8753ec",
      "tree": "347f5fdcd0678b12be92f266cd2a5e7a74749403",
      "parents": [
        "78794b2cdeac37ac1fd950fc9c4454b56d88ac03"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 23 13:49:47 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 23 19:52:52 2011 -0800"
      },
      "message": "mm: prevent concurrent unmap_mapping_range() on the same inode\n\nMichael Leun reported that running parallel opens on a fuse filesystem\ncan trigger a \"kernel BUG at mm/truncate.c:475\"\n\nGurudas Pai reported the same bug on NFS.\n\nThe reason is, unmap_mapping_range() is not prepared for more than\none concurrent invocation per inode.  For example:\n\n  thread1: going through a big range, stops in the middle of a vma and\n     stores the restart address in vm_truncate_count.\n\n  thread2: comes in with a small (e.g. single page) unmap request on\n     the same vma, somewhere before restart_address, finds that the\n     vma was already unmapped up to the restart address and happily\n     returns without doing anything.\n\nAnother scenario would be two big unmap requests, both having to\nrestart the unmapping and each one setting vm_truncate_count to its\nown value.  This could go on forever without any of them being able to\nfinish.\n\nTruncate and hole punching already serialize with i_mutex.  Other\ncallers of unmap_mapping_range() do not, and it\u0027s difficult to get\ni_mutex protection for all callers.  In particular -\u003ed_revalidate(),\nwhich calls invalidate_inode_pages2_range() in fuse, may be called\nwith or without i_mutex.\n\nThis patch adds a new mutex to \u0027struct address_space\u0027 to prevent\nrunning multiple concurrent unmap_mapping_range() on the same mapping.\n\n[ We\u0027ll hopefully get rid of all this with the upcoming mm\n  preemptibility series by Peter Zijlstra, the \"mm: Remove i_mmap_mutex\n  lockbreak\" patch in particular.  But that is for 2.6.39 ]\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nReported-by: Michael Leun \u003clkml20101129@newton.leun.net\u003e\nReported-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nTested-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ca7a5b9ac5d301845dd6382ff25a699b6263a81",
      "tree": "52d0ab285bd2dfabbba164a9df72468fdd92d29b",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jan 21 16:40:31 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sat Jan 22 15:22:36 2011 +0900"
      },
      "message": "nilfs2: fix crash after one superblock became unavailable\n\nFixes the following kernel oops in nilfs_setup_super() which could\narise if one of two super-blocks is unavailable.\n\n\u003e BUG: unable to handle kernel NULL pointer dereference at   (null)\n\u003e Pid: 3529, comm: mount.nilfs2 Not tainted 2.6.37 #1 /\n\u003e EIP: 0060:[\u003cc03196bc\u003e] EFLAGS: 00010202 CPU: 3\n\u003e EIP is at memcpy+0xc/0x1b\n\u003e Call Trace:\n\u003e  [\u003cf953720e\u003e] ? nilfs_setup_super+0x6c/0xa5 [nilfs2]\n\u003e  [\u003cf95369e9\u003e] ? nilfs_get_root_dentry+0x81/0xcb [nilfs2]\n\u003e  [\u003cf9537a08\u003e] ? nilfs_mount+0x4f9/0x62c [nilfs2]\n\u003e  [\u003cc02745cf\u003e] ? kstrdup+0x36/0x3f\n\u003e  [\u003cf953750f\u003e] ? nilfs_mount+0x0/0x62c [nilfs2]\n\u003e  [\u003cc0293940\u003e] ? vfs_kern_mount+0x4d/0x12c\n\u003e  [\u003cc02a5100\u003e] ? get_fs_type+0x76/0x8f\n\u003e  [\u003cc0293a68\u003e] ? do_kern_mount+0x33/0xbf\n\u003e  [\u003cc02a784a\u003e] ? do_mount+0x2ed/0x714\n\u003e  [\u003cc02a6171\u003e] ? copy_mount_options+0x28/0xfc\n\u003e  [\u003cc02a7ce3\u003e] ? sys_mount+0x72/0xaf\n\u003e  [\u003cc0473085\u003e] ? syscall_call+0x7/0xb\n\nReported-by: Wakko Warner \u003cwakko@animx.eu.org\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Wakko Warner \u003cwakko@animx.eu.org\u003e\nCc: stable \u003cstable@kernel.org\u003e [2.6.37, 2.6.36]\nLKML-Reference: \u003c20110121024918.GA29598@animx.eu.org\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "57cc7215b70856dc6bae8e55b00ecd7b1d7429b1",
      "tree": "f6dedefd41e6745a9b801166b99af7d830e41ef2",
      "parents": [
        "37721e1b0cf98cb65895f234d8c500d270546529"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jan 10 08:18:25 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:51:44 2011 -0800"
      },
      "message": "headers: kobject.h redux\n\nRemove kobject.h from files which don\u0027t need it, notably,\nsched.h and fs.h.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "365e215ce1f154e288ff0f7c9acbdf5421f57949",
      "tree": "864a8cadeb2c373a0fbbbd90464cf745ac7616f7",
      "parents": [
        "bcbc8c648d6cc88f771435d8031c1a13e00945ed"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Dec 27 00:07:30 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:38:39 2011 +0900"
      },
      "message": "nilfs2: unfold nilfs_dat_inode function\n\nnilfs_dat_inode function was a wrapper to switch between normal dat\ninode and gcdat, a clone of the dat inode for garbage collection.\n\nThis function got obsolete when the gcdat inode was removed, and now\nwe can access the dat inode directly from a nilfs object.  So, we will\nunfold the wrapper and remove it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "bcbc8c648d6cc88f771435d8031c1a13e00945ed",
      "tree": "f74a2e7fffb5669823066f8fb875fff535ab8529",
      "parents": [
        "06df0f999247a3153c3ec284c7ada36ef785eb97"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Dec 27 00:05:49 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:37:54 2011 +0900"
      },
      "message": "nilfs2: do not pass sbi to functions which can get it from inode\n\nThis removes argument for passing nilfs_sb_info structure from\nnilfs_set_file_dirty and nilfs_load_inode_block functions.  We can get\na pointer to the structure from inodes.\n\n[Stephen Rothwell \u003csfr@canb.auug.org.au\u003e: fix conflict with commit\n b74c79e99389cd79b31fcc08f82c24e492e63c7e]\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "06df0f999247a3153c3ec284c7ada36ef785eb97",
      "tree": "28474b360eb4c21ce6ebe0efc460530fd99d923a",
      "parents": [
        "a7a8447edef2cfa9b28cc3892993d9fafb362671"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Dec 27 00:04:06 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:46 2011 +0900"
      },
      "message": "nilfs2: get rid of nilfs_mount_options structure\n\nOnly mount_opt member is used in the nilfs_mount_options structure,\nand we can simplify it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "a7a8447edef2cfa9b28cc3892993d9fafb362671",
      "tree": "85fc226757b9e2358e226f55271566c2d0c281e8",
      "parents": [
        "888da23c2f70ca2e9897b725322a6456285ee9c4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Dec 27 00:03:02 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:46 2011 +0900"
      },
      "message": "nilfs2: simplify nilfs_mdt_freeze_buffer\n\nnilfs_page_get_nth_block() function used in nilfs_mdt_freeze_buffer()\nalways returns a valid buffer head, so its validity check can be\nremoved.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "888da23c2f70ca2e9897b725322a6456285ee9c4",
      "tree": "c666ba1372743f68ba8d6b1f50f7298535bd09e5",
      "parents": [
        "ae53a0a2ce2a89f1aa824a5fc6d2099907cfb409"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Dec 27 00:01:28 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:46 2011 +0900"
      },
      "message": "nilfs2: get rid of loaded flag from nilfs object\n\nNILFS_LOADED flag of the nilfs object is not used now, so this will\nremove it.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "ae53a0a2ce2a89f1aa824a5fc6d2099907cfb409",
      "tree": "72294963d4d2b813b9ddb18b64a43810ef2d6ff6",
      "parents": [
        "622daaff0a8975fb5c5b95f24f3234550ba32e92"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Dec 26 23:30:02 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:46 2011 +0900"
      },
      "message": "nilfs2: fix a checkpatch error in page.c\n\nWill correct the following checkpatch error:\n\n ERROR: trailing whitespace\n #494: FILE: page.c:494:\n + $\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "622daaff0a8975fb5c5b95f24f3234550ba32e92",
      "tree": "5ae5de9044f962471fa2694654134f5b58f73ace",
      "parents": [
        "27e6c7a3ce29ae5fa5bec4ed5917f8508bfac120"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Dec 26 16:38:43 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:46 2011 +0900"
      },
      "message": "nilfs2: fiemap support\n\nThis adds fiemap to nilfs.  Two new functions, nilfs_fiemap and\nnilfs_find_uncommitted_extent are added.\n\nnilfs_fiemap() implements the fiemap inode operation, and\nnilfs_find_uncommitted_extent() helps to get a range of data blocks\nwhose physical location has not been determined.\n\nnilfs_fiemap() collects extent information by looping through\nnilfs_bmap_lookup_contig and nilfs_find_uncommitted_extent routines.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "27e6c7a3ce29ae5fa5bec4ed5917f8508bfac120",
      "tree": "958d82757bf23e426c7bc1035f76d986f09be535",
      "parents": [
        "e828949e5b42bfd234ee537cdb7c5e3a577958a3"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Dec 26 16:28:28 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:45 2011 +0900"
      },
      "message": "nilfs2: mark buffer heads as delayed until the data is written to disk\n\nNilfs does not allocate new blocks on disk until they are actually\nwritten to.  To implement fiemap, we need to deal with such blocks.\n\nTo allow successive fiemap patch to distinguish mapped but unallocated\nregions, this marks buffer heads of those new blocks as delayed and\nclears the flag after the blocks are written to disk.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "e828949e5b42bfd234ee537cdb7c5e3a577958a3",
      "tree": "c2e259a3020acdb943669fb01e5a7dc5598a6fe9",
      "parents": [
        "b004a5eb0babec7ef91558f73315ef49e5a1f285"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Nov 19 15:26:20 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:45 2011 +0900"
      },
      "message": "nilfs2: call nilfs_error inside bmap routines\n\nSome functions using nilfs bmap routines can wrongly return invalid\nargument error (i.e. -EINVAL) that bmap returns as an internal code\nfor btree corruption.\n\nThis fixes the issue by catching and converting the internal EINVAL to\nEIO and calling nilfs_error function inside bmap routines.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b004a5eb0babec7ef91558f73315ef49e5a1f285",
      "tree": "93683947103b7305889dd3d3bb3cb951a2c0409b",
      "parents": [
        "af1761f268ff2a58f2ea22e9b9de6359f7b2048e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Nov 09 16:35:21 2010 -0800"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jan 10 14:05:45 2011 +0900"
      },
      "message": "fs/nilfs2/super.c: Use printf extension %pV\n\nUsing %pV reduces the number of printk calls and\neliminates any possible message interleaving from\nother printk calls.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "947b10ae0aeda89fc066a7470fdba55f72b0b8fc",
      "tree": "93934dcf6b7709ed40e861d3b586f2c3f37f4151",
      "parents": [
        "b0c3844d8af6b9f3f18f31e1b0502fbefa2166be"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Dec 16 09:57:57 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Thu Dec 16 14:35:18 2010 +0900"
      },
      "message": "nilfs2: fix regression of garbage collection ioctl\n\nOn 2.6.37-rc1, garbage collection ioctl of nilfs was broken due to the\ncommit 263d90cefc7d82a0 (\"nilfs2: remove own inode hash used for GC\"),\nand leading to filesystem corruption.\n\nThe patch doesn\u0027t queue gc-inodes for log writer if they are reused\nthrough the vfs inode cache.  Here, gc-inode is the inode which\nbuffers blocks to be relocated on GC.  That patch queues gc-inodes in\nnilfs_init_gcinode() function, but this function is not called when\nthey don\u0027t have I_NEW flag.  Thus, some of live blocks are wrongly\noverrode without being moved to new logs.\n\nThis resolves the problem by moving the gc-inode queueing to an outer\nfunction to ensure it\u0027s done right.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "f6c26ec5085be805c9dc72d074ef5f504b9cd7df",
      "tree": "4b7e1439d62a409a4589a46ae71b6bf07ba57881",
      "parents": [
        "103cfcf522cefe00d8c322c6beac9a711acbf235"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 24 02:18:59 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Nov 24 12:51:48 2010 +0900"
      },
      "message": "nilfs2: fix typo in comment of nilfs_dat_move function\n\nFixes a typo: \"uncommited\" -\u003e \"uncommitted\".\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "103cfcf522cefe00d8c322c6beac9a711acbf235",
      "tree": "92199ed8ad67cd128f9899e644361a7c4504467a",
      "parents": [
        "3561d43fd289f590fdae672e5eb831b8d5cf0bf6"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Nov 23 09:26:02 2010 +0300"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue Nov 23 16:32:19 2010 +0900"
      },
      "message": "nilfs2: nilfs_iget_for_gc() returns ERR_PTR\n\nnilfs_iget_for_gc() returns an ERR_PTR() on failure and doesn\u0027t return\nNULL.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "d4d77629953eabd3c14f6fa5746f6b28babfc55f",
      "tree": "38cce0d4764ecb34a9f7f49332959780e28bb786",
      "parents": [
        "75f1dc0d076d1c1168f2115f1941ea627d38bd5a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "message": "block: clean up blkdev_get() wrappers and their users\n\nAfter recent blkdev_get() modifications, open_by_devnum() and\nopen_bdev_exclusive() are simple wrappers around blkdev_get().\nReplace them with blkdev_get_by_dev() and blkdev_get_by_path().\n\nblkdev_get_by_dev() is identical to open_by_devnum().\nblkdev_get_by_path() is slightly different in that it doesn\u0027t\nautomatically add %FMODE_EXCL to @mode.\n\nAll users are converted.  Most conversions are mechanical and don\u0027t\nintroduce any behavior difference.  There are several exceptions.\n\n* btrfs now sets FMODE_EXCL in btrfs_device-\u003emode, so there\u0027s no\n  reason to OR it explicitly on blkdev_put().\n\n* gfs2, nilfs2 and the generic mount_bdev() now set FMODE_EXCL in\n  sb-\u003es_mode.\n\n* With the above changes, sb-\u003es_mode now always should contain\n  FMODE_EXCL.  WARN_ON_ONCE() added to kill_block_super() to detect\n  errors.\n\nThe new blkdev_get_*() functions are with proper docbook comments.\nWhile at it, add function description to blkdev_get() too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Joern Engel \u003cjoern@lazybastard.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: xfs-masters@oss.sgi.com\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e525fd89d380c4a94c0d63913a1dd1a593ed25e7",
      "tree": "d226ef40d3f99e42fcf272ad432585cbd641ebec",
      "parents": [
        "e09b457bdb7e8d23fc54dcef0930ac697d8de895"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: make blkdev_get/put() handle exclusive access\n\nOver time, block layer has accumulated a set of APIs dealing with bdev\nopen, close, claim and release.\n\n* blkdev_get/put() are the primary open and close functions.\n\n* bd_claim/release() deal with exclusive open.\n\n* open/close_bdev_exclusive() are combination of open and claim and\n  the other way around, respectively.\n\n* bd_link/unlink_disk_holder() to create and remove holder/slave\n  symlinks.\n\n* open_by_devnum() wraps bdget() + blkdev_get().\n\nThe interface is a bit confusing and the decoupling of open and claim\nmakes it impossible to properly guarantee exclusive access as\nin-kernel open + claim sequence can disturb the existing exclusive\nopen even before the block layer knows the current open if for another\nexclusive access.  Reorganize the interface such that,\n\n* blkdev_get() is extended to include exclusive access management.\n  @holder argument is added and, if is @FMODE_EXCL specified, it will\n  gain exclusive access atomically w.r.t. other exclusive accesses.\n\n* blkdev_put() is similarly extended.  It now takes @mode argument and\n  if @FMODE_EXCL is set, it releases an exclusive access.  Also, when\n  the last exclusive claim is released, the holder/slave symlinks are\n  removed automatically.\n\n* bd_claim/release() and close_bdev_exclusive() are no longer\n  necessary and either made static or removed.\n\n* bd_link_disk_holder() remains the same but bd_unlink_disk_holder()\n  is no longer necessary and removed.\n\n* open_bdev_exclusive() becomes a simple wrapper around lookup_bdev()\n  and blkdev_get().  It also has an unexpected extra bdev_read_only()\n  test which probably should be moved into blkdev_get().\n\n* open_by_devnum() is modified to take @holder argument and pass it to\n  blkdev_get().\n\nMost of bdev open/close operations are unified into blkdev_get/put()\nand most exclusive accesses are tested atomically at the open time (as\nit should).  This cleans up code and removes some, both valid and\ninvalid, but unnecessary all the same, corner cases.\n\nopen_bdev_exclusive() and open_by_devnum() can use further cleanup -\nrename to blkdev_get_by_path() and blkdev_get_by_devt() and drop\nspecial features.  Well, let\u0027s leave them for another day.\n\nMost conversions are straight-forward.  drbd conversion is a bit more\ninvolved as there was some reordering, but the logic should stay the\nsame.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: dm-devel@redhat.com\nCc: drbd-dev@lists.linbit.com\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e4c59d61e80529aebca4a3690b4378f2c6fc4e82",
      "tree": "b222689f42121011920f15a378e24a68bd65f582",
      "parents": [
        "a1da9e8ab687e6496482b7b2aa17d0da31e55b20"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 12:19:34 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:53 2010 -0400"
      },
      "message": "convert nilfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "426e1f5cec4821945642230218876b0e89aafab1"
}
