Swen, I've been looking at your patch, and it has some good ideas. For some odd reason, I awoke at 1:30 am thinking about it, and got up and wrote some code.
I've taken another patch of mine, and added the SVCXPRT into the rpc_dplx_rec, eliminating the refcnt entirely (using the SVCXPRT). After all, there's no reason to zalloc them separately. They always are created at the same time. So I'm wondering about your thoughts on the locking. They seem redundant. I'm thinking about changing REC_LOCK to use the SVCXPRT xp_lock, instead. There's a spot in the existing rpc_dplx_rec creation code where there's a timing hole in the code after an existing one is found so the extra refcount is decremented. Another process could also decrement and free, and there could be a pointer into freed memory. Unifying the lock would be one solution (better and faster than the usual solution with two locks). The SVCXPRT lock code has a lot more debugging and testing, too. Any other related ideas? BTW, I got rid of the &oflags, too. Changed it to a callback function.... ;) ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel