)]}'
{
  "log": [
    {
      "commit": "ab2af1f5005069321c5d130f09cce577b03f43ef",
      "tree": "73a70ba486f522cd9eeeef376ede2b5a1c1b473b",
      "parents": [
        "6e72ad2c581de121cc7e772469e2a8f6b1fd4379"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: files struct with RCU\n\nPatch to eliminate struct files_struct.file_lock spinlock on the reader side\nand use rcu refcounting rcuref_xxx api for the f_count refcounter.  The\nupdates to the fdtable are done by allocating a new fdtable structure and\nsetting files-\u003efdt to point to the new structure.  The fdtable structure is\nprotected by RCU thereby allowing lock-free lookup.  For fd arrays/sets that\nare vmalloced, we use keventd to free them since RCU callbacks can\u0027t sleep.  A\nglobal list of fdtable to be freed is not scalable, so we use a per-cpu list.\nIf keventd is already handling the current cpu\u0027s work, we use a timer to defer\nqueueing of that work.\n\nSince the last publication, this patch has been re-written to avoid using\nexplicit memory barriers and use rcu_assign_pointer(), rcu_dereference()\npremitives instead.  This required that the fd information is kept in a\nseparate structure (fdtable) and updated atomically.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac0b1bc1edbe81c0cb36cad7e7f5b91f4d9e12ed",
      "tree": "b982e728eafeebc226882f91482ff7d0d9ee5cc3",
      "parents": [
        "8f58202bf6b915656e116ece3bc4ace14bfe533a"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@linux.intel.com",
        "time": "Fri Sep 09 13:02:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:32 2005 -0700"
      },
      "message": "[PATCH] aio: kiocb locking to serialise retry and cancel\n\nImplement a per-kiocb lock to serialise retry operations and cancel.  This\nis done using wait_on_bit_lock() on the KIF_LOCKED bit of kiocb-\u003eki_flags.\nAlso, make the cancellation path lock the kiocb and subsequently release\nall references to it if the cancel was successful.  This version includes a\nfix for the deadlock with __aio_run_iocbs.\n\nSigned-off-by: Benjamin LaHaise \u003cbcrl@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f58202bf6b915656e116ece3bc4ace14bfe533a",
      "tree": "a50d0a3e3b1f7593557fa06379ac4b284717e87c",
      "parents": [
        "6f519165a97924ab3eeb99f388718d12ff97f1f4"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Fri Sep 09 13:02:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:32 2005 -0700"
      },
      "message": "[PATCH] change io_cancel return code for no cancel case\n\nNote that other than few exceptions, most of the current filesystem and/or\ndrivers do not have aio cancel specifically defined (kiob-\u003eki_cancel field\nis mostly NULL).  However, sys_io_cancel system call universally sets\nreturn code to -EAGAIN.  This gives applications a wrong impression that\nthis call is implemented but just never works.  We have customer inquires\nabout this issue.\n\nChanged by Benjamin LaHaise to EINVAL instead of ENOSYS\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nAcked-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1e40cd383ccc7c9f8b338c56ce28c326e25eb2fe",
      "tree": "8dab0fb849ccc25febf6c8f8865094141a50b8d2",
      "parents": [
        "ed1b58d8b53519e10a35c6a2bb49cac35f439621"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sat Sep 03 15:57:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:21 2005 -0700"
      },
      "message": "[PATCH] uml: fixes performance regression in activate_mm and thus exec()\n\nNormally, activate_mm() is called from exec(), and thus it used to be a\nno-op because we use a completely new \"MM context\" on the host (for\ninstance, a new process), and so we didn\u0027t need to flush any \"TLB entries\"\n(which for us are the set of memory mappings for the host process from the\nvirtual \"RAM\" file).\n\nKernel threads, instead, are usually handled in a different way.  So, when\nfor AIO we call use_mm(), things used to break and so Benjamin implemented\nactivate_mm().  However, that is only needed for AIO, and could slow down\nexec() inside UML, so be smart: detect being called for AIO (via\nPF_BORROWED_MM) and do the full flush only in that situation.\n\nComment also the caller so that people won\u0027t go breaking UML without\nnoticing.  I also rely on the caller\u0027s locks for testing current-\u003eflags.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCC: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c016e2257acd00a7ffd87fa1eec896138563d1aa",
      "tree": "aa22df355afe2be5b5476c1c6d26da99e47836fc",
      "parents": [
        "334a13ec3d01a1a4b4f2249735b793105cb4a519"
      ],
      "author": {
        "name": "Sébastien Dugu",
        "email": "sebastien.dugue@bull.net",
        "time": "Tue Jun 28 20:44:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 28 21:20:32 2005 -0700"
      },
      "message": "[PATCH] aio-retry-fix: fix aio retry work queueing\n\nIn the case of buffered AIO, in the aio retry path (aio_run_iocb), when the\nretry method returns EIOCBRETRY the kicked iocb is added to the context run\nlist but is never queued onto the work queue.  The request therefore is\nnever completed.\n\nThis patch fixes that by adding the appropriate call to aio_queue_work in\naio_run_aiocb so that subsequent retries will be handled by the aio worker\nthread.\n\nSigned-off-by: Sébastien Dugué \u003csebastien.dugue@bull.net\u003e\nAcked-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "954d3e95369cf73b4bc1e570729f68264a0e6fe0",
      "tree": "542c6435428848f02a0eb060a83b3dd1a7f90083",
      "parents": [
        "644d3a088a3b862ed0b57c286cf58a6bd338ce08"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenneth.w.chen@intel.com",
        "time": "Sun May 01 08:59:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:16 2005 -0700"
      },
      "message": "[PATCH] aio: optimize io_submit_one()\n\nThis patch optimizes io_submit_one to call aio_run_iocb() directly if\nctx-\u003erun_list is empty.  When the list is empty, the operation of adding to\nthe list, then call to __aio_run_iocbs() is unnecessary because these\noperations are done in one atomic step.  ctx-\u003erun_list always has only one\nelement in this case.  This optimization speeds up industry standard db\ntransaction processing benchmark by 0.2%.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "644d3a088a3b862ed0b57c286cf58a6bd338ce08",
      "tree": "f5373e9265c7518a29a92a97510fdc5993855661",
      "parents": [
        "4bf69b2a06090c01c27f25ea5cd1440f7bf9256f"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenneth.w.chen@intel.com",
        "time": "Sun May 01 08:59:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:15 2005 -0700"
      },
      "message": "[PATCH] aio: clean up debug code\n\nClean up code that was previously used for debug purpose.  Remove aio_run,\naio_wakeups, iocb-\u003eki_queued and iocb-\u003eki_kicked.  Also clean up unused\nvariable count in __aio_run_iocbs() and debug code in read_events().\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4bf69b2a06090c01c27f25ea5cd1440f7bf9256f",
      "tree": "35bed1e865ee9f8b086954d866cee9c1c2b92b0f",
      "parents": [
        "212079cf4ee99e492a57b817e796825d423a30bb"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenneth.w.chen@intel.com",
        "time": "Sun May 01 08:59:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:15 2005 -0700"
      },
      "message": "[PATCH] aio: ring wrapping simplification\n\nSince the tail pointer in aio_ring structure never wrap ring size more than\nonce, so a simple compare is sufficient to wrap the index around.  This avoid\na more expensive mod operation.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "212079cf4ee99e492a57b817e796825d423a30bb",
      "tree": "58f54e75ec697f89ba12b39614e937bb374a451d",
      "parents": [
        "efcd5e3ab089496865571d22443dd3f514dae60c"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenneth.w.chen@intel.com",
        "time": "Sun May 01 08:59:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:15 2005 -0700"
      },
      "message": "[PATCH] aio: remove superfluous kiocb member initialization\n\nThis patch removes superfluous kiocb member initialization in the AIO\nallocation and deallocation path.  For example, in really_put_req(),\nright before kiocb is returned to slab, 5 variables are reset to NULL.\nThe same variables will be initialized at the kiocb allocation time,\nso why bother reset them knowing that they will be set to valid data\nat alloc time?  Another example: ki_retry is initialized in __aio_get_req,\nbut is initialized again in io_submit_one.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25ee7e3832951cf5896b194f6cd929a44863f419",
      "tree": "5b6486ded5188e41ac9bc81ad4a5e2bd746f7ede",
      "parents": [
        "056de2fa12febe02597f971eb6ea8f2cc9c9b06e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Apr 25 08:18:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Apr 25 08:18:14 2005 -0700"
      },
      "message": "[PATCH] fs/aio.c: make some code static\n\nThis patch makes some needlessly global code static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Benjamin LaHaise \u003cbcrl@kvack.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"
    }
  ]
}
