On Fri, 8 Mar 2019, Tycho Andersen wrote: > On Fri, Mar 08, 2019 at 03:14:13PM +1100, Tobin C. Harding wrote: > > diff --git a/mm/slab_common.c b/mm/slab_common.c > > index f9d89c1b5977..754acdb292e4 100644 > > --- a/mm/slab_common.c > > +++ b/mm/slab_common.c > > @@ -298,6 +298,10 @@ int slab_unmergeable(struct kmem_cache *s) > > if (!is_root_cache(s)) > > return 1; > > > > + /* > > + * s->isolate and s->migrate imply s->ctor so no need to > > + * check them explicitly. > > + */ > > Shouldn't this implication go the other way, i.e. > s->ctor => s->isolate & s->migrate
A cache can have a constructor but the object may not be movable (I.e. currently dentries and inodes).