)]}'
{
  "log": [
    {
      "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": "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": "693ac389326a87d608baa2902c45a6e78ed46681",
      "tree": "a5916df22afdb32bfc2e2d1eaaa670ebdaa6f79c",
      "parents": [
        "80a914dc05683ecfc98f9e1887fd6564846ffbec"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 15 22:01:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:30 2008 -0700"
      },
      "message": "include/linux/mount.h: remove CVS keyword\n\nRemove a CVS keyword that wasn\u0027t updated for a long time from a comment.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "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": "735643ee6cc5249bfac07fcad0946a5e7aff4423",
      "tree": "e725df246f4a3cf88b6b42a28d859ab969acf81c",
      "parents": [
        "71cc2c2152170b8166f59abb0604dc62073aeb92"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Apr 30 00:55:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "Remove \"#ifdef __KERNEL__\" checks from unexported headers\n\nRemove the \"#ifdef __KERNEL__\" tests from unexported header files in\nlinux/include whose entire contents are wrapped in that preprocessor\ntest.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "6d59e7f582ef1c1988542d0fc3b36d0087b757ce",
      "tree": "2e6e2e7d42af8f89f7b87aeaf5261d4cfbd9b625",
      "parents": [
        "807501475fce0ebe68baedf87f202c3e4ee0d12c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 22 15:48:17 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 21 23:11:01 2008 -0400"
      },
      "message": "[PATCH] move a bunch of declarations to fs/internal.h\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": "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": "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": "beb7dd86a101263bf63a78c7c6d4da3849b35bd6",
      "tree": "9afe81ca9e92ab8aacc999ae118b27d547721f11",
      "parents": [
        "3dde6ad8fc3939d345a3768464ecff43c91d511a"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed May 09 07:14:03 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 07:14:03 2007 +0200"
      },
      "message": "Fix misspellings collected by members of KJ list.\n\nFix the misspellings of \"propogate\", \"writting\" and (oh, the shame\n:-) \"kenrel\" in the source tree.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "4ba4d4c0c52201009232fe9e781a281054a24e75",
      "tree": "4b4d47c78c561fc8f3d79713e7f80def3d9b73ce",
      "parents": [
        "0aa5de8590d684274f57647a870851f101bb3543"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Feb 10 01:44:48 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:25 2007 -0800"
      },
      "message": "[PATCH] struct vfsmount: keep mnt_count \u0026 mnt_expiry_mark away from mnt_flags\n\nI noticed cache misses in touch_atime() that can be avoided if we keep\nmnt_count \u0026 mnt_expiry_mark in a different cache line than mnt_flags\n(mostly read)\n\nmnt_count \u0026 mnt_expiry_mark are modified each time a file is opened/closed\nin a file system.\n\ntouch_atime() is called each time a file is read, and generally needs to\nread mnt_flags.\n\nOther fields of struct vfsmount are mostly read so I chose to move\nmnt_count \u0026 mnt_expiry_mark at the end of struct vfsmount.  And adding a\ncomment so that nobody tries to re-arrange fields to fill the holes :)\n\nOn 64bits platforms, the new offsetof(mnt_count) is 0xC0\nOn 32bits platforms, it is 0x60, so I didnot add a\n____cacheline_aligned_in_smp because it would have a too big impact on the\nsize of this object (in particular if CONFIG_X86_L1_CACHE_SHIFT\u003d7)\n\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": "47ae32d6a54955a041cdc30b06d0bb16e75f68d5",
      "tree": "b28623f98ae536342d35443c6548c373df342e7f",
      "parents": [
        "b227613841d4d211a10c5860acc73e133b613bc0"
      ],
      "author": {
        "name": "Valerie Henson",
        "email": "val_henson@linux.intel.com",
        "time": "Wed Dec 13 00:34:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] relative atime\n\nAdd \"relatime\" (relative atime) support.  Relative atime only updates the\natime if the previous atime is older than the mtime or ctime.  Like\nnoatime, but useful for applications like mutt that need to know when a\nfile has been read since it was last modified.\n\nA corresponding patch against mount(8) is available at\nhttp://userweb.kernel.org/~akpm/mount-relative-atime.txt\n\nSigned-off-by: Valerie Henson \u003cval_henson@linux.intel.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Karel Zak \u003ckzak@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b3286ed1169d74fea401367d6d4d6c6ec758a81",
      "tree": "faf5beddb797875bb92855f8606735478267959a",
      "parents": [
        "1ec320afdc9552c92191d5f89fcd1ebe588334ca"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Fri Dec 08 02:37:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] rename struct namespace to struct mnt_namespace\n\nRename \u0027struct namespace\u0027 to \u0027struct mnt_namespace\u0027 to avoid confusion with\nother namespaces being developped for the containers : pid, uts, ipc, etc.\n\u0027namespace\u0027 variables and attributes are also renamed to \u0027mnt_ns\u0027\n\nSigned-off-by: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "816724e65c72a90a44fbad0ef0b59b186c85fa90",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "70ac4385a13f78bc478f26d317511893741b05bd",
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 08:41:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:07:53 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tfs/nfs/inode.c\n\tfs/super.c\n\nFix conflicts between patch \u0027NFS: Split fs/nfs/inode.c\u0027 and patch\n\u0027VFS: Permit filesystem to override root dentry on mount\u0027\n"
    },
    {
      "commit": "726c334223180e3c0197cc980a432681370d4baf",
      "tree": "8327b354bb3dc959a6606051ae6f8d4d035e38a2",
      "parents": [
        "454e2398be9b9fa30433fccc548db34d19aa9958"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to perform statfs with a known root dentry\n\nGive the statfs superblock operation a dentry pointer rather than a superblock\npointer.\n\nThis complements the get_sb() patch.  That reduced the significance of\nsb-\u003es_root, allowing NFS to place a fake root there.  However, NFS does\nrequire a dentry to use as a target for the statfs operation.  This permits\nthe root in the vfsmount to be used instead.\n\nlinux/mount.h has been added where necessary to make allyesconfig build\nsuccessfully.\n\nInterest has also been expressed for use with the FUSE and XFS filesystems.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5528f911b4c43a5de5da34bcbd7e3f2a62503617",
      "tree": "2c888b1dc0b3743855d795a1a02730637d6ba0aa",
      "parents": [
        "1f5ce9e93aa96a867f195ed45f6f77935175f12e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:17 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:17 2006 -0400"
      },
      "message": "VFS: Add shrink_submounts()\n\nAllow a submount to be marked as being \u0027shrinkable\u0027 by means of the\nvfsmount-\u003emnt_flags, and then add a function \u0027shrink_submounts()\u0027 which\nattempts to recursively unmount these submounts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bb4a58bf46473e3e83d84054bbc110db3a0f85e4",
      "tree": "41ee38709c36f86d565c1a3f311b8fa9546b3c8e",
      "parents": [
        "da6d503aa0a75ec44f17d985a2b500077e7f6a74"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:15 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:15 2006 -0400"
      },
      "message": "VFS: Add GPL_EXPORTED function vfs_kern_mount()\n\ndo_kern_mount() does not allow the kernel to use private mount interfaces\nwithout exposing the same interfaces to userland. The problem is that the\nfilesystem is referenced by name, thus meaning that it and its mount\ninterface must be registered in the global filesystem list.\n\nvfs_kern_mount() passes the struct file_system_type as an explicit\nparameter in order to overcome this limitation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc33a7bb9c6dd8f6e4a014976200f8fdabb3a45c",
      "tree": "26f4d676de476075545e58057aa5d8c57618741d",
      "parents": [
        "0d456fa4261f43433287a10fe3ec04a9818fac64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:34 2006 -0800"
      },
      "message": "[PATCH] per-mountpoint noatime/nodiratime\n\nTurn noatime and nodiratime into per-mount instead of per-sb flags.\n\nAfter all the preparations this is a rather trivial patch.  The mount code\nneeds to treat the two options as per-mount instead of per-superblock, and\ntouch_atime needs to be changed to check the new MNT_ flags in addition to\nthe MS_ flags that are kept for filesystems that are always\nnoatime/nodiratime but not user settable anymore.  Besides that core code\nonly nfs needed an update because it\u0027s leaving atime updates to the server\nand thus sets the S_NOATIME flag on every inode, but needs to know whether\nit\u0027s a real noatime mount for an getattr optimization.\n\nWhile we\u0027re at it I\u0027ve killed the IS_NOATIME/IS_NODIRATIME macros that were\nonly used by touch_atime.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bf066c7db775a04bd761f8ea206f5522d0cf40ff",
      "tree": "e4bfe3bdd8d98a137eaf163a26eb1153af970dfd",
      "parents": [
        "4a0d11fae57989e24fe2ee3eff6d62d72db9716c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jan 08 01:03:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:56 2006 -0800"
      },
      "message": "[PATCH] shared mounts: cleanup\n\nSmall cleanups in shared mounts code.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9676f0c6389b62bd6b24d77d4b3abdbcfa32d0f2",
      "tree": "fd7d965c6d646cf7e4cfd35e866723927f6cfe8b",
      "parents": [
        "5afe00221389998a25d611dc7941c06580c29eb6"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:21:20 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:11 2005 -0800"
      },
      "message": "[PATCH] unbindable mounts\n\nAn unbindable mount does not forward or receive propagation.  Also\nunbindable mount disallows bind mounts.  The semantics is as follows.\n\nBind semantics:\n  It is invalid to bind mount an unbindable mount.\n\nMove semantics:\n  It is invalid to move an unbindable mount under shared mount.\n\nClone-namespace semantics:\n  If a mount is unbindable in the parent namespace, the corresponding\n  cloned mount in the child namespace becomes unbindable too.  Note:\n  there is subtle difference, unbindable mounts cannot be bind mounted\n  but can be cloned during clone-namespace.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a58b0eb8e64b78d9315a5491955e78b1391d42e5",
      "tree": "546f77cb0338c817ef1e34d8ebbc6eaf0e5d6be9",
      "parents": [
        "a05964f3917c7c55368c229d7985f8e7c9977e97"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:20:48 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:11 2005 -0800"
      },
      "message": "[PATCH] introduce slave mounts\n\nA slave mount always has a master mount from which it receives\nmount/umount events.  Unlike shared mount the event propagation does not\nflow from the slave mount to the master.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "03e06e68ff76294e53ffa898cb844d2a997b043e",
      "tree": "df17444b2c9b89e1eed75e09d46ea36c40ebd1df",
      "parents": [
        "07b20889e3052c7e77d6a6a54e7e83446eb1ba84"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:19:33 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:10 2005 -0800"
      },
      "message": "[PATCH] introduce shared mounts\n\nThis creates shared mounts.  A shared mount when bind-mounted to some\nmountpoint, propagates mount/umount events to each other.  All the\nshared mounts that propagate events to each other belong to the same\npeer-group.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "07b20889e3052c7e77d6a6a54e7e83446eb1ba84",
      "tree": "616ac5b7eef3092e105d3b41e7bd2052558b064b",
      "parents": [
        "390c684367de37e1c2f9005cf92f7a746c69fdd3"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:19:07 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:10 2005 -0800"
      },
      "message": "[PATCH] beginning of the shared-subtree proper\n\nA private mount does not forward or receive propagation.  This patch\nprovides user the ability to convert any mount to private.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b7b1ace2d9d06d76bce7481a045c22ed75e35dd",
      "tree": "458f9f16b855ed0347013048c13d3a29031f00ee",
      "parents": [
        "254ce8dc882f8d69e5d49ed4807c94a61976fb15"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 07 17:13:39 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:09 2005 -0800"
      },
      "message": "[PATCH] saner handling of auto_acct_off() and DQUOT_OFF() in umount\n\nThe way we currently deal with quota and process accounting that might\nkeep vfsmount busy at umount time is inherently broken; we try to turn\nthem off just in case (not quite correctly, at that) and\n\n  a) pray umount doesn\u0027t fail (otherwise they\u0027ll stay turned off)\n  b) pray nobody doesn anything funny just as we turn quota off\n\nMoreover, LSM provides hooks for doing the same sort of broken logics.\n\nThe proper way to deal with that is to introduce the second kind of\nreference to vfsmount.  Semantics:\n\n - when the last normal reference is dropped, all special ones are\n   converted to normal ones and if there had been any, cleanup is done.\n - normal reference can be cloned into a special one\n - special reference can be converted to normal one; that\u0027s a no-op if\n   we\u0027d already passed the point of no return (i.e.  mntput() had\n   converted special references to normal and started cleanup).\n\nThe way it works: e.g. starting process accounting converts the vfsmount\nreference pinned by the opened file into special one and turns it back\nto normal when it gets shut down; acct_auto_close() is done when no\nnormal references are left.  That way it does *not* obstruct umount(2)\nand it silently gets turned off when the last normal reference to\nvfsmount is gone.  Which is exactly what we want...\n\nThe same should be done by LSM module that holds some internal\nreferences to vfsmount and wants to shut them down on umount - it should\nmake them special and security_sb_umount_close() will be called exactly\nwhen the last normal reference to vfsmount is gone.\n\nquota handling is even simpler - we don\u0027t use normal file IO anymore, so\nthere\u0027s no need to hold vfsmounts at all.  DQUOT_OFF() is done from\ndeactivate_super(), where it really belongs.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d53d9f16ea95a91ad4aa114809dcde486ca4000d",
      "tree": "f9cacb8d23e209653c6af2d30791ee93593ceda3",
      "parents": [
        "22a4427972af371fddb49c0184a93851ad51070d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Jul 12 13:58:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 16:00:58 2005 -0700"
      },
      "message": "[PATCH] name_to_dev_t warning fix\n\nkernel/power/disk.c needs a declaration of name_to_dev_t() in scope.  mount.h\nseems like an appropriate choice.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "751c404b8f63e8199d5f2f8f2bcfd69b41d11caa",
      "tree": "d69c76ceadbaa6f5ca3fd7be881201e87ef93377",
      "parents": [
        "55e700b924f9e0ba24e3a071d1097d050b05abe6"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Jul 07 17:57:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:52 2005 -0700"
      },
      "message": "[PATCH] namespace: rename _mntput to mntput_no_expire\n\nThis patch renames _mntput() to something a little more descriptive:\nmntput_no_expire().\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55e700b924f9e0ba24e3a071d1097d050b05abe6",
      "tree": "36a5d2401211c8fe27f6210c6fddb6db699b8015",
      "parents": [
        "732dbef606f22a23cb3e1029d613977ec645e8ae"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Jul 07 17:57:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:52 2005 -0700"
      },
      "message": "[PATCH] namespace: rename mnt_fslink to mnt_expire\n\nThis patch renames vfsmount-\u003emnt_fslink to something a little more\ndescriptive: vfsmount-\u003emnt_expire.\n\nSigned-off-by: Mike Waychison \u003cmichael.waychison@sun.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
