Re: [PATCH 15/25] memremap: provide an optional internal refcount in struct dev_pagemap

From: Christoph Hellwig
Date: Thu Jun 27 2019 - 04:52:08 EST


On Wed, Jun 26, 2019 at 02:47:50PM -0700, Ira Weiny wrote:
> > +
> > + init_completion(&pgmap->done);
> > + error = percpu_ref_init(&pgmap->internal_ref,
> > + dev_pagemap_percpu_release, 0, GFP_KERNEL);
> > + if (error)
> > + return ERR_PTR(error);
> > + pgmap->ref = &pgmap->internal_ref;
> > + } else {
> > + if (!pgmap->ops || !pgmap->ops->kill || !pgmap->ops->cleanup) {
> > + WARN(1, "Missing reference count teardown definition\n");
> > + return ERR_PTR(-EINVAL);
> > + }
>
> After this series are there any users who continue to supply their own
> reference object and these callbacks?

Yes, fsdax uses the block layer request_queue reference count.