Eu não acho que é possível ter E / S direta sem usar dispositivos O_DIRECT ou brutos.
Usar a opção sync on mount não irá ignorar o cache de buffer.
Porque você não pode configurá-lo no sistema de arquivos, você teria que modificar seu programa para usar
O_DIRECT ou mmap () e madvise () para obter um comportamento semelhante.
"Eu sei que um pode abrir um arquivo usando o sinalizador O_DIRECT para conseguir isso, mas o meu programa não é o usuário do dispositivo de bloco, um sistema de arquivos é."
Não se preocupe com o fato de o seu programa não ser o usuário, O_DIRECT funciona para o open () que é o arquivo
baseado de qualquer maneira.