)]}'
{
  "log": [
    {
      "commit": "d4569d2e6949a63851032b40c811913d4a6f85f5",
      "tree": "d2a5c38c2fbf7167d742bde9ccb6fca0cb12c686",
      "parents": [
        "9e77c485f7037e4817bb53c78d15d5403981ae8b"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sat Apr 01 01:10:13 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 01 01:10:13 2006 +0200"
      },
      "message": "BUG_ON() Conversion in fs/direct-io.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner and can better optimized away\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "3c674e74238cb2484169e3f84f687c66887086b6",
      "tree": "07964918e0948a42bf787b37fc970c4b137fce53",
      "parents": [
        "e0edd5962bd83d319aaa50b39580dc30299a7fe3"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@sgi.com",
        "time": "Wed Mar 29 09:26:15 2006 +1000"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@sgi.com",
        "time": "Wed Mar 29 09:26:15 2006 +1000"
      },
      "message": "Fixes a regression from the recent \"remove -\u003eget_blocks() support\"\nchange.  inode-\u003ei_blkbits should be used when making a get_block_t\nrequest of a filesystem instead of dio-\u003eblkbits, as that does not\nindicate the filesystem block size all the time (depends on request\nalignment - see start of __blockdev_direct_IO).\n\nSigned-off-by: Nathan Scott \u003cnathans@sgi.com\u003e\nAcked-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\n"
    },
    {
      "commit": "1d8fa7a2b9a39d18727acc5c468e870df606c852",
      "tree": "41537fe9ea5478f3243e3301184dc13980f8201f",
      "parents": [
        "fa30bd058b746c0e2318a77ff8b4977faa924c2c"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Mar 26 01:38:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:01 2006 -0800"
      },
      "message": "[PATCH] remove -\u003eget_blocks() support\n\nNow that get_block() can handle mapping multiple disk blocks, no need to have\n-\u003eget_blocks().  This patch removes fs specific -\u003eget_blocks() added for DIO\nand makes it users use get_block() instead.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "174e27c607cfa3ebb92934d28c0fdfcf5ce6c3af",
      "tree": "1bc8f1804dc0917f1a86b2d32c701883932d81fe",
      "parents": [
        "0e6b3e5e97e2e8a25bcfc528dad94edf5220dfeb"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Sat Mar 25 03:08:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:00 2006 -0800"
      },
      "message": "[PATCH] direct-io: bug fix in dio handling write error\n\nThere is a bug in direct-io on propagating write error up to the higher I/O\nlayer.  When performing an async ODIRECT write to a block device, if a\ndevice error occurred (like media error or disk is pulled), the error code\nis only propagated from device driver to the DIO layer.  The error code\nstops at finished_one_bio().  The aysnc write, however, is supposedly have\na corresponding AIO event with appropriate return code (in this case -EIO).\n Application which waits on the async write event, will hang forever since\nsuch AIO event is lost forever (if such app did not use the timeout option\nin io_getevents call.  Regardless, an AIO event is lost).\n\nThe discovery of above bug leads to another discovery of potential race\nwindow with dio-\u003eresult.  The fundamental problem is that dio-\u003eresult is\noverloaded with dual use: an indicator of fall back path for partial dio\nwrite, and an error indicator used in the I/O completion path.  In the\nevent of device error, the setting of -EIO to dio-\u003eresult clashes with\nvalue used to track partial write that activates the fall back path.\n\nIt was also pointed out that it is impossible to use dio-\u003eresult to track\npartial write and at the same time to track error returned from device\ndriver.  Because direct_io_work can only determines whether it is a partial\nwrite at the end of io submission and in mid stream of those io submission,\na return code could be coming back from the driver.  Thus messing up all\nthe subsequent logic.\n\nProposed fix is to separating out error code returned by the IO completion\npath from partial IO submit tracking.  A new variable is added to dio\nstructure specifically to track io error returned in the completion path.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Zach Brown \u003czach.brown@oracle.com\u003e\nAcked-by: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3fb962bde48c413bfa419ec4413037e87955dcb6",
      "tree": "ccce49b3fbdd8a3f38bbfd07a397092a3ae483b5",
      "parents": [
        "3759fa9c55923f719ae944a3f8fbb029b36f759d"
      ],
      "author": {
        "name": "Nathan Scott",
        "email": "nathans@bruce",
        "time": "Wed Mar 15 15:14:45 2006 +1100"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@bruce",
        "time": "Wed Mar 15 15:14:45 2006 +1100"
      },
      "message": "Fix a direct I/O locking issue revealed by the new mutex code.\nAffects only XFS (i.e. DIO_OWN_LOCKING case) - currently it is\nnot possible to get i_mutex locking correct when using DIO_OWN\ndirect I/O locking in a filesystem due to indeterminism in the\npossible return code/lock/unlock combinations.  This can cause\na direct read to attempt a double i_mutex unlock inside XFS.\n\nWe\u0027re now ensuring __blockdev_direct_IO always exits with the\ninode i_mutex (still) held for a direct reader.\n\nTested with the three different locking modes (via direct block\ndevice access, ext3 and XFS) - both reading and writing; cannot\nfind any regressions resulting from this change, and it clearly\nfixes the mutex_unlock warning originally reported here:\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114189068126253\u0026w\u003d2\n\nSigned-off-by: Nathan Scott \u003cnathans@sgi.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "35dc8161d0a6fa5e654bcb3d6240acc9ecb0a259",
      "tree": "0c688ffc3adc127f5cf9f35ff93e6072e1f42438",
      "parents": [
        "835417967c10b6dfaffdffddba59196196e5d431"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Feb 03 03:04:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:07 2006 -0800"
      },
      "message": "[PATCH] fix O_DIRECT read of last block in a sparse file\n\nCurrently, if you open a file O_DIRECT, truncate it to a size that is not a\nmultiple of the disk block size, and then try to read the last block in the\nfile, the read will return 0.  The problem is in do_direct_IO, here:\n\n        /* Handle holes */\n        if (!buffer_mapped(map_bh)) {\n                char *kaddr;\n\n\t\t...\n\n                if (dio-\u003eblock_in_file \u003e\u003d\n                        i_size_read(dio-\u003einode)\u003e\u003eblkbits) {\n                        /* We hit eof */\n                        page_cache_release(page);\n                        goto out;\n                }\n\nWe shift off any remaining bytes in the final block of the I/O, resulting\nin a 0-sized read.  I\u0027ve attached a patch that fixes this.  I\u0027m not happy\nabout how ugly the math is getting, so suggestions are more than welcome.\n\nI\u0027ve tested this with a simple program that performs the steps outlined for\nreproducing the problem above.  Without the patch, we get a 0-sized result\nfrom read.  With the patch, we get the correct return value from the short\nread.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Suparna Bhattacharya \u003csuparna@in.ibm.com\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.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": "b5810039a54e5babf428e9a1e89fc1940fabff11",
      "tree": "835836cb527ec9bd525f93eb7e016f3dfb8c8ae2",
      "parents": [
        "f9c98d0287de42221c624482fd4f8d485c98ab22"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Oct 29 18:16:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] core remove PageReserved\n\nRemove PageReserved() calls from core code by tightening VM_RESERVED\nhandling in mm/ to cover PageReserved functionality.\n\nPageReserved special casing is removed from get_page and put_page.\n\nAll setting and clearing of PageReserved is retained, and it is now flagged\nin the page_alloc checks to help ensure we don\u0027t introduce any refcount\nbased freeing of Reserved pages.\n\nMAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being\ndeprecated.  We never completely handled it correctly anyway, and is be\nreintroduced in future if required (Hugh has a proof of concept).\n\nOnce PageReserved() calls are removed from kernel/power/swsusp.c, and all\narch/ and driver code, the Set and Clear calls, and the PG_reserved bit can\nbe trivially removed.\n\nLast real user of PageReserved is swsusp, which uses PageReserved to\ndetermine whether a struct page points to valid memory or not.  This still\nneeds to be addressed (a generic page_is_ram() should work).\n\nA last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and\nthus mapcounted and count towards shared rss).  These writes to the struct\npage could cause excessive cacheline bouncing on big systems.  There are a\nnumber of ways this could be addressed if it is an issue.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nRefcount bug fix for filemap_xip.c\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92198f7eaa5df3479341dd8fa20c2c81aa3b1e25",
      "tree": "b2b7f8c73b94b4179d5002eaaa30f683b6dc5132",
      "parents": [
        "16c29b67fb3bbacfc2a71f9e5f7d85728ef45efa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 22:00:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:19 2005 -0700"
      },
      "message": "[PATCH] pass iocb to dio_iodone_t\n\nXFS will have to look at iocb-\u003eprivate to fix aio+dio.  No other filesystem\nis using the blockdev_direct_IO* end_io callback.\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": "29504ff3be784372c4e2f7e31681a3e0292c4d9a",
      "tree": "449f6598e10a1930d113fd7bbe3aa6ca37341d10",
      "parents": [
        "1f08ad02379530e1c970d3d104343b9907b4d1b4"
      ],
      "author": {
        "name": "Daniel McNeil",
        "email": "daniel@osdl.org",
        "time": "Sat Apr 16 15:25:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:25:50 2005 -0700"
      },
      "message": "[PATCH] Direct IO async short read fix\n\nThe direct I/O code is mapping the read request to the file system block.  If\nthe file size was not on a block boundary, the result would show the the read\nreading past EOF.  This was only happening for the AIO case.  The non-AIO case\ntruncates the result to match file size (in direct_io_worker).  This patch\ndoes the same thing for the AIO case, it truncates the result to match the\nfile size if the read reads past EOF.\n\nWhen I/O completes the result can be truncated to match the file size\nwithout using i_size_read(), thus the aio result now matches the number of\nbytes read to the end of file.\n\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"
    }
  ]
}
