commit | 64590f45ddc7147fa1968147a1f5b5c436b728fe | [log] [tgz] |
---|---|---|
author | NeilBrown <neilb@suse.de> | Mon Dec 15 12:56:57 2014 +1100 |
committer | NeilBrown <neilb@suse.de> | Wed Feb 04 08:35:52 2015 +1100 |
tree | c33e8ce09d739bac929e8ca943a253cb03cafd12 | |
parent | 5c675f83c68fbdf9c0e103c1090b06be747fa62c [diff] |
md: make merge_bvec_fn more robust in face of personality changes. There is no locking around calls to merge_bvec_fn(), so it is possible that calls which coincide with a level (or personality) change could go wrong. So create a central dispatch point for these functions and use rcu_read_lock(). If the array is suspended, reject any merge that can be rejected. If not, we know it is safe to call the function. Signed-off-by: NeilBrown <neilb@suse.de>