)]}'
{
  "log": [
    {
      "commit": "e9c7469bb4f502dafc092166201bea1ad5fc0fbf",
      "tree": "04202b0bb88623d3005c909eaafcb280778902da",
      "parents": [
        "7bc9fddab074d6bb630344e1969e28d20b140621"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Sep 03 11:56:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:38 2010 +0200"
      },
      "message": "md: implment REQ_FLUSH/FUA support\n\nThis patch converts md to support REQ_FLUSH/FUA instead of now\ndeprecated REQ_HARDBARRIER.  In the core part (md.c), the following\nchanges are notable.\n\n* Unlike REQ_HARDBARRIER, REQ_FLUSH/FUA don\u0027t interfere with\n  processing of other requests and thus there is no reason to mark the\n  queue congested while FLUSH/FUA is in progress.\n\n* REQ_FLUSH/FUA failures are final and its users don\u0027t need retry\n  logic.  Retry logic is removed.\n\n* Preflush needs to be issued to all member devices but FUA writes can\n  be handled the same way as other writes - their processing can be\n  deferred to request_queue of member devices.  md_barrier_request()\n  is renamed to md_flush_request() and simplified accordingly.\n\nFor linear, raid0 and multipath, the core changes are enough.  raid1,\n5 and 10 need the following conversions.\n\n* raid1: Handling of FLUSH/FUA bio\u0027s can simply be deferred to\n  request_queues of member devices.  Barrier related logic removed.\n\n* raid5: Queue draining logic dropped.  FUA bit is propagated through\n  biodrain and stripe resconstruction such that all the updated parts\n  of the stripe are written out with FUA writes if any of the dirtying\n  writes was FUA.  preread_active_stripes handling in make_request()\n  is updated as suggested by Neil Brown.\n\n* raid10: FUA bit needs to be propagated to write clones.\n\nlinear, raid0, 1, 5 and 10 tested.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7b6d91daee5cac6402186ff224c3af39d79f4a0e",
      "tree": "b1518cf0b6c301178e0a320f80610cd5b3aa7625",
      "parents": [
        "33659ebbae262228eef4e0fe990f393d1f0ed941"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "message": "block: unify flags for struct bio and struct request\n\nRemove the current bio flags and reuse the request flags for the bio, too.\nThis allows to more easily trace the type of I/O from the filesystem\ndown to the block driver.  There were two flags in the bio that were\nmissing in the requests:  BIO_RW_UNPLUG and BIO_RW_AHEAD.  Also I\u0027ve\nrenamed two request flags that had a superflous RW in them.\n\nNote that the flags are in bio.h despite having the REQ_ name - as\nblkdev.h includes bio.h that is the only way to go for now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "049d6c1ef983c9ac43aa423dfd752071a5b0002d",
      "tree": "909db6119d7b96991fa724b633c2ee185474836d",
      "parents": [
        "001048a318d48e93cb6a1246f3b20335b2a7c855"
      ],
      "author": {
        "name": "Maciej Trela",
        "email": "maciej.trela@intel.com",
        "time": "Wed Jun 16 11:56:12 2010 +0100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 24 13:34:57 2010 +1000"
      },
      "message": "md: enable raid4-\u003eraid0 takeover\n\nOnly level 5 with layout\u003dPARITY_N can be taken over to raid0 now.\nLets allow level 4 either.\n\nSigned-off-by: Maciej Trela \u003cmaciej.trela@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "001048a318d48e93cb6a1246f3b20335b2a7c855",
      "tree": "82a90465d46b9f495ceee52ef24dee9ada3a9827",
      "parents": [
        "f73ea87375a1b2bf6c0be82bb9a3cb9d5ee7a407"
      ],
      "author": {
        "name": "Maciej Trela",
        "email": "maciej.trela@intel.com",
        "time": "Wed Jun 16 11:55:14 2010 +0100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 24 13:34:45 2010 +1000"
      },
      "message": "md: clear layout after -\u003eraid0 takeover\n\nAfter takeover from raid5/10 -\u003e raid0 mddev-\u003elayout is not cleared.\n\nSigned-off-by: Maciej Trela \u003cmaciej.trela@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e93f68a1fc6244c05ad8fae28e75835ec74ab34e",
      "tree": "d282978aac8f6fcec512be2a6e61287bbb6241b1",
      "parents": [
        "0544a21db02c1d8883158fd6f323364f830a120a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 15 09:36:03 2010 +0100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 24 13:33:24 2010 +1000"
      },
      "message": "md: fix handling of array level takeover that re-arranges devices.\n\nMost array level changes leave the list of devices largely unchanged,\npossibly causing one at the end to become redundant.\nHowever conversions between RAID0 and RAID10 need to renumber\nall devices (except 0).\n\nThis renumbering is currently being done in the -\u003erun method when the\nnew personality takes over.  However this is too late as the common\ncode in md.c might already have invalidated some of the devices if\nthey had a -\u003eraid_disk number that appeared to high.\n\nMoving it into the -\u003etakeover method is too early as the array is\nstill active at that time and wrong -\u003eraid_disk numbers could cause\nconfusion.\n\nSo add a -\u003enew_raid_disk field to mdk_rdev_s and use it to communicate\nthe new raid_disk number.\nNow the common code knows exactly which devices need to be renumbered,\nand which can be invalidated, and can do it all at a convenient time\nwhen the array is suspend.\nIt can also update some symlinks in sysfs which previously were not be\nupdated correctly.\n\nReported-by: Maciej Trela \u003cmaciej.trela@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "19fdb9eefb21b72edbc365b838502780c392bad6",
      "tree": "deae04c48532d6eab64ed4b0396737bb854b5506",
      "parents": [
        "be6800a73aa2f3dc14744c3b80e676d189789f04",
        "3ff195b011d7decf501a4d55aeed312731094796"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 22 08:31:36 2010 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 22 08:31:36 2010 +1000"
      },
      "message": "Merge commit \u00273ff195b011d7decf501a4d55aeed312731094796\u0027 into for-linus\n\nConflicts:\n\tdrivers/md/md.c\n\n- Resolved conflict in md_update_sb\n- Added extra \u0027NULL\u0027 arg to new instance of sysfs_get_dirent.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b5a20961f3479dda48bdc340354ee5469997839d",
      "tree": "19eb94b00531621512364a544108016ab533f47d",
      "parents": [
        "128595ed6ff2c7358ae253a560d47a0af463bc99"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon May 03 15:06:27 2010 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue May 18 15:27:59 2010 +1000"
      },
      "message": "md/raid0: tidy up printk messages.\n\nAll messages now start\n   md/raid0:md-device-name:\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "21a52c6d05c15f862797736393915bfa8cd40ee9",
      "tree": "44ffb633d209457979177a52132761a368fcb976",
      "parents": [
        "cca9cf90c504d98644ace52c474770970729f0eb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 01 15:02:13 2010 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue May 18 15:27:55 2010 +1000"
      },
      "message": "md: pass mddev to make_request functions rather than request_queue\n\nWe used to pass the personality make_request function direct\nto the block layer so the first argument had to be a queue.\nBut now we have the intermediary md_make_request so it makes\nat lot more sense to pass a struct mddev_s.\nIt makes it possible to have an mddev without its own queue too.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "490773268cf64f68da2470e07b52c7944da6312d",
      "tree": "d394aafa7203c316db6b63f128b8894e18993fca",
      "parents": [
        "2b7f22284d71975e37a82db154386348eec0e52c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Mar 25 16:20:56 2010 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue May 18 15:27:52 2010 +1000"
      },
      "message": "md: move io accounting out of personalities into md_make_request\n\nWhile I generally prefer letting personalities do as much as possible,\ngiven that we have a central md_make_request anyway we may as well use\nit to simplify code.\nAlso this centralises knowledge of -\u003egendisk which will help later.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9af204cf720cedf369cf823bbd806c350201f7ea",
      "tree": "6aa684772cc1ba978e9dd0f67c3e0d5592588ca3",
      "parents": [
        "54071b3808ee3dc8624d9d6f1b06c4fd5308fa3b"
      ],
      "author": {
        "name": "Trela, Maciej",
        "email": "Maciej.Trela@intel.com",
        "time": "Mon Mar 08 16:02:44 2010 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue May 18 15:27:48 2010 +1000"
      },
      "message": "md: Add support for Raid5-\u003eRaid0 and Raid10-\u003eRaid0 takeover\n\n\nSigned-off-by: Maciej Trela \u003cmaciej.trela@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "84707f38e767ac470fd82af6c45a8cafe2bd1b9a",
      "tree": "bc480c9aeedccd735e144576284523da1406cb98",
      "parents": [
        "c0cc75f84e0e413bce2dcabea74ef418da45c7c1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 16 17:23:35 2010 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue May 18 15:27:47 2010 +1000"
      },
      "message": "md: don\u0027t use mddev-\u003eraid_disks in raid0 or raid10 while array is active.\n\nIn a subsequent patch we will make it possible to change\nmddev-\u003eraid_disks while a RAID0 or RAID10 array is active.  This is\npart of the process of reshaping such an array.\n\nThis means that we cannot use this value while processes requests\n(it is OK to use it during initialisation as we are locked against\nchanges then).\nBoth RAID0 and RAID10 have the same value stored in the private data\nstructure, so use that value instead.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "627a2d3c29427637f4c5d31ccc7fcbd8d312cd71",
      "tree": "f0de68842ca3b47d0152254e60d31cc561009119",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 08 16:44:38 2010 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 16 17:04:24 2010 +1100"
      },
      "message": "md: deal with merge_bvec_fn in component devices better.\n\nIf a component device has a merge_bvec_fn then as we never call it\nwe must ensure we never need to.  Currently this is done by setting\nmax_sector to 1 PAGE, however this does not stop a bio being created\nwith several sub-page iovecs that would violate the merge_bvec_fn.\n\nSo instead set max_segments to 1 and set the segment boundary to the\nsame as a page boundary to ensure there is only ever one single-page\nsegment of IO requested at a time.\n\nThis can particularly be an issue when \u0027xen\u0027 is used as it is\nknown to submit multiple small buffers in a single bio.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "086fa5ff0854c676ec333760f4c0154b3b242616",
      "tree": "ee63fb3c7c7d964bd799355b7cde18ba95f91f07",
      "parents": [
        "eb28d31bc97e6374d81f404da309401ffaed467b"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:38 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors\n\nThe block layer calling convention is blk_queue_\u003climit name\u003e.\nblk_queue_max_sectors predates this practice, leading to some confusion.\nRename the function to appropriately reflect that its intended use is to\nset max_hw_sectors.\n\nAlso introduce a temporary wrapper for backwards compability.  This can\nbe removed after the merge window is closed.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0efb9e6191e1d3d34c1db90b829b742bc36d532e",
      "tree": "5960d97df87a7eeea56d7dbe801259fc43398d5e",
      "parents": [
        "1e50915fe0bbf7a46db0fa7e1e604d3fc95f057d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Dec 14 12:49:58 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Dec 14 12:51:41 2009 +1100"
      },
      "message": "md: add MODULE_DESCRIPTION for all md related modules.\n\nSuggested by  Oren Held \u003corenhe@il.ibm.com\u003e\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a2826aa92e2e14db372eda01d333267258944033",
      "tree": "9cdd3329205bf480a4782705a3db1738e3faae44",
      "parents": [
        "efa593390e70b0e3c39f6b2dca8876b6b1461e41"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Dec 14 12:49:49 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Dec 14 12:49:49 2009 +1100"
      },
      "message": "md: support barrier requests on all personalities.\n\nPreviously barriers were only supported on RAID1.  This is because\nother levels requires synchronisation across all devices and so needed\na different approach.\nHere is that approach.\n\nWhen a barrier arrives, we send a zero-length barrier to every active\ndevice.  When that completes - and if the original request was not\nempty -  we submit the barrier request itself (with the barrier flag\ncleared) and then submit a fresh load of zero length barriers.\n\nThe barrier request itself is asynchronous, but any subsequent\nrequest will block until the barrier completes.\n\nThe reason for clearing the barrier flag is that a barrier request is\nallowed to fail.  If we pass a non-empty barrier through a striping\nraid level it is conceivable that part of it could succeed and part\ncould fail.  That would be way too hard to deal with.\nSo if the first run of zero length barriers succeed, we assume all is\nsufficiently well that we send the request and ignore errors in the\nsecond run of barriers.\n\nRAID5 needs extra care as write requests may not have been submitted\nto the underlying devices yet.  So we flush the stripe cache before\nproceeding with the barrier.\n\nNote that the second set of zero-length barriers are submitted\nimmediately after the original request is submitted.  Thus when\na personality finds mddev-\u003ebarrier to be set during make_request,\nit should not return from make_request until the corresponding\nper-device request(s) have been queued.\n\nThat will be done in later patches.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReviewed-by: Andre Noll \u003cmaan@systemlinux.org\u003e\n"
    },
    {
      "commit": "3fa841d7e7266f6fcc1b3885b905f5153ba897d8",
      "tree": "7afa971a10eddcf52787340ea43fa1e910b5805b",
      "parents": [
        "0da3c6194ec2f32617b272df4505a1cf022faea5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 23 18:10:29 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 23 18:10:29 2009 +1000"
      },
      "message": "md: report device as congested when suspended\n\nThis should writeback from coming when the device is temporarily\nsuspended.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a9f326ebf22a0de776815240fb76dabe139397ea",
      "tree": "4402ba08931cd0663aca077be4d26e66c91869bd",
      "parents": [
        "7fa07729e439a6184bd824746d06a49cca553f15"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 23 18:06:41 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 23 18:06:41 2009 +1000"
      },
      "message": "md: remove sparse waring \"symbol xxx shadows an earlier one\"\n\nRename some variable and remove some duplicate definitions\nto avoid there warnings.  None of them are actual errors.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1f98a13f623e0ef666690a18c1250335fc6d7ef1",
      "tree": "15ca2dddffaa18a0d1844957f4f8cc707cbb8117",
      "parents": [
        "e7e503aedb1f4d165081cb8d47a58c38f80f0cb4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:32:04 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "bio: first step in sanitizing the bio-\u003ebi_rw flag testing\n\nGet rid of any functions that test for these bits and make callers\nuse bio_rw_flagged() directly. Then it is at least directly apparent\nwhat variable and flag they check.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ac5e7113e74872928844d00085bd47c988f12728",
      "tree": "dabce6a99c2af9f00b33660f6b2d906cce836764",
      "parents": [
        "95fc17aac45300f45968aacd97a536ddd8db8101"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Mon Aug 03 10:59:47 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Aug 03 10:59:47 2009 +1000"
      },
      "message": "md: Push down data integrity code to personalities.\n\nThis patch replaces md_integrity_check() by two new public functions:\nmd_integrity_register() and md_integrity_add_rdev() which are both\npersonality-independent.\n\nmd_integrity_register() is called from the -\u003erun and -\u003ehot_remove\nmethods of all personalities that support data integrity.  The\nfunction iterates over the component devices of the array and\ndetermines if all active devices are integrity capable and if their\nprofiles match. If this is the case, the common profile is registered\nfor the mddev via blk_integrity_register().\n\nThe second new function, md_integrity_add_rdev() is called from the\n-\u003ehot_add_disk methods, i.e. whenever a new device is being added\nto a raid array. If the new device does not support data integrity,\nor has a profile different from the one already registered, data\nintegrity for the mddev is disabled.\n\nFor raid0 and linear, only the call to md_integrity_register() from\nthe -\u003erun method is necessary.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8f6c2e4b325a8e9f8f47febb2fd0ed4fae7d45a9",
      "tree": "6e383e2ec48b5c90fe07325a7f6ab38ea1a97dfa",
      "parents": [
        "5a4f13fad1ab5bd08dea78fc55321e429d83cddf"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Wed Jul 01 11:13:45 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 01 11:13:45 2009 +1000"
      },
      "message": "md: Use new topology calls to indicate alignment and I/O sizes\n\nSwitch MD over to the new disk_stack_limits() function which checks for\naligment and adjusts preferred I/O sizes when stacking.\n\nAlso indicate preferred I/O sizes where applicable.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0894cc3066aaa3e75a99383c0d25feebf9b688ac",
      "tree": "651664e6b288e36dc9553443e334e650139851c8",
      "parents": [
        "8190e754e0723de7cecb80bdd9eb93911dfa04a1"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Thu Jun 18 08:49:23 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 18 08:49:23 2009 +1000"
      },
      "message": "md: Move check for bitmap presence to personality code.\n\nIf the superblock of a component device indicates the presence of a\nbitmap but the corresponding raid personality does not support bitmaps\n(raid0, linear, multipath, faulty), then something is seriously wrong\nand we\u0027d better refuse to run such an array.\n\nCurrently, this check is performed while the superblocks are examined,\ni.e. before entering personality code. Therefore the generic md layer\nmust know which raid levels support bitmaps and which do not.\n\nThis patch avoids this layer violation without adding identical code\nto various personalities. This is accomplished by introducing a new\npublic function to md.c, md_check_no_bitmap(), which replaces the\nhard-coded checks in the superblock loading functions.\n\nA call to md_check_no_bitmap() is added to the -\u003erun method of each\npersonality which does not support bitmaps and assembly is aborted\nif at least one component device contains a bitmap.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "13f2682b7216ebebd72b3d5868fe7fccec91a92d",
      "tree": "a5ba7509f0f6d61b2d7b478494a210794a8e55e3",
      "parents": [
        "1b57f132231593923cb4ab99943ddd777e8745bc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 18 08:48:55 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 18 08:48:55 2009 +1000"
      },
      "message": "md: raid0/linear: ensure device sizes are rounded to chunk size.\n\nThis is currently ensured by common code, but it is more reliable to\nensure it where it is needed in personality code.\nAll the other personalities that care already round the size to\nthe chunk_size.  raid0 and linear are the only hold-outs.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d6e412eaa52db82010f12ea7d2c9b9468e933c44",
      "tree": "5170c4ba4fe50e441f112d2256ad8421f93dc980",
      "parents": [
        "cdc2ae6d6a30df8fd92c5e300d0e3005e13eb6b0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 18 08:47:00 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 18 08:47:00 2009 +1000"
      },
      "message": "md: raid0: chunk_sectors cleanups.\n\nfollowing the conversion to chunk_sectors, there is room\nfor cleaning up a little.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9d8f0363623b3da12c43007cf77f5e1a4e8a5964",
      "tree": "0fee53971a397ade209dd36c4f1ed50db6450faf",
      "parents": [
        "fbb704efb784e2c8418e34dc3013af76bdd58101"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Thu Jun 18 08:45:01 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 18 08:45:01 2009 +1000"
      },
      "message": "md: Make mddev-\u003echunk_size sector-based.\n\nThis patch renames the chunk_size field to chunk_sectors with the\nimplied change of semantics.  Since\n\n\tis_power_of_2(chunk_size) \u003d is_power_of_2(chunk_sectors \u003c\u003c 9)\n\t\t\t\t  \u003d is_power_of_2(chunk_sectors)\n\nthese bits don\u0027t need an adjustment for the shift.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fbb704efb784e2c8418e34dc3013af76bdd58101",
      "tree": "814820430d00128cb5f3fc0d44bb579c19d5d2a9",
      "parents": [
        "2ac06c3332898103210b478c5a17c20e28929287"
      ],
      "author": {
        "name": "raz ben yehuda",
        "email": "raziebe@gmail.com",
        "time": "Tue Jun 16 17:02:05 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 17:02:05 2009 +1000"
      },
      "message": "md: raid0 :Enables chunk size other than powers of 2.\n\nMaintain two flows, one for pow2 chunk sizes (which uses masks and\nshift), and a flow for the general case (which uses sector_div).\nThis is for the sake of performance.\n\n - introduce map_sector and is_io_in_chunk_boundary to encapsulate\n   those two flows better for raid0_make_request\n - fix blk_mergeable to support the two flows.\n\nSigned-off-by: raziebe@gmail.com\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "92e59b6ba21845fadd2cce725010a9351740b76e",
      "tree": "01ae5dcf151a8e9e3f578acfac976f59638474ee",
      "parents": [
        "46994191ae8fdf1cbcc1f29282576b269a638c69"
      ],
      "author": {
        "name": "raz ben yehuda",
        "email": "raziebe@gmail.com",
        "time": "Tue Jun 16 17:00:57 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 17:00:57 2009 +1000"
      },
      "message": "md: raid0: chunk size check in raid0_run\n\nhave raid0 check chunk size in run method instead of in md.\nThis is part of a series moving the checks from common code to\nthe personalities where they belong.\n\nhardsect is short and chunksize is an int, so it is safe to use %.\n\nSigned-off-by: raziebe@gmail.com\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "46994191ae8fdf1cbcc1f29282576b269a638c69",
      "tree": "bb9b62ca26cb5fb13122e58c4681eca73accabad",
      "parents": [
        "1b9614291eb319fad96de45392eb4452ad39f0ee"
      ],
      "author": {
        "name": "raz ben yehuda",
        "email": "raziebe@gmail.com",
        "time": "Tue Jun 16 17:00:54 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 17:00:54 2009 +1000"
      },
      "message": "md: have raid0 report its formation\n\nReport to the user what are the raid zones\n\nSigned-off-by: raziebe@gmail.com\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1b9614291eb319fad96de45392eb4452ad39f0ee",
      "tree": "0662e5f234eb238e78a2c5d08e35033ee1141d05",
      "parents": [
        "aece3d1f40879759f641dfbfdbb9e2593adeb43c"
      ],
      "author": {
        "name": "raz ben yehuda",
        "email": "raziebe@gmail.com",
        "time": "Tue Jun 16 16:57:40 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:57:40 2009 +1000"
      },
      "message": "md: have raid0 compile with MD_DEBUG on\n\nBecause of the removal of the device list from\nthe strips raid0 did not compile with MD_DEBUG flag on\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "070ec55d07157a3041f92654135c3c6e2eaaf901",
      "tree": "10f24d859e669ba4a671204ce4176a2b43fdaae5",
      "parents": [
        "a6b3deafe0c50e3e873e8ed5cc8abfcb25c05eff"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:54:21 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:54:21 2009 +1000"
      },
      "message": "md: remove mddev_to_conf \"helper\" macro\n\nHaving a macro just to cast a void* isn\u0027t really helpful.\nI would must rather see that we are simply de-referencing -\u003eprivate,\nthan have to know what the macro does.\n\nSo open code the macro everywhere and remove the pointless cast.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a6b3deafe0c50e3e873e8ed5cc8abfcb25c05eff",
      "tree": "18ac1b0976a1e558316d45e50d7252ba4c14fd71",
      "parents": [
        "b414579f4573b6dc8583e31b01dcffd13f49fd62"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:54:07 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:54:07 2009 +1000"
      },
      "message": "md: raid0:  remove setting of segment boundary.\n\n\nThis setting doesn\u0027t seem to make sense (half the chunk size??) and\nshouldn\u0027t be needed.\nThe segment boundary exported by raid0 should simply be the minimum\nof the segment boundary of all component devices.  And we already\nget that right.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b414579f4573b6dc8583e31b01dcffd13f49fd62",
      "tree": "08358cac251421380642dac0fdeb3bc296a97232",
      "parents": [
        "49f357a22b3fa3eeac042dfa0a6cae920c174e48"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:50:52 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:50:52 2009 +1000"
      },
      "message": "md: raid0: remove -\u003edev pointer from strip_zone structure\n\nIf we treat conf-\u003edevlist more like a 2 dimensional array,\nwe can get the devlist for a particular zone simply by indexing\nthat array, so we don\u0027t need to store the pointers to subarrays\nin strip_zone.  This makes strip_zone smaller and so (hopefully)\nsearches faster.\n\nSigned-of-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "49f357a22b3fa3eeac042dfa0a6cae920c174e48",
      "tree": "55d90a158e990ea38c2487167c3d9a4f7f7943cf",
      "parents": [
        "fb5ab4b5d6e16fd5006c9f800d0116f3547cb760"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:50:35 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:50:35 2009 +1000"
      },
      "message": "md: raid0: remove -\u003esectors from the strip_zone structure.\n\nstoring -\u003esectors is redundant as is can be computed from the\ndifference  z-\u003ezone_end - (z-1)-\u003ezone_end\n\nThe one place where it is used, it is just as efficient to use\na zone_end value instead.\n\nAnd removing it makes strip_zone smaller, so they array of these that\nis searched on every request has a better chance to say in cache.\n\nSo discard the field and get the value from elsewhere.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fb5ab4b5d6e16fd5006c9f800d0116f3547cb760",
      "tree": "0094240e6c361d4e48e67103391dd29895eb5e68",
      "parents": [
        "ed7b00380d957ec770b5e90380d012c6062c13cc"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Jun 16 16:48:19 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:48:19 2009 +1000"
      },
      "message": "md: raid0: Fix a memory leak when stopping a raid0 array.\n\nraid0_stop() removes all references to the raid0 configuration but\nmisses to free the -\u003edevlist buffer.\n\nThis patch closes this leak, removes a pointless initialization and\nfixes a coding style issue in raid0_stop().\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ed7b00380d957ec770b5e90380d012c6062c13cc",
      "tree": "8eced97cefca4be9f8eefce22ecb64a49ef6771b",
      "parents": [
        "5568a6035d9fca2cd8f1ef7005e215eae4e65fab"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Jun 16 16:47:36 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:47:36 2009 +1000"
      },
      "message": "md: raid0: Allocate all buffers for the raid0 configuration in one function.\n\nCurrently the raid0 configuration is allocated in raid0_run() while\nthe buffers for the strip_zone and the dev_list arrays are allocated\nin create_strip_zones(). On errors, all three buffers are freed\nin raid0_run().\n\nIt\u0027s easier and more readable to do the allocation and cleanup within\na single function. So move that code into create_strip_zones().\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5568a6035d9fca2cd8f1ef7005e215eae4e65fab",
      "tree": "d4433e2449d51e38b841660b8b1017822828044c",
      "parents": [
        "8f79cfcdb65472f1504ade2f53e5f2bfdaeb95da"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Jun 16 16:47:21 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:47:21 2009 +1000"
      },
      "message": "md: raid0: Make raid0_run() return a proper error code.\n\nCurrently raid0_run() always returns -ENOMEM on errors. This is\nincorrect as running the array might fail for other reasons, for\nexample because not all component devices were available.\n\nThis patch changes create_strip_zones() so that it returns a proper\nerror code (either -ENOMEM or -EINVAL) rather than 1 on errors and\nmakes raid0_run(), its single caller, return that value instead\nof -ENOMEM.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8f79cfcdb65472f1504ade2f53e5f2bfdaeb95da",
      "tree": "381814b9d62a338156ada3fbd92daca908c724eb",
      "parents": [
        "09770e0b6ee649313611a2d6a9b44f456072dbd6"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Jun 16 16:47:10 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:47:10 2009 +1000"
      },
      "message": "md: raid0: Remove hash spacing and sector shift.\n\nThe \"sector_shift\" and \"spacing\" fields of struct raid0_private_data\nwere only used for the hash table lookups. So the removal of the\nhash table allows get rid of these fields as well which simplifies\ncreate_strip_zones() and raid0_run() quite a bit.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "09770e0b6ee649313611a2d6a9b44f456072dbd6",
      "tree": "5387e43652ea177341a1b2029747d827363e3a9d",
      "parents": [
        "d27a43abd7be0ab4b2337e4587feca8c7340e5f9"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Jun 16 16:46:48 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:46:48 2009 +1000"
      },
      "message": "md: raid0: Remove hash table.\n\nThe raid0 hash table has become unused due to the changes in the\nprevious patch. This patch removes the hash table allocation and\nsetup code and kills the hash_table field of struct raid0_private_data.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d27a43abd7be0ab4b2337e4587feca8c7340e5f9",
      "tree": "a5a3e0ec947ebfc0d3dc75b9487c8e80de176a2d",
      "parents": [
        "dc58266385e51420298275c90a616c34f1473a73"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:46:46 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:46:46 2009 +1000"
      },
      "message": "md/raid0: two cleanups in create_stripe_zones.\n\n1/ remove current_start.  The same value is available in\n     zone-\u003edev_start and storing it separately doesn\u0027t gain anything.\n2/ rename curr_zone_start to curr_zone_end as we are now more\n     focused on the \u0027end\u0027 of each zone.  We end up storing the\n     same number though - the old name was a little confusing\n     (and what does \u0027current\u0027 mean in this context anyway).\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "dc58266385e51420298275c90a616c34f1473a73",
      "tree": "f7532a7886f71c0b4e863033e95f8b57fb1ca1f2",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Jun 16 16:18:43 2009 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 16 16:18:43 2009 +1000"
      },
      "message": "md: raid0: Replace hash table lookup by looping over all strip_zones.\n\nThe number of strip_zones of a raid0 array is bounded by the number of\ndrives in the array and is in fact much smaller for typical setups. For\nexample, any raid0 array containing identical disks will have only\na single strip_zone.\n\nTherefore, the hash tables which are used for quickly finding the\nstrip_zone that holds a particular sector are of questionable value\nand add quite a bit of unnecessary complexity.\n\nThis patch replaces the hash table lookup by equivalent code which\nsimply loops over all strip zones to find the zone that holds the\ngiven sector.\n\nIn order to make this loop as fast as possible, the zone-\u003estart field\nof struct strip_zone has been renamed to zone_end, and it now stores\nthe beginning of the next zone in sectors. This allows to save one\naddition in the loop.\n\nSubsequent cleanup patches will remove the hash table structure.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ae03bf639a5027d27270123f5f6e3ee6a412781d",
      "tree": "d705f41a188ad656b1f47f7952626a9f992e3b8f",
      "parents": [
        "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:50 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Use accessor functions for queue limits\n\nConvert all external users of queue limits to using wrapper functions\ninstead of poking the request queue variables directly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b522adcde9c4d3fb7b579cfa9160d8bde7744be8",
      "tree": "4208e3dcec3ebdfa6ad9bc153f76129400532717",
      "parents": [
        "1f403624bde3c678a166984b1e6a727a0ce06f2b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 31 15:00:31 2009 +1100"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 31 15:00:31 2009 +1100"
      },
      "message": "md: \u0027array_size\u0027 sysfs attribute\n\nAllow userspace to set the size of the array according to the following\nsemantics:\n\n1/ size must be \u003c\u003d to the size returned by mddev-\u003epers-\u003esize(mddev, 0, 0)\n   a) If size is set before the array is running, do_md_run will fail\n      if size is greater than the default size\n   b) A reshape attempt that reduces the default size to less than the set\n      array size should be blocked\n2/ once userspace sets the size the kernel will not change it\n3/ writing \u0027default\u0027 to this attribute returns control of the size to the\n   kernel and reverts to the size reported by the personality\n\nAlso, convert locations that need to know the default size from directly\nreading -\u003earray_sectors to \u003cpers\u003e_size.  Resync/reshape operations\nalways follow the default size.\n\nFinally, fixup other locations that read a number of 1k-blocks from\nuserspace to use strict_blocks_to_sectors() which checks for unsigned\nlong long to sector_t overflow and blocks to sectors overflow.\n\nReviewed-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "1f403624bde3c678a166984b1e6a727a0ce06f2b",
      "tree": "b66ed37091e825bcde1cd0d333d4ebba86772805",
      "parents": [
        "80c3a6ce4ba4470379b9e6a4d9bcd9d2ee26ae03"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 31 14:59:03 2009 +1100"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 31 14:59:03 2009 +1100"
      },
      "message": "md: centralize -\u003earray_sectors modifications\n\nGet personalities out of the business of directly modifying\n-\u003earray_sectors.  Lays groundwork to introduce policy on when\n-\u003earray_sectors can be modified.\n\nReviewed-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "80c3a6ce4ba4470379b9e6a4d9bcd9d2ee26ae03",
      "tree": "de88622f05a7e681ac7bff7714e8f2d8953b66ac",
      "parents": [
        "93ed05e2a56b5ee06c0100a169433b11c4aa5d0b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 17 18:10:40 2009 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 31 14:57:49 2009 +1100"
      },
      "message": "md: add \u0027size\u0027 as a personality method\n\nIn preparation for giving userspace control over -\u003earray_sectors we need\nto be able to retrieve the \u0027default\u0027 size, and the \u0027anticipated\u0027 size\nwhen a reshape is requested.  For personalities that do not reshape emit\na warning if anything but the default size is requested.\n\nIn the raid5 case we need to update -\u003eprevious_raid_disks to make the\nnew \u0027default\u0027 size available.\n\nReviewed-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "dd8ac336c13fd8afdb082ebacb1cddd5cf727889",
      "tree": "0baa8111d7406774525a1053be461135257d73d2",
      "parents": [
        "58c0fed400603a802968b23ddf78f029c5a84e41"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Tue Mar 31 14:33:13 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 31 14:33:13 2009 +1100"
      },
      "message": "md: Represent raid device size in sectors.\n\nThis patch renames the \"size\" field of struct mdk_rdev_s to\n\"sectors\" and changes this field to store sectors instead of\nblocks.\n\nAll users of this field, linear.c, raid0.c and md.c, are fixed up\naccordingly which gets rid of many multiplications and divisions.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "43b2e5d86d8bdd77386226db0bc961529492c043",
      "tree": "601a885b1410324678cf319eee77cc54a02f2cf3",
      "parents": [
        "bff61975b3d6c18ee31457cc5b4d73042f44915f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 31 14:33:13 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 31 14:33:13 2009 +1100"
      },
      "message": "md: move md_k.h from include/linux/raid/ to drivers/md/\n\nIt really is nicer to keep related code together..\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bff61975b3d6c18ee31457cc5b4d73042f44915f",
      "tree": "3aff48088b35172e74f56ae54f0b53e76a0c2150",
      "parents": [
        "92022950c6b1bb3da90b2976b20271cdfd98b8a3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 31 14:33:13 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 31 14:33:13 2009 +1100"
      },
      "message": "md: move lots of #include lines out of .h files and into .c\n\nThis makes the includes more explicit, and is preparation for moving\nmd_k.h to drivers/md/md.h\n\nRemove include/raid/md.h as its only remaining use was to #include\nother files.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ef740c372dfd80e706dbf955d4e4aedda6c0c148",
      "tree": "8d9ef9db346ee1ba319a125c9de83cdde049510d",
      "parents": [
        "2a40a8aed083d988df6822bb9b1b08fb7ce21e1d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Mar 31 14:27:03 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 31 14:27:03 2009 +1100"
      },
      "message": "md: move headers out of include/linux/raid/\n\nMove the headers with the local structures for the disciplines and\nbitmap.h into drivers/md/ so that they are more easily grepable for\nhacking and not far away.  md.h is left where it is for now as there\nare some uses from the outside.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "159ec1fc060ab22b157a62364045f5e98749c4d3",
      "tree": "1de0edfd782245b271d2898e36ae76c00e1e1b6d",
      "parents": [
        "ccacc7d2cf03114a24ab903f710118e9e5d43273"
      ],
      "author": {
        "name": "Cheng Renquan",
        "email": "crquan@gmail.com",
        "time": "Fri Jan 09 08:31:08 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:08 2009 +1100"
      },
      "message": "md: use list_for_each_entry macro directly\n\nThe rdev_for_each macro defined in \u003clinux/raid/md_k.h\u003e is identical to\nlist_for_each_entry_safe, from \u003clinux/list.h\u003e, it should be defined to\nuse list_for_each_entry_safe, instead of reinventing the wheel.\n\nBut some calls to each_entry_safe don\u0027t really need a safe version,\njust a direct list_for_each_entry is enough, this could save a temp\nvariable (tmp) in every function that used rdev_for_each.\n\nIn this patch, most rdev_for_each loops are replaced by list_for_each_entry,\ntotally save many tmp vars; and only in the other situations that will call\nlist_del to delete an entry, the safe version is used.\n\nSigned-off-by: Cheng Renquan \u003ccrquan@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ccacc7d2cf03114a24ab903f710118e9e5d43273",
      "tree": "c856e2a17f6c6a26996a8cfba87680a2375061d5",
      "parents": [
        "83838ed87898e0a8ff8dbf001e54e6c017f0a011"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:08 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:08 2009 +1100"
      },
      "message": "md: raid0: make hash_spacing and preshift sector-based.\n\nThis patch renames the hash_spacing and preshift members of struct\nraid0_private_data to spacing and sector_shift respectively and\nchanges the semantics as follows:\n\nWe always have spacing \u003d 2 * hash_spacing. In case\nsizeof(sector_t) \u003e sizeof(u32) we also have sector_shift \u003d preshift + 1\nwhile sector_shift \u003d preshift \u003d 0 otherwise.\n\nNote that the values of nb_zone and zone are unaffected by these changes\nbecause in the sector_div() preceeding the assignement of these two\nvariables both arguments double.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "83838ed87898e0a8ff8dbf001e54e6c017f0a011",
      "tree": "218e6c8dbe52257251f165cd544c4bebbeae3c40",
      "parents": [
        "0825b87a7dd9645c7e16489fec839a3cb5c40a08"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "message": "md: raid0: Represent the size of strip zones in sectors.\n\nThis completes the block -\u003e sector conversion of struct strip_zone.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0825b87a7dd9645c7e16489fec839a3cb5c40a08",
      "tree": "35c009c01470ce79fd1bc93d19c5bdb6b2a3b761",
      "parents": [
        "6b8796cc3decb43c7c67a13a0699b6a21b754c78"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "message": "md: raid0 create_strip_zones(): Add KERN_INFO/KERN_ERR to printk\u0027s.\n\nThis patch consists only of these trivial changes.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6b8796cc3decb43c7c67a13a0699b6a21b754c78",
      "tree": "6096c9da13baa3983d96f69f5b3dbcd099d35c49",
      "parents": [
        "6199d3db0fc34f8ada895879d04a353a6ae632bc"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "message": "md: raid0 create_strip_zones(): Make two local variables sector-based.\n\ncurrent_offset and curr_zone_offset stored the corresponding offsets\nas 1K quantities. Rename them to current_start and curr_zone_start\nto match the naming of struct strip_zone and store the offsets as\nsector counts.\n\nAlso, add KERN_INFO to the printk() affected by this change to make\ncheckpatch happy.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6199d3db0fc34f8ada895879d04a353a6ae632bc",
      "tree": "5a7d5f4a080abf6c46a87f121a859fd45fd53254",
      "parents": [
        "019c4e2f3e02aac4b44003913b54ca4b332e4371"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:07 2009 +1100"
      },
      "message": "md: raid0: Represent zone-\u003ezone_offset in sectors.\n\nFor the same reason as in the previous patch, rename it from zone_offset\nto zone_start.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "019c4e2f3e02aac4b44003913b54ca4b332e4371",
      "tree": "ebdd73075be543d5feb1a1e86a793a2b3311ea9b",
      "parents": [
        "e0f06868341700c5c1964a04f6c5b51d0a2d5bca"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "message": "md: raid0: Represent device offset in sectors.\n\nRename zone-\u003edev_offset to zone-\u003edev_start to make sure all users\nhave been converted.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e0f06868341700c5c1964a04f6c5b51d0a2d5bca",
      "tree": "3709a5c7868c721086416737f71b1382a2690be6",
      "parents": [
        "a471200595b24fb1907ad12107a6a66db02c63f2"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "message": "md: raid0_make_request(): Replace local variable block by sector.\n\nThis change already simplifies the code a bit.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a471200595b24fb1907ad12107a6a66db02c63f2",
      "tree": "55c04f45ca294cdd765d386a4f2539e4f4d7b069",
      "parents": [
        "1b7fdf8ff7c0e3fba9c679def4e98d5701d2949e"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "message": "md: raid0_make_request(): Remove local variable chunk_size.\n\nWe might as well use chunk_sects instead.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1b7fdf8ff7c0e3fba9c679def4e98d5701d2949e",
      "tree": "c24c3a5f0c5f36a2af9b2a860074995b18537d06",
      "parents": [
        "0c3573f19d135d718264e38c46597295bd6154b7"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 09 08:31:06 2009 +1100"
      },
      "message": "md: raid0_make_request(): Replace chunksize_bits by chunksect_bits.\n\nAs ffz(~(2 * x)) \u003d ffz(~x) + 1, we have\n\n\tchunksect_bits \u003d chunksize_bits + 1.\n\nFixup all users accordingly.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fb4d8c76e56a887b9eee99fbc55fe82b18625d30",
      "tree": "0ca96887e40db671957b79d493830b9527b04949",
      "parents": [
        "ab5bd5cbc8d4b868378d062eed3d4240930fbb86"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 13 11:55:12 2008 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 13 11:55:12 2008 +1100"
      },
      "message": "md: Remove unnecessary #includes, #defines, and function declarations.\n\nA lot of cruft has gathered over the years.  Time to remove it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6feef531f55cf4a20fd9eb39f5352e5745203603",
      "tree": "2c52b800edcbdf01abefcf27e900985c087f1b36",
      "parents": [
        "ad3316bf4eeb53c89164f759767f911072b56203"
      ],
      "author": {
        "name": "Denis ChengRq",
        "email": "crquan@gmail.com",
        "time": "Thu Oct 09 08:57:05 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:57:05 2008 +0200"
      },
      "message": "block: mark bio_split_pool static\n\nSince all bio_split calls refer the same single bio_split_pool, the bio_split\nfunction can use bio_split_pool directly instead of the mempool_t parameter;\n\nthen the mempool_t parameter can be removed from bio_split param list, and\nbio_split_pool is only referred in fs/bio.c file, can be marked static.\n\nSigned-off-by: Denis ChengRq \u003ccrquan@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "074a7aca7afa6f230104e8e65eba3420263714a5",
      "tree": "f418313e45bd55be8156c8a3e8f9a216cf63058d",
      "parents": [
        "eddb2e26b5ee3c5da68ba4bf1921ba20e2097bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:56:14 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:08 2008 +0200"
      },
      "message": "block: move stats from disk to part0\n\nMove stats related fields - stamp, in_flight, dkstats - from disk to\npart0 and unify stat handling such that...\n\n* part_stat_*() now updates part0 together if the specified partition\n  is not part0.  ie. part_stat_*() are now essentially all_stat_*().\n\n* {disk|all}_stat_*() are gone.\n\n* part_round_stats() is updated similary.  It handles part0 stats\n  automatically and disk_round_stats() is killed.\n\n* part_{inc|dec}_in_fligh() is implemented which automatically updates\n  part0 stats for parts other than part0.\n\n* disk_map_sector_rcu() is updated to return part0 if no part matches.\n  Combined with the above changes, this makes NULL special case\n  handling in callers unnecessary.\n\n* Separate stats show code paths for disk are collapsed into part\n  stats show code paths.\n\n* Rename disk_stat_lock/unlock() to part_stat_lock/unlock()\n\nWhile at it, reposition stat handling macros a bit and add missing\nparentheses around macro parameters.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c9959059161ddd7bf4670cf47367033d6b2f79c4",
      "tree": "6454db55f8e34361fe472358e10e0c5cfac1e366",
      "parents": [
        "e71bf0d0ee89e51b92776391c5634938236977d5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 25 19:47:21 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:06 2008 +0200"
      },
      "message": "block: fix diskstats access\n\nThere are two variants of stat functions - ones prefixed with double\nunderbars which don\u0027t care about preemption and ones without which\ndisable preemption before manipulating per-cpu counters.  It\u0027s unclear\nwhether the underbarred ones assume that preemtion is disabled on\nentry as some callers don\u0027t do that.\n\nThis patch unifies diskstats access by implementing disk_stat_lock()\nand disk_stat_unlock() which take care of both RCU (for partition\naccess) and preemption (for per-cpu counter access).  diskstats access\nshould always be enclosed between the two functions.  As such, there\u0027s\nno need for the versions which disables preemption.  They\u0027re removed\nand double underbars ones are renamed to drop the underbars.  As an\nextra argument is added, there\u0027s no danger of using the old version\nunconverted.\n\ndisk_stat_lock() uses get_cpu() and returns the cpu index and all\ndiskstat functions which access per-cpu counters now has @cpu\nargument to help RT.\n\nThis change adds RCU or preemption operations at some places but also\ncollapses several preemption ops into one at others.  Overall, the\nperformance difference should be negligible as all involved ops are\nvery lightweight per-cpu ones.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8a392625b665c676a77c62f8608d10ff430bcb83",
      "tree": "4000a65d61baed73200e47f91dea5263ed16edd0",
      "parents": [
        "519f0141f1c42e2b8b59c7dea005cbf6095358e8",
        "4b80991c6cb9efa607bc4fd6f3ecdf5511c31bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 10:29:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 10:29:12 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (52 commits)\n  md: Protect access to mddev-\u003edisks list using RCU\n  md: only count actual openers as access which prevent a \u0027stop\u0027\n  md: linear: Make array_size sector-based and rename it to array_sectors.\n  md: Make mddev-\u003earray_size sector-based.\n  md: Make super_type-\u003erdev_size_change() take sector-based sizes.\n  md: Fix check for overlapping devices.\n  md: Tidy up rdev_size_store a bit:\n  md: Remove some unused macros.\n  md: Turn rdev-\u003esb_offset into a sector-based quantity.\n  md: Make calc_dev_sboffset() return a sector count.\n  md: Replace calc_dev_size() by calc_num_sectors().\n  md: Make update_size() take the number of sectors.\n  md: Better control of when do_md_stop is allowed to stop the array.\n  md: get_disk_info(): Don\u0027t convert between signed and unsigned and back.\n  md: Simplify restart_array().\n  md: alloc_disk_sb(): Return proper error value.\n  md: Simplify sb_equal().\n  md: Simplify uuid_equal().\n  md: sb_equal(): Fix misleading printk.\n  md: Fix a typo in the comment to cmd_match().\n  ...\n"
    },
    {
      "commit": "f233ea5c9e0d8b95e4283bf6a3436b88f6fd3586",
      "tree": "8a36b621de46da23f3957c6e3ea4d653c2937544",
      "parents": [
        "15f4a5fdf3aa07b53f6a7969664741db5882e485"
      ],
      "author": {
        "name": "Andre Noll",
        "email": "maan@systemlinux.org",
        "time": "Mon Jul 21 17:05:22 2008 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 21 17:05:22 2008 +1000"
      },
      "message": "md: Make mddev-\u003earray_size sector-based.\n\nThis patch renames the array_size field of struct mddev_s to array_sectors\nand converts all instances to use units of 512 byte sectors instead of 1k\nblocks.\n\nSigned-off-by: Andre Noll \u003cmaan@systemlinux.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "cc371e66e340f35eed8dc4651c7c18e754c7fb26",
      "tree": "5a2d6727eb07a05999c531a90da43ab1c36b713e",
      "parents": [
        "b24498d477a14680fc3bb3ad884fa9fa76a2d237"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 03 09:53:43 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 03 13:21:15 2008 +0200"
      },
      "message": "Add bvec_merge_data to handle stacked devices and -\u003emerge_bvec()\n\nWhen devices are stacked, one device\u0027s merge_bvec_fn may need to perform\nthe mapping and then call one or more functions for its underlying devices.\n\nThe following bio fields are used:\n  bio-\u003ebi_sector\n  bio-\u003ebi_bdev\n  bio-\u003ebi_size\n  bio-\u003ebi_rw  using bio_data_dir()\n\nThis patch creates a new struct bvec_merge_data holding a copy of those\nfields to avoid having to change them directly in the struct bio when\ngoing down the stack only to have to change them back again on the way\nback up.  (And then when the bio gets mapped for real, the whole\nexercise gets repeated, but that\u0027s a problem for another day...)\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e7e72bf641b1fc7b9df6f40bd2c36dfccd8d647c",
      "tree": "81b1db5434c9635bf23fb40415056e10390cd692",
      "parents": [
        "4920916f728fe3c51f54c25ab7b3d271254aab5a"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed May 14 16:05:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:15 2008 -0700"
      },
      "message": "Remove blkdev warning triggered by using md\n\nAs setting and clearing queue flags now requires that we hold a spinlock\non the queue, and as blk_queue_stack_limits is called without that lock,\nget the lock inside blk_queue_stack_limits.\n\nFor blk_queue_stack_limits to be able to find the right lock, each md\npersonality needs to set q-\u003equeue_lock to point to the appropriate lock.\nThose personalities which didn\u0027t previously use a spin_lock, us\nq-\u003e__queue_lock.  So always initialise that lock when allocated.\n\nWith this in place, setting/clearing of the QUEUE_FLAG_PLUGGED bit will no\nlonger cause warnings as it will be clear that the proper lock is held.\n\nThanks to Dan Williams for review and fixing the silly bugs.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Alistair John Strachan \u003calistair@devzero.co.uk\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Jacek Luczak \u003cdifrost.kernel@gmail.com\u003e\nCc: Prakash Punnoor \u003cprakash@punnoor.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d089c6af10c2be5988f03667d6d22fe6085fbe5e",
      "tree": "815eb0596bd7c908f30c268da6b5c5eff0e0bc21",
      "parents": [
        "29ac4aa3fc68a86279aca50f20df4d614de2e204"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 06 01:39:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:19 2008 -0800"
      },
      "message": "md: change ITERATE_RDEV to rdev_for_each\n\nAs this is more in line with common practice in the kernel.  Also swap the\nargs around to be more like list_for_each.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ad8b1ef11c98c5603580878aebf9f1bc74129e4",
      "tree": "f7bdc2484513f6ffd174b1385bb216dcf97d2c78",
      "parents": [
        "d85532ed284e63b5c56eaf2418f262822af60be4"
      ],
      "author": {
        "name": "Alan D. Brunelle",
        "email": "Alan.Brunelle@hp.com",
        "time": "Wed Nov 07 14:26:56 2007 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Nov 09 13:41:32 2007 +0100"
      },
      "message": "Add UNPLUG traces to all appropriate places\n\nAdded blk_unplug interface, allowing all invocations of unplugs to result\nin a generated blktrace UNPLUG.\n\nSigned-off-by: Alan D. Brunelle \u003cAlan.Brunelle@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8299d7f7c067a30a67ad359d416128c4ff57dcd1",
      "tree": "0a824aab73367b5a72f63efb7b98504c02ff4450",
      "parents": [
        "5ebf2c1260705a2ce51ad19af33059f08211579d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 16 23:30:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:03 2007 -0700"
      },
      "message": "md: fix a bug in some never-used code.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d3277\n\nThere is a seq_printf here that isn\u0027t being passed a \u0027seq\u0027.  Howeve as the\ncode is inside #ifdef MD_DEBUG, nobody noticed.\n\nAlso remove some extra spaces.\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": "fd5d806266935179deda1502101624832eacd01f",
      "tree": "b0d01c2ed7d754f2a6daef6c77d108a81d8a470e",
      "parents": [
        "bf2de6f5a4faf0197268f18d08969b003b87b6e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:05:02 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:05:02 2007 +0200"
      },
      "message": "block: convert blkdev_issue_flush() to use empty barriers\n\nThen we can get rid of -\u003eissue_flush_fn() and all the driver private\nimplementations of that.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "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": "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": "26be34dc3a46be983352dd89683db374b0cb73fa",
      "tree": "296ed9d019ac56d4a6ea0909f1cf11bdfd08a3e5",
      "parents": [
        "c04be0aa82ff535e3676ab3e573957bdeef41879"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 03 01:15:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:18 2006 -0700"
      },
      "message": "[PATCH] md: define backing_dev_info.congested_fn for raid0 and linear\n\nEach backing_dev needs to be able to report whether it is congested, either by\nmodulating BDI_*_congested in -\u003estate, or by defining a -\u003econgested_fn.\nmd/raid did neither of these.  This patch add a congested_fn which simply\nchecks all component devices to see if they are congested.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c4c33318d26620fa552f15bbb6d0f9775a1b4df",
      "tree": "d1d39bca5beb51dfcbb47d4b0c47a56214d4448b",
      "parents": [
        "f2d395865faa2a7cd4620b07178e58cbb160ba08"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon May 22 22:35:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue May 23 10:35:31 2006 -0700"
      },
      "message": "[PATCH] md: fix possible oops when starting a raid0 array\n\nThis loop that sets up the hash_table has problems.\n\nCareful examination will show that the last time through, everything but\nthe first line is pointless.  This is because all it does is change \u0027cur\u0027\nand \u0027size\u0027 and neither of these are used after the loop.  This should ring\nwarning bells...  That last time through the loop,\n\n        size +\u003d conf-\u003estrip_zone[cur].size\n\ncan index off the end of the strip_zone array.  Depending on what it finds\nthere, it might exit the loop cleanly, or it might spin going further and\nfurther beyond the array until it hits an unmapped address.\n\nThis patch rearranges the code so that the last, pointless, iteration of\nthe loop never happens.  i.e.  the one statement of the last loop that is\nneeded is moved the the end of the previous loop - or to before the loop\nstarts - and the loop counter starts from 1 instead of 0.\n\nCc: \"Don Dupuis\" \u003cdondster@gmail.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29fc7e3e70a05e9eea28afb6707a39c1a53e2f66",
      "tree": "4e8bc28c717116ade3cd723a921f3260656327aa",
      "parents": [
        "284ae7cab0f7335c9e0aa8992b28415ef1a54c7c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Feb 03 03:03:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:00 2006 -0800"
      },
      "message": "[PATCH] md: Assorted little md fixes\n\n- version-1 superblock\n  + The default_bitmap_offset is in sectors, not bytes.\n  + the \u0027size\u0027 field in the superblock is in sectors, not KB\n- raid0_run should return a negative number on error, not \u00271\u0027\n- raid10_read_balance should not return a valid \u0027disk\u0027 number if\n     -\u003erdev turned out to be NULL\n- kmem_cache_destroy doesn\u0027t like being passed a NULL.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1365647022eb05a5993f270a78e9bef3bf554eb",
      "tree": "6dbcab4db80b7d07fdaec88c003743d1f6e1a289",
      "parents": [
        "fd285bb54d8a3e99810090ae88cfe8ed77d1da25"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jan 08 01:04:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:02 2006 -0800"
      },
      "message": "[PATCH] remove gcc-2 checks\n\nRemove various things which were checking for gcc-1.x and gcc-2.x compilers.\n\nFrom: Adrian Bunk \u003cbunk@stusta.de\u003e\n\n    Some documentation updates and removes some code paths for gcc \u003c 3.2.\n\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d9d166c2a9d5d01af34396793950aa695883eed4",
      "tree": "6cb593cc0636476ebec9a9690aa48997510f9701",
      "parents": [
        "8bb93aaca2062cd54cc2c58c76ee8409cae209a7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:09 2006 -0800"
      },
      "message": "[PATCH] md: allow array level to be set textually via sysfs\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2604b703b6b3db80e3c75ce472a54dfd0b7bf9f4",
      "tree": "8c0e985c455ff35af24fbe60d8a3f5a276034370",
      "parents": [
        "a24a8dd858e0ba50f06a9fd8f61fe8c4fe7a8d8e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:06 2006 -0800"
      },
      "message": "[PATCH] md: remove personality numbering from md\n\nmd supports multiple different RAID level, each being implemented by a\n\u0027personality\u0027 (which is often in a separate module).\n\nThese personalities have fairly artificial \u0027numbers\u0027.  The numbers\nare use to:\n 1- provide an index into an array where the various personalities\n    are recorded\n 2- identify the module (via an alias) which implements are particular\n    personality.\n\nNeither of these uses really justify the existence of personality numbers.\nThe array can be replaced by a linked list which is searched (array lookup\nonly happens very rarely).  Module identification can be done using an alias\nbased on level rather than \u0027personality\u0027 number.\n\nThe current \u0027raid5\u0027 modules support two level (4 and 5) but only one\npersonality.  This slight awkwardness (which was handled in the mapping from\nlevel to personality) can be better handled by allowing raid5 to register 2\npersonalities.\n\nWith this change in place, the core md module does not need to have an\nexhaustive list of all possible personalities, so other personalities can be\nadded independently.\n\nThis patch also moves the check for chunksize being non-zero into the -\u003erun\nroutines for the personalities that need it, rather than having it in core-md.\n This has a side effect of allowing \u0027faulty\u0027 and \u0027linear\u0027 not to have a\nchunk-size set.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ffae0cf3ea02f75d163922accfd3e592d87adde",
      "tree": "4974727e9f36e1b618b68d2789644ee3a0d7a371",
      "parents": [
        "2d1f3b5d1b2cd11a162eb29645df749ec0036413"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:05 2006 -0800"
      },
      "message": "[PATCH] md: convert md to use kzalloc throughout\n\nReplace multiple kmalloc/memset pairs with kzalloc calls.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d1f3b5d1b2cd11a162eb29645df749ec0036413",
      "tree": "bb87ef9fcd2d9760b618d196fc8361a5a4dd851e",
      "parents": [
        "d7603b7e3a7f802c67f9190b2387d4d5d111ec14"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 06 00:20:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:05 2006 -0800"
      },
      "message": "[PATCH] md: clean up \u0027page\u0027 related names in md\n\nSubstitute:\n\n  page_cache_get -\u003e get_page\n  page_cache_release -\u003e put_page\n  PAGE_CACHE_SHIFT -\u003e PAGE_SHIFT\n  PAGE_CACHE_SIZE -\u003e PAGE_SIZE\n  PAGE_CACHE_MASK -\u003e PAGE_MASK\n  __free_page -\u003e put_page\n\nbecause we aren\u0027t using the page cache, we are just using pages.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a362357b6cd62643d4dda3b152639303d78473da",
      "tree": "fe4ce823e638ded151edcb142f28a240860f0d33",
      "parents": [
        "d72d904a5367ad4ca3f2c9a2ce8c3a68f0b28bf0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Nov 01 09:26:16 2005 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Nov 01 09:26:16 2005 +0100"
      },
      "message": "[BLOCK] Unify the seperate read/write io stat fields into arrays\n\nInstead of having -\u003eread_sectors and -\u003ewrite_sectors, combine the two\ninto -\u003esectors[2] and similar for the other fields. This saves a branch\nseveral places in the io path, since we don\u0027t have to care for what the\nactual io direction is. On my x86-64 box, that\u0027s 200 bytes less text in\njust the core (not counting the various drivers).\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "e5dcdd80a60627371f40797426273048630dc8ca",
      "tree": "1621f68394ceaa4da86d89c6da3b93fd306415fc",
      "parents": [
        "3ec67ac1a399d576d48b0736096bcce7721fe3cf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Sep 09 16:23:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:09 2005 -0700"
      },
      "message": "[PATCH] md: fail IO request to md that require a barrier.\n\nmd does not yet support BIO_RW_BARRIER, so be honest about it and fail\n(-EOPNOTSUPP) any such requests.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1eb29128c644581fa51f822545921394ad4f719f",
      "tree": "936f6c517e2d8acd927a0b9e30ab07ed8b9ae58f",
      "parents": [
        "030babac6ae54df64ae3bba4685ecb1d8d8dd8c3"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Fri Jul 15 03:56:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 15 09:54:50 2005 -0700"
      },
      "message": "[PATCH] Fix raid0\u0027s attempt to divide by 64bit numbers\n\nApparently sector_div is only guaranteed to work with a 32bit divisor, even\non 64bit architectures.  So allow for this in raid0.\n\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "990a8baf568ca1d0ae65e59783ff821794118d07",
      "tree": "1fe187b2f119f7a9d96d56380b211f9ddb9f8390",
      "parents": [
        "8a5e9cf1d6626586ff08e49f400a006a9f0c3275"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Tue Jun 21 17:17:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:48 2005 -0700"
      },
      "message": "[PATCH] md: remove unneeded NULL checks before kfree\n\nThis patch removes some unneeded checks of pointers being NULL before\ncalling kfree() on them.  kfree() handles NULL pointers just fine, checking\nfirst is pointless.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
