diff options
author | Wolfram Sang <wsa@the-dreams.de> | 2018-03-24 13:39:18 +0100 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2018-03-24 13:39:18 +0100 |
commit | 0b884c22c5b7f6ef985b3d39fed06ad1f8296042 (patch) | |
tree | 74504e80ad62cb0acabdfa796348d001d5d1a2a4 /drivers/md/raid5.h | |
parent | eb49778c8c6cbe075cf90d741ccf16f674a8db4e (diff) | |
parent | 84e10623c0b9c81557918804f309d66aec86a233 (diff) | |
download | linux-0b884c22c5b7f6ef985b3d39fed06ad1f8296042.tar.gz linux-0b884c22c5b7f6ef985b3d39fed06ad1f8296042.tar.xz |
Merge tag 'at24-4.17-updates-for-wolfram' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-4.17
"three new special cases for device tree compatible strings"
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 { * HANDLE gets cleared if stripe_handle leaves nothing locked. */ +/* Note: disk_info.rdev can be set to NULL asynchronously by raid5_remove_disk. + * There are three safe ways to access disk_info.rdev. + * 1/ when holding mddev->reconfig_mutex + * 2/ when resync/recovery/reshape is known to be happening - i.e. in code that + * is called as part of performing resync/recovery/reshape. + * 3/ while holding rcu_read_lock(), use rcu_dereference to get the pointer + * and if it is non-NULL, increment rdev->nr_pending before dropping the RCU + * lock. + * When .rdev is set to NULL, the nr_pending count checked again and if + * it has been incremented, the pointer is put back in .rdev. + */ + struct disk_info { struct md_rdev *rdev, *replacement; struct page *extra_page; /* extra page to use in prexor */ |