)]}'
{
  "log": [
    {
      "commit": "644bd2f048972d75eb1979b1fdca257d528ce687",
      "tree": "1a6c067c285ba8497e433f8545c550dc4ffc7135",
      "parents": [
        "3eed13fd933dbb81db12f7cdec6de9268c4443b5"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 16 13:48:46 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 13:48:46 2007 +0200"
      },
      "message": "Fix memory leak in dm-crypt\n\ndm-crypt used the -\u003ebi_size member in the bio endio handling to\nfree the appropriate pages, but it frees all of it from both call\npaths. With the -\u003ebi_end_io() changes, -\u003ebi_size was always 0 since\nwe don\u0027t do partial completes. This caused dm-crypt to leak memory.\n\nFix this by removing the size argument from crypt_free_buffer_pages().\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fd5d806266935179deda1502101624832eacd01f",
      "tree": "b0d01c2ed7d754f2a6daef6c77d108a81d8a470e",
      "parents": [
        "bf2de6f5a4faf0197268f18d08969b003b87b6e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:05:02 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:05:02 2007 +0200"
      },
      "message": "block: convert blkdev_issue_flush() to use empty barriers\n\nThen we can get rid of -\u003eissue_flush_fn() and all the driver private\nimplementations of that.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0dddfd46f07db880df7d99e6ebe8baca11591f29",
      "tree": "1be11024fd1f9ce11359aee50611fc4eac468bc6",
      "parents": [
        "e92042e5c009d84ba741ec4a978a13f260e6ee24"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sat Oct 13 14:31:28 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Oct 13 09:41:03 2007 -0700"
      },
      "message": "dm: emc_endio returns void\n\nemc_endio returns void:\n  linux/drivers/md/dm-emc.c: In function \u0027emc_endio\u0027:\n  linux/drivers/md/dm-emc.c:58: warning: \u0027return\u0027 with a value, in function returning void\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19c38de88a80913351fcacefdb461cc0b585fa87",
      "tree": "17d2978ce27861926a0d9a3eb49471b9b736f968",
      "parents": [
        "5901d0145c6b9e791bacd049eea11c9db9a3006e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 12 15:06:57 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:02 2007 -0700"
      },
      "message": "kobjects: fix up improper use of the kobject name field\n\nA number of different drivers incorrect access the kobject name field\ndirectly.  This is not correct as the name might not be in the array.\nUse the proper accessor function instead.\n\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "66846572bfb4ec62bcba260028cbbcbdb77bd636",
      "tree": "23a29655a22835a49bd1549524fc3b950a5bf261",
      "parents": [
        "3001ca77128273cc5634d79f5306ce2e5a14ec41"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 16 13:31:28 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:56 2007 +0200"
      },
      "message": "Stop exporting blk_rq_bio_prep\n\nblk_rq_bio_prep is exported for use in exactly\none place.  That place can benefit from using\nthe new blk_rq_append_bio instead.\nSo\n  - change dm-emc to call blk_rq_append_bio\n  - stop exporting blk_rq_bio_prep, and\n  - initialise rq_disk in blk_rq_bio_prep,\n       as dm-emc needs it.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\n\ndiff .prev/block/ll_rw_blk.c ./block/ll_rw_blk.c\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e4d84909dd48b5e5806a5d18b881e1ca1610ba9b",
      "tree": "85aa712ebc034a31b9a2a5db2f0e7ce4951cb440",
      "parents": [
        "6247cdc2cd334dad0ea5428245a7d8f4b075f21e"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Sep 24 10:06:13 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Sep 24 13:23:35 2007 -0700"
      },
      "message": "raid5: fix 2 bugs in ops_complete_biofill\n\n1/ ops_complete_biofill tried to avoid calling handle_stripe since all the\nstate necessary to return read completions is available.  However the\nprocess of determining whether more read requests are pending requires\nlocking the stripe (to block add_stripe_bio from updating dev-\u003etoead).\nops_complete_biofill can run in tasklet context, so rather than upgrading\nall the stripe locks from spin_lock to spin_lock_bh this patch just\nunconditionally reschedules handle_stripe after completing the read\nrequest.\n\n2/ ops_complete_biofill needlessly qualified processing R5_Wantfill with\ndev-\u003etoread.  The result being that the \u0027biofill\u0027 pending bit is cleared\nbefore handling the pending read-completions on dev-\u003eread.  R5_Wantfill can\nbe unconditionally handled because the \u0027biofill\u0027 pending bit prevents new\nR5_Wantfill requests from being seen by ops_run_biofill and\nops_complete_biofill.\n\nFound-by: Yuri Tikhonov \u003cyur@emcraft.com\u003e\n[neilb@suse.de: simpler fix for bug 1 than moving code]\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "2123a09f3f129f4d56f59026ec63e5990f86db2f",
      "tree": "ef604958225e18f1ab75e4599c1e12481e169ca6",
      "parents": [
        "dd941252a81b02b5915e2db160fe02c972875846"
      ],
      "author": {
        "name": "aherrman@arcor.de",
        "email": "aherrman@arcor.de",
        "time": "Fri Sep 14 01:28:56 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Sep 14 13:56:47 2007 -0700"
      },
      "message": "Fix kernel buuild with (CONFIG_COMPAT \u0026\u0026 ! CONFIG_BLOCK)\n\nCommit 02a5e0acb3cb85d80d0fe834e366d38a92bbaa22 (\"BLOCK: Hide the\ncontents of linux/bio.h if CONFIG_BLOCK\u003dn\") broke the kernel build for\nthe CONFIG_COMPAT \u0026\u0026 !CONFIG_BLOCK case:\n\n    CC      fs/compat_ioctl.o\n  In file included from include/linux/raid/md_k.h:19,\n                   from include/linux/raid/md.h:54,\n                   from fs/compat_ioctl.c:25:\n  include/linux/raid/../../../drivers/md/dm-bio-list.h: In bio_list_:\n  include/linux/raid/../../../drivers/md/dm-bio-list.h:40: error: dereferencing pointer to incomplete type\n  include/linux/raid/../../../drivers/md/dm-bio-list.h: In bio_list_:\n  include/linux/raid/../../../drivers/md/dm-bio-list.h:48: error: dereferencing pointer to incomplete type\n  include/linux/raid/../../../drivers/md/dm-bio-list.h:51: error: dereferencing pointer to incomplete type\n  include/linux/raid/../../../drivers/md/dm-bio-list.h: In bio_list_:\n  include/linux/raid/../../../drivers/md/dm-bio-list.h:64: error: dereferencing pointer to incomplete type\n  include/linux/raid/../../../drivers/md/dm-bio-list.h: In bio_list_merge_:\n  include/linux/raid/../../../drivers/md/dm-bio-list.h:78: error: dereferencing pointer to incomplete type\n  include/linux/raid/../../../drivers/md/dm-bio-list.h: In bio_list_:\n  include/linux/raid/../../../drivers/md/dm-bio-list.h:90: error: dereferencing pointer to incomplete type\n  include/linux/raid/../../../drivers/md/dm-bio-list.h:94: error: dereferencing pointer to incomplete type\n  make[1]: *** [fs/compat_ioctl.o] Error 1\n  make: *** [fs] Error 2\n\nSigned-off-by: Andreas Herrmann \u003caherrman@arcor.de\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2e0855182e2be26b252745b2bb7558705cb0dd2",
      "tree": "d7a1457b1785cff5c018b37587ce2dbef159e83d",
      "parents": [
        "b70ae1d9f69ba52767af89f90fd79587669bc7ff"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Sep 11 15:23:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Sep 11 17:21:19 2007 -0700"
      },
      "message": "md: fix some bugs with growing raid5/raid6 arrays.\n\nThe recent changed to raid5 to allow offload of parity calculation etc\nintroduced some bugs in the code for growing (i.e.  adding a disk to) raid5\nand raid6.  This fixes them\n\nAcked-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f99ba18a96195f047546bd515aabf81fda70ef09",
      "tree": "2bb958ff686c32d5ffc58576f84d6a80f295ed51",
      "parents": [
        "5a99efeaa5c7139b7d76cbd5fb54fac664ba3da9"
      ],
      "author": {
        "name": "Andrew Vasquez",
        "email": "andrew.vasquez@qlogic.com",
        "time": "Mon Aug 27 15:25:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Aug 27 16:15:44 2007 -0700"
      },
      "message": "dm-mpath-rdac: don\u0027t stomp on a requests transfer bit\n\nWithout this, we get qla2xxx complaining about \"ISP System Error\".\n\nWhat\u0027s happening here is the firmware is detecting a Xfer-ready from the\nstorage when in fact the data-direction for a mode-select should be a\nwrite (DATA_OUT).\n\nThe following patch fixes the problem (typo). Verified by Brian, as\nwell.\n\nSigned-off-by: Andrew Vasquez \u003candrew.vasquez@qlogic.com\u003e\nVerified-by: Brian De Wolf \u003cbldewolf@csupomona.edu\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e106b0d97e79f1abb60cc49a53af760950c3384",
      "tree": "1a5af89d408ef7bab2360259494fd590f01cf81c",
      "parents": [
        "1a8f46100b657f533ce677e79bc27c6794c91c46"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Aug 24 15:35:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Aug 24 16:10:39 2007 -0700"
      },
      "message": "DM_MULTIPATH_RDAC: \"scsi_normalize_sense\" undefined\n\nDM_MULTIPATH_RDAC uses SCSI API(s) and is for a SCSI device,\nso add SCSI to its depends on to prevent build errors.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n[ Tested and Verified by Chandra Seetharaman ]\nAcked-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a88aa7865bc1d1d451af2d585ac0119164ce8e00",
      "tree": "2ecde2e24540c611f8930bbee94e1e428038f3a1",
      "parents": [
        "918f02383fb9ff5dba29709f3199189eeac55021"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Aug 22 14:01:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:46 2007 -0700"
      },
      "message": "md: correctly update sysfs when a raid1 is reshaped\n\nWhen a raid1 array is reshaped (number of drives changed), the list of devices\nis compacted, so that slots for missing devices are filled with working\ndevices from later slots.  This requires the \"rd%d\" symlinks in sysfs to be\nupdated.\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": "918f02383fb9ff5dba29709f3199189eeac55021",
      "tree": "26a3b5edb812ba02ecf8020d6734d8d6a2f8080c",
      "parents": [
        "59d9445e851976d973a5a4009f80a3d55959d231"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Aug 22 14:01:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:46 2007 -0700"
      },
      "message": "md: make sure a re-add after a restart honours bitmap when resyncing\n\nCommit 1757128438d41670ded8bc3bc735325cc07dc8f9 was slightly bad.  If an array\nhas a write-intent bitmap, and you remove a drive, then readd it, only the\nchanged parts should be resynced.  However after the above commit, this only\nworks if the array has not been shut down and restarted.\n\nThis is because it sets \u0027fullsync\u0027 at little more often than it should.  This\npatch is more careful.\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": "c7149d6bce2561aeaa48caaa1700aa8b3b22008f",
      "tree": "cfaeda02f5bb62ccf290369b5bd3a5d3f3801cf9",
      "parents": [
        "ec05b297f91a443aa26b74059b573bfad49c9ebb"
      ],
      "author": {
        "name": "Alan D. Brunelle",
        "email": "Alan.Brunelle@hp.com",
        "time": "Tue Aug 07 15:30:23 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Aug 11 22:34:48 2007 +0200"
      },
      "message": "Fix remap handling by blktrace\n\nThis patch provides more information concerning REMAP operations on block\nIOs. The additional information provides clearer details at the user level,\nand supports post-processing analysis in btt.\n\no  Adds in partition remaps on the same device.\no  Fixed up the remap information in DM to be in the right order\no  Sent up mapped-from and mapped-to device information\n\nSigned-off-by: Alan D. Brunelle \u003calan.brunelle@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f6f953aa99d456aff44ffdb1c77061d1a010eae2",
      "tree": "9a708f373c8d1d8c94c1494e25add4a08b6ce782",
      "parents": [
        "14e713446aaca97dbe590fe845f7dcbd74ddbee2"
      ],
      "author": {
        "name": "Arne Redlich",
        "email": "agr@powerkom-dd.de",
        "time": "Tue Jul 31 00:37:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:38 2007 -0700"
      },
      "message": "md: handle writes to broken raid10 arrays gracefully\n\nWhen writing to a broken array, raid10 currently happily emits empty bio\nlists.  IOW, the master bio will never be completed, sending writers to\nUNINTERRUPTIBLE_SLEEP forever.\n\nSigned-off-by: Arne Redlich \u003cagr@powerkom-dd.de\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14e713446aaca97dbe590fe845f7dcbd74ddbee2",
      "tree": "530c21e7a5c7fa890193765f235dd9360fc54eed",
      "parents": [
        "bfe0d6867e36f46836d2c3755fa8b9ef8cf143ba"
      ],
      "author": {
        "name": "Maik Hampel",
        "email": "m.hampel@gmx.de",
        "time": "Tue Jul 31 00:37:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:38 2007 -0700"
      },
      "message": "md: raid10: fix use-after-free of bio\n\nIn case of read errors raid10d tries to print a nice error message,\nunfortunately using data from an already put bio.\n\nSigned-off-by: Maik Hampel \u003cm.hampel@gmx.de\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "165125e1e480f9510a5ffcfbfee4e3ee38c05f23",
      "tree": "8009c8a5ff09e26dc2418d42f66ecafb055c52a2",
      "parents": [
        "f695baf2df9e0413d3521661070103711545207a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "message": "[BLOCK] Get rid of request_queue_t typedef\n\nSome of the code has been gradually transitioned to using the proper\nstruct request_queue, but there\u0027s lots left. So do a full sweet of\nthe kernel and get rid of this typedef and replace its uses with\nthe proper type.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "80b16c192e469541263d6bfd9177662ceb632ecc",
      "tree": "c6e8a0abc281eac6e8139b38c4152dc366693f13",
      "parents": [
        "d3fec424b23c47686efcf3f2004c3f1c1cee4d9c"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Sat Jul 21 04:37:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 17:49:14 2007 -0700"
      },
      "message": "dm io: fix panic on large request\n\nFlush workqueue before releasing bioset and mopools in dm-crypt.  There can\nbe finished but not yet released request.\n\nCall chain causing oops:\n  run workqueue\n    dec_pending\n      bio_endio(...);\n      \t\u003cremove device request - remove mempool\u003e\n      mempool_free(io, cc-\u003eio_pool);\n\nThis usually happens when cryptsetup create temporary\nluks mapping in the beggining of crypt device activation.\n\nWhen dm-core calls destructor crypt_dtr, no new request\nare possible.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Christophe Saout \u003cchristophe@saout.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": "eb0645a8b1f14da300f40bb9f424640cd1181fbf",
      "tree": "462789626fcd1775bec80d74d19bcd68797589c8",
      "parents": [
        "7c6129c68fe90a61166800b40217a850b8faee98"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 20 00:31:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 20 08:44:19 2007 -0700"
      },
      "message": "async_tx: fix kmap_atomic usage in async_memcpy\n\nAndrew Morton:\n\t[async_memcpy] is very wrong if both ASYNC_TX_KMAP_DST and\n\tASYNC_TX_KMAP_SRC can ever be set.  We\u0027ll end up using the same kmap\n\tslot for both src add dest and we get either corrupted data or a BUG.\n\nEvgeniy Polyakov:\n\tBtw, shouldn\u0027t it always be kmap_atomic() even if flag is not set.\n\tThat pages are usual one returned by alloc_page().\n\nSo fix the usage of kmap_atomic and kill the ASYNC_TX_KMAP_DST and\nASYNC_TX_KMAP_SRC flags.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "dd00cc486ab1c17049a535413d1751ef3482141c",
      "tree": "d90ff69ea06792b9284f2f2665c96624f121b88a",
      "parents": [
        "3b5ad0797c0e4049001f961a8b58f1d0ce532072"
      ],
      "author": {
        "name": "Yoann Padioleau",
        "email": "padator@wanadoo.fr",
        "time": "Thu Jul 19 01:49:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:50 2007 -0700"
      },
      "message": "some kmalloc/memset -\u003ekzalloc (tree wide)\n\nTransform some calls to kmalloc/memset to a single kzalloc (or kcalloc).\n\nHere is a short excerpt of the semantic patch performing\nthis transformation:\n\n@@\ntype T2;\nexpression x;\nidentifier f,fld;\nexpression E;\nexpression E1,E2;\nexpression e1,e2,e3,y;\nstatement S;\n@@\n\n x \u003d\n- kmalloc\n+ kzalloc\n  (E1,E2)\n  ...  when !\u003d \\(x-\u003efld\u003dE;\\|y\u003df(...,x,...);\\|f(...,x,...);\\|x\u003dE;\\|while(...) S\\|for(e1;e2;e3) S\\)\n- memset((T2)x,0,E1);\n\n@@\nexpression E1,E2,E3;\n@@\n\n- kzalloc(E1 * E2,E3)\n+ kcalloc(E1,E2,E3)\n\n[akpm@linux-foundation.org: get kcalloc args the right way around]\nSigned-off-by: Yoann Padioleau \u003cpadator@wanadoo.fr\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nAcked-by: Pierre Ossman \u003cdrzeus-list@drzeus.cx\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "851a8a7fd451db3dcd5d44d784083f0f66b24d57",
      "tree": "0d9e96cd7d3edecb05487366b8b1c8d363920516",
      "parents": [
        "cb32da0416b823b7f4b65e7e85d6cba16ca4d1e1"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Wed Jul 18 00:49:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 08:38:22 2007 -0700"
      },
      "message": "dm: fix memory leak in dm_create_persistent() when starting metadata update thread fails\n\nIf, in dm_create_persistent(), the call to create_singlethread_workqueue()\nfails then we\u0027ll return without freeing the memory allocated to \u0027ps\u0027, thus\nleaking sizeof(struct pstore) bytes.  This patch fixes the leak.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "f0d76d70bc77b9b11256a3a23e98e80878be1578",
      "tree": "abf9e37302ce587c8c62e430aaf9f004548e653c",
      "parents": [
        "713f6ab18b0e7d39f14401362bfe8015b1aedde1"
      ],
      "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: check that internal bitmap does not overlap other data\n\nWe current completely trust user-space to set up metadata describing an\nconsistant array.  In particlar, that the metadata, data, and bitmap do not\noverlap.\n\nBut userspace can be buggy, and it is better to report an error than corrupt\ndata.  So put in some appropriate checks.\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": "df968c4e8d809deb2602fb0e8db758f26a4006b9",
      "tree": "e963a47e8d66fdbdcd83ff629b08d989e64d418a",
      "parents": [
        "afd44034acdb54972923bb327bc9f984663ee78b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 17 04:06:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:15 2007 -0700"
      },
      "message": "md: improve message about invalid superblock during autodetect\n\nPeople try to use raid auto-detect with version-1 superblocks (which is not\nsupported) and get confused when they are told they have an invalid\nsuperblock.\n\nSo be more explicit, and say it it is not a valid v0.90 superblock.\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": "afd44034acdb54972923bb327bc9f984663ee78b",
      "tree": "489c46c92f66c0aeccd4b4785fc94be49d485a9b",
      "parents": [
        "0c4a59fed41bdd4c30ce0999a87f30a812f29ee2"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Tue Jul 17 04:06:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:15 2007 -0700"
      },
      "message": "Use menuconfig objects II - MD\n\nChange Kconfig objects from \"menu, config\" into \"menuconfig\" so\nthat the user can disable the whole feature without having to\nenter the menu first.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nAcked-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": "00d59405cf6d7ef8932394ab5a12da1a50ce581e",
      "tree": "ccd0c170b673a17792207b2b5816978bb27da436",
      "parents": [
        "294462a5c6c4fb9a6ced9cb5a368ff335f1b656e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 17 04:03:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:03 2007 -0700"
      },
      "message": "unregister_blkdev() delete redundant messages in callers\n\nNo need to warn unregister_blkdev() failure by the callers.  (The previous\npatch makes unregister_blkdev() print error message in error case)\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "831441862956fffa17b9801db37e6ea1650b0f69",
      "tree": "b0334921341f8f1734bdd3243de76d676329d21c",
      "parents": [
        "787d2214c19bcc9b6ac48af0ce098277a801eded"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 17 04:03:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "Freezer: make kernel threads nonfreezable by default\n\nCurrently, the freezer treats all tasks as freezable, except for the kernel\nthreads that explicitly set the PF_NOFREEZE flag for themselves.  This\napproach is problematic, since it requires every kernel thread to either\nset PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn\u0027t\ncare for the freezing of tasks at all.\n\nIt seems better to only require the kernel threads that want to or need to\nbe frozen to use some freezer-related code and to remove any\nfreezer-related code from the other (nonfreezable) kernel threads, which is\ndone in this patch.\n\nThe patch causes all kernel threads to be nonfreezable by default (ie.  to\nhave PF_NOFREEZE set by default) and introduces the set_freezable()\nfunction that should be called by the freezable kernel threads in order to\nunset PF_NOFREEZE.  It also makes all of the currently freezable kernel\nthreads call set_freezable(), so it shouldn\u0027t cause any (intentional)\nchange of behaviour to appear.  Additionally, it updates documentation to\ndescribe the freezing of tasks more accurately.\n\n[akpm@linux-foundation.org: build fixes]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e030dbf91a87da7e8be3be3ca781558695bea683",
      "tree": "4ff2e01621a888be4098ca48c404775e56a55a0d",
      "parents": [
        "12a22960549979c10a95cc97f8ec63b461c55692",
        "3039f0735a280b54c7364fbfe6a9287f7f0b510a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:52:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 13 10:52:27 2007 -0700"
      },
      "message": "Merge branch \u0027ioat-md-accel-for-linus\u0027 of git://lost.foo-projects.org/~dwillia2/git/iop\n\n* \u0027ioat-md-accel-for-linus\u0027 of git://lost.foo-projects.org/~dwillia2/git/iop: (28 commits)\n  ioatdma: add the unisys \"i/oat\" pci vendor/device id\n  ARM: Add drivers/dma to arch/arm/Kconfig\n  iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver\n  iop13xx: surface the iop13xx adma units to the iop-adma driver\n  dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines\n  md: remove raid5 compute_block and compute_parity5\n  md: handle_stripe5 - request io processing in raid5_run_ops\n  md: handle_stripe5 - add request/completion logic for async expand ops\n  md: handle_stripe5 - add request/completion logic for async read ops\n  md: handle_stripe5 - add request/completion logic for async check ops\n  md: handle_stripe5 - add request/completion logic for async compute ops\n  md: handle_stripe5 - add request/completion logic for async write ops\n  md: common infrastructure for running operations with raid5_run_ops\n  md: raid5_run_ops - run stripe operations outside sh-\u003elock\n  raid5: replace custom debug PRINTKs with standard pr_debug\n  raid5: refactor handle_stripe5 and handle_stripe6 (v3)\n  async_tx: add the async_tx api\n  xor: make \u0027xor_blocks\u0027 a library routine for use with async_tx\n  dmaengine: make clients responsible for managing channels\n  dmaengine: refactor dmaengine around dma_async_tx_descriptor\n  ...\n"
    },
    {
      "commit": "f6dff381af01006ffae3c23cd2e07e30584de0ec",
      "tree": "257502c7a1a1392ffa91687d10331b08e21d2012",
      "parents": [
        "830ea01673a397798d1281d2022615559f5001bb"
      ],
      "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:18 2007 -0700"
      },
      "message": "md: remove raid5 compute_block and compute_parity5\n\nreplaced by raid5_run_ops\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "830ea01673a397798d1281d2022615559f5001bb",
      "tree": "33413032374605648a1e47f059b93ffc39e33717",
      "parents": [
        "f0a50d3754c7f1b7f05f45b1c0b35d20445316b5"
      ],
      "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 - request io processing in raid5_run_ops\n\nI/O submission requests were already handled outside of the stripe lock in\nhandle_stripe.  Now that handle_stripe is only tasked with finding work,\nthis logic belongs in raid5_run_ops.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f0a50d3754c7f1b7f05f45b1c0b35d20445316b5",
      "tree": "c54b572ad4c4c9b48f887a9ecc28ec7b6166d552",
      "parents": [
        "b5e98d65d34a1c11a2135ea8a9b2619dbc7216c8"
      ],
      "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 expand ops\n\nWhen a stripe is being expanded bulk copying takes place to move the data\nfrom the old stripe to the new.  Since raid5_run_ops only operates on one\nstripe at a time these bulk copies are handled in-line under the stripe\nlock.  In the dma offload case we poll for the completion of the operation.\n\nAfter the data has been copied into the new stripe the parity needs to be\nrecalculated across the new disks.  We reuse the existing postxor\nfunctionality to carry out this calculation.  By setting STRIPE_OP_POSTXOR\nwithout setting STRIPE_OP_BIODRAIN the completion path in handle stripe\ncan differentiate expand operations from normal write operations.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\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": "e89f89629b5de76e504d1be75c82c4a6b2419583",
      "tree": "96f54c576f51207e4f4a75f4770e9cf2707fc948",
      "parents": [
        "f38e12199a94ca458e4f03c5a2c984fb80adadc5"
      ],
      "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 check ops\n\nCheck operations are scheduled when the array is being resynced or an\nexplicit \u0027check/repair\u0027 command was sent to the array.  Previously check\noperations would destroy the parity block in the cache such that even if\nparity turned out to be correct the parity block would be marked\n!R5_UPTODATE at the completion of the check.  When the operation can be\ncarried out by a dma engine the assumption is that it can check parity as a\nread-only operation.  If raid5_run_ops notices that the check was handled\nby hardware it will preserve the R5_UPTODATE status of the parity disk.\n\nWhen a check operation determines that the parity needs to be repaired we\nreuse the existing compute block infrastructure to carry out the operation.\nRepair operations imply an immediate write back of the data, so to\ndifferentiate a repair from a normal compute operation the\nSTRIPE_OP_MOD_REPAIR_PD flag is added.\n\nChangelog:\n* remove test_and_set/test_and_clear BUG_ONs, Neil Brown\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": "e33129d84130459dbb764a1a52a4bfceab3da978",
      "tree": "c3f2742dac468a1c62e14ec1f2ec0cb5a37ee966",
      "parents": [
        "d84e0f10d38393f617227f0c831a99c69294651f"
      ],
      "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:16 2007 -0700"
      },
      "message": "md: handle_stripe5 - add request/completion logic for async write ops\n\nAfter handle_stripe5 decides whether it wants to perform a\nread-modify-write, or a reconstruct write it calls\nhandle_write_operations5.  A read-modify-write operation will perform an\nxor subtraction of the blocks marked with the R5_Wantprexor flag, copy the\nnew data into the stripe (biodrain) and perform a postxor operation across\nall up-to-date blocks to generate the new parity.  A reconstruct write is run\nwhen all blocks are already up-to-date in the cache so all that is needed\nis a biodrain and postxor.\n\nOn the completion path STRIPE_OP_PREXOR will be set if the operation was a\nread-modify-write.  The STRIPE_OP_BIODRAIN flag is used in the completion\npath to differentiate write-initiated postxor operations versus\nexpansion-initiated postxor operations.  Completion of a write triggers i/o\nto the drives.\n\nChangelog:\n* make the \u0027rcw\u0027 parameter to handle_write_operations5 a simple flag, Neil Brown\n* remove test_and_set/test_and_clear BUG_ONs, Neil Brown\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d84e0f10d38393f617227f0c831a99c69294651f",
      "tree": "5d0836f024f1f13ac6f1b2b2d3004244cb0fa649",
      "parents": [
        "91c00924846a0034020451c280c76baa4299f9dc"
      ],
      "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:16 2007 -0700"
      },
      "message": "md: common infrastructure for running operations with raid5_run_ops\n\nAll the handle_stripe operations that are to be transitioned to use\nraid5_run_ops need a method to coherently gather work under the stripe-lock\nand hand that work off to raid5_run_ops.  The \u0027get_stripe_work\u0027 routine\nruns under the lock to read all the bits in sh-\u003eops.pending that do not\nhave the corresponding bit set in sh-\u003eops.ack.  This modified \u0027pending\u0027\nbitmap is then passed to raid5_run_ops for processing.\n\nThe transition from \u0027ack\u0027 to \u0027completion\u0027 does not need similar protection\nas the existing release_stripe infrastructure will guarantee that\nhandle_stripe will run again after a completion bit is set, and\nhandle_stripe can tolerate a sh-\u003eops.completed bit being set while the lock\nis held.\n\nA call to async_tx_issue_pending_all() is added to raid5d to kick the\noffload engines once all pending stripe operations work has been submitted.\nThis enables batching of the submission and completion of operations.\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": "45b4233caac05da0118b608a9fc2a40a9fc580cd",
      "tree": "ebc65304c088b6f2162c5ba4e04382bd49736040",
      "parents": [
        "a445685647e825c713175d180ffc8dd54d90589b"
      ],
      "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: replace custom debug PRINTKs with standard pr_debug\n\nReplaces PRINTK with pr_debug, and kills the RAID5_DEBUG definition in\nfavor of the global DEBUG definition.  To get local debug messages just add\n\u0027#define DEBUG\u0027 to the top of the file.\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": "dd172d72addefd89795e819cc2cc3eb1b9d12a7f",
      "tree": "203edc569ff9b1393af5a33ed62f6ceae5c5a4c7",
      "parents": [
        "fc1ff9588a6d56258ff9576a31aa34f17757c666"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu Jul 12 17:30:05 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:23 2007 -0700"
      },
      "message": "dm mpath: rdac\n\nThis patch supports LSI/Engenio devices in RDAC mode. Like dm-emc\nit requires userspace support. In your multipath.conf file you must have:\n\npath_checker            rdac\nhardware_handler        \"1 rdac\"\nprio_callout\t\t\"/sbin/mpath_prio_tpc /dev/%n\"\n\nAnd you also then must have a updated multipath tools release which\nhas rdac support.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc1ff9588a6d56258ff9576a31aa34f17757c666",
      "tree": "071fe0a07269c656448dc5dbe453eaa8e6f1a24a",
      "parents": [
        "f44db678edcc6f4c2779ac43f63f0b9dfa28b724"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:29:15 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: handle log failure\n\nWhen writing to a mirror, the log must be updated first.  Failure\nto update the log could result in the log not properly reflecting\nthe state of the mirror if the machine should crash.\n\nWe change the return type of the rh_flush function to give us\nthe ability to check if a log write was successful.  If the\nlog write was unsuccessful, we fail the writes to avoid the\ncase where the log does not properly reflect the state of the\nmirror.\n\nA follow-up patch - which is dependent on the ability to\nrequeue I/O\u0027s to core device-mapper - will requeue the I/O\u0027s\nfor retry (allowing the mirror to be reconfigured.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f44db678edcc6f4c2779ac43f63f0b9dfa28b724",
      "tree": "bbd835d00ca6ed0805c5c7331ebc5dd7978d299c",
      "parents": [
        "d0d444c7d48c14d59f665887c758fde248f1cb37"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:29:04 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: handle resync failures\n\nDevice-mapper mirroring currently takes a best effort approach to\nrecovery - failures during mirror synchronization are completely ignored.\nThis means that regions are marked \u0027in-sync\u0027 and \u0027clean\u0027 and removed\nfrom the hash list.  Future reads and writes that query the region\nwill incorrectly interpret the region as in-sync.\n\nThis patch handles failures during the recovery process.  If a failure\noccurs, the region is marked as \u0027not-in-sync\u0027 (aka RH_NOSYNC) and added\nto a new list \u0027failed_recovered_regions\u0027.\n\nRegions on the \u0027failed_recovered_regions\u0027 list are not marked as \u0027clean\u0027\nupon removal from the list.  Furthermore, if the DM_RAID1_HANDLE_ERRORS\nflag is set, the region is marked as \u0027not-in-sync\u0027.  This action prevents\nany future read-balancing from choosing an invalid device because of the\n\u0027not-in-sync\u0027 status.\n\nIf \"handle_errors\" is not specified when creating a mirror (leaving the\nDM_RAID1_HANDLE_ERRORS flag unset), failures will be ignored exactly as they\nwould be without this patch.  This is to preserve backwards compatibility with\nuser-space tools, such as \u0027pvmove\u0027.  However, since future read-balancing\npolicies will rely on the correct sync status of a region, a user must choose\n\"handle_errors\" when using read-balancing.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0d444c7d48c14d59f665887c758fde248f1cb37",
      "tree": "8175cb71399e3f4048a7cf4a2859f43d2ee29852",
      "parents": [
        "07a83c47cfc00ba5f0f090ccddd3a0703be0eec9"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:28:42 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: add ratelimit logging macros\n\nAdd ratelimit extension to dm logging macros.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07a83c47cfc00ba5f0f090ccddd3a0703be0eec9",
      "tree": "a17d8028f76ba242a04f3c0678644f93cc7eee7d",
      "parents": [
        "943317efdbc295e8a28df3f5cbd549d066ee8b4a"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "shbader@de.ibm.com",
        "time": "Thu Jul 12 17:28:33 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: disable barriers\n\nThis patch causes device-mapper to reject any barrier requests.  This is done\nsince most of the targets won\u0027t handle this correctly anyway.  So until the\nsituation improves it is better to reject these requests at the first place.\nSince barrier requests won\u0027t get to the targets, the checks there can be\nremoved.\n\nCc: stable@kernel.org\nSigned-off-by: Stefan Bader \u003cshbader@de.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "943317efdbc295e8a28df3f5cbd549d066ee8b4a",
      "tree": "63eea4f14c4b3913b6755d802afb7631007a9e0e",
      "parents": [
        "0764147b111b8ca886e4f2e9c9e019106b09b657"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:28:25 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: clear region outside spinlock\n\nA clear_region function is permitted to block (in practice, rare) but gets\ncalled in rh_update_states() with a spinlock held.\n\nThe bits being marked and cleared by the above functions are used\nto update the on-disk log, but are never read directly.  We can\nperform these operations outside the spinlock since the\nbits are only changed within one thread viz.\n   - mark_region in rh_inc()\n   - clear_region in rh_update_states().\n\nSo, we grab the clean_regions list items via list_splice() within the\nspinlock and defer clear_region() until we iterate over the list for\ndeletion - similar to how the recovered_regions list is already handled.\nWe then move the flush() call down to ensure it encapsulates the changes\nwhich are done by the later calls to clear_region().\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0764147b111b8ca886e4f2e9c9e019106b09b657",
      "tree": "815c9d80c961d54c79692ebe4751318c9052ad45",
      "parents": [
        "fcac03abd325e4f7a4cc8fe05fea2793b1c8eb75"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jul 12 17:28:13 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm snapshot: permit invalid activation\n\nAllow invalid snapshots to be activated instead of failing.\n\nThis allows userspace to reinstate any given snapshot state - for\nexample after an unscheduled reboot - and clean up the invalid snapshot\nat its leisure.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcac03abd325e4f7a4cc8fe05fea2793b1c8eb75",
      "tree": "79965ed6b2b03468e629a63fca1c14f795091436",
      "parents": [
        "596f138eede0c113aa655937c8be85fc15ccd61c"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jul 12 17:28:00 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm snapshot: fix invalidation deadlock\n\nProcess persistent exception store metadata IOs in a separate thread.\n\nA snapshot may become invalid while inside generic_make_request().\nA synchronous write is then needed to update the metadata while still\ninside that function.  Since the introduction of\nmd-dm-reduce-stack-usage-with-stacked-block-devices.patch this has to\nbe performed by a separate thread to avoid deadlock.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "596f138eede0c113aa655937c8be85fc15ccd61c",
      "tree": "efd4e3d67b759b84bb1e72f9d50897d275085f7c",
      "parents": [
        "c95bc206da4bc9838bad826883f8f461a972e441"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Thu Jul 12 17:27:45 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm io: fix panic on large request\n\nbio_alloc_bioset() will return NULL if \u0027num_vecs\u0027 is too large.\nUse bio_get_nr_vecs() to get estimation of maximum number.\n\nCc: stable@kernel.org\nSigned-off-by: \"Jun\u0027ichi Nomura\" \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c95bc206da4bc9838bad826883f8f461a972e441",
      "tree": "6a5667088ae684000b48946e61ccd17e09c4c04f",
      "parents": [
        "0cd3312434cd1f29bee6bff53bf2790d733ad2a2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jul 12 17:27:24 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: fix status\n\nFix mirror status line broken in dm-log-report-fault-status.patch:\n  - space missing between two words\n  - placeholder (\"0\") required for compatibility with a subsequent patch\n  - incorrect offset parameter\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0cd3312434cd1f29bee6bff53bf2790d733ad2a2",
      "tree": "fc833f871f1b4d320ee5ab365a3efb3e03b278db",
      "parents": [
        "ac818646d4be79123ad8dc5f1c4da8575d4960f8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:27:01 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: remove duplicate module name from error msgs\n\nRemove explicit module name from messages as the macro now includes it\nautomatically.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac818646d4be79123ad8dc5f1c4da8575d4960f8",
      "tree": "7efa3bb2f34998a0cad96fad1f355bf0c12b474b",
      "parents": [
        "028867ac28e51afc834a5931e7545c022557eded"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:26:47 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm delay: cleanup\n\nUse setup_timer().\nReplace semaphore with mutex.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "028867ac28e51afc834a5931e7545c022557eded",
      "tree": "0a268776ac68f26c86a28416b35a60ab54e3fb94",
      "parents": [
        "79e15ae424afa0a40b1a0c4478046d6ba0b71e20"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:26:32 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: use kmem_cache macro\n\nUse new KMEM_CACHE() macro and make the newly-exposed structure names more\nmeaningful.  Also remove some superfluous casts and inlines (let a modern\ncompiler be the judge).\n\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79e15ae424afa0a40b1a0c4478046d6ba0b71e20",
      "tree": "88714dc72c20057bfdafacef25c2d8bf7367c843",
      "parents": [
        "4aabab2181f20560948c2045ce1faaa9ac1507a8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:26:19 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: bio_list prefetch removal\n\nRemove dubious prefetch from bio_list_for_each() macro.\n\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed45666271f4fafa95b9d8ad44050e9a9bd2376e",
      "tree": "6f626a05e7d78029252768c2ac5f9b1d5309319b",
      "parents": [
        "af03b8e4e81c3789e597632268940edd11ffe870"
      ],
      "author": {
        "name": "Mike Accetta",
        "email": "maccetta@laurelnetworks.com",
        "time": "Sat Jun 16 10:16:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:15 2007 -0700"
      },
      "message": "md: fix bug in error handling during raid1 repair\n\nIf raid1/repair (which reads all block and fixes any differences it finds)\nhits a read error, it doesn\u0027t reset the bio for writing before writing\ncorrect data back, so the read error isn\u0027t fixed, and the device probably\ngets a zero-length write which it might complain about.\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": "af03b8e4e81c3789e597632268940edd11ffe870",
      "tree": "bf161f88b6d9dbdd484366b9640b500617db5ab3",
      "parents": [
        "edad01e2a1c527af3baf22dc6977aeb058881150"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Jun 16 10:16:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:15 2007 -0700"
      },
      "message": "md: fix two raid10 bugs\n\n1/ When resyncing a degraded raid10 which has more than 2 copies of each block,\n  garbage can get synced on top of good data.\n\n2/ We round the wrong way in part of the device size calculation, which\n  can cause confusion.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a778b73ff793d34c0082f76110f73a7754915067",
      "tree": "54bf868afb3375cfdb0d01d6ce9e5eea47395f85",
      "parents": [
        "ab6085c795a71b6a21afe7469d30a365338add7a"
      ],
      "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: fix bug with linear hot-add and elsewhere\n\nAdding a drive to a linear array seems to have stopped working, due to changes\nelsewhere in md, and insufficient ongoing testing...\n\nSo the patch to make linear hot-add work in the first place introduced a\nsubtle bug elsewhere that interracts poorly with older version of mdadm.\n\nThis fixes it all up.\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": "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": "787f17feb204ed1c6331892fb8124b80dc9fe288",
      "tree": "f4403f7ba381255e03fd1b01eccd57c57a7976e8",
      "parents": [
        "1dbf37e8adf1ab6b82a510d5e69fa676ed9717c4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 23 13:58:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:14 2007 -0700"
      },
      "message": "md: avoid overflow in raid0 calculation with large components\n\nIf a raid0 has a component device larger than 4TB, and is accessed on a 32bit\nmachines, then as \u0027chunk\u0027 is unsigned long,\n\n   chunk \u003c\u003c chunksize_bits\n\ncan overflow (this can be as high as the size of the device in KB).  chunk\nitself will not overflow (without triggering a BUG).\n\nSo change \u0027chunk\u0027 to be \u0027sector_t, and get rid of the \u0027BUG\u0027 as it becomes\nimpossible to hit.\n\nCc: \"Jeff Zheng\" \u003cJeff.Zheng@endace.com\u003e\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": "435b71be20f2ad3688acd94c05e968e029464d60",
      "tree": "fdc4b08074f148298cecd6915c6427353652b0ba",
      "parents": [
        "11fe250d89cdce3d6bb43bd674f3dcdcaa78dbc8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 10 22:23:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:37 2007 -0700"
      },
      "message": "md: improve the is_mddev_idle test\n\nDuring a \u0027resync\u0027 or similar activity, md checks if the devices in the\narray are otherwise active and winds back resync activity when they are.\nThis test in done in is_mddev_idle, and it is somewhat fragile - it\nsometimes thinks there is non-sync io when there isn\u0027t.\n\nThe test compares the total sectors of io (disk_stat_read) with the sectors\nof resync io (disk-\u003esync_io).  This has problems because total sectors gets\nupdated when a request completes, while resync io gets updated when the\nrequest is submitted.  The time difference can cause large differenced\nbetween the two which do not actually imply non-resync activity.  The test\ncurrently allows for some fuzz (+/- 4096) but there are some cases when it\nis not enough.\n\nThe test currently looks for any (non-fuzz) difference, either positive or\nnegative.  This clearly is not needed.  Any non-sync activity will cause\nthe total sectors to grow faster than the sync_io count (never slower) so\nwe only need to look for a positive differences.\n\nIf we do this then the amount of in-flight sync io will never cause the\nappearance of non-sync IO.  Once enough non-sync IO to worry about starts\nhappening, resync will be slowed down and the measurements will thus be\nmore precise (as there is less in-flight) and control of resync will still\nbe suitably responsive.\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": "dd00a99e7a4b739bd41ef4093760efc7e447f963",
      "tree": "2bb5bfafc0de89bd00ef530540e91e8297fc5d57",
      "parents": [
        "c5ddb547e899993be56dc7d0bf72bfd7a8d4ae1e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 10 03:15:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 09:26:53 2007 -0700"
      },
      "message": "md: avoid a possibility that a read error can wrongly propagate through md/raid1 to a filesystem.\n\nWhen a raid1 has only one working drive, we want read error to propagate up\nto the filesystem as there is no point failing the last drive in an array.\n\nCurrently the code perform this check is racy.  If a write and a read a\nboth submitted to a device on a 2-drive raid1, and the write fails followed\nby the read failing, the read will see that there is only one working drive\nand will pass the failure up, even though the one working drive is actually\nthe *other* one.\n\nSo, tighten up the locking.\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": "08a02ecd28bad35a47357e611044dcbeab06e3d7",
      "tree": "31050d686e58d55411f95c89204321aa2ea2b63a",
      "parents": [
        "42b9bebe3fea3d3ce381bc6735a3fb50e6613f06"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:35:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "md: allow reshape_position for md arrays to be set via sysfs\n\n\"reshape_position\" records how much progress has been made on a \"reshape\"\n(adding drives, changing layout or chunksize).\n\nWhen it is set, the number of drives, layout and chunksize can have\ntwo possible values, an old an a new.\n\nSo allow these different values to be visible, and allow both old and new to\nbe set: Set the old ones first, then the reshape_position, then the new\nvalues.\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": "42b9bebe3fea3d3ce381bc6735a3fb50e6613f06",
      "tree": "e99aec5ccb154e2f09a89a9b16f9e174b40b2863",
      "parents": [
        "4d167f09375bd6c18447d3fcc18baaf3acd15fbc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:35:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "md: remove the slash from the name of a kmem_cache used by raid5\n\nSLUB doesn\u0027t like slashes as it wants to use the cache name as the name of a\ndirectory (or symlink) in sysfs.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d167f09375bd6c18447d3fcc18baaf3acd15fbc",
      "tree": "4132b4061678bf6124c3045035c023e83aebe825",
      "parents": [
        "e11e93facc38fb264a5ff1e154ebb2f11dc5cffa"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:35:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "md: stop using csum_partial for checksum calculation in md\n\nIf CONFIG_NET is not selected, csum_partial is not exported, so md.ko cannot\nuse it.  We shouldn\u0027t really be using csum_partial anyway as it is an\ninternal-to-networking interface.\n\nSo replace it with C code to do the same thing.  Speed is not crucial here, so\nsomething simple and correct is best.\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": "e11e93facc38fb264a5ff1e154ebb2f11dc5cffa",
      "tree": "0128d05a5a3d51704f25ad4622b5dad4078d1430",
      "parents": [
        "c3f94b40e1676172dfa88abfffd8baffe7ac607c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 09 02:35:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "md: move test for whether level supports bitmap to correct place\n\nWe need to check for internal-consistency of superblock in load_super.\nvalidate_super is for inter-device consistency.\n\nWith the test in the wrong place, a badly created array will confuse md rather\nan produce sensible errors.\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": "c3f94b40e1676172dfa88abfffd8baffe7ac607c",
      "tree": "c5440bae6c2a63cefbf87ef32936b45b46dd357d",
      "parents": [
        "50511da3da4d984fb944b2e373781b60915daf65"
      ],
      "author": {
        "name": "Martin Peschke",
        "email": "mp3@de.ibm.com",
        "time": "Wed May 09 02:35:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "md: cleanup: use seq_release_private() where appropriate\n\nWe can save some lines of code by using seq_release_private().\n\nSigned-off-by: Martin Peschke \u003cmp3@de.ibm.com\u003e\nAcked-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": "50511da3da4d984fb944b2e373781b60915daf65",
      "tree": "17a3d4526fdd87ca20393cd7deef5270b5c19cf9",
      "parents": [
        "bc0ca06e24545117b69c94b1219dbe19392a0c5a"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Wed May 09 02:35:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "drivers/md.c: Use ARRAY_SIZE macro when appropriate\n\nUse ARRAY_SIZE macro already defined in kernel.h\n\nSigned-off-by: Ahmed S. Darwish \u003cdarwish.07@gmail.com\u003e\nAcked-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": "ba8b45cea5f632540d561d37d94c71c07f6af1aa",
      "tree": "03604401cd4162a16d1888b71e7d65c8cc14ec31",
      "parents": [
        "b997b82d266c9fb910fc2ad95b9bb93b3bccf9be"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm log: fix resume failed log device\n\nThis patch removes the possibility of having uninitialized log state if the\nlog device has failed.\n\nWhen a mirror resumes operation, it calls \u0027resume\u0027 on the logging module.  If\ndisk based logging is being used, the log device is read to fill in the log\nstate.  If the log device has failed, we cannot simply return, because this\nwould leave the in-memory log state uninitialized.  Instead, we assume all\nregions are out-of-sync and reset the log state.  Failure to do this could\nresult in the logging code reporting a region as in-sync, even though it\nisn\u0027t; which could result in a corrupted mirror.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b997b82d266c9fb910fc2ad95b9bb93b3bccf9be",
      "tree": "e6f9b05361b4d15d6ce3ac21f11e69f7809d1780",
      "parents": [
        "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: switch rh_in_sync to blocking in do_reads\n\nThe call to rh_in_sync() in do_reads() should be allowed to block.  It is in\nthe mirror worker thread which already permits blocking operations.  This will\nbe needed to support clustered mirroring which will perform network\noperations.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105",
      "tree": "25c3f22f87d2d6aff90768764a6aa7d7d1c45936",
      "parents": [
        "26b9f228703f0518a90e7513d6fe7b6abeed5138"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: fix to commit pending clear region requests\n\nWith the code as it is, it is possible for oustanding clear region requests\nnever to get flushed when a mirror is deactivated or suspended.  This means\nthere will always be some resync work required when a mirror is activated,\neven though it may very well be in-sync.\n\nAlways requesting the flush doesn\u0027t hurt us.  This is because the log tracks\nwhether any changes occurred and, if not, no flush is performed.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26b9f228703f0518a90e7513d6fe7b6abeed5138",
      "tree": "3437e92667c338ea46ad47b064ce4908d7d75fe2",
      "parents": [
        "0ba699347e96b5468b42b3decf1f381abbf99652"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "mauelshagen@redhat.com",
        "time": "Wed May 09 02:33:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm: delay target\n\nNew device-mapper target that can delay I/O (for testing).  Reads can be\nseparated from writes, redirected to different underlying devices and delayed\nby differing amounts of time.\n\nSigned-off-by: Heinz Mauelshagen \u003cmauelshagen@redhat.com\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ba699347e96b5468b42b3decf1f381abbf99652",
      "tree": "7ec0aeedd92ffee6c2a8ecda60e8f85106c28c04",
      "parents": [
        "bf17ce3a604d943f29bf1bc1a66a4e0d2ad4ec96"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm: bio list helpers\n\nMore bio_list helper functions for new targets (including dm-delay and\ndm-loop) to manipulate lists of bios.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Bryn Reeves \u003cbreeves@redhat.com\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf17ce3a604d943f29bf1bc1a66a4e0d2ad4ec96",
      "tree": "531058ab5ad63fb2e104bfadddbdbde080a0289b",
      "parents": [
        "88be163abb5324bab09f5eff9646590eec5314eb"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: remove old interface\n\nRemove old dm-io interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88be163abb5324bab09f5eff9646590eec5314eb",
      "tree": "0db6fc18ae4b534d78da1e9756fa13405cc96dbd",
      "parents": [
        "5d234d1e03d0a4cef4da32177be6657b45cc513f"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: update dm io interface\n\nThis patch ports dm-raid1.c to the new dm-io interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d234d1e03d0a4cef4da32177be6657b45cc513f",
      "tree": "6f1cd0cedbd2a9ad276b1a92195f00925ce517fd",
      "parents": [
        "6cca1e7af543aa396b3e4919c251080741a49e69"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "heinzm@redhat.com",
        "time": "Wed May 09 02:33:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: update dm io interface\n\nThis patch ports dm-log.c to the new dm-io interface in order to make it\nscalable to have a large number of persistent dirty logs active in parallel.\n\nSigned-off-by: Heinz Mauelshagen \u003cheinzm@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cca1e7af543aa396b3e4919c251080741a49e69",
      "tree": "640d743a15c99510cd0b64138f33f465c5c978b9",
      "parents": [
        "373a392bd76c4cc2cbbdab3906aee2ae4dc6702e"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm exception store: update dm io interface\n\nThis patch ports dm-exception-store.c to the new, scalable dm_io() interface.\n\nIt replaces dm_io_get()/dm_io_put() by\ndm_io_client_create()/dm_io_client_destroy() calls and\ndm_io_sync_vm() by dm_io() to achive this.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "373a392bd76c4cc2cbbdab3906aee2ae4dc6702e",
      "tree": "5adf4bf86e25abe107e0623dc3257a0e46b74670",
      "parents": [
        "c8b03afe3d38a635861e4bfa5c563d844e754a91"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm kcopyd: update dm io interface\n\nThis patch ports kcopyd.c to the new, scalable dm_io() interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8b03afe3d38a635861e4bfa5c563d844e754a91",
      "tree": "d23d2aa8d6cec93bab6e23ffd2199509e7d85113",
      "parents": [
        "891ce207011d3d9219f79fd5114c8594bbacc653"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: new interface\n\nAdd a new API to dm-io.c that uses a private mempool and bio_set for each\nclient.\n\nThe new functions to use are dm_io_client_create(), dm_io_client_destroy(),\ndm_io_client_resize() and dm_io().\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "891ce207011d3d9219f79fd5114c8594bbacc653",
      "tree": "969ca658f41ec8a9f719a44a487ae582ee278c27",
      "parents": [
        "c897feb3dcf3c3300849056ee82b01df7bf66d3c"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: prepare for new interface\n\nIntroduce struct dm_io_client to prepare for per-client mempools and bio_sets.\n\nTemporary functions bios() and io_pool() choose between the per-client\nstructures and the global ones so the old and new interfaces can co-exist.\n\nMake error_bits optional.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c897feb3dcf3c3300849056ee82b01df7bf66d3c",
      "tree": "29d82a62375d7a6394ba39e11926a695e6691de0",
      "parents": [
        "a8e6afa2363de7ee0dea1a3297f6236f421c2dd4"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: delay dec_count\n\nDelay decrementing the \u0027struct io\u0027 reference count until after the bio has\nbeen freed so that a bio destructor function may reference it.  Required by a\nlater patch.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8e6afa2363de7ee0dea1a3297f6236f421c2dd4",
      "tree": "f0559bd5e25dbafaee331815c75774fa0834252b",
      "parents": [
        "315dcc226f066c1d3cef79283dcde807fe0e32d1"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: add handle_errors feature flag\n\nThis patch adds the ability to specify desired features in the mirror\nconstructor/mapping table.\n\nThe first feature of interest is \"handle_errors\".  Currently, mirroring will\nignore any I/O errors from the devices.  Subsequent patches will check for\nthis flag and handle the errors.  If flag/feature is not present, mirror will\ndo nothing - maintaining backwards compatibility.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "315dcc226f066c1d3cef79283dcde807fe0e32d1",
      "tree": "f3abf75905aec13819292564ef4c2711c8bf4b8d",
      "parents": [
        "01d03a660e73fb524957c09825a3eb7c2ae7c205"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: report fault status\n\nThis patch reports the status of the log device so that userspace can detect\nthe error and take appropriate action.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01d03a660e73fb524957c09825a3eb7c2ae7c205",
      "tree": "8f87a5b6b6e34f9baab8661c127bf427cb4eaf41",
      "parents": [
        "2cd54d9bedb79a97f014e86c0da393416b264eb3"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: fault detection\n\nThis patch gives the disk logging code the ability to store the fact that an\nerror occured on the log device.  In addition, an event is raised when an\nerror is encountered during I/O to the log device.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2cd54d9bedb79a97f014e86c0da393416b264eb3",
      "tree": "bb7b81120cdd84e106da22222b6eec57e45ac5c4",
      "parents": [
        "79eb885c96b5ccf8bbffd0dddc4c15a5dd436a1c"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@us.ibm.com",
        "time": "Wed May 09 02:32:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm: allow offline devices\n\nAllow check_device_area to succeed if a device has an i_size of zero.  This\naddresses an issue seen on DASD devices setting up a multipath table for paths\nin online and offline state.\n\nSigned-off-by: Mike Anderson \u003candmike@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79eb885c96b5ccf8bbffd0dddc4c15a5dd436a1c",
      "tree": "1bae1cea97907415f19a0009aaa8e11e63fef34c",
      "parents": [
        "46b477306afcd0516924b26792c7a42f4dbfa9f0"
      ],
      "author": {
        "name": "Edward Goggin",
        "email": "egoggin@emc.com",
        "time": "Wed May 09 02:32:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm mpath: log device name\n\nMake the mapped device structure accessible to hardware handlers so error\nmessages can include the device name.\n\nSigned-off-by: Edward Goggin \u003cegoggin@emc.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46b477306afcd0516924b26792c7a42f4dbfa9f0",
      "tree": "76534c0ca2fed486e453292fdd0bbfdd83d104ca",
      "parents": [
        "f97380bcadd6bd2e368727de4061aaba4989c426"
      ],
      "author": {
        "name": "Ludwig Nussel",
        "email": "ludwig.nussel@suse.de",
        "time": "Wed May 09 02:32:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: add null iv\n\nAdd a new IV generation method \u0027null\u0027 to read old filesystem images created\nwith SuSE\u0027s loop_fish2 module.\n\nSigned-off-by: Ludwig Nussel \u003cludwig.nussel@suse.de\u003e\nAcked-By: Christophe Saout \u003cchristophe@saout.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f97380bcadd6bd2e368727de4061aaba4989c426",
      "tree": "179db9e733545aa1e796a22f670fc86963059492",
      "parents": [
        "2f9941b6c55d70103c1bc3f2c7676acd9f20bf8a"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: use smaller bvecs in clones\n\nAllocate smaller clones\n\nWith the previous dm-crypt fixes, there is no need for the clone bios to have\nthe same bvec size as the original - we just need to make them big enough for\nthe remaining number of pages.  The only requirement is that we clear the\n\"out\" index in convert_context, so that crypt_convert starts storing data at\nthe right position within the clone bio.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f9941b6c55d70103c1bc3f2c7676acd9f20bf8a",
      "tree": "523af38a7f1d7f1f875ca43a8c2998a29026dd70",
      "parents": [
        "98221eb757de03d9aa6262b1eded2be708640ccc"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: fix remove first_clone\n\nGet rid of first_clone in dm-crypt\n\nThis gets rid of first_clone, which is not really needed.  Apparently, cloned\nbios used to share their bvec some time way in the past - this is no longer\nthe case.  Contrarily, this even hurts us if we try to create a clone off\nfirst_clone after it has completed, and crypt_endio has destroyed its bvec.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98221eb757de03d9aa6262b1eded2be708640ccc",
      "tree": "cef3fd80f62d6227551adc75c34023d60cbaa9c1",
      "parents": [
        "027581f3515b5ec2218847dab578afa439a9d6b9"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: fix avoid cloned bio ref after free\n\nDo not access the bio after generic_make_request\n\nWe should never access a bio after generic_make_request - there\u0027s no guarantee\nit still exists.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "027581f3515b5ec2218847dab578afa439a9d6b9",
      "tree": "a15a2e0f3711c42a70170b9d4232b61d694899ca",
      "parents": [
        "9c89f8be1a7d14aad9d2c3f7d90d7d88f82c61e2"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: fix call to clone_init\n\nCall clone_init early\n\nWe need to call clone_init as early as possible - at least before call\nbio_put(clone) in any error path.  Otherwise, the destructor will try to\ndereference bi_private, which may still be NULL.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c89f8be1a7d14aad9d2c3f7d90d7d88f82c61e2",
      "tree": "0e94f77a0d9fda323b12dd4e26f0e08aa2fff7ef",
      "parents": [
        "6ad36fe2b451cc85cc7b14f4128286759e217124"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:32:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: disable barriers\n\nDisable barriers in dm-crypt because of current workqueue processing can\nreorder requests.\n\nThis must be addresed later but for now disabling barriers is needed to\nprevent data corruption.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ad36fe2b451cc85cc7b14f4128286759e217124",
      "tree": "05e6111d39c969ee729309d6bded6bcfe08aa44e",
      "parents": [
        "8defab33774a5c33920196a2ee9c0a946d22ba67"
      ],
      "author": {
        "name": "Holger Smolinski",
        "email": "smolinski@de.ibm.com",
        "time": "Wed May 09 02:32:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm raid1: one kmirrord per mirror\n\nThis patch replaces the single instance of kmirrord by one instance per mirror\nset.  This change is required to avoid a deadlock in kmirrord when the\npersistent dirty log of a mirror itself resides on a mirror.  The single\ninstance of kmirrord then issues a sync write to the dirty log in write_bits\nwhich gets deferred to kmirrord itself later in the call chain.  But kmirrord\nnever does the deferred work because it is still waiting for the sync\nwrite_bits.\n\n_mirror_sets is removed as it no longer needed, and we always flush the\nworkqueue before destroying it to ensure all work is complete before\ndestroying it.\n\nSigned-off-by: Holger Smolinski \u003csmolinski@de.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef51c97623b94f51e439ac91d2736aab3d1b6594",
      "tree": "5c020421f1e5a6e28b5a9f341fec32479a8ffb3a",
      "parents": [
        "524e6752912a891a396a9cf74c5d7d60fff5510a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue May 08 00:27:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "Remove do_sync_file_range()\n\nRemove do_sync_file_range() and convert callers to just use\ndo_sync_mapping_range().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f98393a64ca1392130724c3acb4e3f325801d2b6",
      "tree": "b02838bdf84156ac923bb37b6cf5f5ed6aaa3d48",
      "parents": [
        "0a27a14a62921b438bb6f33772690d345a089be6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun May 06 14:49:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "mm: remove destroy_dirty_buffers from invalidate_bdev()\n\nRemove the destroy_dirty_buffers argument from invalidate_bdev(), it hasn\u0027t\nbeen used in 6 years (so akpm says).\n\nfind * -name \\*.[ch] | xargs grep -l invalidate_bdev |\nwhile read file; do\n\tquilt add $file;\n\tsed -ie \u0027s/invalidate_bdev(\\([^,]*\\),[^)]*)/invalidate_bdev(\\1)/g\u0027 $file;\ndone\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5972511b77809cb7c9ccdb79b825c54921c5c546",
      "tree": "8dec5821badf9750be04f339f0f621fab2114c8a",
      "parents": [
        "b9099ff63c75216d6ca10bce5a1abcd9293c27e6"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 02 10:06:42 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Mon Apr 30 09:08:17 2007 +0200"
      },
      "message": "[BLOCK] Don\u0027t pin lots of memory in mempools\n\nCurrently we scale the mempool sizes depending on memory installed\nin the machine, except for the bio pool itself which sits at a fixed\n256 entry pre-allocation.\n\nThere\u0027s really no point in \"optimizing\" this OOM path, we just need\nenough preallocated to make progress. A single unit is enough, lets\nscale it down to 2 just to be on the safe side.\n\nThis patch saves ~150kb of pinned kernel memory on a 32-bit box.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    }
  ],
  "next": "505fa2c4a2f125a70951926dfb22b9cf273994f1"
}
