On Fri, Dec 20, 2019 at 07:35:38PM +0200, Amir Goldstein wrote: > On Fri, Dec 20, 2019 at 6:46 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > > > On Fri, Dec 20, 2019 at 03:41:11PM +0200, Amir Goldstein wrote: > > > Suggestion: > > > 1. Extend the kmem_cache API to let the ctor() know if it is > > > initializing an object > > > for the first time (new page) or recycling an object. > > > > Uh, what? The ctor is _only_ called when new pages are allocated. > > Part of the contract with the slab user is that objects are returned to > > the slab in an initialised state. > > Right. I mixed up the ctor() with alloc_inode(). > So is there anything stopping us from reusing an existing non-zero > value of i_ino in shmem_get_inode()? for recycling shmem ino > numbers? I think that would be an excellent solution to the problem! At least, I can't think of any problems with it.