diff options
author | Guoqing Jiang <gqjiang@suse.com> | 2018-07-02 16:26:24 +0800 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2018-07-05 11:17:01 -0700 |
commit | 010228e4a932ca1e8365e3b58c8e1e44c16ff793 (patch) | |
tree | f8d8ae841370481e52b254a50f54b23b44157cb1 /drivers/md/md.h | |
parent | 06c85639897cf3ea6a11c5cb6929fb0d9d7efea5 (diff) | |
download | linux-010228e4a932ca1e8365e3b58c8e1e44c16ff793.tar.gz linux-010228e4a932ca1e8365e3b58c8e1e44c16ff793.tar.bz2 linux-010228e4a932ca1e8365e3b58c8e1e44c16ff793.zip |
md-cluster: clear another node's suspend_area after the copy is finished
When one node leaves cluster or stops the resyncing
(resync or recovery) array, then other nodes need to
call recover_bitmaps to continue the unfinished task.
But we need to clear suspend_area later after other
nodes copy the resync information to their bitmap
(by call bitmap_copy_from_slot). Otherwise, all nodes
could write to the suspend_area even the suspend_area
is not handled by any node, because area_resyncing
returns 0 at the beginning of raid1_write_request.
Which means one node could write suspend_area while
another node is resyncing the same area, then data
could be inconsistent.
So let's clear suspend_area later to avoid above issue
with the protection of bm lock. Also it is straightforward
to clear suspend_area after nodes have copied the resync
info to bitmap.
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/md.h')
0 files changed, 0 insertions, 0 deletions