)]}'
{
  "log": [
    {
      "commit": "dfc7064500061677720fa26352963c772d3ebe6b",
      "tree": "a8ca495bccf98837c6762ffba54a8009c9772259",
      "parents": [
        "90b08710e41a07d4ff0fb8940dcce3a552991a56"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri May 23 13:04:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:10 2008 -0700"
      },
      "message": "md: restart recovery cleanly after device failure.\n\nWhen we get any IO error during a recovery (rebuilding a spare), we abort\nthe recovery and restart it.\n\nFor RAID6 (and multi-drive RAID1) it may not be best to restart at the\nbeginning: when multiple failures can be tolerated, the recovery may be\nable to continue and re-doing all that has already been done doesn\u0027t make\nsense.\n\nWe already have the infrastructure to record where a recovery is up to\nand restart from there, but it is not being used properly.\nThis is because:\n  - We sometimes abort with MD_RECOVERY_ERR rather than just MD_RECOVERY_INTR,\n    which causes the recovery not be be checkpointed.\n  - We remove spares and then re-added them which loses important state\n    information.\n\nThe distinction between MD_RECOVERY_ERR and MD_RECOVERY_INTR really isn\u0027t\nneeded.  If there is an error, the relevant drive will be marked as\nFaulty, and that is enough to ensure correct handling of the error.  So we\nfirst remove MD_RECOVERY_ERR, changing some of the uses of it to\nMD_RECOVERY_INTR.\n\nThen we cause the attempt to remove a non-faulty device from an array to\nfail (unless recovery is impossible as the array is too degraded).  Then\nwhen remove_and_add_spares attempts to remove the devices on which\nrecovery can continue, it will fail, they will remain in place, and\nrecovery will continue on them as desired.\n\nIssue:  If we are halfway through rebuilding a spare and another drive\nfails, and a new spare is immediately available,  do we want to:\n 1/ complete the current rebuild, then go back and rebuild the new spare or\n 2/ restart the rebuild from the start and rebuild both devices in\n    parallel.\n\nBoth options can be argued for.  The code currently takes option 2 as\n  a/ this requires least code change\n  b/ this results in a minimally-degraded array in minimal time.\n\nCc: \"Eivind Sarto\" \u003civan@kasenna.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7e72bf641b1fc7b9df6f40bd2c36dfccd8d647c",
      "tree": "81b1db5434c9635bf23fb40415056e10390cd692",
      "parents": [
        "4920916f728fe3c51f54c25ab7b3d271254aab5a"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed May 14 16:05:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:15 2008 -0700"
      },
      "message": "Remove blkdev warning triggered by using md\n\nAs setting and clearing queue flags now requires that we hold a spinlock\non the queue, and as blk_queue_stack_limits is called without that lock,\nget the lock inside blk_queue_stack_limits.\n\nFor blk_queue_stack_limits to be able to find the right lock, each md\npersonality needs to set q-\u003equeue_lock to point to the appropriate lock.\nThose personalities which didn\u0027t previously use a spin_lock, us\nq-\u003e__queue_lock.  So always initialise that lock when allocated.\n\nWith this in place, setting/clearing of the QUEUE_FLAG_PLUGGED bit will no\nlonger cause warnings as it will be clear that the proper lock is held.\n\nThanks to Dan Williams for review and fixing the silly bugs.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Alistair John Strachan \u003calistair@devzero.co.uk\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Jacek Luczak \u003cdifrost.kernel@gmail.com\u003e\nCc: Prakash Punnoor \u003cprakash@punnoor.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb6969e8cdef39e613b1755eff595f830b89bc82",
      "tree": "bc3c9f88b85c1f62a07da422033c37c6d3195fa6",
      "parents": [
        "8594303a7abc1a117b1d91412ce9b3d77ed35d02"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue May 06 20:42:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:46:55 2008 -0700"
      },
      "message": "misc: fix integer as NULL pointer warnings\n\ndrivers/md/raid10.c:889:17: warning: Using plain integer as NULL pointer\ndrivers/media/video/cx18/cx18-driver.c:616:12: warning: Using plain integer as NULL pointer\nsound/oss/kahlua.c:70:12: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6bfe0b499082fd3950429017cd8ebf2a6c458aa5",
      "tree": "81476cf7f7ddbea135bdb93729e0bffae0e7c163",
      "parents": [
        "11e2ede0228ee0f81ccacd15894908c3bf241f73"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Apr 30 00:52:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:33 2008 -0700"
      },
      "message": "md: support blocking writes to an array on device failure\n\nAllows a userspace metadata handler to take action upon detecting a device\nfailure.\n\nBased on an original patch by Neil Brown.\n\nChanges:\n-added blocked_wait waitqueue to rdev\n-don\u0027t qualify Blocked with Faulty always let userspace block writes\n-added md_wait_for_blocked_rdev to wait for the block device to be clear, if\n userspace misses the notification another one is sent every 5 seconds\n-set MD_RECOVERY_NEEDED after clearing \"blocked\"\n-kill DoBlock flag, just test mddev-\u003eexternal\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7a420c9472a95c46600a0345434b7b166e0b9c7",
      "tree": "b95005ce8ab92efdb5cd04b3d85c3b01a0455ebc",
      "parents": [
        "4ef197d87ad7d4bb326de3e9b8ecbb26f9e86253"
      ],
      "author": {
        "name": "Nick Andrew",
        "email": "nick@nick-andrew.net",
        "time": "Mon Apr 28 02:15:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:42 2008 -0700"
      },
      "message": "raid: remove leading TAB on printk messages\n\nMD drivers use one printk() call to print 2 log messages and the second line\nmay be prefixed by a TAB character.  It may also output a trailing space\nbefore newline.  klogd (I think) turns the TAB character into the 2 characters\n\u0027^I\u0027 when logging to a file.  This looks ugly.\n\nInstead of a leading TAB to indicate continuation, prefix both output lines\nwith \u0027raid:\u0027 or similar.  Also remove any trailing space in the vicinity of\nthe affected code and consistently end the sentences with a period.\n\nSigned-off-by: Nick Andrew \u003cnick@nick-andrew.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a07e6ab41be179cf1ed728a4f41368435508b550",
      "tree": "10773de394ab861259468372099c90b3f8671292",
      "parents": [
        "1c830532f6b44d10a1743ccd00e990c6b83396f5"
      ],
      "author": {
        "name": "K.Tanaka",
        "email": "k-tanaka@ce.jp.nec.com",
        "time": "Tue Mar 04 14:29:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:18 2008 -0800"
      },
      "message": "md: the md RAID10 resync thread could cause a md RAID10 array deadlock\n\nThis message describes another issue about md RAID10 found by testing the\n2.6.24 md RAID10 using new scsi fault injection framework.\n\nAbstract:\n\nWhen a scsi error results in disabling a disk during RAID10 recovery, the\nresync threads of md RAID10 could stall.\n\nThis case, the raid array has already been broken and it may not matter.  But\nI think stall is not preferable.  If it occurs, even shutdown or reboot will\nfail because of resource busy.\n\nThe deadlock mechanism:\n\nThe r10bio_s structure has a \"remaining\" member to keep track of BIOs yet to\nbe handled when recovering.  The \"remaining\" counter is incremented when\nbuilding a BIO in sync_request() and is decremented when finish a BIO in\nend_sync_write().\n\nIf building a BIO fails for some reasons in sync_request(), the \"remaining\"\nshould be decremented if it has already been incremented.  I found a case\nwhere this decrement is forgotten.  This causes a md_do_sync() deadlock\nbecause md_do_sync() waits for md_done_sync() called by end_sync_write(), but\nend_sync_write() never calls md_done_sync() because of the \"remaining\" counter\nmismatch.\n\nFor example, this problem would be reproduced in the following case:\n\nPersonalities : [raid10]\nmd0 : active raid10 sdf1[4] sde1[5](F) sdd1[2] sdc1[1] sdb1[6](F)\n      3919616 blocks 64K chunks 2 near-copies [4/2] [_UU_]\n      [\u003e....................]  recovery \u003d  2.2% (45376/1959808) finish\u003d0.7min speed\u003d45376K/sec\n\nThis case, sdf1 is recovering, sdb1 and sde1 are disabled.\nAn additional error with detaching sdd will cause a deadlock.\n\nmd0 : active raid10 sdf1[4] sde1[5](F) sdd1[6](F) sdc1[1] sdb1[7](F)\n      3919616 blocks 64K chunks 2 near-copies [4/1] [_U__]\n      [\u003d\u003e...................]  recovery \u003d  5.0% (99520/1959808) finish\u003d5.9min speed\u003d5237K/sec\n\n 2739 ?        S\u003c     0:17 [md0_raid10]\n28608 ?        D\u003c     0:00 [md0_resync]\n28629 pts/1    Ss     0:00 bash\n28830 pts/1    R+     0:00 ps ax\n31819 ?        D\u003c     0:00 [kjournald]\n\nThe resync thread keeps working, but actually it is deadlocked.\n\nPatch:\nBy this patch, the remaining counter will be decremented if needed.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c830532f6b44d10a1743ccd00e990c6b83396f5",
      "tree": "506c8fef4d84f54e76b533756cff86c45bb61746",
      "parents": [
        "8ed3a19563b6c05b7625649b1769ddb063d53253"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 04 14:29:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:18 2008 -0800"
      },
      "message": "md: fix possible raid1/raid10 deadlock on read error during resync\n\nThanks to K.Tanaka and the scsi fault injection framework, here is a fix for\nanother possible deadlock in raid1/raid10 error handing.\n\nIf a read request returns an error while a resync is happening and a resync\nrequest is pending, the attempt to fix the error will block until the resync\nprogresses, and the resync will block until the read request completes.  Thus\na deadlock.\n\nThis patch fixes the problem.\n\nCc: \"K.Tanaka\" \u003ck-tanaka@ce.jp.nec.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ed3a19563b6c05b7625649b1769ddb063d53253",
      "tree": "ad774e5920efc4c9bcf751ad31061cefe81faf35",
      "parents": [
        "27c529bb8e906d5d692152bc127cc09477d3629e"
      ],
      "author": {
        "name": "Keld Simonsen",
        "email": "keld@dkuug.dk",
        "time": "Tue Mar 04 14:29:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:18 2008 -0800"
      },
      "message": "md: don\u0027t attempt read-balancing for raid10 \u0027far\u0027 layouts\n\nThis patch changes the disk to be read for layout \"far \u003e 1\" to always be the\ndisk with the lowest block address.\n\nThus the chunks to be read will always be (for a fully functioning array) from\nthe first band of stripes, and the raid will then work as a raid0 consisting\nof the first band of stripes.\n\nSome advantages:\n\nThe fastest part which is the outer sectors of the disks involved will be\nused.  The outer blocks of a disk may be as much as 100 % faster than the\ninner blocks.\n\nAverage seek time will be smaller, as seeks will always be confined to the\nfirst part of the disks.\n\nMixed disks with different performance characteristics will work better, as\nthey will work as raid0, the sequential read rate will be number of disks\ninvolved times the IO rate of the slowest disk.\n\nIf a disk is malfunctioning, the first disk which is working, and has the\nlowest block address for the logical block will be used.\n\nSigned-off-by: Keld Simonsen \u003ckeld@dkuug.dk\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a35e63efa1fb18c6f20f38e3ddf3f8ffbcf0f6e7",
      "tree": "8dddd54c45ebaad84a6178765d29d9536df944d1",
      "parents": [
        "466634488e80968f12e73dd1fe6af5c37a1fbfe2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 04 14:29:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:17 2008 -0800"
      },
      "message": "md: fix deadlock in md/raid1 and md/raid10 when handling a read error\n\nWhen handling a read error, we freeze the array to stop any other IO while\nattempting to over-write with correct data.\n\nThis is done in the raid1d(raid10d) thread and must wait for all submitted IO\nto complete (except for requests that failed and are sitting in the retry\nqueue - these are counted in -\u003enr_queue and will stay there during a freeze).\n\nHowever write requests need attention from raid1d as bitmap updates might be\nrequired.  This can cause a deadlock as raid1 is waiting for requests to\nfinish that themselves need attention from raid1d.\n\nSo we create a new function \u0027flush_pending_writes\u0027 to give that attention, and\ncall it in freeze_array to be sure that we aren\u0027t waiting on raid1d.\n\nThanks to \"K.Tanaka\" \u003ck-tanaka@ce.jp.nec.com\u003e for finding and reporting this\nproblem.\n\nCc: \"K.Tanaka\" \u003ck-tanaka@ce.jp.nec.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d089c6af10c2be5988f03667d6d22fe6085fbe5e",
      "tree": "815eb0596bd7c908f30c268da6b5c5eff0e0bc21",
      "parents": [
        "29ac4aa3fc68a86279aca50f20df4d614de2e204"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 06 01:39:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:19 2008 -0800"
      },
      "message": "md: change ITERATE_RDEV to rdev_for_each\n\nAs this is more in line with common practice in the kernel.  Also swap the\nargs around to be more like list_for_each.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c620727779f7cc8ea96efb71f0651a26349e59c1",
      "tree": "777abdad9c9ef10cb4df5c0efc736e6c64851ed8",
      "parents": [
        "c303da6d713b87b7b3f999f5acce8ecc76ff1adb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 06 01:39:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:18 2008 -0800"
      },
      "message": "md: allow a maximum extent to be set for resyncing\n\nThis allows userspace to control resync/reshape progress and synchronise it\nwith other activities, such as shared access in a SAN, or backing up critical\nsections during a tricky reshape.\n\nWriting a number of sectors (which must be a multiple of the chunk size if\nsuch is meaningful) causes a resync to pause when it gets to that point.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b47490c9bc73d0b34e4c194db40de183e592e446",
      "tree": "8334581aff7aa0b199df04c6f9d707c1902ad14f",
      "parents": [
        "66c811e99322767bad5db4368de93aac604f02a2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 06 01:39:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:18 2008 -0800"
      },
      "message": "md: Update md bitmap during resync.\n\nCurrently an md array with a write-intent bitmap does not updated that bitmap\nto reflect successful partial resync.  Rather the entire bitmap is updated\nwhen the resync completes.\n\nThis is because there is no guarentee that resync requests will complete in\norder, and tracking each request individually is unnecessarily burdensome.\n\nHowever there is value in regularly updating the bitmap, so add code to\nperiodically pause while all pending sync requests complete, then update the\nbitmap.  Doing this only every few seconds (the same as the bitmap update\ntime) does not notciably affect resync performance.\n\n[snitzer@gmail.com: export bitmap_cond_end_sync]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"Mike Snitzer\" \u003csnitzer@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ad8b1ef11c98c5603580878aebf9f1bc74129e4",
      "tree": "f7bdc2484513f6ffd174b1385bb216dcf97d2c78",
      "parents": [
        "d85532ed284e63b5c56eaf2418f262822af60be4"
      ],
      "author": {
        "name": "Alan D. Brunelle",
        "email": "Alan.Brunelle@hp.com",
        "time": "Wed Nov 07 14:26:56 2007 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Nov 09 13:41:32 2007 +0100"
      },
      "message": "Add UNPLUG traces to all appropriate places\n\nAdded blk_unplug interface, allowing all invocations of unplugs to result\nin a generated blktrace UNPLUG.\n\nSigned-off-by: Alan D. Brunelle \u003cAlan.Brunelle@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fd5d806266935179deda1502101624832eacd01f",
      "tree": "b0d01c2ed7d754f2a6daef6c77d108a81d8a470e",
      "parents": [
        "bf2de6f5a4faf0197268f18d08969b003b87b6e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:05:02 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:05:02 2007 +0200"
      },
      "message": "block: convert blkdev_issue_flush() to use empty barriers\n\nThen we can get rid of -\u003eissue_flush_fn() and all the driver private\nimplementations of that.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f6f953aa99d456aff44ffdb1c77061d1a010eae2",
      "tree": "9a708f373c8d1d8c94c1494e25add4a08b6ce782",
      "parents": [
        "14e713446aaca97dbe590fe845f7dcbd74ddbee2"
      ],
      "author": {
        "name": "Arne Redlich",
        "email": "agr@powerkom-dd.de",
        "time": "Tue Jul 31 00:37:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:38 2007 -0700"
      },
      "message": "md: handle writes to broken raid10 arrays gracefully\n\nWhen writing to a broken array, raid10 currently happily emits empty bio\nlists.  IOW, the master bio will never be completed, sending writers to\nUNINTERRUPTIBLE_SLEEP forever.\n\nSigned-off-by: Arne Redlich \u003cagr@powerkom-dd.de\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14e713446aaca97dbe590fe845f7dcbd74ddbee2",
      "tree": "530c21e7a5c7fa890193765f235dd9360fc54eed",
      "parents": [
        "bfe0d6867e36f46836d2c3755fa8b9ef8cf143ba"
      ],
      "author": {
        "name": "Maik Hampel",
        "email": "m.hampel@gmx.de",
        "time": "Tue Jul 31 00:37:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:38 2007 -0700"
      },
      "message": "md: raid10: fix use-after-free of bio\n\nIn case of read errors raid10d tries to print a nice error message,\nunfortunately using data from an already put bio.\n\nSigned-off-by: Maik Hampel \u003cm.hampel@gmx.de\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "165125e1e480f9510a5ffcfbfee4e3ee38c05f23",
      "tree": "8009c8a5ff09e26dc2418d42f66ecafb055c52a2",
      "parents": [
        "f695baf2df9e0413d3521661070103711545207a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "message": "[BLOCK] Get rid of request_queue_t typedef\n\nSome of the code has been gradually transitioned to using the proper\nstruct request_queue, but there\u0027s lots left. So do a full sweet of\nthe kernel and get rid of this typedef and replace its uses with\nthe proper type.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4ad1366376bfef32ec0ffa12d1faa483d6f330bd",
      "tree": "87a9c864ec5ebd446f6c99f3298bc7638efa8f1e",
      "parents": [
        "f0d76d70bc77b9b11256a3a23e98e80878be1578"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 17 04:06:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:15 2007 -0700"
      },
      "message": "md: change bitmap_unplug and others to void functions\n\nbitmap_unplug only ever returns 0, so it may as well be void.  Two callers try\nto print a message if it returns non-zero, but that message is already printed\nby bitmap_file_kick.\n\nwrite_page returns an error which is not consistently checked.  It always\ncauses BITMAP_WRITE_ERROR to be set on an error, and that can more\nconveniently be checked.\n\nWhen the return of write_page is checked, an error causes bitmap_file_kick to\nbe called - so move that call into write_page - and protect against recursive\ncalls into bitmap_file_kick.\n\nbitmap_update_sb returns an error that is never checked.\n\nSo make these \u0027void\u0027 and be consistent about checking the bit.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af03b8e4e81c3789e597632268940edd11ffe870",
      "tree": "bf161f88b6d9dbdd484366b9640b500617db5ab3",
      "parents": [
        "edad01e2a1c527af3baf22dc6977aeb058881150"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Jun 16 10:16:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:15 2007 -0700"
      },
      "message": "md: fix two raid10 bugs\n\n1/ When resyncing a degraded raid10 which has more than 2 copies of each block,\n  garbage can get synced on top of good data.\n\n2/ We round the wrong way in part of the device size calculation, which\n  can cause confusion.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64a742bc61f9115b0bb270fa081e5b5b9c35dcd0",
      "tree": "3ed58984e5f2e6d3484c33fe7d6355658a6f2f15",
      "parents": [
        "5a243e0e97edce27c12f87354fd987526ba1ce95"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 28 20:11:18 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 01 14:53:36 2007 -0800"
      },
      "message": "[PATCH] md: fix raid10 recovery problem.\n\nThere are two errors that can lead to recovery problems with raid10\nwhen used in \u0027far\u0027 more (not the default).\n\nDue to a \u0027\u003e\u0027 instead of \u0027\u003e\u003d\u0027 the wrong block is located which would result in\ngarbage being written to some random location, quite possible outside the\nrange of the device, causing the newly reconstructed device to fail.\n\nThe device size calculation had some rounding errors (it didn\u0027t round when it\nshould) and so recovery would go a few blocks too far which would again cause\na write to a random block address and probably a device error.\n\nThe code for working with device sizes was fairly confused and spread out, so\nthis has been tided up a bit.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3881a6816b45668df60a426e5c3431ece1539a7",
      "tree": "617032a76e25e7167b95ebe4c4a6c90ee301c4c6",
      "parents": [
        "664c0d3d575946bce24ecf5b7f93ee9541e4caf3"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "Lars.Ellenberg@linbit.com",
        "time": "Wed Jan 10 23:15:37 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:21 2007 -0800"
      },
      "message": "[PATCH] md: pass down BIO_RW_SYNC in raid{1,10}\n\nmd raidX make_request functions strip off the BIO_RW_SYNC flag, thus\nintroducing additional latency.\n\nFixing this in raid1 and raid10 seems to be straightforward enough.\n\nFor our particular usage case in DRBD, passing this flag improved some\ninitialization time from ~5 minutes to ~5 seconds.\n\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Lars Ellenberg \u003clars@linbit.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "802ba064c49f655d20fed563f2a4924c8256ea10",
      "tree": "f705b597b2da6583239e9f028fa0d6f6ec319682",
      "parents": [
        "011e3a9ad4891ba1b27e281e085228189c56b137"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Dec 13 00:34:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:48 2006 -0800"
      },
      "message": "[PATCH] md: Don\u0027t assume that READ\u003d\u003d0 and WRITE\u003d\u003d1 - use the names explicitly\n\nThanks Jens for alerting me to this.\n\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: \u003craziebe@gmail.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "969b755aadf7bcf3df5991a127a103acd0145a52",
      "tree": "d2c2db7b98e1e760c47e508f879619cd6b71f373",
      "parents": [
        "750a8f3e8f64654a584e54038c2c8db380813c79"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Oct 28 10:38:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:52 2006 -0700"
      },
      "message": "[PATCH] md: fix printk format warnings, seen on powerpc64:\n\ndrivers/md/raid1.c:1479: warning: long long unsigned int format, long unsigned int arg (arg 4)\ndrivers/md/raid10.c:1475: warning: long long unsigned int format, long unsigned int arg (arg 4)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2e333e89860431d22816c1bdaa2ea72c2753396e",
      "tree": "df1a82cc995ec45936bf9ded1f57166f5f8e1ee9",
      "parents": [
        "3c5473f80770768ab5712eb5a7492c16e97209fe"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Oct 21 10:24:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 21 13:35:05 2006 -0700"
      },
      "message": "[PATCH] md: fix calculation of -\u003edegraded for multipath and raid10\n\nTwo less-used md personalities have bugs in the calculation of -\u003edegraded (the\nextent to which the array is degraded).\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0d12922823408b26f83b15cae4a4feff4bd22f28",
      "tree": "a3509f442e6fc75ca9304757ffa3dce4918ef55e",
      "parents": [
        "26be34dc3a46be983352dd89683db374b0cb73fa"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:18 2006 -0700"
      },
      "message": "[PATCH] md: define -\u003econgested_fn for raid1, raid10, and multipath\n\nraid1, raid10 and multipath don\u0027t report their \u0027congested\u0027 status through\nbdi_*_congested, but should.\n\nThis patch adds the appropriate functions which just check the \u0027congested\u0027\nstatus of all active members (with appropriate locking).\n\nraid1 read_balance should be modified to prefer devices where\nbdi_read_congested returns false.  Then we could use the \u0027\u0026\u0027 branch rather\nthan the \u0027|\u0027 branch.  However that should would need some benchmarking first\nto make sure it is actually a good idea.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c04be0aa82ff535e3676ab3e573957bdeef41879",
      "tree": "8481ab270218bed246eb02b3ba04a4b84d4e90d0",
      "parents": [
        "11ce99e625fe2718ad2682bfdd99070b337e6252"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:18 2006 -0700"
      },
      "message": "[PATCH] md: Improve locking around error handling\n\nThe error handling routines don\u0027t use proper locking, and so two concurrent\nerrors could trigger a problem.\n\nSo:\n  - use test-and-set and test-and-clear to synchonise\n    the In_sync bits with the -\u003edegraded count\n  - use the spinlock to protect updates to the\n    degraded count (could use an atomic_t but that\n    would be a bigger change in code, and isn\u0027t\n    really justified)\n  - remove un-necessary locking in raid5\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "76186dd8b73d2b7b9b4c8629b89c845e97009801",
      "tree": "1f1c2fe5530de65fa149faa3e6b2969044e7b0a8",
      "parents": [
        "02c2de8cc835885bdff51a8bfd6c0b659b969f50"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:17 2006 -0700"
      },
      "message": "[PATCH] md: remove \u0027working_disks\u0027 from raid10 state\n\nIt isn\u0027t needed as mddev-\u003edegraded contains equivalent info.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "850b2b420cd5b363ed4cf48a8816d656c8b5251b",
      "tree": "b63aa37b3fb7dfb7a0b674d5a2ebe9da13cc7405",
      "parents": [
        "6814d5368d68341ec6b5e4ecd10ea5947130775a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:17 2006 -0700"
      },
      "message": "[PATCH] md: replace magic numbers in sb_dirty with well defined bit flags\n\nInstead of magic numbers (0,1,2,3) in sb_dirty, we have\nsome flags instead:\nMD_CHANGE_DEVS\n   Some device state has changed requiring superblock update\n   on all devices.\nMD_CHANGE_CLEAN\n   The array has transitions from \u0027clean\u0027 to \u0027dirty\u0027 or back,\n   requiring a superblock update on active devices, but possibly\n   not on spares\nMD_CHANGE_PENDING\n   A superblock update is underway.\n\nWe wait for an update to complete by waiting for all flags to be clear.  A\nflag can be set at any time, even during an update, without risk that the\nchange will be lost.\n\nStop exporting md_update_sb - isn\u0027t needed.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6814d5368d68341ec6b5e4ecd10ea5947130775a",
      "tree": "07440216f8f1b94429eee8f79469e0b800505251",
      "parents": [
        "b5c124af69119c1b5c1e728bd2e7b5b1fad9b7be"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:17 2006 -0700"
      },
      "message": "[PATCH] md: factor out part of raid10d into a separate function.\n\nraid10d has toooo many nested block, so take the fix_read_error functionality\nout into a separate function.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d69504325978c461b51b03cca49626026970307b",
      "tree": "73ea1d68d5d3cca777cb6ea9828c5757b4cd6df8",
      "parents": [
        "67463acb646904d76a8e237cc31eaa87872f30cc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 10 04:44:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:17 2006 -0700"
      },
      "message": "[PATCH] md: include sector number in messages about corrected read errors\n\nThis is generally useful, but particularly helps see if it is the same sector\nthat always needs correcting, or different ones.\n\n[akpm@osdl.org: fix printk warnings]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8838832830d2c6c28ae2db93188ae90652eb7fc2",
      "tree": "d17a7027161352ea1893236dc6ea5bd309f6ceb4",
      "parents": [
        "ce25c31bdd3b39266debd86a7732007e05983a67"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:39 2006 -0700"
      },
      "message": "[PATCH] md: Calculate correct array size for raid10 in new offset mode\n\nThe size calculation made assumtion which the new offset mode didn\u0027t\nfollow.  This gets the size right in all cases.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c93983bf517c100a31e40ef087e19bd3d7aa2d28",
      "tree": "9361c68d5f00ccd34cbc0a3bc7bc2389ce7f4c3a",
      "parents": [
        "7c7546ccf6463edbeee8d9aac6de7be1cd80d08a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:37 2006 -0700"
      },
      "message": "[PATCH] md: support stripe/offset mode in raid10\n\nThe \"industry standard\" DDF format allows for a stripe/offset layout where\ndata is duplicated on different stripes.  e.g.\n\n  A  B  C  D\n  D  A  B  C\n  E  F  G  H\n  H  E  F  G\n\n(columns are drives, rows are stripes, LETTERS are chunks of data).\n\nThis is similar to raid10\u0027s \u0027far\u0027 mode, but not quite the same.  So enhance\n\u0027far\u0027 mode with a \u0027far/offset\u0027 option which follows the layout of DDFs\nstripe/offset.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5fd6c1dce06ec24ef3de20fe0c7ecf2ba9fe5ef9",
      "tree": "bd7cc8c22615e8622d3d63b7fc68dcc3ac1964de",
      "parents": [
        "a8a55c387da28d67d98f56e4f5021462cb61f7a6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:37 2006 -0700"
      },
      "message": "[PATCH] md: allow checkpoint of recovery with version-1 superblock\n\nFor a while we have had checkpointing of resync.  The version-1 superblock\nallows recovery to be checkpointed as well, and this patch implements that.\n\nDue to early carelessness we need to add a feature flag to signal that the\nrecovery_offset field is in use, otherwise older kernels would assume that a\npartially recovered array is in fact fully recovered.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8932c2e0dcae52e73430878fd8a7a7800176eada",
      "tree": "3b734ccaa0fb210f1fd76ff9bb6fb9700d1c4095",
      "parents": [
        "c70810b327a247d12805554d0aa4605e257effb8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:36 2006 -0700"
      },
      "message": "[PATCH] md: remove arbitrary limit on chunk size\n\nThe largest chunk size the code can support without substantial surgery is\n2^30 bytes, so make that the limit instead of an arbitrary 4Meg.  Some day,\nthe \u0027chunksize\u0027 should change to a sector-shift instead of a byte-count.  Then\nno limit would be needed.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0a33270ed0e8e00cbb882a33d21e1f92aac0ceb",
      "tree": "37879a141c5168577813b318cf825ccc0c97204c",
      "parents": [
        "df30d0f4ca3c41b60068232d6de9d58be88436f0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon May 01 12:15:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:42 2006 -0700"
      },
      "message": "[PATCH] md: Fixed refcounting/locking when attempting read error correction in raid10\n\nWe need to hold a reference to rdevs while reading and writing to attempt to\ncorrect read errors.  This reference must be taken under an rcu lock.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "df30d0f4ca3c41b60068232d6de9d58be88436f0",
      "tree": "f9ea546b15f0c8908d6248480c7f3dad820a5f5e",
      "parents": [
        "235acec78e87a60ace01d1ecb4b87ad1d689715a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon May 01 12:15:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:42 2006 -0700"
      },
      "message": "[PATCH] md: Avoid oops when attempting to fix read errors on raid10\n\nWe should add to the counter for the rdev *after* checking if the rdev is\nNULL!!!\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b6385483840e903d99cb753593faea215ae8d324",
      "tree": "9617999432507882287ef4cd2d9be1f20017d6ba",
      "parents": [
        "43dab9bbe9fda735589f2749004f639349966b20"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:34:29 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:34:29 2006 +0200"
      },
      "message": "BUG_ON() Conversion in md/raid10.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": "29fc7e3e70a05e9eea28afb6707a39c1a53e2f66",
      "tree": "4e8bc28c717116ade3cd723a921f3260656327aa",
      "parents": [
        "284ae7cab0f7335c9e0aa8992b28415ef1a54c7c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Feb 03 03:03:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:00 2006 -0800"
      },
      "message": "[PATCH] md: Assorted little md fixes\n\n- version-1 superblock\n  + The default_bitmap_offset is in sectors, not bytes.\n  + the \u0027size\u0027 field in the superblock is in sectors, not KB\n- raid0_run should return a negative number on error, not \u00271\u0027\n- raid10_read_balance should not return a valid \u0027disk\u0027 number if\n     -\u003erdev turned out to be NULL\n- kmem_cache_destroy doesn\u0027t like being passed a NULL.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4dbcdc751cb25ffca3a8374cbc5ab6de961cc545",
      "tree": "61d1eb6e35c0eec66e5a8610c1f57b1e6eec135c",
      "parents": [
        "d9d166c2a9d5d01af34396793950aa695883eed4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:09 2006 -0800"
      },
      "message": "[PATCH] md: count corrected read errors per drive\n\nStore this total in superblock (As appropriate), and make it available to\nuserspace via sysfs.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d9d166c2a9d5d01af34396793950aa695883eed4",
      "tree": "6cb593cc0636476ebec9a9690aa48997510f9701",
      "parents": [
        "8bb93aaca2062cd54cc2c58c76ee8409cae209a7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:09 2006 -0800"
      },
      "message": "[PATCH] md: allow array level to be set textually via sysfs\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f188593ee7af8c71755d2df269a7a5f62c4b695e",
      "tree": "e83fb5678870511aade9b0eb9139ae4c83f5c14e",
      "parents": [
        "bce74dac082787375e76d2b33726b94c9701fabc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:07 2006 -0800"
      },
      "message": "[PATCH] md: fix typo in comment\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1345b1d8adbdeceb1c871d9a4af5e2a700b341c6",
      "tree": "0da1db7d273752ad5281db415e9245f3f3a63383",
      "parents": [
        "7dd5d34c6c2da04e8cd0732e08b33cd3359e4bae"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:07 2006 -0800"
      },
      "message": "[PATCH] md: define and use safe_put_page for md\n\nmd sometimes call put_page on NULL pointers (treating it like kfree).  This is\nnot safe, so define and use a \u0027safe_put_page\u0027 which checks for NULL.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "097426f689f179747f3cd6b4749eb2a6b605702d",
      "tree": "92b0a78f8aebedd4afdb52dfa23b311a4468719d",
      "parents": [
        "2604b703b6b3db80e3c75ce472a54dfd0b7bf9f4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:06 2006 -0800"
      },
      "message": "[PATCH] md: fix possible problem in raid1/raid10 error overwriting\n\nThe code to overwrite/reread for addressing read errors in raid1/raid10\ncurrently assumes that the read will not alter the buffer which could be used\nto write to the next device.  This is not a safe assumption to make.\n\nSo we split the loops into a overwrite loop and a separate re-read loop, so\nthat the writing is complete before reading is attempted.\n\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2604b703b6b3db80e3c75ce472a54dfd0b7bf9f4",
      "tree": "8c0e985c455ff35af24fbe60d8a3f5a276034370",
      "parents": [
        "a24a8dd858e0ba50f06a9fd8f61fe8c4fe7a8d8e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:06 2006 -0800"
      },
      "message": "[PATCH] md: remove personality numbering from md\n\nmd supports multiple different RAID level, each being implemented by a\n\u0027personality\u0027 (which is often in a separate module).\n\nThese personalities have fairly artificial \u0027numbers\u0027.  The numbers\nare use to:\n 1- provide an index into an array where the various personalities\n    are recorded\n 2- identify the module (via an alias) which implements are particular\n    personality.\n\nNeither of these uses really justify the existence of personality numbers.\nThe array can be replaced by a linked list which is searched (array lookup\nonly happens very rarely).  Module identification can be done using an alias\nbased on level rather than \u0027personality\u0027 number.\n\nThe current \u0027raid5\u0027 modules support two level (4 and 5) but only one\npersonality.  This slight awkwardness (which was handled in the mapping from\nlevel to personality) can be better handled by allowing raid5 to register 2\npersonalities.\n\nWith this change in place, the core md module does not need to have an\nexhaustive list of all possible personalities, so other personalities can be\nadded independently.\n\nThis patch also moves the check for chunksize being non-zero into the -\u003erun\nroutines for the personalities that need it, rather than having it in core-md.\n This has a side effect of allowing \u0027faulty\u0027 and \u0027linear\u0027 not to have a\nchunk-size set.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a24a8dd858e0ba50f06a9fd8f61fe8c4fe7a8d8e",
      "tree": "14236abb515dcb8101ade92632d5da0d772d7330",
      "parents": [
        "a8745db232dd86f145bff6946e78f839acab511b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:06 2006 -0800"
      },
      "message": "[PATCH] md: break out of a loop that doesn\u0027t need to run to completion\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ffae0cf3ea02f75d163922accfd3e592d87adde",
      "tree": "4974727e9f36e1b618b68d2789644ee3a0d7a371",
      "parents": [
        "2d1f3b5d1b2cd11a162eb29645df749ec0036413"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:05 2006 -0800"
      },
      "message": "[PATCH] md: convert md to use kzalloc throughout\n\nReplace multiple kmalloc/memset pairs with kzalloc calls.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d1f3b5d1b2cd11a162eb29645df749ec0036413",
      "tree": "bb87ef9fcd2d9760b618d196fc8361a5a4dd851e",
      "parents": [
        "d7603b7e3a7f802c67f9190b2387d4d5d111ec14"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:05 2006 -0800"
      },
      "message": "[PATCH] md: clean up \u0027page\u0027 related names in md\n\nSubstitute:\n\n  page_cache_get -\u003e get_page\n  page_cache_release -\u003e put_page\n  PAGE_CACHE_SHIFT -\u003e PAGE_SHIFT\n  PAGE_CACHE_SIZE -\u003e PAGE_SIZE\n  PAGE_CACHE_MASK -\u003e PAGE_MASK\n  __free_page -\u003e put_page\n\nbecause we aren\u0027t using the page cache, we are just using pages.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eb3ff12aa8a12538ef681dc83f4361636a0699f",
      "tree": "e5d4b8353362cefd096a4b1ee1a8f473c01169b6",
      "parents": [
        "4443ae10ca15d07922ceda622f03db8865fa3d13"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:05 2006 -0800"
      },
      "message": "[PATCH] md: raid10 read-error handling - resync and read-only\n\nAdd in correct read-error handling for resync and read-only situations.\n\nWhen read-only, we don\u0027t over-write, so we need to mark the failed drive in\nthe r10_bio so we don\u0027t re-try it.  During resync, we always read all blocks,\nso if there is a read error, we simply over-write it with the good block that\nwe found (assuming we found one).\n\nNote that the recovery case still isn\u0027t handled in an interesting way.  There\nis nothing useful to do for the 2-copies case.  If there are 3 or more copies,\nthen we could try reading from one of the non-missing copies, but this is a\nbit complicated and very rarely would be used, so I\u0027m leaving it for now.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4443ae10ca15d07922ceda622f03db8865fa3d13",
      "tree": "f1f0a6a82142effbdde93913d53596aeeacc9dc4",
      "parents": [
        "220946c9018de74b952446e3a4dff1bfd4cbf310"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:05 2006 -0800"
      },
      "message": "[PATCH] md: auto-correct correctable read errors in raid10\n\nLargely just a cross-port from raid1.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "18f08819f42b647783e4f6ea99141623881bf182",
      "tree": "062f5b77cd2593239af5e8aa720f20781dc8d80e",
      "parents": [
        "9910f16af35419a5382fa7850eecc220103036fa"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:04 2006 -0800"
      },
      "message": "[PATCH] md: support check-without-repair of raid10 arrays\n\nAlso keep count on the number of errors found.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6cce3b23f6f8e974c00af7a9b88f1d413ba368a8",
      "tree": "8c156f26a10de82b1626d74f810704cfd6f5ba2b",
      "parents": [
        "b15c2e57f0f5bf596a19e9c5571e5b07cdfc7363"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:03 2006 -0800"
      },
      "message": "[PATCH] md: write intent bitmap support for raid10\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a27ec96b6fb1abf867e36d7b0b681d67588767a",
      "tree": "4db5d9b8ef02b417fc2077d65311e2ea7cda5ce0",
      "parents": [
        "17999be4aa408e7ff3b9d32c735649676567a3cd"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:02 2006 -0800"
      },
      "message": "[PATCH] md: improve raid10 \"IO Barrier\" concept\n\nraid10 needs to put up a barrier to new requests while it does resync or other\nbackground recovery.  The code for this is currently open-coded, slighty\nobscure by its use of two waitqueues, and not documented.\n\nThis patch gathers all the related code into 4 functions, and includes a\ncomment which (hopefully) explains what is happening.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22dfdf5212e5864b844f629736fb993d4611f190",
      "tree": "e5c2dfd3fbd786323e8adad35f98f26ca22efde2",
      "parents": [
        "20c5ab6821b3a7aad31fb5a4660e9fe414fb37f6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Nov 28 13:44:09 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:25 2005 -0800"
      },
      "message": "[PATCH] md: improve read speed to raid10 arrays using \u0027far copies\u0027\n\nraid10 has two different layouts.  One uses near-copies (so multiple\ncopies of a block are at the same or similar offsets of different\ndevices) and the other uses far-copies (so multiple copies of a block\nare stored a greatly different offsets on different devices).  The point\nof far-copies is that it allows the first section (normally first half)\nto be layed out in normal raid0 style, and thus provide raid0 sequential\nread performance.\n\nUnfortunately, the read balancing in raid10 makes some poor decisions\nfor far-copies arrays and you don\u0027t get the desired performance.  So\nturn off that bad bit of read_balance for far-copies arrays.\n\nWith this patch, read speed of an \u0027f2\u0027 array is comparable with a raid0\nwith the same number of devices, though write speed is ofcourse still\nvery slow.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b2d444d7ad975d555bb919601bcdc0e58975a40e",
      "tree": "963a29258af95f05dd28d9de0180ac9ef533aeed",
      "parents": [
        "ba22dcbf106338a5c46d6979f9b19564faae3d49"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:31 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:38 2005 -0800"
      },
      "message": "[PATCH] md: convert \u0027faulty\u0027 and \u0027in_sync\u0027 fields to bits in \u0027flags\u0027 field\n\nThis has the advantage of removing the confusion caused by \u0027rdev_t\u0027 and\n\u0027mddev_t\u0027 both having \u0027in_sync\u0027 fields.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6065f7bf8bec170c9c56524a250093ce73ca5d9",
      "tree": "336c7db10aa8cee48386171e3de7569fca01dcfd",
      "parents": [
        "9d88883e68f404d5581bd391713ceef470ea53a9"
      ],
      "author": {
        "name": "Suzanne Wood",
        "email": "suzannew@cs.pdx.edu",
        "time": "Tue Nov 08 21:39:27 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:37 2005 -0800"
      },
      "message": "[PATCH] md: provide proper rcu_dereference / rcu_assign_pointer annotations in md\n\nAcked-by: \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Suzanne Wood \u003csuzannew@cs.pdx.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a362357b6cd62643d4dda3b152639303d78473da",
      "tree": "fe4ce823e638ded151edcb142f28a240860f0d33",
      "parents": [
        "d72d904a5367ad4ca3f2c9a2ce8c3a68f0b28bf0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Nov 01 09:26:16 2005 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Nov 01 09:26:16 2005 +0100"
      },
      "message": "[BLOCK] Unify the seperate read/write io stat fields into arrays\n\nInstead of having -\u003eread_sectors and -\u003ewrite_sectors, combine the two\ninto -\u003esectors[2] and similar for the other fields. This saves a branch\nseveral places in the io path, since we don\u0027t have to care for what the\nactual io direction is. On my x86-64 box, that\u0027s 200 bytes less text in\njust the core (not counting the various drivers).\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "87fc767b832ef5a681a0ff9d203c3289bc3be2bf",
      "tree": "141e59c5ab978675339b34e6ddb8fe0b39156853",
      "parents": [
        "6d508242b231cb6e6803faaef54456abe846edb8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Sep 09 16:24:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:15 2005 -0700"
      },
      "message": "[PATCH] md: fix BUG when raid10 rebuilds without enough drives\n\nThis shouldn\u0027t be a BUG.  We should cope.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d508242b231cb6e6803faaef54456abe846edb8",
      "tree": "c41ca18f31dd2320f2ae7b54602682f81bf18e6e",
      "parents": [
        "611815651b2640449bda928079160b9263efac1c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Sep 09 16:24:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:14 2005 -0700"
      },
      "message": "[PATCH] md: fix raid10 assembly when too many devices are missing\n\nIf you try to assemble an array with too many missing devices, raid10 will now\nreject the attempt, instead of allowing it.\n\nAlso check when hot-adding a drive and refuse the hot-add if the array is\nbeyond hope.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5dcdd80a60627371f40797426273048630dc8ca",
      "tree": "1621f68394ceaa4da86d89c6da3b93fd306415fc",
      "parents": [
        "3ec67ac1a399d576d48b0736096bcce7721fe3cf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:09 2005 -0700"
      },
      "message": "[PATCH] md: fail IO request to md that require a barrier.\n\nmd does not yet support BIO_RW_BARRIER, so be honest about it and fail\n(-EOPNOTSUPP) any such requests.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3ec67ac1a399d576d48b0736096bcce7721fe3cf",
      "tree": "6fbe7fb44b1455516a406cf0f0596ea29b62eac1",
      "parents": [
        "486a153f0e294f7cc735838edcb6b32e623cbe52"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:09 2005 -0700"
      },
      "message": "[PATCH] md: fix minor error in raid10 read-balancing calculation.\n\n\u0027this_sector\u0027 is a virtual (array) address while \u0027head_position\u0027 is a physical\n(device) address, so substraction doesn\u0027t make any sense.  devs[slot].addr\nshould be used instead of this_sector.\n\nHowever, this patch doesn\u0027t make much practical different to the read\nbalancing due to the effects of later code.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "990a8baf568ca1d0ae65e59783ff821794118d07",
      "tree": "1fe187b2f119f7a9d96d56380b211f9ddb9f8390",
      "parents": [
        "8a5e9cf1d6626586ff08e49f400a006a9f0c3275"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Tue Jun 21 17:17:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:48 2005 -0700"
      },
      "message": "[PATCH] md: remove unneeded NULL checks before kfree\n\nThis patch removes some unneeded checks of pointers being NULL before\ncalling kfree() on them.  kfree() handles NULL pointers just fine, checking\nfirst is pointless.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3d310eb7b3df1252e8595d059d982b0a9825a137",
      "tree": "9bca5e7eaa437d60010c1745b9aeb9592439d482",
      "parents": [
        "41158c7eb22312cfaa256744e1553bb4042ff085"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:46 2005 -0700"
      },
      "message": "[PATCH] md: fix deadlock due to md thread processing delayed requests.\n\nBefore completing a \u0027write\u0027 the md superblock might need to be updated.\nThis is best done by the md_thread.\n\nThe current code schedules this up and queues the write request for later\nhandling by the md_thread.\n\nHowever some personalities (Raid5/raid6) will deadlock if the md_thread\ntries to submit requests to its own array.\n\nSo this patch changes things so the processes submitting the request waits\nfor the superblock to be written and then submits the request itself.\n\nThis fixes a recently-created deadlock in raid5/raid6\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "57afd89f98a990747445f01c458ecae64263b2f8",
      "tree": "cab9f5941f32299bc97936e111f6552ebcee9cf6",
      "parents": [
        "06d91a5fe0b50c9060e70bdf7786f8a3c66249db"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:43 2005 -0700"
      },
      "message": "[PATCH] md: improve the interface to sync_request\n\n1/ change the return value (which is number-of-sectors synced)\n from \u0027int\u0027 to \u0027sector_t\u0027.\n The number of sectors is usually easily small enough to fit\n in an int, but if resync needs to abort, it may want to return\n the total number of remaining sectors, which could be large.\n Also errors cannot be returned as negative numbers now, so use\n 0 instead\n2/ Add a \u0027skipped\u0027 return parameter to allow the array to report\n that it skipped the sectors.  This allows md to take this into account\n in the speed calculations.\n Currently there is no important skipping, but the bitmap-based-resync\n that is coming will use this.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "06d91a5fe0b50c9060e70bdf7786f8a3c66249db",
      "tree": "95a8b9228534cebb12eb31c1cc9cc0c45f685410",
      "parents": [
        "fca4d848f0e6fafdc2b25f8a0cf1e76935f13ac2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:43 2005 -0700"
      },
      "message": "[PATCH] md: improve locking on \u0027safemode\u0027 and move superblock writes\n\nWhen md marks the superblock dirty before a write, it calls\ngeneric_make_request (to write the superblock) from within\ngeneric_make_request (to write the first dirty block), which could cause\nproblems later.\n\nWith this patch, the superblock write is always done by the helper thread, and\nwrite request are delayed until that write completes.\n\nAlso, the locking around marking the array dirty and writing the superblock is\nimproved to avoid possible races.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fca4d848f0e6fafdc2b25f8a0cf1e76935f13ac2",
      "tree": "cabed019bfe5d00ddbe06e349f20cff78ab6f6bf",
      "parents": [
        "c361777fb9347a4d16b82272f7d3b234e94bef2d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:42 2005 -0700"
      },
      "message": "[PATCH] md: merge md_enter_safemode into md_check_recovery\n\nmd_enter_safemode checks if it is time to mark the md superblock as \u0027clean\u0027.\ni.e.  if all writes have completed and a suitable delay has passed.\n\nThis is currently called from md_handle_safemode which in-turn is called\n(almost) every time md_check_recovery is called, and from the end of\nmd_do_sync which causes the mddev-\u003ethread to run, which will always call\nmd_check_recovery as well.\n\nSo it doesn\u0027t need to be a separate function and fits quite well into\nmd_check_recovery.\n\nThe \"almost\" is because multipathd calls md_check_recovery but not\nmd_handle_safemode.  This is OK because the code from md_enter_safemode is a\nno-op if mddev-\u003esafemode \u003d\u003d 0, which it always is for a multipathd (providing\nwe don\u0027t allow it to be set to 2 on a signal...)\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a5febe9ffeecd1e78c5b505260ccc1ef18021b4",
      "tree": "f3d61987a3f961f33a77334052805457a2ef2460",
      "parents": [
        "29ac8e056f2016a8404edc02749d095019aa1f82"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Mon May 16 21:53:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 17 07:59:12 2005 -0700"
      },
      "message": "[PATCH] md: set the unplug_fn and issue_flush_fn for md devices *after* committed to creation\n\nWe we set the too early, they may still be in place and possibly get called\neven though the array didn\u0027t get set up properly.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fbd568a3e61a7decb8a754ad952aaa5b5c82e9e5",
      "tree": "40a44149a9b6a39eac5481380e2212f9b9b74eb2",
      "parents": [
        "9b06e818985d139fd9e82c28297f7744e1b484e1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun May 01 08:59:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:04 2005 -0700"
      },
      "message": "[PATCH] Change synchronize_kernel to _rcu and _sched\n\nThis patch changes calls to synchronize_kernel(), deprecated in the earlier\n\"Deprecate synchronize_kernel, GPL replacement\" patch to instead call the new\nsynchronize_rcu() and synchronize_sched() APIs.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\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"
    }
  ]
}
