LINUX.ORG.RU

История изменений

Исправление Eddy_Em, (текущая версия) :

У меня на телескопах куча демонов работает, которые таким же способом обновляют файлы для вендовозных машин: записал временный файл, закрыл его, потом сделал rename. Проверял — проблем не было.

Но, думаю, похоже, проблем не было из-за того, что у меня все те временные файлы имели размер меньше стандартного буфера в 4кБ. Попробую в следующий раз, как до работы доберусь (числа 17, наверное, только), воткнуть там таки fsync. Авось, получится...

Честно говоря, я наивно полагал, что если rename делается из того же процесса, в котором пишется файл, то и ядро корректно с файлом поступает. Похоже, это не так.

Вот хоть сиди, да читай исходники ядра ☹

Исходная версия Eddy_Em, :

У меня на телескопах куча демонов работает, которые таким же способом обновляют файлы для вендовозных машин: записал временный файл, закрыл его, потом сделал rename. Проверял — проблем не было.

Но, думаю, похоже, проблем не было из-за того, что у меня все те временные файлы имели размер меньше стандартного буфера в 4кБ. Попробую в следующий раз, как до работы доберусь (числа 17, наверное, только), воткнуть там таки fsync. Авось, получится...

Честно говоря, я наивно полагал, что если rename делается из того же процесса, в котором пишется файл, то и ядро корректно с файлом поступает. Похоже, это не так.