When a number of files are in need of self-heal, the client blocks once background-self-heal count is exceeded, instead healing the next lookup in the foreground, blocking the client. Since there is a self-heal daemon, foreground heals should be eliminated. If the client background-self-heal queue is full, ensure that the link exists in xattrop and give the FD to the healthy brick so the client can move on without blocking.
From 3.6.x there is no foreground self-healing. Did you run into this in the latest releases Joe?