Hello Paul, hello Pádraig, thanks a lot for your analysis and explanations!
> With that in mind, the code change you proposed is reasonably innocuous, > although it slows things down a bit in the usual case. Not sure it's > worth doing (I guess it does fix a race but there are other unfixable > races in this area....). I first supposed that the effect was caused by an off-by-one problem, but after understanding it, I think you are right here to ask if changing the behaviour is worth doing. Looking at $ ls {38..42} ls: cannot access '41': Too many levels of symbolic links ls: cannot access '42': Too many levels of symbolic links 38 39 40 shows that there would be more issues to consider in this case. Martin