)]}'
{
  "log": [
    {
      "commit": "741a295130606143edbf9fc740f633dbc1e6225f",
      "tree": "3679047dd44e94ba94ee1487880a94def93a06f9",
      "parents": [
        "99d1419d96d7df9cfa56bc977810be831bd5ef64"
      ],
      "author": {
        "name": "JANAK DESAI",
        "email": "janak@us.ibm.com",
        "time": "Tue Feb 07 12:59:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:34 2006 -0800"
      },
      "message": "[PATCH] unshare system call -v5: unshare namespace\n\nIf the namespace structure is being shared, allocate a new one and copy\ninformation from the current, shared, structure.\n\nSigned-off-by: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "390c684367de37e1c2f9005cf92f7a746c69fdd3",
      "tree": "23cf8783db5fdec3717c79f989c6872955679036",
      "parents": [
        "36341f64569b0c4572478237ec5ed318f0762510"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Mon Nov 07 17:17:51 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:10 2005 -0800"
      },
      "message": "[PATCH] making namespace_sem global\n\nThis removes the per-namespace semaphore in favor of a global semaphore.\nThis can have an effect on namespace scalability.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\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": "5addc5dd8836aa061f6efc4a0d9ba6323726297a",
      "tree": "a5ce3703bbb421c93482b6043ebd57137276808f",
      "parents": [
        "1abe77b0fc4b485927f1f798ae81a752677e1d05"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 07 17:15:49 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 18:18:10 2005 -0800"
      },
      "message": "[PATCH] make /proc/mounts pollable\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ce88cf466f7b6078b14d67d186a3d7c19dd5609",
      "tree": "b9716f3a71e3285a998da9614cfbc132ca605542",
      "parents": [
        "202322e6f7cd12e82b5ff0fa92bbdf517fcf0947"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Jul 07 17:57:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:51 2005 -0700"
      },
      "message": "[PATCH] namespace.c: fix race in mark_mounts_for_expiry()\n\nThis patch fixes a race found by Ram in mark_mounts_for_expiry() in\nfs/namespace.c.\n\nThe bug can only be triggered with simultaneous exiting of a process having\na private namespace, and expiry of a mount from within that namespace.\nIt\u0027s practically impossible to trigger, and I haven\u0027t even tried.  But\nstill, a bug is a bug.\n\nThe race happens when put_namespace() is called by another task, while\nmark_mounts_for_expiry() is between atomic_read() and get_namespace().  In\nthat case get_namespace() will be called on an already dead namespace with\nunforeseeable results.\n\nThe solution was suggested by Al Viro, with his own words:\n\n      Instead of screwing with atomic_read() in there, why don\u0027t we\n      simply do the following:\n      \ta) atomic_dec_and_lock() in put_namespace()\n      \tb) __put_namespace() called without dropping lock\n      \tc) the first thing done by __put_namespace would be\n      struct vfsmount *root \u003d namespace-\u003eroot;\n      namespace-\u003eroot \u003d NULL;\n      spin_unlock(...);\n      ....\n      umount_tree(root);\n      ...\n      \td) check in mark_... would be simply namespace \u0026\u0026 namespace-\u003eroot.\n\n      And we are all set; no screwing around with atomic_read(), no magic\n      at all.  Dying namespace gets NULL -\u003eroot.\n      All changes of -\u003eroot happen under spinlock.\n      If under a spinlock we see non-NULL -\u003emnt_namespace, it won\u0027t be\n      freed until we drop the lock (we will set -\u003emnt_namespace to NULL\n      under that lock before we get to freeing namespace).\n      If under a spinlock we see non-NULL -\u003emnt_namespace and\n      -\u003emnt_namespace-\u003eroot, we can grab a reference to namespace and be\n      sure that it won\u0027t go away.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nAcked-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\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": "52c1da39534fb382c061de58b65f678ad74b59f5",
      "tree": "92b18695f23afbc99374f844445f555a198978f2",
      "parents": [
        "d763b7a4736e219528f77bf6bc75dd78b1d75c03"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Jun 23 22:05:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:43 2005 -0700"
      },
      "message": "[PATCH] make various thing static\n\nAnother rollup of patches which give various symbols static scope\n\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": "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"
    }
  ]
}
