Re: [patch 14/23] inodes: Support generic defragmentation

Christoph Lameter
2007-11-07T19:00:29Z

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1153 bytes --]

On Wed, 7 Nov 2007, Jörn Engel wrote:

> > The pointer is for communication between the get and kick methods. get()
> > can modify kick() behavior by returning a pointer to a data structure or
> > using the pointer to set a flag. F.e. get() may discover that there is an
> > unreclaimable object and set a flag that causes kick to simply undo the
> > refcount increment. get() may build a map for the objects and indicate in
> > the map special treatment.
>
> Is there a get/kick pair that actually does this? So far I haven't
> found anything like it.

Hmmm.. Nothing uses it at this point. I went through a series of get/kicks
during development. Some needed it. I suspect that we will need it when we
implement reallocation instead of simply reclaiming. It is also necessary
if we get into the situation where we want to optimize the reclaim. At
that point the kick method needs to know how far get() got before the
action was aborted in order to fix up only certain refcounts.

> Also, something vaguely matching that paragraph might make sense in a
> kerneldoc header to the function. ;)

Its described in slab.h