)]}'
{
  "log": [
    {
      "commit": "5ebf2c1260705a2ce51ad19af33059f08211579d",
      "tree": "a710660aaa499f17239f62328e75cb7159da4d3b",
      "parents": [
        "4d936ec1fdc1541cd6d59d21ddb8b9386e2fcc4c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Oct 16 23:30:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:03 2007 -0700"
      },
      "message": "bitmap.h: remove dead artifacts\n\nbitmap_active() no longer exists and BITMAP_ACTIVE is no longer used.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.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": "713f6ab18b0e7d39f14401362bfe8015b1aedde1",
      "tree": "fc6ef865d09de1ec816ed96860ffc27dd48d837b",
      "parents": [
        "df968c4e8d809deb2602fb0e8db758f26a4006b9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 17 04:06:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:15 2007 -0700"
      },
      "message": "md: improve the is_mddev_idle test fix\n\nDon\u0027t use \u0027unsigned\u0027 variable to track sync vs non-sync IO, as the only thing\nwe want to do with them is a signed comparison, and fix up the comment which\nhad become quite wrong.\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": "b5e98d65d34a1c11a2135ea8a9b2619dbc7216c8",
      "tree": "bf88aad375bb0cbf6c346ec912c06c2607850b21",
      "parents": [
        "e89f89629b5de76e504d1be75c82c4a6b2419583"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:31 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:17 2007 -0700"
      },
      "message": "md: handle_stripe5 - add request/completion logic for async read ops\n\nWhen a read bio is attached to the stripe and the corresponding block is\nmarked R5_UPTODATE, then a read (biofill) operation is scheduled to copy\nthe data from the stripe cache to the bio buffer.  handle_stripe flags the\nblocks to be operated on with the R5_Wantfill flag.  If new read requests\narrive while raid5_run_ops is running they will not be handled until\nhandle_stripe is scheduled to run again.\n\nChangelog:\n* cleanup to_read and to_fill accounting\n* do not fail reads that have reached the cache\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f38e12199a94ca458e4f03c5a2c984fb80adadc5",
      "tree": "706f54c46d4a4c839dd43c1403854dde860c6be5",
      "parents": [
        "e33129d84130459dbb764a1a52a4bfceab3da978"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:30 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:17 2007 -0700"
      },
      "message": "md: handle_stripe5 - add request/completion logic for async compute ops\n\nhandle_stripe will compute a block when a backing disk has failed, or when\nit determines it can save a disk read by computing the block from all the\nother up-to-date blocks.\n\nPreviously a block would be computed under the lock and subsequent logic in\nhandle_stripe could use the newly up-to-date block.  With the raid5_run_ops\nimplementation the compute operation is carried out a later time outside\nthe lock.  To preserve the old functionality we take advantage of the\ndependency chain feature of async_tx to flag the block as R5_Wantcompute\nand then let other parts of handle_stripe operate on the block as if it\nwere up-to-date.  raid5_run_ops guarantees that the block will be ready\nbefore it is used in another operation.\n\nHowever, this only works in cases where the compute and the dependent\noperation are scheduled at the same time.  If a previous call to\nhandle_stripe sets the R5_Wantcompute flag there is no facility to pass the\nasync_tx dependency chain across successive calls to raid5_run_ops.  The\nreq_compute variable protects against this case.\n\nChangelog:\n* remove the req_compute BUG_ON\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "91c00924846a0034020451c280c76baa4299f9dc",
      "tree": "7124ed6706937b793a10c37a861c5fc0f2e5b348",
      "parents": [
        "45b4233caac05da0118b608a9fc2a40a9fc580cd"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:30 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:15 2007 -0700"
      },
      "message": "md: raid5_run_ops - run stripe operations outside sh-\u003elock\n\nWhen the raid acceleration work was proposed, Neil laid out the following\nattack plan:\n\n1/ move the xor and copy operations outside spin_lock(\u0026sh-\u003elock)\n2/ find/implement an asynchronous offload api\n\nThe raid5_run_ops routine uses the asynchronous offload api (async_tx) and\nthe stripe_operations member of a stripe_head to carry out xor+copy\noperations asynchronously, outside the lock.\n\nTo perform operations outside the lock a new set of state flags is needed\nto track new requests, in-flight requests, and completed requests.  In this\nnew model handle_stripe is tasked with scanning the stripe_head for work,\nupdating the stripe_operations structure, and finally dropping the lock and\ncalling raid5_run_ops for processing.  The following flags outline the\nrequests that handle_stripe can make of raid5_run_ops:\n\nSTRIPE_OP_BIOFILL\n - copy data into request buffers to satisfy a read request\nSTRIPE_OP_COMPUTE_BLK\n - generate a missing block in the cache from the other blocks\nSTRIPE_OP_PREXOR\n - subtract existing data as part of the read-modify-write process\nSTRIPE_OP_BIODRAIN\n - copy data out of request buffers to satisfy a write request\nSTRIPE_OP_POSTXOR\n - recalculate parity for new data that has entered the cache\nSTRIPE_OP_CHECK\n - verify that the parity is correct\nSTRIPE_OP_IO\n - submit i/o to the member disks (note this was already performed outside\n   the stripe lock, but it made sense to add it as an operation type\n\nThe flow is:\n1/ handle_stripe sets STRIPE_OP_* in sh-\u003eops.pending\n2/ raid5_run_ops reads sh-\u003eops.pending, sets sh-\u003eops.ack, and submits the\n   operation to the async_tx api\n3/ async_tx triggers the completion callback routine to set\n   sh-\u003eops.complete and release the stripe\n4/ handle_stripe runs again to finish the operation and optionally submit\n   new operations that were previously blocked\n\nNote this patch just defines raid5_run_ops, subsequent commits (one per\nmajor operation type) modify handle_stripe to take advantage of this\nroutine.\n\nChangelog:\n* removed ops_complete_biodrain in favor of ops_complete_postxor and\n  ops_complete_write.\n* removed the raid5_run_ops workqueue\n* call bi_end_io for reads in ops_complete_biofill, saves a call to\n  handle_stripe\n* explicitly handle the 2-disk raid5 case (xor becomes memcpy), Neil Brown\n* fix race between async engines and bi_end_io call for reads, Neil Brown\n* remove unnecessary spin_lock from ops_complete_biofill\n* remove test_and_set/test_and_clear BUG_ONs, Neil Brown\n* remove explicit interrupt handling for channel switching, this feature\n  was absorbed (i.e. it is now implicit) by the async_tx api\n* use return_io in ops_complete_biofill\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a445685647e825c713175d180ffc8dd54d90589b",
      "tree": "d2db5674e51d33162e1e5993b6e6680ec534e2df",
      "parents": [
        "9bc89cd82d6f88fb0ca39b30445c329a430fd66b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:43 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:15 2007 -0700"
      },
      "message": "raid5: refactor handle_stripe5 and handle_stripe6 (v3)\n\nhandle_stripe5 and handle_stripe6 have very deep logic paths handling the\nvarious states of a stripe_head.  By introducing the \u0027stripe_head_state\u0027\nand \u0027r6_state\u0027 objects, large portions of the logic can be moved to\nsub-routines.\n\n\u0027struct stripe_head_state\u0027 consumes all of the automatic variables that previously\nstood alone in handle_stripe5,6.  \u0027struct r6_state\u0027 contains the handle_stripe6\nspecific variables like p_failed and q_failed.\n\nOne of the nice side effects of the \u0027stripe_head_state\u0027 change is that it\nallows for further reductions in code duplication between raid5 and raid6.\nThe following new routines are shared between raid5 and raid6:\n\n\thandle_completed_write_requests\n\thandle_requests_to_failed_array\n\thandle_stripe_expansion\n\nChanges:\n* v2: fixed \u0027conf-\u003eraid_disk-1\u0027 for the raid6 \u0027handle_stripe_expansion\u0027 path\n* v3: removed the unused \u0027dirty\u0027 field from struct stripe_head_state\n* v3: coalesced open coded bi_end_io routines into return_io()\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9bc89cd82d6f88fb0ca39b30445c329a430fd66b",
      "tree": "7bd0e856abd359f84edea1bacfd1dd32edd93fbb",
      "parents": [
        "685784aaf3cd0e3ff5e36c7ecf6f441cdbf57f73"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 11:10:44 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:14 2007 -0700"
      },
      "message": "async_tx: add the async_tx api\n\nThe async_tx api provides methods for describing a chain of asynchronous\nbulk memory transfers/transforms with support for inter-transactional\ndependencies.  It is implemented as a dmaengine client that smooths over\nthe details of different hardware offload engine implementations.  Code\nthat is written to the api can optimize for asynchronous operation and the\napi will fit the chain of operations to the available offload resources. \n \n\tI imagine that any piece of ADMA hardware would register with the\n\t\u0027async_*\u0027 subsystem, and a call to async_X would be routed as\n\tappropriate, or be run in-line. - Neil Brown\n\nasync_tx exploits the capabilities of struct dma_async_tx_descriptor to\nprovide an api of the following general format:\n\nstruct dma_async_tx_descriptor *\nasync_\u003coperation\u003e(..., struct dma_async_tx_descriptor *depend_tx,\n\t\t\tdma_async_tx_callback cb_fn, void *cb_param)\n{\n\tstruct dma_chan *chan \u003d async_tx_find_channel(depend_tx, \u003coperation\u003e);\n\tstruct dma_device *device \u003d chan ? chan-\u003edevice : NULL;\n\tint int_en \u003d cb_fn ? 1 : 0;\n\tstruct dma_async_tx_descriptor *tx \u003d device ?\n\t\tdevice-\u003edevice_prep_dma_\u003coperation\u003e(chan, len, int_en) : NULL;\n\n\tif (tx) { /* run \u003coperation\u003e asynchronously */\n\t\t...\n\t\ttx-\u003etx_set_dest(addr, tx, index);\n\t\t...\n\t\ttx-\u003etx_set_src(addr, tx, index);\n\t\t...\n\t\tasync_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param);\n\t} else { /* run \u003coperation\u003e synchronously */\n\t\t...\n\t\t\u003coperation\u003e\n\t\t...\n\t\tasync_tx_sync_epilog(flags, depend_tx, cb_fn, cb_param);\n\t}\n\n\treturn tx;\n}\n\nasync_tx_find_channel() returns a capable channel from its pool.  The\nchannel pool is organized as a per-cpu array of channel pointers.  The\nasync_tx_rebalance() routine is tasked with managing these arrays.  In the\nuniprocessor case async_tx_rebalance() tries to spread responsibility\nevenly over channels of similar capabilities.  For example if there are two\ncopy+xor channels, one will handle copy operations and the other will\nhandle xor.  In the SMP case async_tx_rebalance() attempts to spread the\noperations evenly over the cpus, e.g. cpu0 gets copy channel0 and xor\nchannel0 while cpu1 gets copy channel 1 and xor channel 1.  When a\ndependency is specified async_tx_find_channel defaults to keeping the\noperation on the same channel.  A xor-\u003ecopy-\u003exor chain will stay on one\nchannel if it supports both operation types, otherwise the transaction will\ntransition between a copy and a xor resource.\n\nCurrently the raid5 implementation in the MD raid456 driver has been\nconverted to the async_tx api.  A driver for the offload engines on the\nIntel Xscale series of I/O processors, iop-adma, is provided in a later\ncommit.  With the iop-adma driver and async_tx, raid456 is able to offload\ncopy, xor, and xor-zero-sum operations to hardware engines.\n \nOn iop342 tiobench showed higher throughput for sequential writes (20 - 30%\nimprovement) and sequential reads to a degraded array (40 - 55%\nimprovement).  For the other cases performance was roughly equal, +/- a few\npercentage points.  On a x86-smp platform the performance of the async_tx\nimplementation (in synchronous mode) was also +/- a few percentage points\nof the original implementation.  According to \u0027top\u0027 on iop342 CPU\nutilization drops from ~50% to ~15% during a \u0027resync\u0027 while the speed\naccording to /proc/mdstat doubles from ~25 MB/s to ~50 MB/s.\n \nThe tiobench command line used for testing was: tiobench --size 2048\n--block 4096 --block 131072 --dir /mnt/raid --numruns 5\n* iop342 had 1GB of memory available\n\nDetails:\n* if CONFIG_DMA_ENGINE\u003dn the asynchronous path is compiled away by making\n  async_tx_find_channel a static inline routine that always returns NULL\n* when a callback is specified for a given transaction an interrupt will\n  fire at operation completion time and the callback will occur in a\n  tasklet.  if the the channel does not support interrupts then a live\n  polling wait will be performed\n* the api is written as a dmaengine client that requests all available\n  channels\n* In support of dependencies the api implicitly schedules channel-switch\n  interrupts.  The interrupt triggers the cleanup tasklet which causes\n  pending operations to be scheduled on the next channel\n* Xor engines treat an xor destination address differently than a software\n  xor routine.  To the software routine the destination address is an implied\n  source, whereas engines treat it as a write-only destination.  This patch\n  modifies the xor_blocks routine to take a an explicit destination address\n  to mirror the hardware.\n\nChangelog:\n* fixed a leftover debug print\n* don\u0027t allow callbacks in async_interrupt_cond\n* fixed xor_block changes\n* fixed usage of ASYNC_TX_XOR_DROP_DEST\n* drop dma mapping methods, suggested by Chris Leech\n* printk warning fixups from Andrew Morton\n* don\u0027t use inline in C files, Adrian Bunk\n* select the API when MD is enabled\n* BUG_ON xor source counts \u003c\u003d 1\n* implicitly handle hardware concerns like channel switching and\n  interrupts, Neil Brown\n* remove the per operation type list, and distribute operation capabilities\n  evenly amongst the available channels\n* simplify async_tx_find_channel to optimize the fast path\n* introduce the channel_table_initialized flag to prevent early calls to\n  the api\n* reorganize the code to mimic crypto\n* include mm.h as not all archs include it in dma-mapping.h\n* make the Kconfig options non-user visible, Adrian Bunk\n* move async_tx under crypto since it is meant as \u0027core\u0027 functionality, and\n  the two may share algorithms in the future\n* move large inline functions into c files\n* checkpatch.pl fixes\n* gpl v2 only correction\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "685784aaf3cd0e3ff5e36c7ecf6f441cdbf57f73",
      "tree": "10f99829f7d877b87614fe69be77e363c026a8d7",
      "parents": [
        "d379b01e9087a582d58f4b678208a4f8d8376fe7"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:42 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:14 2007 -0700"
      },
      "message": "xor: make \u0027xor_blocks\u0027 a library routine for use with async_tx\n\nThe async_tx api tries to use a dma engine for an operation, but will fall\nback to an optimized software routine otherwise.  Xor support is\nimplemented using the raid5 xor routines.  For organizational purposes this\nroutine is moved to a common area.\n\nThe following fixes are also made:\n* rename xor_block \u003d\u003e xor_blocks, suggested by Adrian Bunk\n* ensure that xor.o initializes before md.o in the built-in case\n* checkpatch.pl fixes\n* mark calibrate_xor_blocks __init, Adrian Bunk\n\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: NeilBrown \u003cneilb@suse.de\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "ab6085c795a71b6a21afe7469d30a365338add7a",
      "tree": "d9d901ea1c3401906553ef9e684a1094a1b3083a",
      "parents": [
        "787f17feb204ed1c6331892fb8124b80dc9fe288"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 23 13:58:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:14 2007 -0700"
      },
      "message": "md: don\u0027t write more than is required of the last page of a bitmap\n\nIt is possible that real data or metadata follows the bitmap without full page\nalignment.\n\nSo limit the last write to be only the required number of bytes, rounded up to\nthe hard sector size of the device.\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": "44ce6294d07555c3d313757105fd44b78208407f",
      "tree": "29659bee16a4d7111124c6f41289bc9c11669e70",
      "parents": [
        "497f050c42e46a4b1f6a9bcd8827fa5d97fe1feb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 18:51:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 18:51:36 2007 -0700"
      },
      "message": "Revert \"md: improve partition detection in md array\"\n\nThis reverts commit 5b479c91da90eef605f851508744bfe8269591a0.\n\nQuoth Neil Brown:\n\n  \"It causes an oops when auto-detecting raid arrays, and it doesn\u0027t\n   seem easy to fix.\n\n   The array may not be \u0027open\u0027 when do_md_run is called, so\n   bdev-\u003ebd_disk might be NULL, so bd_set_size can oops.\n\n   This whole approach of opening an md device before it has been\n   assembled just seems to get more and more painful.  I think I\u0027m going\n   to have to come up with something clever to provide both backward\n   comparability with usage expectation, and sane integration into the\n   rest of the kernel.\"\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b479c91da90eef605f851508744bfe8269591a0",
      "tree": "d7c2844926d96d794d66b974b300eba2d047465e",
      "parents": [
        "08a02ecd28bad35a47357e611044dcbeab06e3d7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:35:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "md: improve partition detection in md array\n\nmd currently uses -\u003emedia_changed to make sure rescan_partitions\nis call on md array after they are assembled.\n\nHowever that doesn\u0027t happen until the array is opened, which is later\nthan some people would like.\n\nSo use blkdev_ioctl to do the rescan immediately that the\narray has been assembled.\n\nThis means we can remove all the -\u003echange infrastructure as it was only used\nto trigger a partition rescan.\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": "5792a2856a63cdc568e08a7d6f9b2413d9217b3e",
      "tree": "042a09fbfdf75dac5efa3bf61c7d6c6dd4c6ba7f",
      "parents": [
        "456a09dce9ca9b0013cabcda918aee851a04471d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Apr 04 19:08:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Apr 04 21:12:47 2007 -0700"
      },
      "message": "[PATCH] md: avoid a deadlock when removing a device from an md array via sysfs\n\nA device can be removed from an md array via e.g.\n  echo remove \u003e /sys/block/md3/md/dev-sde/state\n\nThis will try to remove the \u0027dev-sde\u0027 subtree which will deadlock\nsince\n  commit e7b0d26a86943370c04d6833c6edba2a72a6e240\n\nWith this patch we run the kobject_del via schedule_work so as to\navoid the deadlock.\n\nCc: Alan Stern \u003cstern@rowland.harvard.edu\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": "da6e1a32fb8d7539a27f699c8671f64d7fefd0cc",
      "tree": "8faa7713ad1333b30d8ba668627251dbc1e0b4ad",
      "parents": [
        "aaf68cfbf2241d24d46583423f6bff5c47e088b3"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 08 14:20:37 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 09 09:25:47 2007 -0800"
      },
      "message": "[PATCH] md: avoid possible BUG_ON in md bitmap handling\n\nmd/bitmap tracks how many active write requests are pending on blocks\nassociated with each bit in the bitmap, so that it knows when it can clear\nthe bit (when count hits zero).\n\nThe counter has 14 bits of space, so if there are ever more than 16383, we\ncannot cope.\n\nCurrently the code just calles BUG_ON as \"all\" drivers have request queue\nlimits much smaller than this.\n\nHowever is seems that some don\u0027t.  Apparently some multipath configurations\ncan allow more than 16383 concurrent write requests.\n\nSo, in this unlikely situation, instead of calling BUG_ON we now wait\nfor the count to drop down a bit.  This requires a new wait_queue_head,\nsome waiting code, and a wakeup call.\n\nTested by limiting the counter to 20 instead of 16383 (writes go a lot slower\nin that case...).\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": "2a2275d630b982e5f90206f9bc497f6695a3ec5d",
      "tree": "88cddee709b2107b74e5424810d4ffb6e3772382",
      "parents": [
        "a0ad13ef643a5829d63c456ab6143bbda60b44a9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 26 00:57:11 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 13:51:00 2007 -0800"
      },
      "message": "[PATCH] md: fix potential memalloc deadlock in md\n\nIf a GFP_KERNEL allocation is attempted in md while the mddev_lock is held,\nit is possible for a deadlock to eventuate.\n\nThis happens if the array was marked \u0027clean\u0027, and the memalloc triggers a\nwrite-out to the md device.\n\nFor the writeout to succeed, the array must be marked \u0027dirty\u0027, and that\nrequires getting the mddev_lock.\n\nSo, before attempting a GFP_KERNEL allocation while holding the lock, make\nsure the array is marked \u0027dirty\u0027 (unless it is currently read-only).\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@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46031f9a38a9773021f1872abc713d62467ac22e",
      "tree": "fe91f661fe0aad5f149447797c5d31544453ca38",
      "parents": [
        "f679623f50545bc0577caf2d0f8675b61162f059"
      ],
      "author": {
        "name": "Raz Ben-Jehuda(caro)",
        "email": "raziebe@gmail.com",
        "time": "Sun Dec 10 02:20:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:20 2006 -0800"
      },
      "message": "[PATCH] md: allow reads that have bypassed the cache to be retried on failure\n\nIf a bypass-the-cache read fails, we simply try again through the cache.  If\nit fails again it will trigger normal recovery precedures.\n\nupdate 1:\n\nFrom: NeilBrown \u003cneilb@suse.de\u003e\n\n1/\n  chunk_aligned_read and retry_aligned_read assume that\n      data_disks \u003d\u003d raid_disks - 1\n  which is not true for raid6.\n  So when an aligned read request bypasses the cache, we can get the wrong data.\n\n2/ The cloned bio is being used-after-free in raid5_align_endio\n   (to test BIO_UPTODATE).\n\n3/ We forgot to add rdev-\u003edata_offset when submitting\n   a bio for aligned-read\n\n4/ clone_bio calls blk_recount_segments and then we change bi_bdev,\n   so we need to invalidate the segment counts.\n\n5/ We don\u0027t de-reference the rdev when the read completes.\n   This means we need to record the rdev to so it is still\n   available in the end_io routine.  Fortunately\n   bi_next in the original bio is unused at this point so\n   we can stuff it in there.\n\n6/ We leak a cloned bio if the target rdev is not usable.\n\nFrom: NeilBrown \u003cneilb@suse.de\u003e\n\nupdate 2:\n\n1/ When aligned requests fail (read error) they need to be retried\n   via the normal method (stripe cache).  As we cannot be sure that\n   we can process a single read in one go (we may not be able to\n   allocate all the stripes needed) we store a bio-being-retried\n   and a list of bioes-that-still-need-to-be-retried.\n   When find a bio that needs to be retried, we should add it to\n   the list, not to single-bio...\n\n2/ We were never incrementing \u0027scnt\u0027 when resubmitting failed\n   aligned requests.\n\n[akpm@osdl.org: build fix]\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": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4f2e639af4bd5e152fc79256e333643d3dd6c10f",
      "tree": "1adf32d929c552d7e4b24475baa45c6108436f79",
      "parents": [
        "1c05b4bc22cd640d3a534bd2851a8413d5df3709"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Oct 21 10:24:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 21 13:35:05 2006 -0700"
      },
      "message": "[PATCH] md: endian annotations for the bitmap superblock\n\nAnd a couple of bug fixes found by sparse.\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": "1c05b4bc22cd640d3a534bd2851a8413d5df3709",
      "tree": "dceceabea9bdb92213e2a2d318cdd1b152832cbd",
      "parents": [
        "da3ed32fe568148ede256975d40825ffcdac767b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Oct 21 10:24:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 21 13:35:05 2006 -0700"
      },
      "message": "[PATCH] md: endian annotation for v1 superblock access\n\nIncludes a couple of bugfixes found by sparse.\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": "e8703fe1f5cdcff686f7eb0a46487b5a04a9324a",
      "tree": "3b52bfa6ee57d59e059fd0e8d8504dbd3ee073b4",
      "parents": [
        "d33a56d3639eba077489c937943a32ef6237b1b8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:18 2006 -0700"
      },
      "message": "[PATCH] md: remove MAX_MD_DEVS which is an arbitrary limit\n\nOnce upon a time we needed to fixed limit to the number of md devices,\nprobably because we preallocated some array.  This need no longer exists, but\nwe still have an arbitrary limit.\n\nSo remove MAX_MD_DEVS and allow as many devices as we can fit into the \u0027minor\u0027\npart of a device number.\n\nAlso remove some useless noise at init time (which reports MAX_MD_DEVS) and\nremove MD_THREAD_NAME_MAX which hasn\u0027t been used for a while.\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": "11ce99e625fe2718ad2682bfdd99070b337e6252",
      "tree": "48e40104a058f27e9cd717c42edcf6738fef2372",
      "parents": [
        "867868fb557eb2a2120b80779468fa372584ddb0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:17 2006 -0700"
      },
      "message": "[PATCH] md: Remove working_disks from raid1 state data\n\nIt is equivalent to conf-\u003eraid_disks - conf-\u003emddev-\u003edegraded.\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": "9b1d1dac181d8c1b9492e05cee660a985d035a06",
      "tree": "af12b1eaac4e0f7f3528ec26a223faeabed35845",
      "parents": [
        "76186dd8b73d2b7b9b4c8629b89c845e97009801"
      ],
      "author": {
        "name": "Paul Clements",
        "email": "paul.clements@steeleye.com",
        "time": "Tue Oct 03 01:15:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:17 2006 -0700"
      },
      "message": "[PATCH] md: new sysfs interface for setting bits in the write-intent-bitmap\n\nAdd a new sysfs interface that allows the bitmap of an array to be dirtied.\nThe interface is write-only, and is used as follows:\n\necho \"1000\" \u003e /sys/block/md2/md/bitmap\n\n(dirty the bit for chunk 1000 [offset 0] in the in-memory and on-disk\nbitmaps of array md2)\n\necho \"1000-2000\" \u003e /sys/block/md1/md/bitmap\n\n(dirty the bits for chunks 1000-2000 in md1\u0027s bitmap)\n\nThis is useful, for example, in cluster environments where you may need to\ncombine two disjoint bitmaps into one (following a server failure, after a\nsecondary server has taken over the array).  By combining the bitmaps on\nthe two servers, a full resync can be avoided (This was discussed on the\nlist back on March 18, 2005, \"[PATCH 1/2] md bitmap bug fixes\" thread).\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": "02c2de8cc835885bdff51a8bfd6c0b659b969f50",
      "tree": "3c3b3adf01e4ec4139888d681eca5becb3374fda",
      "parents": [
        "850b2b420cd5b363ed4cf48a8816d656c8b5251b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:17 2006 -0700"
      },
      "message": "[PATCH] md: remove the working_disks and failed_disks from raid5 state data.\n\nThey are not needed.  conf-\u003efailed_disks is the same as mddev-\u003edegraded and\nconf-\u003eworking_disks is conf-\u003eraid_disks - mddev-\u003edegraded.\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": "b5c124af69119c1b5c1e728bd2e7b5b1fad9b7be",
      "tree": "7caf3a0fec3dfd4e4e9781aa67be9430f618ccf0",
      "parents": [
        "fbedac04fa11d7f9f9f425c7ec253f55becaae57"
      ],
      "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:16 2006 -0700"
      },
      "message": "[PATCH] md: fix a comment that is wrong in raid5.h\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": "fbedac04fa11d7f9f9f425c7ec253f55becaae57",
      "tree": "700b49b6ea0da293d07a6a32cc154347e134686f",
      "parents": [
        "999d816851c3e080412a19558f111d01852d2f04"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 03 01:15:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:16 2006 -0700"
      },
      "message": "[PATCH] md: the scheduled removal of the START_ARRAY ioctl for md\n\nThis patch contains the scheduled removal of the START_ARRAY ioctl for md.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "9361401eb7619c033e2394e4f9f6d410d6719ac7",
      "tree": "04b94a71f2366988c17740d1c16cfbdec41d5d2e",
      "parents": [
        "d366e40a1cabd453be6e2609caa7e12f9ca17b1f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 30 20:45:40 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:52:31 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Make it possible to disable the block layer [try #6]\n\nMake it possible to disable the block layer.  Not all embedded devices require\nit, some can make do with just JFFS2, NFS, ramfs, etc - none of which require\nthe block layer to be present.\n\nThis patch does the following:\n\n (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev\n     support.\n\n (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls\n     an item that uses the block layer.  This includes:\n\n     (*) Block I/O tracing.\n\n     (*) Disk partition code.\n\n     (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.\n\n     (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the\n     \t block layer to do scheduling.  Some drivers that use SCSI facilities -\n     \t such as USB storage - end up disabled indirectly from this.\n\n     (*) Various block-based device drivers, such as IDE and the old CDROM\n     \t drivers.\n\n     (*) MTD blockdev handling and FTL.\n\n     (*) JFFS - which uses set_bdev_super(), something it could avoid doing by\n     \t taking a leaf out of JFFS2\u0027s book.\n\n (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and\n     linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,\n     however, still used in places, and so is still available.\n\n (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and\n     parts of linux/fs.h.\n\n (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.\n\n (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.\n\n (*) set_page_dirty() doesn\u0027t call __set_page_dirty_buffers() if CONFIG_BLOCK\n     is not enabled.\n\n (*) fs/no-block.c is created to hold out-of-line stubs and things that are\n     required when CONFIG_BLOCK is not set:\n\n     (*) Default blockdev file operations (to give error ENODEV on opening).\n\n (*) Makes some /proc changes:\n\n     (*) /proc/devices does not list any blockdevs.\n\n     (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.\n\n (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.\n\n (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if\n     given command other than Q_SYNC or if a special device is specified.\n\n (*) In init/do_mounts.c, no reference is made to the blockdev routines if\n     CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.\n\n (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return\n     error ENOSYS by way of cond_syscall if so).\n\n (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if\n     CONFIG_BLOCK is not set, since they can\u0027t then happen.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "fadcfa33b6319a5faf8af2287f08bf93a7f926b6",
      "tree": "367e931ec64a88c20a4d15c351d4c7dbb1b7adf1",
      "parents": [
        "47a5c6fa0e204a2b63309c648bb2fde36836c826"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Sep 19 12:43:58 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Sep 19 12:43:58 2006 +0100"
      },
      "message": "[HEADERS] One line per header in Kbuild files to reduce conflicts\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "ff4e8d9a9f46e3a7f89d14ade52fe5d53a82c022",
      "tree": "e15fc4d8af0045a3947e3a25844773c6ee50289a",
      "parents": [
        "0b8c9de05c2a860fe6b02fedcb48763bcee648b3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 10 04:44:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:16 2006 -0700"
      },
      "message": "[PATCH] md: fix resync speed calculation for restarted resyncs\n\nWe introduced \u0027io_sectors\u0027 recently so we could count the sectors that causes\nio during resync separate from sectors which didn\u0027t cause IO - there can be a\ndifference if a bitmap is being used to accelerate resync.\n\nHowever when a speed is reported, we find the number of sectors processed\nrecently by subtracting an oldish io_sectors count from a current\n\u0027curr_resync\u0027 count.  This is wrong because curr_resync counts all sectors,\nnot just io sectors.\n\nSo, add a field to mddev to store the curren io_sectors separately from\ncurr_resync, and use that in the calculations.\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": "6fa0cb1141da80eed4f86155fb51931bc1c31888",
      "tree": "df9b3c378ae4f44260eaae1a4b9d5c4ccf7bb641",
      "parents": [
        "c6482dde1c2811afba289b2344268f850595f350",
        "257a5bdeb0441789d8e34e1b3e92b26d0f51bbf0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 04 12:55:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 04 12:55:45 2006 -0700"
      },
      "message": "Merge git://git.infradead.org/hdrinstall-2.6\n\n* git://git.infradead.org/hdrinstall-2.6:\n  Remove export of include/linux/isdn/tpam.h\n  Remove \u003clinux/i2c-id.h\u003e and \u003clinux/i2c-algo-ite.h\u003e from userspace export\n  Restrict headers exported to userspace for SPARC and SPARC64\n  Add empty Kbuild files for \u0027make headers_install\u0027 in remaining arches.\n  Add Kbuild file for Alpha \u0027make headers_install\u0027\n  Add Kbuild file for SPARC \u0027make headers_install\u0027\n  Add Kbuild file for IA64 \u0027make headers_install\u0027\n  Add Kbuild file for S390 \u0027make headers_install\u0027\n  Add Kbuild file for i386 \u0027make headers_install\u0027\n  Add Kbuild file for x86_64 \u0027make headers_install\u0027\n  Add Kbuild file for PowerPC \u0027make headers_install\u0027\n  Add generic Kbuild files for \u0027make headers_install\u0027\n  Basic implementation of \u0027make headers_check\u0027\n  Basic implementation of \u0027make headers_install\u0027\n"
    },
    {
      "commit": "42543769142d2375f2b5f8fc9cac999f84bd4c4c",
      "tree": "404606c37da872639111c5b641f07fff2ded1dff",
      "parents": [
        "07d84d109d8beedd68df9da2e4e9f25c8217e7fb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:39 2006 -0700"
      },
      "message": "[PATCH] md: Don\u0027t write dirty/clean update to spares - leave them alone\n\n- record the \u0027event\u0027 count on each individual device (they\n  might sometimes be slightly different now)\n- add a new value for \u0027sb_dirty\u0027: \u00273\u0027 means that the super\n  block only needs to be updated to record a clean\u003c-\u003edirty\n  transition.\n- Prefer odd event numbers for dirty states and even numbers\n  for clean states\n- Using all the above, don\u0027t update the superblock on\n  a spare device if the update is just doing a clean-dirty\n  transition.  To accomodate this, a transition from\n  dirty back to clean might now decrement the events counter\n  if nothing else has changed.\n\nThe net effect of this is that spare drives will not see any IO requests\nduring normal running of the array, so they can go to sleep if that is what\nthey want to do.\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": "d785a06a0b9d0cd86b3cc1bf8e236e62af7b47ed",
      "tree": "7a238aedb0facb5c207a0477296e78b9ef7d551b",
      "parents": [
        "acc55e220166a5ad898e66ad6153fd62eaaac76d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:38 2006 -0700"
      },
      "message": "[PATCH] md/bitmap: change md/bitmap file handling to use bmap to file blocks\n\nIf md is asked to store a bitmap in a file, it tries to hold onto the page\ncache pages for that file, manipulate them directly, and call a cocktail of\noperations to write the file out.  I don\u0027t believe this is a supportable\napproach.\n\nThis patch changes the approach to use the same approach as swap files.  i.e.\nbmap is used to enumerate all the block address of parts of the file and we\nwrite directly to those blocks of the device.\n\nswapfile only uses parts of the file that provide a full pages at contiguous\naddresses.  We don\u0027t have that luxury so we have to cope with pages that are\nnon-contiguous in storage.  To handle this we attach buffers to each page, and\nstore the addresses in those buffers.\n\nWith this approach the pagecache may contain data which is inconsistent with\nwhat is on disk.  To alleviate the problems this can cause, md invalidates the\npagecache when releasing the file.  If the file is to be examined while the\narray is active (a non-critical but occasionally useful function), O_DIRECT io\nmust be used.  And new version of mdadm will have support for this.\n\nThis approach simplifies a lot of code:\n - we no longer need to keep a list of pages which we need to wait for,\n   as the b_endio function can keep track of how many outstanding\n   writes there are.  This saves a mempool.\n - -EAGAIN returns from write_page are no longer possible (not sure if\n    they ever were actually).\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": "0b79ccf0cdd9f59e5f99017e1a5d23da336544b2",
      "tree": "8688d9810fcba1e24abce726eaf35ff32f6b58d9",
      "parents": [
        "d7375ab324971e7acbea9f02a0269ae7348f4147"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:38 2006 -0700"
      },
      "message": "[PATCH] md/bitmap: remove bitmap writeback daemon\n\nmd/bitmap currently has a separate thread to wait for writes to the bitmap\nfile to complete (as we cannot get a callback on that action).\n\nHowever this isn\u0027t needed as bitmap_unplug is called from process context and\nwaits for the writeback thread to do it\u0027s work.  The same result can be\nachieved by doing the waiting directly in bitmap_unplug.\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": "5e56341d029f0c2cf31e78dc01d4c861ba4d6a5e",
      "tree": "e77087a31d3d1b86c563fb4461f07ee642de280b",
      "parents": [
        "c93983bf517c100a31e40ef087e19bd3d7aa2d28"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jun 26 00:27:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:37 2006 -0700"
      },
      "message": "[PATCH] md: make md_print_devices() static\n\nThis patch makes the needlessly global md_print_devices() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "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": "7c7546ccf6463edbeee8d9aac6de7be1cd80d08a",
      "tree": "56c1f734db9f8a66a7c8c5ef11fb35e07dbb2f91",
      "parents": [
        "5fd6c1dce06ec24ef3de20fe0c7ecf2ba9fe5ef9"
      ],
      "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: allow a linear array to have drives added while active\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": "16a53ecc35f2a80dc285be2e769768847d89ca37",
      "tree": "19d005f19af68e9b98efaf16885bb60498f540c1",
      "parents": [
        "16f17b39f385212b73278a76d482cdcaaebe6c02"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:37 2006 -0700"
      },
      "message": "[PATCH] md: merge raid5 and raid6 code\n\nThere is a lot of commonality between raid5.c and raid6main.c.  This patches\nmerges both into one module called raid456.  This saves a lot of code, and\npaves the way for online raid5-\u003eraid6 migrations.\n\nThere is still duplication, e.g.  between handle_stripe5 and handle_stripe6.\nThis will probably be cleaned up later.\n\nCc: \"H. Peter Anvin\" \u003chpa@zytor.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": "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": "8555255f0b426858d8648c6206b70eb906cf4ec7",
      "tree": "3afe2ae27f6390bd6cb2350a578fafc690fa7803",
      "parents": [
        "684753599afc76aa8f66c731bafb7204b39265b8"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sun Jun 18 12:14:01 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sun Jun 18 12:14:01 2006 +0100"
      },
      "message": "Add generic Kbuild files for \u0027make headers_install\u0027\n\nThis adds the Kbuild files listing the files which are to be installed by\nthe \u0027headers_install\u0027 make target, in generic directories.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "6f91fe88e4e28b40b4f08d99e0ea6d17b70e9567",
      "tree": "035ac07180e058579ee8023ed0fcb12e40315594",
      "parents": [
        "54404e72cd3758e465fb6362f6d71e22b705c589"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 10 22:52:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:30 2006 -0700"
      },
      "message": "[PATCH] md: make sure 64bit fields in version-1 metadata are 64-bit aligned\n\nreshape_position is a 64bit field that was not 64bit aligned.  So swap with\nnew_level.\n\nNOTE: this is a user-visible change.  However:\n  - The bad code has not appeared in a released kernel\n  - This code is still marked \u0027experimental\u0027\n  - This only affects version-1 superblock, which are not in wide use\n  - These field are only used (rather than simply reported) by user-space\n    tools in extemely rare circumstances : after a reshape crashes in the\n    first second of the reshape process.\n\nSo I believe that, at this stage, the change is safe.  Especially if people\nheed the \u0027help\u0027 message on use mdadm-2.4.1.\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": "df5b89b323b922f56650b4b4d7c41899b937cf19",
      "tree": "d1578782a9d763174474fe2db08f4ce4c6dc6218",
      "parents": [
        "48c9c27b8bcd2a328a06151e2d5c1170db0b701b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:03 2006 -0800"
      },
      "message": "[PATCH] md: Convert reconfig_sem to reconfig_mutex\n\n... being careful that mutex_trylock is inverted wrt down_trylock\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": "e464eafdb4400c6d6576ba3840d8bd40340f8a96",
      "tree": "0c3f4003c883264ee08300c02007f06e4d1ebb91",
      "parents": [
        "16484bf59634e25d1299761e5ed8bacf22bc6368"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:02 2006 -0800"
      },
      "message": "[PATCH] md: Support suspending of IO to regions of an md array\n\nThis allows user-space to access data safely.  This is needed for raid5\nreshape as user-space needs to take a backup of the first few stripes before\nallowing reshape to commence.\n\nIt will also be useful in cluster-aware raid1 configurations so that all\ncluster members can leave a section of the array untouched while a\nresync/recovery happens.\n\nA \u0027start\u0027 and \u0027end\u0027 of the suspended range are written to 2 sysfs attributes.\nNote that only one range can be suspended at a time.\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": "63c70c4f3a30e77e6f445bd16eff7934a031ebd3",
      "tree": "12d2cd6cec5cd304bdf514ec8999a44c26f058ae",
      "parents": [
        "b578d55fdd80140f657130abd85aebeb345755fb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:02 2006 -0800"
      },
      "message": "[PATCH] md: Split reshape handler in check_reshape and start_reshape\n\ncheck_reshape checks validity and does things that can be done instantly -\nlike adding devices to raid1.  start_reshape initiates a restriping process to\nconvert the whole array.\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": "b578d55fdd80140f657130abd85aebeb345755fb",
      "tree": "3737b88a25b3fb1e3347cd1c4c274336aee6a462",
      "parents": [
        "f67055780caac6a99f43834795c43acf99eba6a6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:02 2006 -0800"
      },
      "message": "[PATCH] md: Only checkpoint expansion progress occasionally\n\nInstead of checkpointing at each stripe, only checkpoint when a new write\nwould overwrite uncheckpointed data.  Block any write to the uncheckpointed\narea.  Arbitrarily checkpoint at least every 3Meg.\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": "f67055780caac6a99f43834795c43acf99eba6a6",
      "tree": "6b80e7b4cb300edb0910dbad1d840ff8e2f36ae5",
      "parents": [
        "292695531ae4019bb15deedc121b218d1908b648"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Checkpoint and allow restart of raid5 reshape\n\nWe allow the superblock to record an \u0027old\u0027 and a \u0027new\u0027 geometry, and a\nposition where any conversion is up to.  The geometry allows for changing\nchunksize, layout and level as well as number of devices.\n\nWhen using verion-0.90 superblock, we convert the version to 0.91 while the\nconversion is happening so that an old kernel will refuse the assemble the\narray.  For version-1, we use a feature bit for the same effect.\n\nWhen starting an array we check for an incomplete reshape and restart the\nreshape process if needed.  If the reshape stopped at an awkward time (like\nwhen updating the first stripe) we refuse to assemble the array, and let\nuser-space worry about it.\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": "292695531ae4019bb15deedc121b218d1908b648",
      "tree": "fb205eae13c3f3410f6ea44557b1c96b075a4d44",
      "parents": [
        "ccfcc3c10b2a5cb8fd3c918199a4ff904fc6fb3e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Final stages of raid5 expand code\n\nThis patch adds raid5_reshape and end_reshape which will start and finish the\nreshape processes.\n\nraid5_reshape is only enabled in CONFIG_MD_RAID5_RESHAPE is set, to discourage\naccidental use.\n\nRead the \u0027help\u0027 for the CONFIG_MD_RAID5_RESHAPE entry.\n\nand Make sure that you have backups, just in case.\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": "ccfcc3c10b2a5cb8fd3c918199a4ff904fc6fb3e",
      "tree": "0c86fe6ba0f0bafd76f86f81b7425d6d497664aa",
      "parents": [
        "7ecaa1e6a1ad69862e9980b6c777e11f26c4782d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Core of raid5 resize process\n\nThis patch provides the core of the resize/expand process.\n\nsync_request notices if a \u0027reshape\u0027 is happening and acts accordingly.\n\nIt allocated new stripe_heads for the next chunk-wide-stripe in the target\ngeometry, marking them STRIPE_EXPANDING.\n\nThen it finds which stripe heads in the old geometry can provide data needed\nby these and marks them STRIPE_EXPAND_SOURCE.  This causes stripe_handle to\nread all blocks on those stripes.\n\nOnce all blocks on a STRIPE_EXPAND_SOURCE stripe_head are read, any that are\nneeded are copied into the corresponding STRIPE_EXPANDING stripe_head.  Once a\nSTRIPE_EXPANDING stripe_head is full, it is marks STRIPE_EXPAND_READY and then\nis written out and released.\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": "7ecaa1e6a1ad69862e9980b6c777e11f26c4782d",
      "tree": "3cbd64ebc2a45f6b5ac45b0305fd3cf2c6916070",
      "parents": [
        "ad01c9e3752f4ba4f3d99c89b7370fa4983a25b5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Infrastructure to allow normal IO to continue while array is expanding\n\nWe need to allow that different stripes are of different effective sizes, and\nuse the appropriate size.  Also, when a stripe is being expanded, we must\nblock any IO attempts until the stripe is stable again.\n\nKey elements in this change are:\n - each stripe_head gets a \u0027disk\u0027 field which is part of the key,\n   thus there can sometimes be two stripe heads of the same area of\n   the array, but covering different numbers of devices.  One of these\n   will be marked STRIPE_EXPANDING and so won\u0027t accept new requests.\n - conf-\u003eexpand_progress tracks how the expansion is progressing and\n   is used to determine whether the target part of the array has been\n   expanded yet or not.\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": "ad01c9e3752f4ba4f3d99c89b7370fa4983a25b5",
      "tree": "856868aa97332d6d15d4cad412e0ebe3576bb571",
      "parents": [
        "b55e6bfcd23cb2f7249095050c649f7aea813f9f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Allow stripes to be expanded in preparation for expanding an array\n\nBefore a RAID-5 can be expanded, we need to be able to expand the stripe-cache\ndata structure.\n\nThis requires allocating new stripes in a new kmem_cache.  If this succeeds,\nwe copy cache pages over and release the old stripes and kmem_cache.\n\nWe then allocate new pages.  If that fails, we leave the stripe cache at it\u0027s\nnew size.  It isn\u0027t worth the effort to shrink it back again.\n\nUnfortuanately this means we need two kmem_cache names as we, for a short\nperiod of time, we have two kmem_caches.  So they are raid5/%s and\nraid5/%s-alt\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": "b55e6bfcd23cb2f7249095050c649f7aea813f9f",
      "tree": "78c854c1eeb85d48bf0956309cc7ccfa14e9805a",
      "parents": [
        "4588b42e9d0d0904a745c96cead66506c75bae21"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 27 01:18:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:01 2006 -0800"
      },
      "message": "[PATCH] md: Split disks array out of raid5 conf structure so it is easier to grow\n\nThe remainder of this batch implements raid5 reshaping.  Currently the only\nshape change that is supported is added a device, but it is envisioned that\nchanging the chunksize and layout will also be supported, as well as changing\nthe level (e.g.  1-\u003e5, 5-\u003e6).\n\nThe reshape process naturally has to move all of the data in the array, and so\nshould be used with caution.  It is believed to work, and some testing does\nsupport this, but wider testing would be great for increasing my confidence.\n\nYou will need a version of mdadm newer than 2.3.1 to make use of raid5 growth.\n This is because mdadm need to take a copy of a \u0027critical section\u0027 at the\nstart of the array incase there is a crash at an awkward moment.  On restart,\nmdadm will restore the critical section and allow reshape to continue.\n\nI hope to release a 2.4-pre by early next week - it still needs a little more\npolishing.\n\nThis patch:\n\nPreviously the array of disk information was included in the raid5 \u0027conf\u0027\nstructure which was allocated to an appropriate size.  This makes it awkward\nto change the size of that array.  So we split it off into a separate\nkmalloced array which will require a little extra indexing, but is much easier\nto grow.\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": "9e71f9c848e669f003b1319da52f03cb8e7d7403",
      "tree": "3c873cce6b2d5da5237be20fe98124e8f4968d4d",
      "parents": [
        "e9028b0ff2bad1954568604dc17725692c8524d6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Mar 23 02:59:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:03 2006 -0800"
      },
      "message": "[PATCH] DM: Fix bug: BIO_RW_BARRIER requests to md/raid1 hang.\n\nBoth R1BIO_Barrier and R1BIO_Returned are 4 !!!!\n\nThis means that barrier requests don\u0027t get returned (i.e.  b_endio called)\nbecause it looks like they already have been.\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": "88202a0c84e1951d6630d1d557d4801a8cc5b5ef",
      "tree": "5a1aadc008de1ee68f40a4bb667157f248211230",
      "parents": [
        "6d7ff7380b2e28c2807da3bf9fa614d91d15bacf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:21:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:10 2006 -0800"
      },
      "message": "[PATCH] md: allow sync-speed to be controlled per-device\n\nAlso export current (average) speed and status in 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": "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": "2989ddbd6e1d9638a188311b896362c4bf7b7c25",
      "tree": "6dd1adb19cdff7135aadb96a309e55aed59e8be9",
      "parents": [
        "f188593ee7af8c71755d2df269a7a5f62c4b695e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:07 2006 -0800"
      },
      "message": "[PATCH] md: make a couple of names in md.c static\n\n.. because they aren\u0027t used outside md.c\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": "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": "fccddba060f2b4916a30aa27acc3d03b01bb981e",
      "tree": "92fbb81ab3b1fdbbe8de9ba2ebb91ac68c57b2a0",
      "parents": [
        "9ffae0cf3ea02f75d163922accfd3e592d87adde"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:06 2006 -0800"
      },
      "message": "[PATCH] md: tidy up raid5/6 hash table code\n\n- replace open-coded hash chain with hlist macros\n\n- Fix hash-table size at one page - it is already quite generous, so there\n  will never be a need to use multiple pages, so no need for __get_free_pages\n\nNo functional change.\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": "9910f16af35419a5382fa7850eecc220103036fa",
      "tree": "3b5145b8a706e03a6f2b4da4bd84fe98c83de31a",
      "parents": [
        "cf30a473a02901fe4db37abc0b0fa26dd5ba3f72"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:04 2006 -0800"
      },
      "message": "[PATCH] md: fix up some rdev rcu locking in raid5/6\n\nThere is this \"FIXME\" comment with a typo in it!!  that been annoying me for\ndays, so I just had to remove it.\n\nconf-\u003edisks[i].rdev should only be accessed if\n  - we know we hold a reference or\n  - the mddev-\u003ereconfig_sem is down or\n  - we have a rcu_readlock\n\nhandle_stripe was referencing rdev in three places without any of these.  For\nthe first two, get an rcu_readlock.  For the last, the same access\n(md_sync_acct call) is made a little later after the rdev has been claimed\nunder and rcu_readlock, if R5_Syncio is set.  So just use that access...\nHowever R5_Syncio isn\u0027t really needed as the \u0027syncing\u0027 variable contains the\nsame information.  So use that instead.\n\nIssues, comment, and fix are identical in raid5 and raid6.\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": "cf30a473a02901fe4db37abc0b0fa26dd5ba3f72",
      "tree": "3fa967963e174913826943f0f98e63c60032d07d",
      "parents": [
        "69382e85371c232df71524137a806b9c210ec021"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:04 2006 -0800"
      },
      "message": "[PATCH] md: handle errors when read-only\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": "ddaf22abaa831763e75775e6d4c7693504237997",
      "tree": "4f6ba4cb056f8c7cea82c7d548769b879d0fb405",
      "parents": [
        "d69762e98456b71167865db9e33e732a28dd36ab"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:03 2006 -0800"
      },
      "message": "[PATCH] md: attempt to auto-correct read errors in raid1\n\nOn a read-error we suspend the array, then synchronously read the block from\nother arrays until we find one where we can read it.  Then we try writing the\ngood data back everywhere and make sure it works.  If any write or subsequent\nread fails, only then do we fail the device out of the array.\n\nTo be able to suspend the array, we need to also keep track of how many\nrequests are queued for handling by raid1d.\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": "ca65b73bd9c301d243df93780f7b26579e6c9204",
      "tree": "1ca8157e11033989ee94c20b1f2d4c936f9dc09c",
      "parents": [
        "6cce3b23f6f8e974c00af7a9b88f1d413ba368a8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:03 2006 -0800"
      },
      "message": "[PATCH] md: fix raid6 resync check/repair code\n\nraid6 currently does not check the P/Q syndromes when doing a resync, it just\ncalculates the correct value and writes it.  Doing the check can reduce writes\n(often to 0) for a resync, and it is needed to properly implement the\n\n  echo check \u003e sync_action\n\noperation.\n\nThis patch implements the appropriate checks and tidies up some related code.\n\nIt also allows raid6 user-requested resync to bypass the intent bitmap.\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": "6ff8d8ec06690f4011a6c3ad9e0759b9094f0601",
      "tree": "3606791ca1fb73e0263c4bb90d9c909d354bf9d4",
      "parents": [
        "14f8d26b8ea3413b28f2cac208c9a93600fe3a80"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:02 2006 -0800"
      },
      "message": "[PATCH] md: allow dirty raid[456] arrays to be started at boot\n\nSee patch to md.txt for more details\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": "17999be4aa408e7ff3b9d32c735649676567a3cd",
      "tree": "14f9fd4ef0299f16274ce2980baef7b96f111bea",
      "parents": [
        "ac81b2ee45eb811fdb0aa1cfb71d468d944d00ce"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:01 2006 -0800"
      },
      "message": "[PATCH] md: improve raid1 \"IO Barrier\" concept\n\nraid1 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": "787453c2397edcc3261efebb661739acd8c38547",
      "tree": "41855815ebfb6332485ac1ca30b43308c66da0e0",
      "parents": [
        "fd9d49cac46f5758d513ccf831b599dd4412546f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:43 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:40 2005 -0800"
      },
      "message": "[PATCH] md: complete conversion of md to use kthreads\n\nThere are a few loose ends following the conversion of md to use kthreads:\n\n- Some fields in mdk_thread_t that aren\u0027t needed (kthreads does it\u0027s own\n  completion and manages it\u0027s own name).\n\n- thread-\u003erun is now never NULL, so no need to check\n\n- Some tests for signal_pending that aren\u0027t needed (As we don\u0027t use signals\n  to stop threads any more)\n\n- Some flush_signals are not needed\n\n- Some waits are interruptible and don\u0027t need to be.\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": "a9701a30470856408d08657eb1bd7ae29a146190",
      "tree": "eb6ea8c82fdc1b50bf56abadeee63a935034cf27",
      "parents": [
        "bd926c63b7a6843d3ce2728396c0891e54fce5c4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:38 2005 -0800"
      },
      "message": "[PATCH] md: support BIO_RW_BARRIER for md/raid1\n\nWe can only accept BARRIER requests if all slaves handle\nbarriers, and that can, of course, change with time....\n\nSo we keep track of whether the whole array seems safe for barriers,\nand also whether each individual rdev handles barriers.\n\nWe initially assumes barriers are OK.\n\nWhen writing the superblock we try a barrier, and if that fails, we flag\nthings for no-barriers.  This will usually clear the flags fairly quickly.\n\nIf writing the superblock finds that BIO_RW_BARRIER is -ENOTSUPP, we need to\nresubmit, so introduce function \"md_super_wait\" which waits for requests to\nfinish, and retries ENOTSUPP requests without the barrier flag.\n\nWhen writing the real raid1, write requests which were BIO_RW_BARRIER but\nwhich aresn\u0027t supported need to be retried.  So raid1d is enhanced to do this,\nand when any bio write completes (i.e.  no retry needed) we remove it from the\nr1bio, so that devices needing retry are easy to find.\n\nWe should hardly ever get -ENOTSUPP errors when writing data to the raid.\nIt should only happen if:\n  1/ the device used to support BARRIER, but now doesn\u0027t.  Few devices\n     change like this, though raid1 can!\nor\n  2/ the array has no persistent superblock, so there was no opportunity to\n     pre-test for barriers when writing the superblock.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\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": "bd926c63b7a6843d3ce2728396c0891e54fce5c4",
      "tree": "38f7083a733e9b31efe69616c5fa3448c74c1320",
      "parents": [
        "b2d444d7ad975d555bb919601bcdc0e58975a40e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:32 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:38 2005 -0800"
      },
      "message": "[PATCH] md: make md on-disk bitmaps not host-endian\n\nCurrent bitmaps use set_bit et.al and so are host-endian, which means\nnot-portable.  Oops.\n\nDefine a new version number (4) for which bitmaps are little-endian.\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": "ba22dcbf106338a5c46d6979f9b19564faae3d49",
      "tree": "4caae4532cda0412d2446eca8b036d4e0df447f8",
      "parents": [
        "007583c9253fed363a0bd71b039e9b40a0f6855e"
      ],
      "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: improvements to raid5 handling of read errors\n\nTwo refinements to the \u0027attempt-overwrite-on-read-error\u0027 mechanism.\n1/ If the array is read-only, don\u0027t attempt an over-write.\n2/ If there are more than max_nr_stripes read errors on a device with\n   no success, fail the drive.  This will make sure a dead\n   drive will be eventually kicked even when we aren\u0027t trying\n   to rewrite (which would normally kick a dead drive more quickly.\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": "007583c9253fed363a0bd71b039e9b40a0f6855e",
      "tree": "f47d3fd94830ae2c09d7d821e8a57ba46ecb13bc",
      "parents": [
        "31399d9e56abeec4d819f07eefc97f30b5d5ed75"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:30 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:38 2005 -0800"
      },
      "message": "[PATCH] md: change raid5 sysfs attribute to not create a new directory\n\nThere isn\u0027t really a need for raid5 attributes to be an a subdirectory,\nso this patch moves them from\n  /sys/block/mdX/md/raid5/attribute\nto\n  /sys/block/mdX/md/attribute\n\nThis suggests that all md personalities should co-operate about\nnamespace usage, but that shouldn\u0027t be a problem.\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": "9d88883e68f404d5581bd391713ceef470ea53a9",
      "tree": "09217a737ca91fb1d105df601741a61e141d4946",
      "parents": [
        "24dd469d728dae07f40c5d79ea6dedd38cdf1a30"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:26 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:37 2005 -0800"
      },
      "message": "[PATCH] md: teach raid5 the difference between \u0027check\u0027 and \u0027repair\u0027.\n\nWith this, raid5 can be asked to check parity without repairing it.  It also\nkeeps a count of the number of incorrect parity blocks found (mismatches) and\nreports them through sysfs.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: 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": "24dd469d728dae07f40c5d79ea6dedd38cdf1a30",
      "tree": "3975aaeaa6c1cd77a2d4b06184ad3bd0175a44a5",
      "parents": [
        "3f294f4fb6f2ba887b717674da26c21f3d57f3fc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:26 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:37 2005 -0800"
      },
      "message": "[PATCH] md: allow a manual resync with md\n\nYou can trigger a \u0027check\u0027 with\n  echo check \u003e /sys/block/mdX/md/scan_mode\nor a check-and-repair errors with\n  echo repair \u003e /sys/block/mdX/md/scan_mode\n\nand read the current state from the same file.\n\nNote: personalities need to know the different between \u0027check\u0027 and \u0027repair\u0027,\nbut don\u0027t yet.  Until they do, \u0027check\u0027 will be the same as \u0027repair\u0027 and will\njust do a normal resync pass.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: 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": "3f294f4fb6f2ba887b717674da26c21f3d57f3fc",
      "tree": "fd73f58a4d5c7261994127b0c46f04e33ee26d66",
      "parents": [
        "86e6ffdd243a06663713e637ee683fb27dce8e0c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:25 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:37 2005 -0800"
      },
      "message": "[PATCH] md: add kobject/sysfs support to raid5\n\n/sys/block/mdX/md/raid5/\ncontains raid5-related attributes.\nCurrently\n  stripe_cache_size\nis number of entries in stripe cache, and is settable.\n  stripe_cache_active\nis number of active entries, and in only readable.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: 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": "86e6ffdd243a06663713e637ee683fb27dce8e0c",
      "tree": "d6bc5f26aff6b1a506ad04d8d605d92cfd19162f",
      "parents": [
        "eae1701fbd264cfc7efbaf7cd4cd999760070e27"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:24 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:37 2005 -0800"
      },
      "message": "[PATCH] md: extend md sysfs support to component devices.\n\nEach device in an md array how has a corresponding\n  /sys/block/mdX/md/devNN/\ndirectory which can contain attributes.  Currently there is only \u0027state\u0027 which\nsummarises the state, nd \u0027super\u0027 which has a copy of the superblock, and\n\u0027block\u0027 which is a symlink to the block device.\n\nAlso, /sys/block/mdX/md/rdNN represents slot \u0027NN\u0027 in the array, and is a\nsymlink to the relevant \u0027devNN\u0027.  Obviously spare devices do not have a slot\nin the array, and so don\u0027t have such a symlink.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: 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": "eae1701fbd264cfc7efbaf7cd4cd999760070e27",
      "tree": "6605cca37d4c605217b7accffe7f94f81d37f0dd",
      "parents": [
        "4e5314b56a7ea11c7a5f2b8418992b2f49648a25"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:23 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:36 2005 -0800"
      },
      "message": "[PATCH] md: initial sysfs support for md\n\nStart using kobjects in mddevs, and provide a couple of simple attributes\n(level and disks).  Attributes live in\n  /sys/block/mdX/md/attr-name\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: 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": "4e5314b56a7ea11c7a5f2b8418992b2f49648a25",
      "tree": "58b0c604f4f4e55523d2c93971f79d80e406b9ce",
      "parents": [
        "703ebe86a999861e833be4015aaf552837e9613a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 21:39:22 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:36 2005 -0800"
      },
      "message": "[PATCH] md: better handling of readerrors with raid5.\n\nThis patch changes the behaviour of raid5 when it gets a read error.\nInstead of just failing the device, it tried to find out what should have\nbeen there, and writes it over the bad block.  For some media-errors, this\nhas a reasonable chance of fixing the error.  If the write succeeds, and a\nsubsequent read succeeds as well, raid5 decided the address is OK and\nconitnues.\n\nInstead of failing a drive on read-error, we attempt to re-write the block,\nand then re-read.  If that all works, we allow the device to remain in the\narray.\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": "72626685dc66d455742a7f215a0535c551628b9e",
      "tree": "91e19a61a5a3b782007132b6b2e353e8936dd656",
      "parents": [
        "0002b2718dd04da67c21f8a7830de8d95a9b0345"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:12 2005 -0700"
      },
      "message": "[PATCH] md: add write-intent-bitmap support to raid5\n\nMost awkward part of this is delaying write requests until bitmap updates have\nbeen flushed.\n\nTo achieve this, we have a sequence number (seq_flush) which is incremented\neach time the raid5 is unplugged.\n\nIf the raid thread notices that this has changed, it flushes bitmap changes,\nand assigned the value of seq_flush to seq_write.\n\nWhen a write request arrives, it is given the number from seq_write, and that\nwrite request may not complete until seq_flush is larger than the saved seq\nnumber.\n\nWe have a new queue for storing stripes which are waiting for a bitmap flush\nand an extra flag for stripes to record if the write was \u0027degraded\u0027 and so\nshould not clear the a bit in the bitmap.\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": "0002b2718dd04da67c21f8a7830de8d95a9b0345",
      "tree": "c84f916df71293e0e15643a8a07d9508d1404395",
      "parents": [
        "773f7834425e83144c95fbbc553ced3c2b74b828"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:12 2005 -0700"
      },
      "message": "[PATCH] md: limit size of sb read/written to appropriate amount\n\nversion-1 superblocks are not (normally) 4K long, and can be of variable size.\n Writing the full 4K can cause corruption (but only in non-default\nconfigurations).\n\nWith this patch the super-block-flavour can choose a size to read, and set a\nsize to write based on what it finds.\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": "773f7834425e83144c95fbbc553ced3c2b74b828",
      "tree": "0552618b3a63395e2a69c69f177c7bdef92576a9",
      "parents": [
        "ab904d634625ef8dc590240b7ee06c7b724e636b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:12 2005 -0700"
      },
      "message": "[PATCH] md: remove old cruft from md_k.h header file\n\nThese inlines haven\u0027t been used for ages, they should go.\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": "71c0805cb48462c99fbe0e5fcc6c12d7b9929c09",
      "tree": "a6234c60b036ba05807bf649ffa7cf56eda13574",
      "parents": [
        "7b1e35f6d666693e8f376ce02242efca3ec09aaf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:11 2005 -0700"
      },
      "message": "[PATCH] md: allow md to load a superblock with feature-bit \u00271\u0027 set\n\nAs this is used to flag an internal bitmap.\n\nAlso, introduce symbolic names for feature bits.\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": "15945fee6f09bff1f86b1a735b5888dc59cf38e3",
      "tree": "ed2f66ceccfa30867035e7ba7be46159e97e4e4d",
      "parents": [
        "4b6d287f627b5fb6a49f78f9e81649ff98c62bb7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:10 2005 -0700"
      },
      "message": "[PATCH] md: support md/linear array with components greater than 2 terabytes.\n\nlinear currently uses division by the size of the smallest componenet device\nto find which device a request goes to.  If that smallest device is larger\nthan 2 terabytes, then the division will not work on some systems.\n\nSo we introduce a pre-shift, and take care not to make the hash table too\nlarge, much like the code in raid0.\n\nAlso get rid of conf-\u003enr_zones, which is not needed.\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": "4b6d287f627b5fb6a49f78f9e81649ff98c62bb7",
      "tree": "7b6cbc6a997e25a7fb6185da7129e539c4ffda8b",
      "parents": [
        "8ddf9efe6708f3674f0ddfeb6425fd27bea109a2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:10 2005 -0700"
      },
      "message": "[PATCH] md: add write-behind support for md/raid1\n\nIf a device is flagged \u0027WriteMostly\u0027 and the array has a bitmap, and the\nbitmap superblock indicates that write_behind is allowed, then write_behind is\nenabled for WriteMostly devices.\n\nWrite requests will be acknowledges as complete to the caller (via b_end_io)\nwhen all non-WriteMostly devices have completed the write, but will not be\ncleared from the bitmap until all devices complete.\n\nThis requires memory allocation to make a local copy of the data being\nwritten.  If there is insufficient memory, then we fall-back on normal write\nsemantics.\n\nSigned-Off-By: Paul Clements \u003cpaul.clements@steeleye.com\u003e\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": "8ddf9efe6708f3674f0ddfeb6425fd27bea109a2",
      "tree": "90862c8fa9f04cf98423b3da1b2c5d1f01a7310d",
      "parents": [
        "36fa30636fb84b209210299684e1be66d9e58217"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:10 2005 -0700"
      },
      "message": "[PATCH] md: support write-mostly device in raid1\n\nThis allows a device in a raid1 to be marked as \"write mostly\".  Read requests\nwill only be sent if there is no other option.\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": "36fa30636fb84b209210299684e1be66d9e58217",
      "tree": "28a7473238932f1e7ade1a5a5ec67a113b6d6205",
      "parents": [
        "6a07997fc34ac15a1c5dc650285d79b7604a2276"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:10 2005 -0700"
      },
      "message": "[PATCH] md: all hot-add and hot-remove of md intent logging bitmaps\n\nBoth file-bitmaps and superblock bitmaps are supported.\n\nIf you add a bitmap file on the array device, you lose.\n\nThis introduces a \u0027default_bitmap_offset\u0027 field in mddev, as the ioctl used\nfor adding a superblock bitmap doesn\u0027t have room for giving an offset.  Later,\nthis value will be setable via sysfs.\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": "6b8b3e8a8b3e62b4209eaa36697e3c9df457e196",
      "tree": "8b537e5b358cbe93cd8e8ea54a9281d56a7ce205",
      "parents": [
        "e3b9703e27aab3839dcdb76b00d98428b67d25b0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Aug 04 12:53:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 04 13:00:54 2005 -0700"
      },
      "message": "[PATCH] md: make sure md bitmap updates are flushed when array is stopped.\n\nThe recent change to never ignore the bitmap, revealed that the bitmap isn\u0027t\nbegin flushed properly when an array is stopped.\n\nWe call bitmap_daemon_work three times as there is a three-stage pipeline for\nflushing updates to the bitmap file.\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": "6a806c510de490318846b53bbfec463d02ca274b",
      "tree": "7018abfd9db7856708bc2c578f48c30eab8855b1",
      "parents": [
        "a1287ba1ba810aae1f8b81e32560d5d3bf3ff9f0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Jul 15 03:56:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 15 09:54:51 2005 -0700"
      },
      "message": "[PATCH] md/raid1: clear bitmap when fullsync completes\n\nWe need to be careful differentiating between a resync of a complete array,\nin which we can clear the bitmap, and a resync of a degraded array, in\nwhich we cannot.\n\nThis patch cleans all that up.\n\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\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": "39730960d94306d7be414e8d54f4e5c071af1278",
      "tree": "e12516ecea53d782f845717f53ffa304be69aa37",
      "parents": [
        "7bfa19f2748000d646dbdf8f48258cfe1d257b52"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:47 2005 -0700"
      },
      "message": "[PATCH] Two small fixes for md verion-1 superblocks.\n\n1/ Must typecast int to (sector_t) before inverting or we\n might not invert enough bits.\n\n2/ When \"bitmap_offset\" was added to mdp_superblock_1, we didn\u0027t increase\n   the count of words-used (96 to 100).\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": "7bfa19f2748000d646dbdf8f48258cfe1d257b52",
      "tree": "2f7e6b0a0cba4ac01d7809224023a7dc73b94840",
      "parents": [
        "a654b9d8f851f4ca02649d5825cbe6c608adb10c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:47 2005 -0700"
      },
      "message": "[PATCH] md: allow md to update multiple superblocks in parallel.\n\ncurrently, md updates all superblocks (one on each device) in series.  It\nwaits for one write to complete before starting the next.  This isn\u0027t a big\nproblem as superblock updates don\u0027t happen that often.\n\nHowever it is neater to do it in parallel, and if the drives in the array have\ngone to \"sleep\" after a period of idleness, then waking them is parallel is\nfaster (and someone else should be worrying about power drain).\n\nFuther, we will need parallel superblock updates for a future patch which\nkeeps the intent-logging bitmap near the superblock.\n\nAlso remove the silly code that retired superblock updates 100 times.  This\nsimply never made sense.\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": "a654b9d8f851f4ca02649d5825cbe6c608adb10c",
      "tree": "747301647f619a9f1dd48f4d6be96b5e35d2484c",
      "parents": [
        "3d310eb7b3df1252e8595d059d982b0a9825a137"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:47 2005 -0700"
      },
      "message": "[PATCH] md: allow md intent bitmap to be stored near the superblock.\n\nThis provides an alternate to storing the bitmap in a separate file.  The\nbitmap can be stored at a given offset from the superblock.  Obviously the\ncreator of the array must make sure this doesn\u0027t intersect with data....\nAfter is good for version-0.90 superblocks.\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": "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": "41158c7eb22312cfaa256744e1553bb4042ff085",
      "tree": "21c28e0630d66fc32d758993299a78088a846562",
      "parents": [
        "289e99e8ed8f36e386bf7de49947311c17ae1482"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:46 2005 -0700"
      },
      "message": "[PATCH] md: optimise reconstruction when re-adding a recently failed drive.\n\nWhen an array is degraded, bit in the intent-bitmap are never cleared.  So if\na recently failed drive is re-added, we only need to reconstruct the block\nthat are still reflected in the bitmap.\n\nThis patch adds support for this re-adding.\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": "191ea9b2c7cc3ebbe0678834ab710d7d95ad3f9a",
      "tree": "25ccd0d191742f4e25f37784370520d254aacc12",
      "parents": [
        "aa3163f81654fa057039258e32a6811147bf0c14"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:46 2005 -0700"
      },
      "message": "[PATCH] md: raid1 support for bitmap intent logging\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": "77ad4bc706fe6c52ab953f31c287a6af712d080c",
      "tree": "6823261d0e111a93c5190ebb1f2ecd8c4905a559",
      "parents": [
        "bfb39fba4e8cdda091f9ebee29fbb8331c4bb605"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Tue Jun 21 17:17:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:45 2005 -0700"
      },
      "message": "[PATCH] md: enable the bitmap write-back daemon and wait for it.\n\nCurrently we don\u0027t wait for updates to the bitmap to be flushed to disk\nproperly.  The infrastructure all there, but it isn\u0027t being used....\n\nA separate kernel thread (bitmap_writeback_daemon) is needed to wait for each\npage as we cannot get callbacks when a page write completes.\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"
    }
  ],
  "next": "32a7627cf3a35396a8e834faf34e38ae9f3b1309"
}
