On 9/16/22 4:59 PM, Jia Zhu wrote: > +static > +struct erofs_fscache *erofs_fscache_domain_init_cookie(struct super_block *sb, > + char *name, bool need_inode) > +{ > + int err; > + struct inode *inode; > + struct erofs_fscache *ctx; > + struct erofs_domain *domain = EROFS_SB(sb)->domain; > + > + ctx = erofs_fscache_acquire_cookie(sb, name, need_inode); > + if (IS_ERR(ctx)) > + return ctx; > + > + ctx->name = kstrdup(name, GFP_KERNEL); > + if (!ctx->name) { > + err = -ENOMEM; > + goto out; > + } > + > + inode = new_inode(erofs_pseudo_mnt->mnt_sb); > + if (!inode) { > + kfree(ctx->name); ^ This line can be omitted since erofs_fscache_relinquish_cookie() will be called. > + err = -ENOMEM; > + goto out; > + } > + > + ctx->domain = domain; > + ctx->anon_inode = inode; > + inode->i_private = ctx; > + refcount_inc(&domain->ref); > + return ctx; > +out: > + erofs_fscache_relinquish_cookie(ctx); > + return ERR_PTR(err); > +} Otherwise LGTM. Reviewed-by: Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx> -- Thanks, Jingbo