I've just completed a small modification to the patch for fdesc that inlined the fdesc_attr() function into the fdesc_getattr() function since that's now the only use. The main benefit of this is that originally the code that grabbed attributes for stat(2) was in there, and it was not passed the vnode passed originally to fdesc_getattr().
Now open sockets and pipes are properly given inode numbers based on the number assigned to them by fdesc_lookup, which is unique for each file descriptor (it is FD_DESC+fileno). The patch is looking pretty good and I believe I've addressed all of the issues I can remember right now.
The patch is available here and will be until it is committed.