title: What are inode generation numbers?
body: <p>I'm planning to implement a FUSE filesystem using low-level API and currently trying to understand the <code>fuse_entry_param</code> structure.</p>
  <p>I wonder what <code>unsigned long fuse_entry_param::generation</code> actually means. <a href="https://web.archive.org/web/20150910165818/http://fuse.sourceforge.net/doxygen/structfuse__entry__param.html#a6481786ffc9fcf968df41953d3f0bf98" rel="nofollow noreferrer">Documentation says</a> just that <code>ino</code>/<code>generation</code> pair should be unique for the filesystem's lifetime, but does not go into any details.</p>
  <p>What's the semantics of inode generations and how they are used?</p>
  <p>For example, can I just consider <code>generation</code> as an additional bit of <code>ino</code> (like some sort of namespace) and use them freely to map arbitrary lifetime-unique 128-bit (<code>2*sizeof(unsigned long)</code> on x86_64) values to inodes? Or are generations meant to be only incremented sequentially? What happens when inode numbers collide, but their generation numbers differ?</p>