[PULL REQUEST] md updates for 3.5

From: NeilBrown
Date: Tue May 22 2012 - 23:24:24 EST



Hi Linus,
It's been a busy cycle for md - lots of fun stuff here.. if you like this
king of thing :-)

Thanks,
NeilBrown


The following changes since commit b0d634d5683f0b186b242ce6a4f3b041edb8b956:

md/raid10: fix transcription error in calc_sectors conversion. (2012-05-19 09:01:13 +1000)

are available in the git repository at:

git://neil.brown.name/md/ tags/md-3.5

for you to fetch changes up to 1dff2b87a34a1ac1d1898ea109bf97ed396aca53:

md/bitmap: record the space available for the bitmap in the superblock. (2012-05-22 13:55:34 +1000)

----------------------------------------------------------------
md updates for 3.5

Main features:
- RAID10 arrays can be reshapes - adding and removing devices and
changing chunks (not 'far' array though)
- allow RAID5 arrays to be reshaped with a backup file (not tested
yet, but the priciple works fine for RAID10).
- arrays can be reshaped while a bitmap is present - you no longer
need to remove it first
- SSSE3 support for RAID6 syndrome calculations

and of course a number of minor fixes etc.

----------------------------------------------------------------
Jim Kukunas (7):
crypto: wait for a full jiffy in do_xor_speed
crypto: disable preemption while benchmarking RAID5 xor checksumming
raid5: add AVX optimized RAID5 checksumming
lib/raid6: fix test program build
lib/raid6: Add SSSE3 optimized recovery functions
lib/raid6: update test program for recovery functions
lib/raid6: cleanup gen_syndrome function selection

Jonathan Brassow (4):
DM RAID: Set recovery flags on resume
DM RAID: Record and handle missing devices
DM RAID: Use md_error() in place of simply setting Faulty bit
MD RAID1: Further conditionalize 'fullsync'

NeilBrown (39):
md: allow a reshape operation to be reversed.
md: add possibility to change data-offset for devices.
md/raid5: Use correct data_offset for all IO.
md/raid5: allow for change in data_offset while managing a reshape.
md/raid10: collect some geometry fields into a dedicated structure.
md: teach sync_page_io about new_data_offset.
md: use resync_max_sectors for reshape as well as resync.
md/raid10: Introduce 'prev' geometry to support reshape.
md/raid10: split out interpretation of layout to separate function.
md/raid10: add reshape support
md: dm-raid should call helper function to clear rdev.
md: move freeing of badblocks.page into md_rdev_clear
md/bitmap: disentangle two different 'pending' flags.
md/bitmap: add new 'space' attribute for bitmaps.
md/bitmap: allow a bitmap with no backing storage.
md/bitmap: centralise allocation of bitmap file pages.
md/bitmap: change *_page_attr() to take a page number, not a page.
md/bitmap: move some fields of 'struct bitmap' into a 'storage' substruct.
md/bitmap: store bytes in file rather than just in last page.
md/bitmap: separate bitmap file allocation to its own function.
md/bitmap: move storage allocation from bitmap_load to bitmap_create.
md/bitmap: remove bitmap_mask_state
md/bitmap: remove single-bit manipulation on sb->state
md/bitmap: use set_bit, test_bit, etc for operation on bitmap->flags.
md/bitmap: convert some spin_lock_irqsave to spin_lock_irq
md/bitmap: remove async freeing of bitmap file.
md/bitmap: merge bitmap_file_unmap and bitmap_file_put.
md/bitmap: make _page_attr bitops atomic.
md/bitmap: make bitmap bitops atomic.
md/bitmap: create a 'struct bitmap_counts' substructure of 'struct bitmap'
md/bitmap: use DIV_ROUND_UP instead of open-code
md/bitmap: add bitmap_resize function to allow bitmap resizing.
md/bitmap: make sure reshape request are reflected in superblock.
md: allow array to be resized while bitmap is present.
md/raid10: resize bitmap when required during reshape.
md/raid5: Allow reshape while a bitmap is present.
md/raid5: improve removal of extra devices after reshape.
md/raid10: Remove extras after reshape to smaller number of devices.
md/bitmap: record the space available for the bitmap in the superblock.

Shaohua Li (3):
md: using GFP_NOIO to allocate bio for flush request
raid5: remove unused variables
raid5: support sync request

Yuanhan Liu (1):
md: check the return of mddev_find()

majianpeng (2):
md/raid1: allow fix_read_error to read from recovering device.
md/raid10: Fix memleak in r10buf_pool_alloc

arch/x86/Makefile | 5 +-
arch/x86/include/asm/xor_32.h | 6 +-
arch/x86/include/asm/xor_64.h | 8 +-
arch/x86/include/asm/xor_avx.h | 214 +++++++
crypto/xor.c | 13 +-
drivers/md/bitmap.c | 1100 +++++++++++++++++++---------------
drivers/md/bitmap.h | 60 +-
drivers/md/dm-raid.c | 22 +-
drivers/md/md.c | 370 ++++++++++--
drivers/md/md.h | 12 +-
drivers/md/raid1.c | 22 +-
drivers/md/raid10.c | 1281 +++++++++++++++++++++++++++++++++++-----
drivers/md/raid10.h | 34 +-
drivers/md/raid5.c | 252 +++++---
drivers/md/raid5.h | 7 +
include/linux/raid/md_p.h | 15 +-
include/linux/raid/pq.h | 18 +-
lib/raid6/Makefile | 2 +-
lib/raid6/algos.c | 127 ++--
lib/raid6/mktables.c | 25 +
lib/raid6/recov.c | 15 +-
lib/raid6/recov_ssse3.c | 335 +++++++++++
lib/raid6/test/Makefile | 2 +-
lib/raid6/test/test.c | 32 +-
lib/raid6/x86.h | 15 +-
25 files changed, 3124 insertions(+), 868 deletions(-)
create mode 100644 arch/x86/include/asm/xor_avx.h
create mode 100644 lib/raid6/recov_ssse3.c

Attachment: signature.asc
Description: PGP signature