Commit e19508fa authored by Guoqing Jiang's avatar Guoqing Jiang Committed by NeilBrown

md-cluster: update comments for MD_CLUSTER_SEND_LOCKED_ALREADY

1. fix unbalanced parentheses.
2. add more description about that MD_CLUSTER_SEND_LOCKED_ALREADY
   will be cleared after set it in add_new_disk.
Signed-off-by: default avatarGuoqing Jiang <gqjiang@suse.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.com>
parent 8b9277c8
...@@ -53,11 +53,12 @@ struct resync_info { ...@@ -53,11 +53,12 @@ struct resync_info {
* accomodate lock and hold. See next comment. * accomodate lock and hold. See next comment.
*/ */
#define MD_CLUSTER_SEND_LOCK 4 #define MD_CLUSTER_SEND_LOCK 4
/* If cluster operations must lock the communication channel, /* If cluster operations (such as adding a disk) must lock the
* so as to perform extra operations (and no other operation * communication channel, so as to perform extra operations
* is allowed on the MD, such as adding a disk. Token needs * (update metadata) and no other operation is allowed on the
* to be locked and held until the operation completes with * MD. Token needs to be locked and held until the operation
* a md_update_sb(), which would eventually release the lock. * completes witha md_update_sb(), which would eventually release
* the lock.
*/ */
#define MD_CLUSTER_SEND_LOCKED_ALREADY 5 #define MD_CLUSTER_SEND_LOCKED_ALREADY 5
...@@ -1021,6 +1022,18 @@ static int add_new_disk(struct mddev *mddev, struct md_rdev *rdev) ...@@ -1021,6 +1022,18 @@ static int add_new_disk(struct mddev *mddev, struct md_rdev *rdev)
unlock_comm(cinfo); unlock_comm(cinfo);
else { else {
dlm_lock_sync(cinfo->no_new_dev_lockres, DLM_LOCK_CR); dlm_lock_sync(cinfo->no_new_dev_lockres, DLM_LOCK_CR);
/* Since MD_CHANGE_DEVS will be set in add_bound_rdev which
* will run soon after add_new_disk, the below path will be
* invoked:
* md_wakeup_thread(mddev->thread)
* -> conf->thread (raid1d)
* -> md_check_recovery -> md_update_sb
* -> metadata_update_start/finish
* MD_CLUSTER_SEND_LOCKED_ALREADY will be cleared eventually.
*
* For other failure cases, metadata_update_cancel and
* add_new_disk_cancel also clear below bit as well.
* */
set_bit(MD_CLUSTER_SEND_LOCKED_ALREADY, &cinfo->state); set_bit(MD_CLUSTER_SEND_LOCKED_ALREADY, &cinfo->state);
wake_up(&cinfo->wait); wake_up(&cinfo->wait);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment