Я планирую реализовать файловую систему FUSE с использованием низкоуровневого API и в настоящее время пытается понять структуру fuse_entry_param
.Что такое номера генерации inode?
Интересно, что именно unsigned long fuse_entry_param::generation
на самом деле означает. Documentation says только то, что пара ino
/generation
должна быть уникальной для жизни файловой системы, но не вдаваться в подробности.
Какова семантика поколений inode и как они используются?
Например, можно просто рассмотреть generation
как дополнительные биты ino
(как своего рода пространство имен) и использовать их свободно карту произвольно пожизненный уникальные 128-битный (2*sizeof(unsigned long)
на x86_64) значениях дескрипторов? Или поколения должны только последовательно увеличиваться? Что происходит, когда числа inode сталкиваются, но их номера генерации отличаются?