Re: [PATCH 09/15] fs: iomap based fiemap implementation

Christoph Hellwig
2016-05-24T13:11:06Z

On Mon, May 23, 2016 at 04:09:26PM -0400, Bob Peterson wrote:
> I've been looking at this again. Where are the calls to the fs-specific bits
> for fiemap?

In the iomap_ops structure passed to iomap_fiemap.

> It looks like iomap_fiemap calls iomap_apply, which calls
> iomap_fiemap_actor, but that doesn't call any ops->iomap_get_iomap or similar.
> It calls the iomap_begin (which BTW has a comment that says "Execute a iomap
> write" which is probably wrong and should be more generic, as for cases like
> fiemap) and it calls iomap_end. But it never calls an fs-specific actor
> anywhere. Am I missing something? My earlier version passed in the actor
> function, as per Dave Chinner's request, but yours doesn't.

The iomap_begin callback is where you do the mapping. the iomap_end
callback does any required cleanup, which in case of GFS2 probably
would be dropping the cluster lock protecting the mapping.