Here is what I found out with more study: Within cachefs, "kmem_cache_alloc(cachefs_object_jar, ...)" is called in three places: tree-scan.c:"cachefs_scan_scanning_node()", interface.c:"cachefs_alloc_object()", and super.c:"cachefs_fill_super()". In "cachefs_scan_scanning_node()", "fscache_object_init()" is called shortly after "kmem_cache_alloc(cachefs_object_jar, ...)" is called. In "cachefs_alloc_object()", "fscache_object_init()" is called shortly after "kmem_cache_alloc(cachefs_object_jar, ...)" is called. Only in "cachefs_fill_super() is "fscache_object_init() not called. If I had just not done the "atomic inc" if the fcache_cache pointer was NULL, there would have been some other problem later because the other two places the kmem_cache_alloc is done would have caused the "atomic inc" to be done twice, sense "fscache_object_init()" was being called twice. So what I did was move the "fscache_object_init()" out of "cache_object_init_once()" and into "cache_fill_super()", the only place it wasn't being called already. So, that fixed that. Now on to the next problem :) -=# Paul #=- -- Linux-cachefs mailing list Linux-cachefs@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/linux-cachefs