Não, você não precisa executar sync
antes de umount
. umount
completará todas as gravações pendentes antes de realmente desmontar o sistema de arquivos. Ele também se recusará a desmontar se algum processo ainda estiver usando o sistema de arquivos, por exemplo. como diretório de trabalho atual.
Editar : a desmontagem é tratada principalmente em fs/namespace.c
. Você não encontrará nenhuma chamada explícita para sync
, mas verá comentários ao longo da linha "marque este ponto de montagem para desmontar, recuse quaisquer outras operações nele e, se todas as operações forem concluídas, desmonte". Você também pode ver verificações explícitas em uso.
Você pode facilmente testar a si mesmo que umount
realmente termina todas as operações pendentes: Monte um dispositivo USB lento, copie um arquivo grande para ele e chame diretamente umount
após cp
. Levará vários segundos até você ver um novo prompt e, se executar dstat
etc. em outra janela, você verá as operações de gravação que ainda estão ocorrendo. Esse é exatamente o mesmo comportamento como se você tivesse digitado sync
.