)]}'
{
  "log": [
    {
      "commit": "894680710d813137077ad7cb351b713f64cabbdf",
      "tree": "67cd171f70f8dd938374bf02c1c8d562d08a3f61",
      "parents": [
        "a135aa2cd76a1de1a84312e0bb3498a5da76782d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 20 21:57:43 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:12 2010 -0400"
      },
      "message": "Simplify devpts_get_sb() failure exits\n\npostpone simple_set_mnt() until we know we won\u0027t fail.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "edfacdd6f81119b9005615593f2cbd94b8c7e2d8",
      "tree": "9cdd79e4cc6f57b01848a20d5f79fcf46d6e9f16",
      "parents": [
        "68cb4f8e246bbbc649980be0628cae9265870a91"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Tue Nov 17 18:35:43 2009 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 11 15:18:05 2009 -0800"
      },
      "message": "devpts_get_tty() should validate inode\n\ndevpts_get_tty() assumes that the inode passed in is associated with a valid\npty.  But if the only reference to the pty is via a bind-mount, the inode\npassed to devpts_get_tty() while valid, would refer to a pty that no longer\nexists.\n\nWith a lot of debug effort, Grzegorz Nosek developed a small program (see\nbelow) to reproduce a crash on recent kernels. This crash is a regression\nintroduced by the commit:\n\n\tcommit 527b3e4773628b30d03323a2cb5fb0d84441990f\n\tAuthor: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\n\tDate:   Mon Oct 13 10:43:08 2008 +0100\n\nTo fix, ensure that the dentry associated with the inode has not yet been\ndeleted/unhashed by devpts_pty_kill().\n\nSee also:\nhttps://lists.linux-foundation.org/pipermail/containers/2009-July/019273.html \n\ntty-bug.c:\n\n#define _GNU_SOURCE\n#include \u003cfcntl.h\u003e\n#include \u003csched.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003csys/mount.h\u003e\n#include \u003csys/signal.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdio.h\u003e\n\n#include \u003clinux/fs.h\u003e\n\nvoid dummy(int sig)\n{\n}\n\nstatic int child(void *unused)\n{\n\tint fd;\n\n\tsignal(SIGINT, dummy); signal(SIGHUP, dummy);\n\tpause(); /* cheesy synchronisation to wait for /dev/pts/0 to appear */\n\n\tmount(\"/dev/pts/0\", \"/dev/console\", NULL, MS_BIND, NULL);\n\tsleep(2);\n\n\tfd \u003d open(\"/dev/console\", O_RDWR);\n\tdup(0); dup(0);\n\twrite(1, \"Hello world!\\n\", sizeof(\"Hello world!\\n\")-1);\n\treturn 0;\n}\n\nint main(void)\n{\n\tpid_t pid;\n\tchar *stack;\n\n\tstack \u003d malloc(16384);\n\tpid \u003d clone(child, stack+16384, CLONE_NEWNS|SIGCHLD, NULL);\n\n\topen(\"/dev/ptmx\", O_RDWR|O_NOCTTY|O_NONBLOCK);\n\n\tunlockpt(fd); grantpt(fd);\n\n\tsleep(2);\n\tkill(pid, SIGHUP);\n\tsleep(1);\n\treturn 0; /* exit before child opens /dev/console */\n}\n\nReported-by: Grzegorz Nosek \u003croot@localdomain.pl\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nTested-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1fd7317d02ec03c6fdf072317841287933d06d24",
      "tree": "b7ac4d511896dbb21c1b76a27f6c4d5b4cb6c7bb",
      "parents": [
        "af91322ef3f29ae4114e736e2a72e28b4d619cf9"
      ],
      "author": {
        "name": "Nick Black",
        "email": "dank@qemfd.net",
        "time": "Tue Sep 22 16:43:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:28 2009 -0700"
      },
      "message": "Move magic numbers into magic.h\n\nMove various magic-number definitions into magic.h.\n\nSigned-off-by: Nick Black \u003cdank@qemfd.net\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\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": "f6cc746bbb3b8a8ceb8514a7906ba582607a8cf7",
      "tree": "9ef80d495199599daf73b86373f0fc131bbed1d4",
      "parents": [
        "3b22edc5730b87d360ee7dd7143397ba09b73a47"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Jun 16 21:15:04 2009 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:15:24 2009 -0400"
      },
      "message": "devpts: remove module-related code\n\nThese days, the devpts filesystem is closely integrated with the pty\nmemory management, and cannot be built as a module, even less removed\nfrom the kernel.  Accordingly, remove all module-related stuff from\nthis filesystem.\n\n[ v2: only remove code that\u0027s actually dead ]\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "93d5581e20600593ec3236921b6620225fb76034",
      "tree": "e43e81637542951f2e3d7244e010506605dce2d8",
      "parents": [
        "26a2e20f4a966bebc312836aeb4423fbfd4e33e2"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Jun 11 14:03:55 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:51:06 2009 -0700"
      },
      "message": "devpts: unregister the file system on error\n\nCloses-bug: http://bugzilla.kernel.org/show_bug.cgi?id\u003d13429\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f71ebedb3f8ce9108978168759c8551d873a912",
      "tree": "604f633fa092872f8b70873780c36e024de3677a",
      "parents": [
        "bd67ce0f661482bd073f94144dd7e5a093ef012f"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu May 14 19:38:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 15 08:03:23 2009 -0700"
      },
      "message": "devpts: correctly set default options\n\ndevpts_get_sb() calls memset(0) to clear mount options and calls\nparse_mount_options() if user specified any mount options.\n\nThe memset(0) is bogus since the \u0027mode\u0027 and \u0027ptmxmode\u0027 options are\nnon-zero by default.  parse_mount_options() restores options to default\nanyway and can properly deal with NULL mount options.\n\nSo in devpts_get_sb() remove memset(0) and call parse_mount_options() even\nfor NULL mount options.\n\nBug reported by Eric Paris: http://lkml.org/lkml/2009/5/7/448.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nTested-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nReviewed-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f5bbff9a1b7d6864a495763448a363bbfa96324",
      "tree": "0067dca46f40def1c55541c34c262e06aeb8c4c8",
      "parents": [
        "74dbbdd7fdc11763f4698d2f3e684cf4446951e6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 06 01:34:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:40 2009 -0400"
      },
      "message": "Convert obvious places to deactivate_locked_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1bd7903560f1f713e85188a5aaf4d2428b6c8b50",
      "tree": "0b6faa6cb51effe327dfecbd6a05e7a3b50debfe",
      "parents": [
        "289f00e225a6f60056644e0fd7e4081cb140c631"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Sat Mar 07 10:12:32 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:04 2009 -0400"
      },
      "message": "Merge code for single and multiple-instance mounts\n\nnew_pts_mount() (including the get_sb_nodev()), shares a lot of code\nwith init_pts_mount(). The only difference between them is the \u0027test-super\u0027\nfunction passed into sget().\n\nMove all common code into devpts_get_sb() and remove the new_pts_mount() and\ninit_pts_mount() functions,\n\nChangelog[v3]:\n\t[Serge Hallyn]: Remove unnecessary printk()s\nChangelog[v2]:\n\t(Christoph Hellwig): Merge code in \u0027do_pts_mount()\u0027 into devpts_get_sb()\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nTested-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "289f00e225a6f60056644e0fd7e4081cb140c631",
      "tree": "70710d196d03f9a63a1e9034c0d4536833cb2bd6",
      "parents": [
        "945cf2c79f6fbb1b74e3b0ca08f48b6af56ad412"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Sat Mar 07 10:12:06 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:04 2009 -0400"
      },
      "message": "Remove get_init_pts_sb()\n\nWith mknod_ptmx() moved to devpts_get_sb(), init_pts_mount() becomes\na wrapper around get_init_pts_sb(). Remove get_init_pts_sb() and\nfold code into init_pts_mount().\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "945cf2c79f6fbb1b74e3b0ca08f48b6af56ad412",
      "tree": "82ef6088dc080f12bd330c095e605c06ef66dd50",
      "parents": [
        "482984f06df54d886995a4383d2f5bb85e3de945"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Sat Mar 07 10:11:41 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:04 2009 -0400"
      },
      "message": "Move common mknod_ptmx() calls into caller\n\nWe create \u0027ptmx\u0027 node in both single-instance and multiple-instance\nmounts. So devpts_get_sb() can call mknod_ptmx() once rather than\nhave both modes calling mknod_ptmx() separately.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "482984f06df54d886995a4383d2f5bb85e3de945",
      "tree": "30d4b05f6dbaeec18b741b182b25c776d8ae65c3",
      "parents": [
        "fdbf5348661ac9d519164d1489f30cc0384fda58"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Sat Mar 07 10:14:41 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:04 2009 -0400"
      },
      "message": "Parse mount options just once and copy them to super block\n\nSince all the mount option parsing is done in devpts, we could do it\njust once and pass it around in devpts functions and eventually store\nit in the super block.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fdbf5348661ac9d519164d1489f30cc0384fda58",
      "tree": "54c944d78f28a2700aa3424322d7d758fbbde25c",
      "parents": [
        "a3ec947c85ec339884b30ef6a08133e9311fdae1"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Sat Mar 07 10:16:20 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "Unroll essentials of do_remount_sb() into devpts\n\nOn remount, devpts fs only needs to parse the mount options. Users cannot\ndirectly create/dirty files in /dev/pts so the MS_RDONLY flag and\nshrinking the dcache does not really apply to devpts.\n\nSo effectively on remount, devpts only parses the mount options and updates\nthese options in its super block. As such, we could replace do_remount_sb()\ncall with a direct parse_mount_options().\n\nDoing so enables subsequent patches to avoid parsing the mount options twice\nand simplify the code.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\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": "a9f184f02aa49d46c4c35311d93cbcd1c61149df",
      "tree": "0a2f44b6be19fa876c7b423a1d1f02059952f926",
      "parents": [
        "af5df56688acfb75c1b15b4e000ec5e82a9cdc29"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Jan 28 16:57:12 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:43:59 2009 -0400"
      },
      "message": "devpts: Must release s_umount on error\n\nWe should drop the -\u003es_umount mutex if an error occurs after the\nsget()/grab_super() call. This was introduced when adding support\nfor multiple instances of devpts and noticed during a code review/reorg.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "260219cc48cfb22486e5d0d706c978228a080d63",
      "tree": "2346222cc38d9e8da0aca1988d08b6e0ecdf0d0a",
      "parents": [
        "2f68891314b14e7e0ef07b4e77a8ea6e917fc74b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 10 12:55:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 10 15:55:11 2009 -0700"
      },
      "message": "devpts: remove graffiti\n\nVery annoying when working with containters.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56ff5efad96182f4d3cb3dc6b07396762c658f16",
      "tree": "cb91f93aa2324573527165d56d230b606a3111ed",
      "parents": [
        "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 09:34:39 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "zero i_uid/i_gid on inode allocation\n\n... and don\u0027t bother in callers.  Don\u0027t bother with zeroing i_blocks,\nwhile we are at it - it\u0027s already been zeroed.\n\ni_mode is not worth the effort; it has no common default value.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d0eafc7db8f170d534a16b5f04617e98ae2025de",
      "tree": "c7d5cb68ba63d884653aae829ac76d175c7f950d",
      "parents": [
        "39efd191d01b5f1efc3d604baf74233dc525e6a8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 02 13:44:49 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:38 2009 -0800"
      },
      "message": "CRED: Wrap task credential accesses in the devpts filesystem\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\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c056e5b148498192832678cf2957760945e8c71",
      "tree": "f6462adeb837deb0397aefd03cac5daf3827b7a7",
      "parents": [
        "4bd43f2c31848d751f63e8753cd2788d48fb5f30"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Jan 02 13:44:12 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:37 2009 -0800"
      },
      "message": "devpts: fix unused function warning\n\nfs/devpts/inode.c:324: warning: \u0027compare_init_pts_sb\u0027 defined but not used\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "835aa440f1c3fe16a622015bc1b52dffedf6d90e",
      "tree": "d0ba2b840bafde5e149baca2990030fe30e8240e",
      "parents": [
        "784c4d8b1b1e66f8c45e8b889613f4982f525b2b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Fri Jan 02 13:42:48 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:36 2009 -0800"
      },
      "message": "devpts: Coding style clean up\n\nJust nail the oddments now while this code is being touched\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a1b2dc0c83bbfc24d72cafd5e69810a149b44e4",
      "tree": "4ed7b892b7a1e03bc085d1f78e0a46fd2ee13342",
      "parents": [
        "d4076ac55bf8755ce6c5706478631c1726cf0179"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Fri Jan 02 13:42:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:36 2009 -0800"
      },
      "message": "Enable multiple instances of devpts\n\nTo support containers, allow multiple instances of devpts filesystem, such\nthat indices of ptys allocated in one instance are independent of ptys\nallocated in other instances of devpts.\n\nBut to preserve backward compatibility, enable this support for multiple\ninstances only if:\n\n\t- CONFIG_DEVPTS_MULTIPLE_INSTANCES is set to Y, and\n\t- \u0027-o newinstance\u0027 mount option is specified while mounting devpts\n\nTo use multi-instance mount, a container startup script could:\n\n\t$ ns_exec -cm /bin/bash\n\t$ umount /dev/pts\n\t$ mount -t devpts -o newinstance lxcpts /dev/pts\n\t$ mount -o bind /dev/pts/ptmx /dev/ptmx\n\t$ /usr/sbin/sshd -p 1234\n\nwhere \u0027ns_exec -cm /bin/bash\u0027 is calls clone() with CLONE_NEWNS flag and execs\n/bin/bash in the child process. A pty created by the sshd is not visible in\nthe original mount of /dev/pts.\n\nUSER-SPACE-IMPACT:\n\t- See Documentation/fs/devpts.txt (included in next patch) for user-\n\t  space impact in multi-instance and mixed-mode operation.\nTODO:\n\t- Update mount(8), pts(4) man pages. Highlight impact of not\n\t  redirecting /dev/ptmx to /dev/pts/ptmx after a multi-instance mount.\n\nChangelog[v6]:\n\t- [Dave Hansen] Use new get_init_pts_sb() interface\n\t- [Serge Hallyn] Don\u0027t bother displaying \u0027newinstance\u0027 in show_options\n\t- [Serge Hallyn] Use macros (PARSE_REMOUNT/PARSE_MOUNT) instead of 0/1.\n\t- [Serge Hallyn] Check error return from get_sb_single() (now\n\t  get_init_pts_sb())\n\t- devpts_pty_kill(): don\u0027t dput error dentries\n\nChangelog[v5]:\n\t- Move get_sb_ref() definition to earlier patch\n\t- Move usage info to Documentation/filesystems/devpts.txt (next patch)\n\t- Make ptmx node even in init_pts_ns, now that default mode is 0000\n\t  (defined in earlier patch, enabled here).\n\t- Cache ptmx dentry and use to update mode during remount\n\t  (defined in earlier patch, enabled here).\n\t- Bugfix: explicitly ignore newinstance on remount (if newinstance was\n\t  specified on remount of initial mount, it would be ignored but\n\t  /proc/mounts would imply that the option was set)\n\nChangelog[v4]:\n\n\t- Update patch description to address H. Peter Anvin\u0027s comments\n\t- Consolidate multi-instance mode code under new config token,\n\t  CONFIG_DEVPTS_MULTIPLE_INSTANCE.\n\t- Move usage-details from patch description to\n\t  Documentation/fs/devpts.txt\n\nChangelog[v3]:\n\t- Rename new mount option to \u0027newinstance\u0027\n\t- Create ptmx nodes only in \u0027newinstance\u0027 mounts\n\t- Bugfix: parse_mount_options() modifies @data but since we need to\n\t  parse the @data twice (once in devpts_get_sb() and once during\n\t  do_remount_sb()), parse a local copy of @data in devpts_get_sb().\n\t  (restructured code in devpts_get_sb() to fix this)\n\nChangelog[v2]:\n\t- Support both single-mount and multiple-mount semantics and\n\t  provide \u0027-onewmnt\u0027 option to select the semantics.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4076ac55bf8755ce6c5706478631c1726cf0179",
      "tree": "55959d50da843e2ec8b1bbaeeed299c716e9f516",
      "parents": [
        "1f8f1e296583f9f832c2fe7b5a219675b74bf43e"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Fri Jan 02 13:42:19 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:36 2009 -0800"
      },
      "message": "Define get_init_pts_sb()\n\nSee comments in the function header for details. The new interface will\nbe used in a follow-on patch.\n\nChangelog [v2]:\n\t[Dave Hansen] Replace get_sb_ref() in fs/super.c with get_init_pts_sb()\n\tand make the new interface private to devpts\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f8f1e296583f9f832c2fe7b5a219675b74bf43e",
      "tree": "3fd16bc570df327a02c07e983c0e5d63ae13c0db",
      "parents": [
        "e4adca27bcbb8a73c4cf1dfa71392654cfa33345"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Fri Jan 02 13:42:02 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:36 2009 -0800"
      },
      "message": "Define mknod_ptmx()\n\n/dev/ptmx is closely tied to the devpts filesystem. An open of /dev/ptmx,\nallocates the next pty index and the associated device shows up in the\ndevpts fs as /dev/pts/n.\n\nWih multiple instancs of devpts filesystem, during an open of /dev/ptmx\nwe would be unable to determine which instance of the devpts is being\naccessed.\n\nSo we move the \u0027ptmx\u0027 node into /dev/pts and use the inode of the \u0027ptmx\u0027\nnode to identify the superblock and hence the devpts instance.  This patch\nadds ability for the kernel to internally create the [ptmx, c, 5:2] device\nwhen mounting devpts filesystem.  Since the ptmx node in devpts is new and\nmay surprise some userspace scripts, the default permissions for the new\nnode is 0000.  These permissions can be changed either using chmod or by\nremounting with the new \u0027-o ptmxmode\u003d0666\u0027 mount option.\n\nChangelog[v5]:\n\t- [Serge Hallyn bugfix]: Letting new_inode() assign inode number to\n\t  ptmx can collide with hand-assigning inode numbers to ptys. So,\n\t  hand-assign specific inode number to ptmx node also.\n\t- [Serge Hallyn]: Maybe safer to grab root dentry mutex while creating\n\t  ptmx node\n\t- [Bugfix with Serge Hallyn] Replace lookup_one_len() in mknod_ptmx()\n\t  wih d_alloc_name() (lookup during -\u003eget_sb() locks up system). To\n\t  simplify patchset, fold the ptmx_dentry patch into this.\n\nChangelog[v4]:\n\t- Change default permissions of pts/ptmx node to 0000.\n\t- Move code for ptmxmode under #ifdef CONFIG_DEVPTS_MULTIPLE_INSTANCES.\n\nChangelog[v3]:\n\t- Rename ptmx_mode to ptmxmode (for consistency with \u0027newinstance\u0027)\n\nChangelog[v2]:\n\t- [H. Peter Anvin] Remove mknod() system call support and create the\n\t  ptmx node internally.\n\nChangelog[v1]:\n\t- Earlier version of this patch enabled creating /dev/pts/tty as\n\t  well. As pointed out by Al Viro and H. Peter Anvin, that is not\n\t  really necessary.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53af8ee4094d80ddaac7efefb572b1c22ae49367",
      "tree": "15409f4f0cb797d87f7a18c7dd468a227e3c66de",
      "parents": [
        "31af0abbdafb66ad8e27e3df878faec2ebe1132e"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Fri Jan 02 13:41:47 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:35 2009 -0800"
      },
      "message": "Extract option parsing to new function\n\nMove code to parse mount options into a separate function so it can\n(later) be shared between mount and remount operations.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31af0abbdafb66ad8e27e3df878faec2ebe1132e",
      "tree": "69bc68f775fe405e9b2f7eae6ca1ba818e40e185",
      "parents": [
        "e76b7c01e598d2d14ddfdb6ae5c6afe45245d0de"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Fri Jan 02 13:41:33 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:35 2009 -0800"
      },
      "message": "Per-mount \u0027config\u0027 object\n\nWith support for multiple mounts of devpts, the \u0027config\u0027 structure really\nrepresents per-mount options rather than config parameters. Rename \u0027config\u0027\nstructure to \u0027pts_mount_opts\u0027 and store it in the super-block.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e76b7c01e598d2d14ddfdb6ae5c6afe45245d0de",
      "tree": "1ecd14fb7aa17e49857d20d974e843edd20bbedc",
      "parents": [
        "59e55e6cf86eb472e8373831c4234252916c53ef"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Fri Jan 02 13:41:21 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:35 2009 -0800"
      },
      "message": "Per-mount allocated_ptys\n\nTo enable multiple mounts of devpts, \u0027allocated_ptys\u0027 must be a per-mount\nvariable rather than a global variable.  Move \u0027allocated_ptys\u0027 into the\nsuper_block\u0027s s_fs_info.\n\nChangelog[v2]:\n\tDefine and use DEVPTS_SB() wrapper.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59e55e6cf86eb472e8373831c4234252916c53ef",
      "tree": "6d904c0490ea787b2ac65d7f0a37819ec37e8b3b",
      "parents": [
        "300a6204b4d45dc70359b24384ad04ae899179c3"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Fri Jan 02 13:41:11 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:19:35 2009 -0800"
      },
      "message": "Remove devpts_root global\n\nRemove the \u0027devpts_root\u0027 global variable and find the root dentry using\nthe super_block. The super-block can be found from the device inode, using\nthe new wrapper, pts_sb_from_inode().\n\nChangelog: This patch is based on an earlier patchset from Serge Hallyn\n\t   and Matt Helsley.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec4c2aacd16672febca053109eb9ddf672108ca1",
      "tree": "a254b2a9a08feb85a53038a4a5b78a77b82ea3d4",
      "parents": [
        "97b7702cd1bdb8e89bde6c70aa983e7b82a52ec6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:38:49 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:38:49 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the devpts filesystem\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\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6f37daa8b892fd29dd71be0de61460a478cb122",
      "tree": "158010784c65dc0183b62551058ae0ed0fa2e887",
      "parents": [
        "89a52e109e2e2fe8bbd4e316cdb910774519c029"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:43:27 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Simplify devpts_pty_kill\n\nWhen creating a new pty, save the pty\u0027s inode in the tty-\u003edriver_data.\nUse this inode in pty_kill() to identify the devpts instance. Since\nwe now have the inode for the pty, we can skip get_node() lookup and\nremove the unused get_node().\n\nTODO:\n\t- check if the mutex_lock is needed in pty_kill().\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89a52e109e2e2fe8bbd4e316cdb910774519c029",
      "tree": "5e469fcbfe109216ea1e046377c00b439b558bdd",
      "parents": [
        "527b3e4773628b30d03323a2cb5fb0d84441990f"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:43:18 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Simplify devpts_pty_new()\n\ndevpts_pty_new() is called when setting up a new pty and would not\nwill not have an existing dentry or inode for the pty. So don\u0027t bother\nlooking for an existing dentry - just create a new one.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "527b3e4773628b30d03323a2cb5fb0d84441990f",
      "tree": "d7dfcc1b716881162d93bf24ade602a77ca171ac",
      "parents": [
        "15f1a6338ddd4e69fff965d4b3a0e1bfb7a13d9c"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:43:08 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Simplify devpts_get_tty()\n\nAs pointed out by H. Peter Anvin, since the inode for the pty is known,\nwe don\u0027t need to look it up.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15f1a6338ddd4e69fff965d4b3a0e1bfb7a13d9c",
      "tree": "301eea94cb514dc12b5070fc4b3ab33d3aab4322",
      "parents": [
        "4a2b5fddd53b80efcb3266ee36e23b8de28e761a"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Mon Oct 13 10:42:59 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:43 2008 -0700"
      },
      "message": "Add an instance parameter devpts interfaces\n\nPass-in \u0027inode\u0027 or \u0027tty\u0027 parameter to devpts interfaces.  With multiple\ndevpts instances, these parameters will be used in subsequent patches\nto identify the instance of devpts mounted. The parameters also help\nsimplify devpts implementation.\n\nChangelog[v3]:\n\t- minor changes due to merge with ttydev updates\n\t- rename parameters to emphasize they are ptmx or pts inodes\n\t- pass-in tty_struct * to devpts_pty_kill() (this will help\n\t  cleanup the get_node() call in a subsequent patch)\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ee7c12b7121cd49d528de219e4ffd5459657998",
      "tree": "d8799e0c63e388a650912e56473a694918e2ccdd",
      "parents": [
        "9a18540915faaaadd7f71c16fa877a0c19675923"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 26 11:42:16 2008 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:29 2008 -0400"
      },
      "message": "[PATCH] devpts: switch to IDA\n\nDevpts code wants just numbers for tty indexes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "718a916338e821a10961e6a7a17430c18e5e58d9",
      "tree": "b261fd36e7a4f642223668596c85da62b60729a4",
      "parents": [
        "4f8f9d66cdac4845409f7520e4f287a1907a6bf9"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Wed Apr 30 00:54:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:48 2008 -0700"
      },
      "message": "devpts: factor out PTY index allocation\n\nFactor out the code used to allocate/free a pts index into new interfaces,\ndevpts_new_index() and devpts_kill_index().  This localizes the external data\nstructures used in managing the pts indices.\n\n[akpm@linux-foundation.org: undo accidental mutex2sem conversion]\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b87a267eb7291d075df76ebabd43c7f961b12f67",
      "tree": "5dae609dd0e1163c74ea179e5e84cc5ce61f3e36",
      "parents": [
        "e55e212c083f0c51a7d4eccd1746b6dca40ffc41"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 08 04:21:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:40 2008 -0800"
      },
      "message": "mount options: fix devpts\n\nAdd a .show_options super operation to devpts.\n\nSmall cleanup: when parsing the \"mode\" option, mask with S_IALLUGO\ninstead of ~S_IFMT.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3972b7f67bf1a352a4a4c350b2245d759a41ea06",
      "tree": "40eab1b1e50c25a7a94e2ba8d7c920e5980eae7a",
      "parents": [
        "1ae7075bcd805c3aa5e8f53effc63a4562d6110e"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@gmail.com",
        "time": "Tue May 08 00:24:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:59 2007 -0700"
      },
      "message": "devpts: add fsnotify create event\n\nCurrently, devpts doesn\u0027t generate an fsnotify event upon pts creation\nbecause the regular vfs paths aren\u0027t involved.  Deallocation, on the other\nhand, correctly generates a nameremove event thanks to the d_delete()\ninvocation in devpts_pty_kill().\n\nThis patch adds the missing fsnotify_create() trigger in devpts_pty_new().\n\nSigned-off-by: Florin Malita \u003cfmalita@gmail.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8e18e2941c53416aa219708e7dcad21fb4bd6794",
      "tree": "44118f8b09556193ac93e0b71aecfa3e1d4bc182",
      "parents": [
        "6a1d9805ec506d8b9d04450997707da5f643d87c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:17 2006 -0700"
      },
      "message": "[PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private\n\nThe following patches reduce the size of the VFS inode structure by 28 bytes\non a UP x86.  (It would be more on an x86_64 system).  This is a 10% reduction\nin the inode size on a UP kernel that is configured in a production mode\n(i.e., with no spinlock or other debugging functions enabled; if you want to\nsave memory taken up by in-core inodes, the first thing you should do is\ndisable the debugging options; they are responsible for a huge amount of bloat\nin the VFS inode structure).\n\nThis patch:\n\nThe filesystem or device-specific pointer in the inode is inside a union,\nwhich is pretty pointless given that all 30+ users of this field have been\nusing the void pointer.  Get rid of the union and rename it to i_private, with\na comment to explain who is allowed to use the void pointer.  This is just a\ncleanup, but it allows us to reuse the union \u0027u\u0027 for something something where\nthe union will actually be used.\n\n[judith@osdl.org: powerpc build fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Judith Lebzelter \u003cjudith@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 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 override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\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\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a673c6b8fff4b2888ef1d47462e4be79936ac5a",
      "tree": "891aac4312db8260e2ef217902813b2bcaa95acf",
      "parents": [
        "ee25e96fcd78837c9f192aa655ce12a88bfd63d4"
      ],
      "author": {
        "name": "Domen Puncer",
        "email": "domen@coderock.org",
        "time": "Thu Mar 23 03:00:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:17 2006 -0800"
      },
      "message": "[PATCH] devpts: use lib/parser.c for parsing mount options\n\nItem from \"2.6 should fix\" list.\n\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f549d6c18c0e8e6cf1bf0e7a47acc1daf7e2cec1",
      "tree": "40d827736575f2a8c489761599e9a1e5e45005be",
      "parents": [
        "b5bf6c55edf94e9c7fc01724d5b271f78eaf1d3f"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Sat Sep 03 15:55:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:52 2005 -0700"
      },
      "message": "[PATCH] Generic VFS fallback for security xattrs\n\nThis patch modifies the VFS setxattr, getxattr, and listxattr code to fall\nback to the security module for security xattrs if the filesystem does not\nsupport xattrs natively.  This allows security modules to export the incore\ninode security label information to userspace even if the filesystem does\nnot provide xattr storage, and eliminates the need to individually patch\nvarious pseudo filesystem types to provide such access.  The patch removes\nthe existing xattr code from devpts and tmpfs as it is then no longer\nneeded.\n\nThe patch restructures the code flow slightly to reduce duplication between\nthe normal path and the fallback path, but this should only have one\nuser-visible side effect - a program may get -EACCES rather than\n-EOPNOTSUPP if policy denied access but the filesystem didn\u0027t support the\noperation anyway.  Note that the post_setxattr hook call is not needed in\nthe fallback case, as the inode_setsecurity hook call handles the incore\ninode security state update directly.  In contrast, we do call fsnotify in\nboth cases.\n\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\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"
    }
  ]
}
