Есть ли способ отключить mtime файловой системы?
Есть независимая опция noatime от файловой системы, но нет «nomtime». Также в документации по файловой системе для ext4 и / или btrfs я не смог найти этого.
Это существует?
В ядре такой опции нет.
включить / linux / statfs.h:
#define ST_NOATIME 0x0400 /* do not update access times */
#define ST_NODIRATIME 0x0800 /* do not update directory access times */
#define ST_RELATIME 0x1000 /* update atime relative to mtime/ctime */
Я не могу придумать ни одного функциональный цель для этого варианта, отличная от целей тестирования (ваш вариант использования).
Ваши варианты:
Я обнаружил, что есть S_NOCMTIME
флаг в include/linux/fs.h
:
#define S_NOCMTIME 128 /* Do not update file c/mtime */
который, кажется, делает то, что нужно. По-видимому, он не доступен пользователям, но есть примеры его использования (просто используйте grep), так что можно взломать небольшой патч для соответствующей файловой системы.
Фактический вариант использования - избегать обновлений inode при записи небольших фрагментов данных в кольцевой буфер фиксированного размера (например, чтобы избежать ненужных циклов стирания в хранилище на основе NAND).