Maxim Patlasov <[email protected]> writes:

> The implementation of CBT (blk-cbt.c) RCU-protects q->cbt, not cbt->map[ixd].
>
> In v2:
>  - fixed one more place with redundant rcu_dereference
>
> Signed-off-by: Maxim Patlasov <[email protected]>
ACK.
> ---
>  block/blk-cbt.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/block/blk-cbt.c b/block/blk-cbt.c
> index 7a4303f..b66f513 100644
> --- a/block/blk-cbt.c
> +++ b/block/blk-cbt.c
> @@ -96,7 +96,7 @@ static int __blk_cbt_set(struct cbt_info  *cbt, blkcnt_t 
> block,
>               unsigned long len = min_t(unsigned long, BITS_PER_PAGE - off,
>                                         count);
>  
> -             page = rcu_dereference(cbt->map[idx]);
> +             page = cbt->map[idx];
>               if (page) {
>                       spin_lock_page(page);
>                       set_bits(page_address(page), off, len, set);
> @@ -394,7 +394,7 @@ static void cbt_find_next_extent(struct cbt_info *cbt, 
> blkcnt_t block, struct cb
>       idx = block >> (PAGE_SHIFT + 3);
>       while (block < cbt->block_max) {
>               off = block & (BITS_PER_PAGE -1);
> -             page = rcu_dereference(cbt->map[idx]);
> +             page = cbt->map[idx];
>               if (!page) {
>                       if (found)
>                               break;

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to