On Mon, 19 February 2007 17:05:55 -0600, Dave Kleikamp wrote: > > It'd be nice if you could drop s_w_mutex when the garbage collector > calls i_get(). Not possible. Garbage collection only happens when space is getting tight. At that moment all writes must be serialized or this race will be the least of my problems. :( > Otherwise, you may be able to call ilookup5_nowait() in the garbage > collector, and skip that inode if I_LOCK is set. Also not possible. I cannot skip that inode, or again this race will be a minor problem. The inode exists on the medium and I must get it by some means. Re-reading it from the medium is fine, writing is not and waiting for the write to happen brings me back to square one. It is a nasty problem that has been haunting me for about a year now. For a while I tried ilookup5_nowait() and just used the inode in spite of the lock. But that will explode spectacularly when racing against generic_drop_inode(). Double-caching or a common lock seem to be the only solutions. Jörn -- My second remark is that our intellectual powers are rather geared to master static relations and that our powers to visualize processes evolving in time are relatively poorly developed. -- Edsger W. Dijkstra - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html