diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-03-20 06:27:18 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-03-20 06:27:18 -0400 |
commit | 4958134df54c2c84e9c22ea042761d439164d26e (patch) | |
tree | 503177afab11f7d25b12a84ce25b481d305c51ba /drivers/md/raid5.h | |
parent | c4f528795d1add8b63652673f7262729f679c6c1 (diff) | |
parent | c698ca5278934c0ae32297a8725ced2e27585d7f (diff) |
Merge 4.16-rc6 into tty-next
We want the serial/tty fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r-- | drivers/md/raid5.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h index 2e6123825095..3f8da26032ac 100644 --- a/drivers/md/raid5.h +++ b/drivers/md/raid5.h | |||
@@ -450,6 +450,18 @@ enum { | |||
450 | * HANDLE gets cleared if stripe_handle leaves nothing locked. | 450 | * HANDLE gets cleared if stripe_handle leaves nothing locked. |
451 | */ | 451 | */ |
452 | 452 | ||
453 | /* Note: disk_info.rdev can be set to NULL asynchronously by raid5_remove_disk. | ||
454 | * There are three safe ways to access disk_info.rdev. | ||
455 | * 1/ when holding mddev->reconfig_mutex | ||
456 | * 2/ when resync/recovery/reshape is known to be happening - i.e. in code that | ||
457 | * is called as part of performing resync/recovery/reshape. | ||
458 | * 3/ while holding rcu_read_lock(), use rcu_dereference to get the pointer | ||
459 | * and if it is non-NULL, increment rdev->nr_pending before dropping the RCU | ||
460 | * lock. | ||
461 | * When .rdev is set to NULL, the nr_pending count checked again and if | ||
462 | * it has been incremented, the pointer is put back in .rdev. | ||
463 | */ | ||
464 | |||
453 | struct disk_info { | 465 | struct disk_info { |
454 | struct md_rdev *rdev, *replacement; | 466 | struct md_rdev *rdev, *replacement; |
455 | struct page *extra_page; /* extra page to use in prexor */ | 467 | struct page *extra_page; /* extra page to use in prexor */ |