I am curious how and where Linux (and any operating system that make use of Inode for its file system) keep track of free inodes that can be used? When a new file is crated, which inode does the operating system assign it to? Things get more complex as files are continuously created and deleted. How in general an OS manage which inodes are free and which are used?
I would guess the inodes are structured like a free list, similar to a memory allocator. But when look at all descriptions on the inode structure I did not find a filed of pointer for "next available inode". I think this is some important issue but, curiously, I am not able to find one literature with a definite answer.