Jia Zhu <zhujia.zj@xxxxxxxxxxxxx> wrote: > + struct cachefiles_object *object = > + ((struct cachefiles_ondemand_info *)work)->object; container_of(). > + continue; > + } else if (cachefiles_ondemand_object_is_reopening(object)) { The "else" is unnecessary. > +static void ondemand_object_worker(struct work_struct *work) > +{ > + struct cachefiles_object *object = > + ((struct cachefiles_ondemand_info *)work)->object; > + > + cachefiles_ondemand_init_object(object); > +} I can't help but feel there's some missing exclusion/locking. This feels like it really ought to be driven from the fscache object state machine.