Merge tag 'md/4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Oct 2016 16:45:43 +0000 (09:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Oct 2016 16:45:43 +0000 (09:45 -0700)
Pull MD updates from Shaohua Li:
 "This update includes:

   - new AVX512 instruction based raid6 gen/recovery algorithm

   - a couple of md-cluster related bug fixes

   - fix a potential deadlock

   - set nonrotational bit for raid array with SSD

   - set correct max_hw_sectors for raid5/6, which hopefuly can improve
     performance a little bit

   - other minor fixes"

* tag 'md/4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
  md: set rotational bit
  raid6/test/test.c: bug fix: Specify aligned(alignment) attributes to the char arrays
  raid5: handle register_shrinker failure
  raid5: fix to detect failure of register_shrinker
  md: fix a potential deadlock
  md/bitmap: fix wrong cleanup
  raid5: allow arbitrary max_hw_sectors
  lib/raid6: Add AVX512 optimized xor_syndrome functions
  lib/raid6/test/Makefile: Add avx512 gen_syndrome and recovery functions
  lib/raid6: Add AVX512 optimized recovery functions
  lib/raid6: Add AVX512 optimized gen_syndrome functions
  md-cluster: make resync lock also could be interruptted
  md-cluster: introduce dlm_lock_sync_interruptible to fix tasks hang
  md-cluster: convert the completion to wait queue
  md-cluster: protect md_find_rdev_nr_rcu with rcu lock
  md-cluster: clean related infos of cluster
  md: changes for MD_STILL_CLOSED flag
  md-cluster: remove some unnecessary dlm_unlock_sync
  md-cluster: use FORCEUNLOCK in lockres_free
  md-cluster: call md_kick_rdev_from_array once ack failed

1  2 
drivers/md/raid5.c
include/linux/raid/pq.h
lib/raid6/Makefile
lib/raid6/algos.c

Simple merge
@@@ -102,8 -102,10 +102,11 @@@ extern const struct raid6_calls raid6_a
  extern const struct raid6_calls raid6_avx2x1;
  extern const struct raid6_calls raid6_avx2x2;
  extern const struct raid6_calls raid6_avx2x4;
+ extern const struct raid6_calls raid6_avx512x1;
+ extern const struct raid6_calls raid6_avx512x2;
+ extern const struct raid6_calls raid6_avx512x4;
  extern const struct raid6_calls raid6_tilegx8;
 +extern const struct raid6_calls raid6_s390vx8;
  
  struct raid6_recov_calls {
        void (*data2)(int, size_t, int, int, void **);
  extern const struct raid6_recov_calls raid6_recov_intx1;
  extern const struct raid6_recov_calls raid6_recov_ssse3;
  extern const struct raid6_recov_calls raid6_recov_avx2;
+ extern const struct raid6_recov_calls raid6_recov_avx512;
 +extern const struct raid6_recov_calls raid6_recov_s390xc;
  
  extern const struct raid6_calls raid6_neonx1;
  extern const struct raid6_calls raid6_neonx2;
Simple merge
Simple merge