I had back ported ubifs_shrinker and it does get called from __alloc_pages as it should. Here's a failing case: If /var/log is on the nand, and I do a (cd /var/log; tar -cvf /someotherdevice.tar .) I notice ubifs_shrinker get called. nr is 128, and clean_zn_cnt starts out at 1500 or so. But after tar has run a bit, clean_zn_cnt bobbles around 400 or so. If I then kill the tar, and wait about a minuite, clean_zn_cnt makes it back up to the 1500. The system I'm running on may not have enough memory to support PEAK UBIFS demands. Where is the code that recycles the memory? Is it the per file system daemons that get created on mount? How can I change the memory hold timers in UBIFS so it'll let go a lot earlier? I can't get it to crash when the CONFIG_DEBUG_SLAB_LEAK is on as the system runs that much slower. Attched are cats of proc/slabinfo.txt and slab_allocators.txt Cal Page