This looks like it will start a fetch on all of teh stray dirs at once, and each will get a completion that will call back into scan and refetch any dir that is > the inode.  That would mean the largest dir can get up to NUM_STRAY (worst case) fetch calls + and queued completions?

Also, what is the retry really needed for anyway?