On Thu, Apr 27, 2017 at 05:52:44PM +0200, Laurent Dufour wrote: > +static inline bool vma_is_dead(struct vm_area_struct *vma, unsigned int > sequence) > +{ > + int ret = RB_EMPTY_NODE(&vma->vm_rb); > + unsigned seq = ACCESS_ONCE(vma->vm_sequence.sequence); > + > + /* > + * Matches both the wmb in write_seqlock_{begin,end}() and > + * the wmb in vma_rb_erase(). > + */ > + smp_rmb(); > + > + return ret || seq != sequence; > +}
Hang on, this isn't vma_is_dead(). This is vma_has_changed() (possibly from live to dead, but also possibly grown or shrunk; see your earlier patch).