LINUX.ORG.RU

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

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

Без анальных плясок — никак.

Можно воспользоваться тем фактом, что I/O offset — это часть file description, а не file descriptor. Пишем программу-обёртку, которая будет хранить дубликаты файловых дескрипторов, полученных после open. Время от времени проверяем размер, если он выше порога — вручную копируем диапазон с 5M до конца по смещению 0 и делаем lseek + truncate.

Проблема в том, что тут огромная такая дыра с гонкой.


UPD: А, можешь ещё попробовать fallocate(FALLOC_FL_COLLAPSE_RANGE) + lseek(SEEK_CUR, -5*1024*1024). Хотя тут тоже гонка, но гораздо меньше.

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

Без анальных плясок — никак.

Можно воспользоваться тем фактом, что I/O offset — это часть file description, а не file descriptor. Пишем программу-обёртку, которая будет хранить дубликаты файловых дескрипторов, полученных после open. Время от времени проверяем размер, если он выше порога — вручную копируем диапазон с 5M до конца по смещению 0 и делаем lseek + truncate.

Проблема в том, что тут огромная такая дыра с гонкой.