[dm-devel] [PATCH ] drivers/md: use proper rcu accessor

Mike Snitzer snitzer at redhat.com
Sun Nov 23 16:53:59 UTC 2014


On Sun, Nov 23, 2014 at 11:40 AM, Eric Dumazet <eric.dumazet at gmail.com> wrote:
> From: Eric Dumazet <edumazet at google.com>
>
> rcu_dereference() should be used in sections protected by rcu_read_lock.
>
> For writers, holding some kind of mutex or lock,
> rcu_dereference_protected() is the way to go, adding explicit lockdep
> bits.
>
> In __unbind(), although there is no mutex or lock held, we are about
> to free the mapped device, so can use the constant '1' instead of a
> lockdep_is_held()

That isn't true.  dm_hash_remove_all() -- which calls dm_destroy --
holds _hash_lock.  Why leave __unbind() brittle in the face of future
DM locking changes?

> Reported-by: Kirill A. Shutemov <kirill at shutemov.name>
> Signed-off-by: Eric Dumazet <edumazet at google.com>
> Fixes: 33423974bfc1 ("dm: Use rcu_dereference() for accessing rcu pointer")
> Cc: Pranith Kumar <bobby.prani at gmail.com>

Hi Eric,

I'll pick this up once I get clarification for why your __unbind
change is safe.. but it really would've helped if you cc'd
dm-devel at redhat.com or myself directly (not a single person that you
cc'd actively maintains DM).

Hopefully these DM rcu "fixes" are finished after this.

Thanks,
Mike




More information about the dm-devel mailing list