md-cluster: Fix adding of new disk with new reload code
authorGoldwyn Rodrigues <rgoldwyn@suse.com>
Thu, 1 Oct 2015 18:20:27 +0000 (13:20 -0500)
committerGoldwyn Rodrigues <rgoldwyn@suse.com>
Mon, 12 Oct 2015 08:35:30 +0000 (03:35 -0500)
commitdbb64f8635f5d68192108b88759a34633a4bd558
tree1159afed1de7314ce0d412469031832d0295c905
parentc186b128cda5a246da25f474e4689cb2bfacfcac
md-cluster: Fix adding of new disk with new reload code

Adding the disk worked incorrectly with the new reload code. Fix it:

 - No operation should be performed on rdev marked as Candidate
 - After a metadata update operation, kick disk if role is 0xfffe
   else clear Candidate bit and continue with the regular change check.
 - Saving the mode of the lock resource to check if token lock is already
   locked, because it can be called twice while adding a disk. However,
   unlock_comm() must be called only once.
 - add_new_disk() is called by the node initiating the --add operation.
   If it needs to be canceled, call add_new_disk_cancel(). The operation
   is completed by md_update_sb() which will write and unlock the
   communication.

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
drivers/md/md-cluster.c
drivers/md/md-cluster.h
drivers/md/md.c