)]}'
{
  "log": [
    {
      "commit": "539c99fd7fc28f8db257c713c10fb4aceadf8887",
      "tree": "e603e48ac816cde56e4872e0f7bcdfe7bd33f3b3",
      "parents": [
        "ba2e1c5f25a99dec3873745031ad23ce3fd79bff",
        "4d09ec0f705cf88a12add029c058b53f288cfaa2"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue May 18 08:57:00 2010 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue May 18 08:57:00 2010 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "d83c49f3e36cecd2e8823b6c48ffba083b8a5704",
      "tree": "a304de4eb43652d2a9528d4b43f798ab821c8b93",
      "parents": [
        "6a251b0ab67989f468f4cb65179e0cf40cf8c295"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 30 17:17:09 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 07:16:33 2010 -0400"
      },
      "message": "Fix the regression created by \"set S_DEAD on unlink()...\" commit\n\n1) i_flags simply doesn\u0027t work for mount/unlink race prevention;\nwe may have many links to file and rm on one of those obviously\nshouldn\u0027t prevent bind on top of another later on.  To fix it\nright way we need to mark _dentry_ as unsuitable for mounting\nupon; new flag (DCACHE_CANT_MOUNT) is protected by d_flags and\ni_mutex on the inode in question.  Set it (with dont_mount(dentry))\nin unlink/rmdir/etc., check (with cant_mount(dentry)) in places\nin namespace.c that used to check for S_DEAD.  Setting S_DEAD\nis still needed in places where we used to set it (for directories\ngetting killed), since we rely on it for readdir/rmdir race\nprevention.\n\n2) rename()/mount() protection has another bogosity - we unhash\nthe target before we\u0027d checked that it\u0027s not a mountpoint.  Fixed.\n\n3) ancient bogosity in pivot_root() - we locked i_mutex on the\nright directory, but checked S_DEAD on the different (and wrong)\none.  Noticed and fixed.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91a9420f5826db482030c21eca8c507271bbc441",
      "tree": "e5e400622884c8c0cd373c51ee4a3822c853aaa5",
      "parents": [
        "3db291017753e539af64c8bab373785f34e43ed2"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:14:45 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 12 12:18:32 2010 +1000"
      },
      "message": "security: remove dead hook sb_post_pivotroot\n\nUnused hook.  Remove.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "3db291017753e539af64c8bab373785f34e43ed2",
      "tree": "e6759c7dea1774465b6bf2860a0c2f283c0b34fa",
      "parents": [
        "82dab10453d65ad9ca551de5b8925673ca05c7e9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:14:39 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 12 12:18:31 2010 +1000"
      },
      "message": "security: remove dead hook sb_post_addmount\n\nUnused hook.  Remove.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "82dab10453d65ad9ca551de5b8925673ca05c7e9",
      "tree": "942bf24adb67b534fa3080dbbfa1ffe33b7c16bd",
      "parents": [
        "4b61d12c84293ac061909f27f567c1905e4d90e3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:14:33 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 12 12:18:30 2010 +1000"
      },
      "message": "security: remove dead hook sb_post_remount\n\nUnused hook.  Remove.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4b61d12c84293ac061909f27f567c1905e4d90e3",
      "tree": "dfab10311d1b6be7667600307c72379c6779d32d",
      "parents": [
        "231923bd0e06cba69f7c2028f4a68602b8d22160"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:14:27 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 12 12:18:30 2010 +1000"
      },
      "message": "security: remove dead hook sb_umount_busy\n\nUnused hook.  Remove.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "231923bd0e06cba69f7c2028f4a68602b8d22160",
      "tree": "91e3864e87f3de86de8ad0ed55a829cbdf797545",
      "parents": [
        "353633100d8d684ac0acae4ce93fb833f92881f4"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:14:21 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 12 12:18:29 2010 +1000"
      },
      "message": "security: remove dead hook sb_umount_close\n\nUnused hook.  Remove.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "353633100d8d684ac0acae4ce93fb833f92881f4",
      "tree": "d45effdd09f5ef2f2c44bbcfcca8751cc5cdbd7d",
      "parents": [
        "c1a7368a6f0b18b10fdec87972da680ebdf03794"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:14:15 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Apr 12 12:18:28 2010 +1000"
      },
      "message": "security: remove sb_check_sb hooks\n\nUnused hook.  Remove it.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "db1f05bb85d7966b9176e293f3ceead1cb8b5d79",
      "tree": "65a1d746f84cb8aa9be2a69c59eb627859b9fa0d",
      "parents": [
        "440b3c6c160f7d0a985f24ad1f4c24e00ee2d936"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 10 12:15:53 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:08:00 2010 -0500"
      },
      "message": "vfs: add NOFOLLOW flag to umount(2)\n\nAdd a new UMOUNT_NOFOLLOW flag to umount(2).  This is needed to prevent\nsymlink attacks in unprivileged unmounts (fuse, samba, ncpfs).\n\nAdditionally, return -EINVAL if an unknown flag is used (and specify\nan explicitly unused flag: UMOUNT_UNUSED).  This makes it possible for\nthe caller to determine if a flag is supported or not.\n\nCC: Eugene Teo \u003ceugene@redhat.com\u003e\nCC: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8089352a13b785d4e0df63d87bd2b71c76bb9aee",
      "tree": "e84db2c2a5c2095091d2012c00078023b90a3490",
      "parents": [
        "d498b25a4f877be535246c4e5b6ee5890781a477"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 05 09:30:46 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:08:00 2010 -0500"
      },
      "message": "Mirror MS_KERNMOUNT in -\u003emnt_flags\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d498b25a4f877be535246c4e5b6ee5890781a477",
      "tree": "15c92bc7265bc615604c722e08195c728369fab7",
      "parents": [
        "47cd813f2984569570021ce3d34cdf9cb20aa6a2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 05 02:21:06 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:59 2010 -0500"
      },
      "message": "get rid of useless vfsmount_lock use in put_mnt_ns()\n\nIt hadn\u0027t been needed since we\u0027d sanitized the logics in\nmark_mounts_for_expiry() (which, in turn, used to be a\nrudiment of bad old times when namespace_sem was per-ns).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9f5596af44514f99e3a654a4f7cb813354b9e516",
      "tree": "6a579bf387683b910bd32e8aa7edef9956e58dd1",
      "parents": [
        "e21e7095a78867364d7aa9223d833ccb966f93f3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 05 00:40:25 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:59 2010 -0500"
      },
      "message": "take check for new events in namespace (guts of mounts_poll()) to namespace.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1f707137b55764740981d022d29c622832a61880",
      "tree": "af5f72ea7df1afbc1f3b5bb53a3ab3d8ebaae1e0",
      "parents": [
        "462d60577a997aa87c935ae4521bd303733a9f2b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 30 22:51:25 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:57 2010 -0500"
      },
      "message": "new helper: iterate_mounts()\n\napply function to vfsmounts in set returned by collect_mounts(),\nstop if it returns non-zero.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "495d6c9c6595ec7b37910dfd42634839431d21fd",
      "tree": "375a2ea9803a91c5df34df80d7e08119d9772240",
      "parents": [
        "2ecdc82ef0b03e67ce5ecee79d0d108177a704df"
      ],
      "author": {
        "name": "Valerie Aurora",
        "email": "vaurora@redhat.com",
        "time": "Tue Jan 26 14:20:47 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:55 2010 -0500"
      },
      "message": "VFS: Clean up shared mount flag propagation\n\nThe handling of mount flags in set_mnt_shared() got a little tangled\nup during previous cleanups, with the following problems:\n\n* MNT_PNODE_MASK is defined as a literal constant when it should be a\nbitwise xor of other MNT_* flags\n* set_mnt_shared() clears and then sets MNT_SHARED (part of MNT_PNODE_MASK)\n* MNT_PNODE_MASK could use a comment in mount.h\n* MNT_PNODE_MASK is a terrible name, change to MNT_SHARED_MASK\n\nThis patch fixes these problems.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "796a6b521d0eadb338adf8cf7e482351c3a8a7b4",
      "tree": "25858b16136a0a747d24dba45ee39d18fcbef1fa",
      "parents": [
        "c177c2ac8c5aa83ed181db44543c3b38fd1f17a6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:28:47 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 13:00:22 2010 -0500"
      },
      "message": "Kill CL_PROPAGATION, sanitize fs/pnode.c:get_source()\n\nFirst of all, get_source() never results in CL_PROPAGATION\nalone.  We either get CL_MAKE_SHARED (for the continuation\nof peer group) or CL_SLAVE (slave that is not shared) or both\n(beginning of peer group among slaves).  Massage the code to\nmake that explicit, kill CL_PROPAGATION test in clone_mnt()\n(nothing sets CL_MAKE_SHARED without CL_PROPAGATION and in\nclone_mnt() we are checking CL_PROPAGATION after we\u0027d found\nthat there\u0027s no CL_SLAVE, so the check for CL_MAKE_SHARED\nwould do just as well).\n\nFix comments, while we are at it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "27d55f1f4c190b14092fcca3069c7d15df83514f",
      "tree": "e0d305a30fa5b5655b87ecc1b50d1664fb4bf70e",
      "parents": [
        "7e1295d9f8300e8c8d1af01765f475621c19ee1d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:07:36 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:07:36 2010 -0500"
      },
      "message": "do_add_mount() should sanitize mnt_flags\n\nMNT_WRITE_HOLD shouldn\u0027t leak into new vfsmount and neither\nshould MNT_SHARED (the latter will be set properly, along with\nthe rest of shared-subtree data structures)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7b43a79f32c0a05e7562043af98e25c05c89b18e",
      "tree": "920010b3bad9bd2cb7b9f4f2a7305a40400758da",
      "parents": [
        "df1a1ad29739f032f8905310796e558589403d61"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:01:26 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 13:01:26 2010 -0500"
      },
      "message": "mnt_flags fixes in do_remount()\n\n* need vfsmount_lock over modifying it\n* need to preserve MNT_SHARED/MNT_UNBINDABLE\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "df1a1ad29739f032f8905310796e558589403d61",
      "tree": "e8ef57ed776c5dd5615a6fbdb74609c631b7f2a9",
      "parents": [
        "8ad08d8a0c3823e9b06ef84c362c9361be323d2d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:57:40 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:57:40 2010 -0500"
      },
      "message": "attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared()\n\nrace in mnt_flags update\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8ad08d8a0c3823e9b06ef84c362c9361be323d2d",
      "tree": "14b02283f72d5f1345af0cd8c0f305306f6925a6",
      "parents": [
        "9b6e31021122babe3b3a67b102479f740928b5eb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:56:08 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 16 12:56:08 2010 -0500"
      },
      "message": "may_umount() needs namespace_sem\n\notherwise it races with clone_mnt() changing mnt_share/mnt_slaves\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a2770d86b33024f71df269fde2de096df89d6a48",
      "tree": "d232695efd62bcdcb2b3a9b413bccea66c0ecf32",
      "parents": [
        "b8a7f3cd7e8212e5c572178ff3b5a514861036a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 12:51:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 12:51:05 2009 -0800"
      },
      "message": "Revert \"fix mismerge with Trond\u0027s stuff (create_mnt_ns() export is gone now)\"\n\nThis reverts commit e9496ff46a20a8592fdc7bdaaf41b45eb808d310. Quoth Al:\n\n \"it\u0027s dependent on a lot of other stuff not currently in mainline\n  and badly broken with current fs/namespace.c.  Sorry, badly\n  out-of-order cherry-pick from old queue.\n\n  PS: there\u0027s a large pending series reworking the refcounting and\n  lifetime rules for vfsmounts that will, among other things, allow to\n  rip a subtree away _without_ dissolving connections in it, to be\n  garbage-collected when all active references are gone.  It\u0027s\n  considerably saner wrt \"is the subtree busy\" logics, but it\u0027s nowhere\n  near being ready for merge at the moment; this changeset is one of the\n  things becoming possible with that sucker, but it certainly shouldn\u0027t\n  have been picked during this cycle.  My apologies...\"\n\nNoticed-by: Eric Paris \u003ceparis@redhat.com\u003e\nRequested-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9496ff46a20a8592fdc7bdaaf41b45eb808d310",
      "tree": "6668789814bf4726a82ad282724b72a09e247175",
      "parents": [
        "b0446be4be44768c7c7e919fadda98e1315fad09"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Aug 09 18:44:32 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:44 2009 -0500"
      },
      "message": "fix mismerge with Trond\u0027s stuff (create_mnt_ns() export is gone now)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a27ab9f26b729326778271c1efd895aef4fda1c4",
      "tree": "7a8ff136c359603d79b45850c5fd1cdbd2f3b92f",
      "parents": [
        "8b8efb44033c7e86b3dc76f825c693ec92ae30e9"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Sun Oct 04 21:49:49 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Oct 12 10:56:03 2009 +1100"
      },
      "message": "LSM: Pass original mount flags to security_sb_mount().\n\nThis patch allows LSM modules to determine based on original mount flags\npassed to mount(). A LSM module can get masked mount flags (if needed) by\n\n\tflags \u0026\u003d ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE |\n\t\t   MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |\n\t\t   MS_STRICTATIME);\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "eca6f534e61919b28fb21aafbd1c2983deae75be",
      "tree": "b2c3f110a2defe6360004c39a074f3962ed0cc50",
      "parents": [
        "6d729e44a55547c009d7a87ea66bff21a8e0afea"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Fri Sep 18 13:05:45 2009 -0700"
      },
      "committer": {
        "name": "al",
        "email": "al@dizzy.pdmi.ras.ru",
        "time": "Thu Sep 24 08:40:15 2009 -0400"
      },
      "message": "fs: fix overflow in sys_mount() for in-kernel calls\n\nsys_mount() reads/copies a whole page for its \"type\" parameter.  When\ndo_mount_root() passes a kernel address that points to an object which is\nsmaller than a whole page, copy_mount_options() will happily go past this\nmemory object, possibly dereferencing \"wild\" pointers that could be in any\nstate (hence the kmemcheck warning, which shows that parts of the next\npage are not even allocated).\n\n(The likelihood of something going wrong here is pretty low -- first of\nall this only applies to kernel calls to sys_mount(), which are mostly\nfound in the boot code.  Secondly, I guess if the page was not mapped,\nexact_copy_from_user() _would_ in fact handle it correctly because of its\naccess_ok(), etc.  checks.)\n\nBut it is much nicer to avoid the dubious reads altogether, by stopping as\nsoon as we find a NUL byte.  Is there a good reason why we can\u0027t do\nsomething like this, using the already existing strndup_from_user()?\n\n[akpm@linux-foundation.org: make copy_mount_string() static]\n[AV: fix compat mount breakage, which involves undoing akpm\u0027s change above]\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: al \u003cal@dizzy.pdmi.ras.ru\u003e\n"
    },
    {
      "commit": "2d8dd38a5aa0cc2490bbad9b75e77fa154e1d145",
      "tree": "dcc1ec93e95dde5704a7e37939454c9b24904758",
      "parents": [
        "69130c7cf96ea853dc5be599dd6a4b98907d39cc"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Aug 06 15:07:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 07 10:39:56 2009 -0700"
      },
      "message": "vfs: mnt_want_write_file(): fix special file handling\n\nI suspect that mnt_want_write_file() may have wrong assumption.  I think\nmnt_want_write_file() is assuming it increments -\u003emnt_writers if\n(file-\u003ef_mode \u0026 FMODE_WRITE).  But, if it\u0027s special_file(), it is false?\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nAcked-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b43f3cbd21ffbd719fd4fa6642bfe6af255ded34",
      "tree": "f09372f7aa3057a4cca32d5c7fc19032bd7cda5a",
      "parents": [
        "622f8061a68d3f7a576c20a47b7f3bae7c8cfbef"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jul 08 01:54:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 08 09:31:56 2009 -0700"
      },
      "message": "headers: mnt_namespace.h redux\n\nFix various silly problems wrt mnt_namespace.h:\n\n - exit_mnt_ns() isn\u0027t used, remove it\n - done that, sched.h and nsproxy.h inclusions aren\u0027t needed\n - mount.h inclusion was need for vfsmount_lock, but no longer\n - remove mnt_namespace.h inclusion from files which don\u0027t use anything\n   from mnt_namespace.h\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f21f62208a6f60e2e05440b2e438d9541822dc4d",
      "tree": "e373be2998ac4914122f9da76398be980d0dbd47",
      "parents": [
        "c63e09ecccb50f930e899d7005edc5411ee86d4f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 03:12:00 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:15:26 2009 -0400"
      },
      "message": "... and the same for vfsmount id/mount group id\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3b22edc5730b87d360ee7dd7143397ba09b73a47",
      "tree": "0ee6b90aa3be7878ee73363f167c0a9b47b89f5e",
      "parents": [
        "654f562c526cf9dfb8d453f687341fe0777ee454"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 23 17:29:49 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:15:24 2009 -0400"
      },
      "message": "VFS: Switch init_mount_tree() to use the new create_mnt_ns() helper\n\nEliminates some duplicated code...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cf8d2c11cb77f129675478792122f50827e5b0ae",
      "tree": "85bebdff4cffbca238952e839b0cb801e6a9bfe7",
      "parents": [
        "616511d039af402670de8500d0e24495113a9cab"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 22 15:09:13 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:28:25 2009 -0700"
      },
      "message": "VFS: Add VFS helper functions for setting up private namespaces\n\nThe purpose of this patch is to improve the remote mount path lookup\nsupport for distributed filesystems such as the NFSv4 client.\n\nWhen given a mount command of the form \"mount server:/foo/bar /mnt\", the\nNFSv4 client is required to look up the filehandle for \"server:/\", and\nthen look up each component of the remote mount path \"foo/bar\" in order\nto find the directory that is actually going to be mounted on /mnt.\nFollowing that remote mount path may involve following symlinks,\ncrossing server-side mount points and even following referrals to\nfilesystem volumes on other servers.\n\nSince the standard VFS path lookup code already supports walking paths\nthat contain all these features (using in-kernel automounts for\nfollowing referrals) we would like to be able to reuse that rather than\nduplicate the full path traversal functionality in the NFSv4 client code.\n\nThis patch therefore defines a VFS helper function create_mnt_ns(), that\nsets up a temporary filesystem namespace and attaches a root filesystem to\nit. It exports the create_mnt_ns() and put_mnt_ns() function for use by\nfilesystem modules.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "616511d039af402670de8500d0e24495113a9cab",
      "tree": "825a34ab670dedc463ba7252a177793746c010c7",
      "parents": [
        "31950eb66ff47c946fd9c65c2f8c94b6b7ba13fc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 22 15:09:13 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:28:25 2009 -0700"
      },
      "message": "VFS: Uninline the function put_mnt_ns()\n\nIn order to allow modules to use it without having to export vfsmount_lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4aa98cf768b6f2ea4b204620d949a665959214f6",
      "tree": "dd6f5be97396b9e1f24a9697524da19463e7a8da",
      "parents": [
        "7f78d4cd4c5d01864943c22b79df1b6bde923129"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 08 13:36:58 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push BKL down into do_remount_sb()\n\n[folded fix from Jiri Slaby]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f78d4cd4c5d01864943c22b79df1b6bde923129",
      "tree": "c232d14121976caa8a38e49d6a8a555e99e27c04",
      "parents": [
        "6fac98dd218653c6aff8a0f56305c424930cea2a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 08 13:34:06 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push BKL down beyond VFS-only parts of do_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6fac98dd218653c6aff8a0f56305c424930cea2a",
      "tree": "0c5bdca0092e5ec3b201bae958071a7e8385409d",
      "parents": [
        "bbd6851a3213a525128473e978b692ab6ac11aba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 08 13:31:17 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push BKL into do_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f3da392e9ff14b9f388e74319e6d195848991c07",
      "tree": "d9e7660e5c0b4524aeaafcc5b89a9d68a7ca3817",
      "parents": [
        "8c85e125124a473d6f3e9bb187b0b84207f81d91"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 04 03:32:03 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "dcache: extrace and use d_unlinked()\n\nd_unlinked() will be used in middle-term to ban checkpointing when opened\nbut unlinked file is detected, and in long term, to detect such situation\nand special case on it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "96029c4e09ccbd73a6d0ed2b29e80bf2586ad7ef",
      "tree": "032d2ac7024250c18487a2c7122af68fe56567ff",
      "parents": [
        "d3ef3d7351ccfbef3e5d926efc5ee332136f40d4"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:55 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: introduce mnt_clone_write\n\nThis patch speeds up lmbench lat_mmap test by about another 2% after the\nfirst patch.\n\nBefore:\n avg \u003d 462.286\n std \u003d 5.46106\n\nAfter:\n avg \u003d 453.12\n std \u003d 9.58257\n\n(50 runs of each, stddev gives a reasonable confidence)\n\nIt does this by introducing mnt_clone_write, which avoids some heavyweight\noperations of mnt_want_write if called on a vfsmount which we know already\nhas a write count; and mnt_want_write_file, which can call mnt_clone_write\nif the file is open for write.\n\nAfter these two patches, mnt_want_write and mnt_drop_write go from 7% on\nthe profile down to 1.3% (including mnt_clone_write).\n\n[AV: mnt_want_write_file() should take file alone and derive mnt from it;\nnot only all callers have that form, but that\u0027s the only mnt about which\nwe know that it\u0027s already held for write if file is opened for write]\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3ef3d7351ccfbef3e5d926efc5ee332136f40d4",
      "tree": "bd875a2b267ae03b350e259675ccb1a04453b9b9",
      "parents": [
        "3174c21b74b56c6a53fddd41a30fd6f757a32bd0"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:54 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: mnt_want_write speedup\n\nThis patch speeds up lmbench lat_mmap test by about 8%. lat_mmap is set up\nbasically to mmap a 64MB file on tmpfs, fault in its pages, then unmap it.\nA microbenchmark yes, but it exercises some important paths in the mm.\n\nBefore:\n avg \u003d 501.9\n std \u003d 14.7773\n\nAfter:\n avg \u003d 462.286\n std \u003d 5.46106\n\n(50 runs of each, stddev gives a reasonable confidence, but there is quite\na bit of variation there still)\n\nIt does this by removing the complex per-cpu locking and counter-cache and\nreplaces it with a percpu counter in struct vfsmount. This makes the code\nmuch simpler, and avoids spinlocks (although the msync is still pretty\ncostly, unfortunately). It results in about 900 bytes smaller code too. It\ndoes increase the size of a vfsmount, however.\n\nIt should also give a speedup on large systems if CPUs are frequently operating\non different mounts (because the existing scheme has to operate on an atomic in\nthe struct vfsmount when switching between mounts). But I\u0027m most interested in\nthe single threaded path performance for the moment.\n\n[AV: minor cleanup]\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1c755af4df75996b0dd4b7e6cacaf9d57a6ef2ef",
      "tree": "0a75e35164912f53b21ca48b829cabdfa6ea507d",
      "parents": [
        "79ed0226198c628133530b179a90dbf42b1c2eba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 14:06:57 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch lookup_mnt()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9393bd07cf218ca51d0e627653f906a9d76a9131",
      "tree": "402205fe6336028df48cd65b31da0482f0b0bb41",
      "parents": [
        "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:58:15 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_down()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151",
      "tree": "a628f8db3bd587df6e2a918216aa64946b506e6f",
      "parents": [
        "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:28:19 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "Switch collect_mounts() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dd5cae6e9772ecc62fd374f7a8ec10eb51c96c4d",
      "tree": "48cfed52f4cc4fc9e2d91b1c8646f438f2f0e110",
      "parents": [
        "5b857119538daac7118c1364d7ff3613f12b84d3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 12:21:18 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:59 2009 -0400"
      },
      "message": "Don\u0027t bother with check_mnt() in do_add_mount() on shrinkable ones\n\nThese guys are what we add as submounts; checks for \"is that attached in\nour namespace\" are simply irrelevant for those and counterproductive for\nuse of private vfsmount trees a-la what NFS folks want.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a32cebd6cbcc43996c3e2d114fa32ba1e71192a",
      "tree": "0ad94849a7bc3e97cd19978005d1898c8bb44b36",
      "parents": [
        "f9dbd05bc97d1d4f17c2057612f6a8e4dbd039e0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 08 16:05:57 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:51:34 2009 -0400"
      },
      "message": "Fix races around the access to -\u003es_options\n\nPut generic_show_options read access to s_options under rcu_read_lock,\nsplit save_mount_options() into \"we are setting it the first time\"\n(uses in foo_fill_super()) and \"we are relacing and freeing the old one\",\nsynchronize_rcu() before kfree() in the latter.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67e55205ec55cc7899f1d783f217961596798419",
      "tree": "45dd7351f9721a46ecb448f0571fb10db3259147",
      "parents": [
        "091bf7624d1c90cec9e578a18529f615213ff847"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Fri Apr 24 09:06:53 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:38 2009 -0400"
      },
      "message": "vfs: umount_begin BKL pushdown\n\nPush BKL down into -\u003eumount_begin()\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e5d67f0715bc60f6c19abdd86d007d7bb29c9951",
      "tree": "8de787c36ea21736434e7c4442a41527fc33bdbe",
      "parents": [
        "cf2706a340ae98616d4e2a54900393e0e0b6b72c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 12:15:39 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:01:15 2009 -0400"
      },
      "message": "Touch all affected namespaces on propagation of mount\n\nWe shouldn\u0027t just touch the namespace of current process\n\nCaught-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "613cbe3d4870429bf2e816d4bbe3146d157ee5c1",
      "tree": "52031a08d45201164ca6b8a126b3a0c4af2ecb43",
      "parents": [
        "ff54250a0ebab7f90a5f848a0ba63f999830c872"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Sun Apr 19 18:40:43 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 19 10:46:47 2009 -0700"
      },
      "message": "Don\u0027t set relatime when noatime is specified\n\nSince commit 0a1c01c9477602ee8b44548a9405b2c1d587b5a2 (\"Make relatime\ndefault\") when a file system is mounted explicitely with noatime it gets\nboth the MNT_RELATIME and MNT_NOATIME bits set.\n\nThis shows up like this in /proc/mounts:\n\n  /dev/xxx /yyy ext3 rw,noatime,relatime,errors\u003dcontinue,data\u003dwriteback 0 0\n\nThat looks strange.  The VFS uses noatime in this case, but both flags\nare set.  So it\u0027s more a cosmetic issue, but still better to fix.\n\nCc: mjg@redhat.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ad4e53bd5406ee214ddc5a41f03f779b8b2d526",
      "tree": "b3dab5140284b3edf02bf2b13f74bfddb25aa62a",
      "parents": [
        "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:50:06 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:27 2009 -0400"
      },
      "message": "Get rid of indirect include of fs_struct.h\n\nDon\u0027t pull it in sched.h; very few files actually need it and those\ncan include directly.  sched.h itself only needs forward declaration\nof struct fs_struct;\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3e93cd671813e204c258f1e6c797959920cf7772",
      "tree": "a1e0b2d2da7d296cc1c53be9cd6efa5b94b01b5c",
      "parents": [
        "f8ef3ed2bebd2c4cb9ece92efa185d7aead8831a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:00:13 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "Take fs_struct handling to new file (fs/fs_struct.c)\n\nPure code move; two new helper functions for nfsd and daemonize\n(unshare_fs_struct() and daemonize_fs_struct() resp.; for now -\nthe same code as used to be in callers).  unshare_fs_struct()\nexported (for nfsd, as copy_fs_struct()/exit_fs() used to be),\ncopy_fs_struct() and exit_fs() don\u0027t need exports anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f8ef3ed2bebd2c4cb9ece92efa185d7aead8831a",
      "tree": "f6208725f0b2ecd43e393435fa7fb8ad1be1b14b",
      "parents": [
        "11d06b2a1e5658f448a308aa3beb97bacd64a940"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 30 20:36:33 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:25 2009 -0400"
      },
      "message": "Get rid of bumping fs_struct refcount in pivot_root(2)\n\nNot because execve races with _that_ are serious - we really\nneed a situation when final drop of fs_struct refcount is\ndone by something that used to have it as current-\u003efs.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ae5080f4c2e293229508dabe7c8a90af4e4c460",
      "tree": "9cb11f26905a82b7fac9d3b8f9d61d58bc5c94b0",
      "parents": [
        "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
        "aabb8fdb41128705fd1627f56fdd571e45fdbcdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -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: (37 commits)\n  fs: avoid I_NEW inodes\n  Merge code for single and multiple-instance mounts\n  Remove get_init_pts_sb()\n  Move common mknod_ptmx() calls into caller\n  Parse mount options just once and copy them to super block\n  Unroll essentials of do_remount_sb() into devpts\n  vfs: simple_set_mnt() should return void\n  fs: move bdev code out of buffer.c\n  constify dentry_operations: rest\n  constify dentry_operations: configfs\n  constify dentry_operations: sysfs\n  constify dentry_operations: JFS\n  constify dentry_operations: OCFS2\n  constify dentry_operations: GFS2\n  constify dentry_operations: FAT\n  constify dentry_operations: FUSE\n  constify dentry_operations: procfs\n  constify dentry_operations: ecryptfs\n  constify dentry_operations: CIFS\n  constify dentry_operations: AFS\n  ...\n"
    },
    {
      "commit": "a3ec947c85ec339884b30ef6a08133e9311fdae1",
      "tree": "c3cc5859a6b6d8986547405b6c5bd11bc8916114",
      "parents": [
        "585d3bc06f4ca57f975a5a1f698f65a45ea66225"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Mar 04 12:06:34 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "vfs: simple_set_mnt() should return void\n\nsimple_set_mnt() is defined as returning \u0027int\u0027 but always returns 0.\nCallers assume simple_set_mnt() never fails and don\u0027t properly cleanup if\nit were to _ever_ fail.  For instance, get_sb_single() and get_sb_nodev()\nshould:\n\n        up_write(sb-\u003es_unmount);\n        deactivate_super(sb);\n\nif simple_set_mnt() fails.\n\nSince simple_set_mnt() never fails, would be cleaner if it did not\nreturn anything.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0a1c01c9477602ee8b44548a9405b2c1d587b5a2",
      "tree": "4f9f77b34bf1f2f497a8f99b8976599a6b2be8cc",
      "parents": [
        "d0adde574b8487ef30f69e2d08bba769e4be513f"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Mar 26 17:53:14 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:01:10 2009 -0700"
      },
      "message": "Make relatime default\n\nChange the default behaviour of the kernel to use relatime for all\nfilesystems. This can be overridden with the \"strictatime\" mount\noption.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0adde574b8487ef30f69e2d08bba769e4be513f",
      "tree": "fa8b98978bc9ebe607cbdf78c4ed13eeb545ba80",
      "parents": [
        "11ff6f05f1e836a6a02369a4c4b64757e484adc1"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Mar 26 17:49:56 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 10:56:35 2009 -0700"
      },
      "message": "Add a strictatime mount option\n\nAdd support for explicitly requesting full atime updates. This makes it\npossible for kernels to default to relatime but still allow userspace to\noverride it.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a88b5364b535edaa321d70a566e358390ff0872",
      "tree": "41c557358a595de85ba8a7a7697901ff21d1de1a",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Mon Feb 16 02:38:12 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:02:08 2009 -0800"
      },
      "message": "Fix incomplete __mntput locking\n\nGetting this wrong caused\n\n\tWARNING: at fs/namespace.c:636 mntput_no_expire+0xac/0xf2()\n\ndue to optimistically checking cpu_writer-\u003emnt outside the spinlock.\n\nHere\u0027s what we really want:\n * we know that nobody will set cpu_writer-\u003emnt to mnt from now on\n * all changes to that sucker are done under cpu_writer-\u003elock\n * we want the laziest equivalent of\n\tspin_lock(\u0026cpu_writer-\u003elock);\n\tif (likely(cpu_writer-\u003emnt !\u003d mnt)) {\n\t\tspin_unlock(\u0026cpu_writer-\u003elock);\n\t\tcontinue;\n\t}\n\t/* do stuff */\n  that would make sure we won\u0027t miss earlier setting of -\u003emnt done by\n  another CPU.\n\nAnyway, for now we just move the spin_lock() earlier and move the test\ninto the properly locked region.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-and-tested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3480b25743cb7404928d57efeaa3d085708b04c2",
      "tree": "14d7b42301f2e76cea6772c446f3ee920b29a1b6",
      "parents": [
        "6a6160a7b5c27b3c38651baef92a14fa7072b3c1"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:16 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:24 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 14\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "bdc480e3bef6eb0e7071770834cbdda7e30a5436",
      "tree": "2bfea8d2b61ccedc3edea4f78e3250eea7f770cc",
      "parents": [
        "a5f8fa9e9ba5ef3305e147f41ad6e1e84ac1f0bd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:12 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:22 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 10\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "5cc4a0341a1295ea56b2e62eb70d96d8fdb94ded",
      "tree": "aba5a14fe07d1ebc47991f6d70281b1b937931c4",
      "parents": [
        "dded4f4d5048e64a01cf52eed4d27c8cb2600525"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Dec 01 14:34:51 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:38 2008 -0500"
      },
      "message": "fs/namespace.c: drop code after return\n\nThe extra semicolon serves no purpose.\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nReviewed-by: Richard Genoud \u003crichard.genoud@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2b828925652340277a889cbc11b2d0637f7cdaf7",
      "tree": "32fcb3d3e466fc419fad2d3717956a5b5ad3d35a",
      "parents": [
        "3a3b7ce9336952ea7b9564d976d068a238976c9d",
        "58e20d8d344b0ee083febb18c2b021d2427e56ca"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/keys/internal.h\n\tsecurity/keys/process_keys.c\n\tsecurity/keys/request_key.c\n\nFixed conflicts above by using the non \u0027tsk\u0027 versions.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "da9592edebceeba1b9301beafe80ec8b9c2db0ce",
      "tree": "00c110cd8ff6d211d76ab4868b6175096a38aad5",
      "parents": [
        "82ab8deda7fef36f067ccdeacc3b3caefc970f89"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:05 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:05 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the filesystem subsystem\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "afef80b3d87cae574b8c6b763505f25b74d254ef",
      "tree": "4aaa479b3bfc635c3cb28530c8cb01c87fc04bde",
      "parents": [
        "8891d6da17db0f9bb507d3a017f130b9970c3087"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 12 13:26:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:17 2008 -0800"
      },
      "message": "vfs: fix shrink_submounts\n\nIn the last refactoring of shrink_submounts a variable was not completely\nrenamed.  So finish the renaming of mnt to m now.\n\nWithout this if you attempt to mount an nfs mount that has both automatic\nnfs sub mounts on it, and has normal mounts on it.  The unmount will\nsucceed when it should not.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e55a7cca4b66f625d67b292f80b6a976e77c51b",
      "tree": "5106fdf23fe0a6030ab00645bf37f19f07aadd45",
      "parents": [
        "91efc167d02509ea78abeff6d668065964c67c0b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Sep 26 19:01:20 2008 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:23 2008 -0400"
      },
      "message": "[RFC PATCH] touch_mnt_namespace when the mount flags change\n\nDaemons that need to be launched while the rootfs is read-only can now\npoll /proc/mounts to be notified when their O_RDWR requests may no\nlonger end in EROFS.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "0a0d8a46757e2063433c8cd52b7d654e02b4682b",
      "tree": "a163e6b4450aee50f1b5b3b0cba925adb4e207c6",
      "parents": [
        "2d92ab3c6279f8423b20cf91574d0ad6696d2b44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Aug 02 00:55:27 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 03:34:22 2008 -0400"
      },
      "message": "[PATCH] no need for noinline stuff in fs/namespace.c anymore\n\nStack footprint from hell had been due to many struct nameidata in there.\nNo more.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2d92ab3c6279f8423b20cf91574d0ad6696d2b44",
      "tree": "eb631d16596a0ac45ed09f33f03091b17786d0b3",
      "parents": [
        "d181146572c4fa9af2a068b967cb53dcac7da944"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Aug 02 00:51:11 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 03:34:20 2008 -0400"
      },
      "message": "[PATCH] finally get rid of nameidata in namespace.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8d66bf5481002b0960aa49aed0987c73f5d7816c",
      "tree": "7beac720e1df882a1cd4d6d09e6ac25ddd04b399",
      "parents": [
        "d5686b444ff3f72808d2b3fbd58672a86cdf38e7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 09:05:54 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:32 2008 -0400"
      },
      "message": "[PATCH] pass struct path * to do_add_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2d8f30380ab8c706f4e0a8f1aaa22b5886e9ac8a",
      "tree": "b798097fd831eab39f35c8c2e5a8ccfd7a850ef5",
      "parents": [
        "256984a83880ff7ac78055cb87baea48137f0b77"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 22 09:59:21 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:34 2008 -0400"
      },
      "message": "[PATCH] sanitize __user_walk_fd() et.al.\n\n* do not pass nameidata; struct path is all the callers want.\n* switch to new helpers:\n\tuser_path_at(dfd, pathname, flags, \u0026path)\n\tuser_path(pathname, \u0026path)\n\tuser_lpath(pathname, \u0026path)\n\tuser_path_dir(pathname, \u0026path)  (fail if not a directory)\n  The last 3 are trivial macro wrappers for the first one.\n* remove nameidata in callers.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "88b387824fdaecb6ba0f471acf0aadf7d24739fd",
      "tree": "bd0e169bc0d2a802cd4ea58baf957bfa4602e956",
      "parents": [
        "672b16b2f66c149888bd876a4f92342112205fe1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jul 21 18:06:36 2008 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:24 2008 -0400"
      },
      "message": "[PATCH] vfs: use kstrdup() and check failing allocation\n\n- use kstrdup() instead of kmalloc() + memcpy()\n- return NULL if allocating -\u003emnt_devname failed\n- mnt_devname should be const\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f2da1e7d0330395e5e9e350b879b98a1ea495df",
      "tree": "adc01ced45bb1de10fe58511e7143bbbd138a192",
      "parents": [
        "8bb79224b87aab92071e94d46e70bd160d89bf34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 10 20:44:54 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:20 2008 -0400"
      },
      "message": "[PATCH] kill altroot\n\nlong overdue...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5c752ad9f35910ff1912b3f3ae82878178ddc432",
      "tree": "4ac627f9cdd7f0e1b0557b9b5c4838587c1c0890",
      "parents": [
        "5cd2b459d326a424671dcd95f038649f7bf7cb96"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in fs/\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message\nbecomes part of the warning section for better reporting/collection.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2069f457848f846cb31149c9aa29b330a6b66d1b",
      "tree": "199e7bb15e7d7b5cf008cd6fdb6cefc0d6af7f13",
      "parents": [
        "811f3799279e567aa354c649ce22688d949ac7a9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 04 09:47:13 2008 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jul 14 15:02:05 2008 +1000"
      },
      "message": "LSM/SELinux: show LSM mount options in /proc/mounts\n\nThis patch causes SELinux mount options to show up in /proc/mounts.  As\nwith other code in the area seq_put errors are ignored.  Other LSM\u0027s\nwill not have their mount options displayed until they fill in their own\nsecurity_sb_show_options() function.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8e24eea728068bbeb6a3c500b848f883a20bf225",
      "tree": "93e79da649723e2766237505b22725fec395f139",
      "parents": [
        "530b6412786d7f83592c1a8e2445541ed73fca76"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "fs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ec02ef1596bb3c829a7e8b65ebf13b87faf1819",
      "tree": "d098192558b74f3b33634499ec6e60f3ee32bb47",
      "parents": [
        "c5c8be3ce59dc59baf20b33dae3f8eb70af7b1f1"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Tue Apr 29 00:59:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:06 2008 -0700"
      },
      "message": "vfs: remove lives_below_in_same_fs()\n\nRemove lives_below_in_same_fs() since is_subdir() from fs/dcache.c is\nproviding the same functionality.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8794b5b246cf6f67baf57bd9db386e79ca5cac33",
      "tree": "5e986c10f3c62ef9b0e97546493490a584710b06",
      "parents": [
        "338bf9afda91ec005a1e9a0de4af0271cc167d56"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 28 02:14:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:33 2008 -0700"
      },
      "message": "quota: remove superfluous DQUOT_OFF() in fs/namespace.c\n\nWe don\u0027t need to turn quotas off before remounting root ro, because\ndo_remount_sb() already handles this.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42faad99658eed7ca8bd328ffa4bcb7d78c9bcca",
      "tree": "8b57fb69d1922939c6ba13f512a0ae54a3a171ef",
      "parents": [
        "78d31a3a87f84cf56004b7bc154831f2ee1186e8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:21:56 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 25 09:23:25 2008 -0400"
      },
      "message": "[PATCH] restore sane -\u003eumount_begin() API\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "97e7e0f71d6d948c25f11f0a33878d9356d9579e",
      "tree": "2db3bcf3b4f47995308187eec7f3a61d67446dfa",
      "parents": [
        "2d4d4864ac08caff5c204a752bd004eed4f08760"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Mar 27 13:06:26 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 00:05:09 2008 -0400"
      },
      "message": "[patch 7/7] vfs: mountinfo: show dominating group id\n\nShow peer group ID of nearest dominating group that has intersection\nwith the mount\u0027s namespace.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2d4d4864ac08caff5c204a752bd004eed4f08760",
      "tree": "a8907c33afae589146fdcd06eacd740aff48c6a1",
      "parents": [
        "a1a2c409b666befc58c2db9c7fbddf200f153470"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Thu Mar 27 13:06:25 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 00:05:03 2008 -0400"
      },
      "message": "[patch 6/7] vfs: mountinfo: add /proc/\u003cpid\u003e/mountinfo\n\n[mszeredi@suse.cz] rewrite and split big patch into managable chunks\n\n/proc/mounts in its current form lacks important information:\n\n - propagation state\n - root of mount for bind mounts\n - the st_dev value used within the filesystem\n - identifier for each mount and it\u0027s parent\n\nIt also suffers from the following problems:\n\n - not easily extendable\n - ambiguity of mountpoints within a chrooted environment\n - doesn\u0027t distinguish between filesystem dependent and independent options\n - doesn\u0027t distinguish between per mount and per super block options\n\nThis patch introduces /proc/\u003cpid\u003e/mountinfo which attempts to address\nall these deficiencies.\n\nCode shared between /proc/\u003cpid\u003e/mounts and /proc/\u003cpid\u003e/mountinfo is\nextracted into separate functions.\n\nThanks to Al Viro for the help in getting the design right.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1a2c409b666befc58c2db9c7fbddf200f153470",
      "tree": "3ea8e4c8f1311436939492d70de23dcf185994de",
      "parents": [
        "719f5d7f0b90ac2c8f8ca4232eb322b266fea01e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Mar 27 13:06:24 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 00:04:57 2008 -0400"
      },
      "message": "[patch 5/7] vfs: mountinfo: allow using process root\n\nAllow /proc/\u003cpid\u003e/mountinfo to use the root of \u003cpid\u003e to calculate\nmountpoints.\n\n - move definition of \u0027struct proc_mounts\u0027 to \u003clinux/mnt_namespace.h\u003e\n - add the process\u0027s namespace and root to this structure\n - pass a pointer to \u0027struct proc_mounts\u0027 into seq_operations\n\nIn addition the following cleanups are made:\n\n - use a common open function for /proc/\u003cpid\u003e/{mounts,mountstat}\n - surround namespace.c part of these proc files with #ifdef CONFIG_PROC_FS\n - make the seq_operations structures const\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "719f5d7f0b90ac2c8f8ca4232eb322b266fea01e",
      "tree": "ed3f63e0856b8b319764d475e68b35719ac0ccb9",
      "parents": [
        "73cd49ecdde92fdce131938bdaff4993010d181b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Mar 27 13:06:23 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 00:04:51 2008 -0400"
      },
      "message": "[patch 4/7] vfs: mountinfo: add mount peer group ID\n\nAdd a unique ID to each peer group using the IDR infrastructure.  The\nidentifiers are reused after the peer group dissolves.\n\nThe IDR structures are protected by holding namepspace_sem for write\nwhile allocating or deallocating IDs.\n\nIDs are allocated when a previously unshared vfsmount becomes the\nfirst member of a peer group.  When a new member is added to an\nexisting group, the ID is copied from one of the old members.\n\nIDs are freed when the last member of a peer group is unshared.\n\nSetting the MNT_SHARED flag on members of a subtree is done as a\nseparate step, after all the IDs have been allocated.  This way an\nallocation failure can be cleaned up easilty, without affecting the\npropagation state.\n\nBased on design sketch by Al Viro.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73cd49ecdde92fdce131938bdaff4993010d181b",
      "tree": "90c9cd3597a915c1f820a3cd1fde1689e9a7ab1f",
      "parents": [
        "9d1bc60138977d9c79471b344a64f2df13b2ccef"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Mar 26 22:11:34 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 00:04:45 2008 -0400"
      },
      "message": "[patch 3/7] vfs: mountinfo: add mount ID\n\nAdd a unique ID to each vfsmount using the IDR infrastructure.  The\nidentifiers are reused after the vfsmount is freed.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8c3ee42e80ccead805806b3cb50b9855ceb957a2",
      "tree": "2ab48755381fa7f7170145c1f40aa15e2e409c35",
      "parents": [
        "b5266eb4c8d1a2887a19aaec8144ee4ad1b054c3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 18:00:39 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 21 23:13:47 2008 -0400"
      },
      "message": "[PATCH] get rid of more nameidata passing in namespace.c\n\nFurther reduction of stack footprint (sys_pivot_root());\nlose useless BKL in there, while we are at it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b5266eb4c8d1a2887a19aaec8144ee4ad1b054c3",
      "tree": "37105d0640169ad758d20847cf3effe77381f50f",
      "parents": [
        "1a60a280778ff90270fc7390d9ec102f713a5a29"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 17:48:24 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 21 23:13:23 2008 -0400"
      },
      "message": "[PATCH] switch a bunch of LSM hooks from nameidata to path\n\nNamely, ones from namespace.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a60a280778ff90270fc7390d9ec102f713a5a29",
      "tree": "988cb5b1446ecc298aee4771b0768d777165226c",
      "parents": [
        "6d59e7f582ef1c1988542d0fc3b36d0087b757ce"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 16:19:49 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 21 23:11:09 2008 -0400"
      },
      "message": "[PATCH] lock exclusively in collect_mounts() and drop_collected_mounts()\n\nTaking namespace_sem shared there isn\u0027t worth the trouble, especially with\nvfsmount ID allocation about to be added.  That way we know that umount_tree(),\ncopy_tree() and clone_mnt() are _always_ serialized by namespace_sem.\numount_tree() still needs vfsmount_lock (it manipulates hash chains, among\nother things), but that\u0027s a separate story.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2e4b7fcd926006531935a4c79a5e9349fe51125b",
      "tree": "84ba12469c4da54585e9591569e9c35fe39b635e",
      "parents": [
        "3d733633a633065729c9e4e254b2e5442c00ef7e"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:38:00 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:27 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: honor mount writer counts at remount\n\nOriginally from: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\n\nThis is the core of the read-only bind mount patch set.\n\nNote that this does _not_ add a \"ro\" option directly to the bind mount\noperation.  If you require such a mount, you must first do the bind, then\nfollow it up with a \u0027mount -o remount,ro\u0027 operation:\n\nIf you wish to have a r/o bind mount of /foo on bar:\n\n\tmount --bind /foo /bar\n\tmount -o remount,ro /bar\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3d733633a633065729c9e4e254b2e5442c00ef7e",
      "tree": "8b52ba468f275f86221ddb77c29306a2405844fc",
      "parents": [
        "2c463e95480829a2fe8f386589516e13b1289db6"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:59 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:27 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: track numbers of writers to mounts\n\nThis is the real meat of the entire series.  It actually\nimplements the tracking of the number of writers to a mount.\nHowever, it causes scalability problems because there can be\nhundreds of cpus doing open()/close() on files on the same mnt at\nthe same time.  Even an atomic_t in the mnt has massive scalaing\nproblems because the cacheline gets so terribly contended.\n\nThis uses a statically-allocated percpu variable.  All want/drop\noperations are local to a cpu as long that cpu operates on the same\nmount, and there are no writer count imbalances.  Writer count\nimbalances happen when a write is taken on one cpu, and released\non another, like when an open/close pair is performed on two\n\nUpon a remount,ro request, all of the data from the percpu\nvariables is collected (expensive, but very rare) and we determine\nif there are any outstanding writers to the mount.\n\nI\u0027ve written a little benchmark to sit in a loop for a couple of\nseconds in several cpus in parallel doing open/write/close loops.\n\nhttp://sr71.net/~dave/linux/openbench.c\n\nThe code in here is a a worst-possible case for this patch.  It\ndoes opens on a _pair_ of files in two different mounts in parallel.\nThis should cause my code to lose its \"operate on the same mount\"\noptimization completely.  This worst-case scenario causes a 3%\ndegredation in the benchmark.\n\nI could probably get rid of even this 3%, but it would be more\ncomplex than what I have here, and I think this is getting into\nacceptable territory.  In practice, I expect writing more than 3\nbytes to a file, as well as disk I/O to mask any effects that this\nhas.\n\n(To get rid of that 3%, we could have an #defined number of mounts\nin the percpu variable.  So, instead of a CPU getting operate only\non percpu data when it accesses only one mount, it could stay on\npercpu data when it only accesses N or fewer mounts.)\n\n[AV] merged fix for __clear_mnt_mount() stepping on freed vfsmount\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8366025eb80dfa0d8d94b286d53027081c280ef1",
      "tree": "052c9244cd9d763ad8467bb95b25d903d58b7f11",
      "parents": [
        "a70e65df8812c52252fa07a2eb92a46451a4427f"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:30 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:25:32 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: stub functions\n\nThis patch adds two function mnt_want_write() and mnt_drop_write().  These are\nused like a lock pair around and fs operations that might cause a write to the\nfilesystem.\n\nBefore these can become useful, we must first cover each place in the VFS\nwhere writes are performed with a want/drop pair.  When that is complete, we\ncan actually introduce code that will safely check the counts before allowing\nr/w\u003c-\u003er/o transitions to occur.\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6758f953d05378d907a164c67934cd86183d9c88",
      "tree": "8697e51c495610804b3a5aad191434629d5fd09d",
      "parents": [
        "c35038becad0adb0e25261fff66d85b1a6ddd0c2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 16:14:30 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 27 20:48:04 2008 -0400"
      },
      "message": "[PATCH] mnt_expire is protected by namespace_sem, no need for vfsmount_lock\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c35038becad0adb0e25261fff66d85b1a6ddd0c2",
      "tree": "1d375d74ef5b4c3641768697b2ff8f4992916dc5",
      "parents": [
        "bcc5c7d2b692e5319db00b0dd020ce98723103b1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 00:46:23 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 27 20:47:58 2008 -0400"
      },
      "message": "[PATCH] do shrink_submounts() for all fs types\n\n... and take it out of -\u003eumount_begin() instances.  Call with all locks\nalready taken (by do_umount()) and leave calling release_mounts() to\ncaller (it will do release_mounts() anyway, so we can just put into\nthe same list).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bcc5c7d2b692e5319db00b0dd020ce98723103b1",
      "tree": "e485f36b5e6d8744ea5035b95b497b9dc3ba30db",
      "parents": [
        "7c4b93d8269b9d35971a8239426b1f6ddc3d5ef7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 00:21:53 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 27 20:47:52 2008 -0400"
      },
      "message": "[PATCH] sanitize locking in mark_mounts_for_expiry() and shrink_submounts()\n\n... and fix a race on access of -\u003emnt_share et.al. without namespace_sem\nin the latter.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7c4b93d8269b9d35971a8239426b1f6ddc3d5ef7",
      "tree": "a3309f9237f9d67af000e484bef9c19a7951750a",
      "parents": [
        "1a39068954e33f4bf3e09375a8112dcc801c4688"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 21 23:59:49 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 27 20:47:46 2008 -0400"
      },
      "message": "[PATCH] count ghost references to vfsmounts\n\nmake propagate_mount_busy() exclude references from the vfsmounts\nthat had been isolated by umount_tree() and are just waiting for\nrelease_mounts() to dispose of their -\u003emnt_parent/-\u003emnt_mountpoint.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a39068954e33f4bf3e09375a8112dcc801c4688",
      "tree": "ac4a07f63ef69a46242df2776f6196f9e2069bba",
      "parents": [
        "3085354de635179d70c240e6d942bcbd1d93056c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 21 20:48:19 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 27 20:47:40 2008 -0400"
      },
      "message": "[PATCH] reduce stack footprint in namespace.c\n\nA lot of places misuse struct nameidata when they need struct path.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c32c2f63a9d6c953aaf168c0b2551da9734f76d2",
      "tree": "14eca3083f3de4a87a95359ab66109c10add1ae7",
      "parents": [
        "e83aece3afad4d56cc01abe069d3519e851cd2de"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "d_path: Make seq_path() use a struct path argument\n\nseq_path() is always called with a dentry and a vfsmount from a struct path.\nMake seq_path() take it directly as an argument.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac748a09fc873915254ed69fe83f1a95436ee30a",
      "tree": "1544b5d5d71e1d4902a1e1255ef8703260a0150e",
      "parents": [
        "6ac08c39a16f72c2d3e845cb6849a1392fa03e80"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Make set_fs_{root,pwd} take a struct path\n\nIn nearly all cases the set_fs_{root,pwd}() calls work on a struct\npath. Change the function to reflect this and use path_get() here.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ac08c39a16f72c2d3e845cb6849a1392fa03e80",
      "tree": "d7603571e9ab3ea4b57b7901211320e48d0c5ed8",
      "parents": [
        "5dd784d04924be5d8bc066aded0ec3274b20e612"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Use struct path in fs_struct\n\n* Use struct path in fs_struct.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "429731b1553bacf9a331c260c317a28aaa878edb",
      "tree": "d9feaea03f5abe2eb3ac6a40cbd4e4e3b4638e6a",
      "parents": [
        "db74ece990ea59a9ec9f00f8881026059ef5caf5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:32 2008 -0800"
      },
      "message": "Remove path_release_on_umount()\n\npath_release_on_umount() should only be called from sys_umount(). I merged the\nfunction into sys_umount() instead of having in in namei.c.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dafe1c4d69345539735cca64250f2d4657bd057",
      "tree": "a156663f7963869b6f4d6cd4afcc141064fc0329",
      "parents": [
        "ac2a659968f5318a180213f0409c2ea21f072820"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Feb 08 04:22:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:44 2008 -0800"
      },
      "message": "reduce large do_mount stack usage with noinlines\n\ndo_mount() uses a whopping 616 bytes of stack on x86_64 in 2.6.24-mm1,\nlargely thanks to gcc inlining the various helper functions.\n\nnoinlining these can slim it down a lot; on my box this patch gets it down\nto 168, which is mostly the struct nameidata nd; left on the stack.\n\nThese functions are called only as do_mount() helpers; none of them should\nbe in any path that would see a performance benefit from inlining...\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3b304a23a8f7ae4c40c7b512ee45afae0010a70",
      "tree": "04ada9ae35e912b6c3d56c0aefdc297216f2e0a5",
      "parents": [
        "f84e3f521e1449300e0fdc314b7b43b418a66dc3"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 08 04:21:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:39 2008 -0800"
      },
      "message": "mount options: add generic_show_options()\n\nAdd a new s_options field to struct super_block.  Filesystems can save\nmount options passed to them in mount or remount.  It is automatically\nfreed when the superblock is destroyed.\n\nA new helper function, generic_show_options() is introduced, which uses\nthis field to display the mount options in /proc/mounts.\n\nAnother helper function, save_mount_options() may be used by\nfilesystems to save the options in the super block.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13f14b4d8be225cbb11ff2be7c048590a9ccf87b",
      "tree": "2a2421bc456e30aa0347c79b2ed8a966dcd2ce2b",
      "parents": [
        "b41ecbebd4091a15233abab2d771e65fb82cdb20"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Feb 06 01:37:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:09 2008 -0800"
      },
      "message": "Use ilog2() in fs/namespace.c\n\nWe can use ilog2() in fs/namespace.c to compute hash_bits and hash_mask at\ncompile time, not runtime.\n\n[akpm@linux-foundation.org: clean it all up]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00d2666623368ffd39afc875ff8a2eead2a0436c",
      "tree": "9b16b85167f1bd86c02c0ebeb74510d8029783a3",
      "parents": [
        "917e865df7eb020f20ffc2b4204f282a587df94f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 29 14:17:23 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:13 2008 -0800"
      },
      "message": "kobject: convert main fs kobject to use kobject_create\n\nThis also renames fs_subsys to fs_kobj to catch all current users with a\nbuild error instead of a build warning which can easily be missed.\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3514faca19a6fdc209734431c509631ea92b094e",
      "tree": "f6d102e6dec276f8e8d1044b47c74a02b901554f",
      "parents": [
        "c11c4154e7ff4cebfadad849b1e22689d759c3f4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 16 10:11:44 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:10 2008 -0800"
      },
      "message": "kobject: remove struct kobj_type from struct kset\n\nWe don\u0027t need a \"default\" ktype for a kset.  We should set this\nexplicitly every time for each kset.  This change is needed so that we\ncan make ksets dynamic, and cleans up one of the odd, undocumented\nassumption that the kset/kobject/ktype model has.\n\nThis patch is based on a lot of help from Kay Sievers.\n\nNasty bug in the block code was found by Dave Young\n\u003chidave.darkstar@gmail.com\u003e\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8aec08094570562bc305df33b088926d983c3540",
      "tree": "399f4590f81428d1f72d754d336da13c449120f9",
      "parents": [
        "5a190ae69766da9a34bf31200c5cea4c0667cf94"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 07 12:20:32 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 21 02:37:25 2007 -0400"
      },
      "message": "[PATCH] new helpers - collect_mounts() and release_collected_mounts()\n\nGet a snapshot of a subtree, creating private clones of vfsmounts\nfor all its components and release such snapshot resp.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8bf9725c29f2589237dd696d06a204230add0ba3",
      "tree": "abe1a29924a592808250121435dcd12789336e8a",
      "parents": [
        "2e4a707269a409950c3f315010c20f9719c594e2"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: introduce MS_KERNMOUNT flag\n\nThis flag tells the .get_sb callback that this is a kern_mount() call so that\nit can trust *data pointer to be valid in-kernel one.  If this flag is passed\nfrom the user process, it is cleared since the *data pointer is not a valid\nkernel object.\n\nRunning a few steps forward - this will be needed for proc to create the\nsuperblock and store a valid pid namespace on it during the namespace\ncreation.  The reason, why the namespace cannot live without proc mount is\ndescribed in the appropriate patch.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74bf17cffc32511c7c6d70fe7f376b92662e186e",
      "tree": "e770b056d4a83f847a04fc92e119aa607ec0edaf",
      "parents": [
        "1d99493b3a68e40e56459ea3565d4402fb6e5f3a"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Oct 16 23:26:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:49 2007 -0700"
      },
      "message": "fs: remove the unused mempages parameter\n\nSince the mempages parameter is actually not used, they should be removed.\n\nNow there is only files_init use the mempages parameter,\n\n \tfiles_init(mempages);\n\nbut I don\u0027t think the adaptation to mempages in files_init is really\nuseful; and if files_init also changed to the prototype void (*func)(void),\nthe wrapper vfs_caches_init would also not need the mempages parameter.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac"
}
