have to use generic routines as we may be crossing a mount point