I've been busy learning and researching about the linux file system... To learn how geniuses created their systems.
Linux OS implemented the inode structure to speed up searching file fast and efficient. From what I understood, the files in linux is managed in inode structures. The inode structure contains the informations of the file, which are stored in inode table.

Linux inode table
I am planning on making a file system manager similar to linux's but much more simple version of it. I will try making a tree system of files similar to linux system but bit different. I just made this file structure (slightly) copied from linux's inode structure..
typedef struct file_info_s {
char *file_name; /* Doesn't contain the path, only contains the name of itself */
max_t file_type; /* FILE_TYPE_ */
max_t file_status; /* FILE_STATUS_ */
max_t file_size;
max_t current_offset;
max_t block_location;
// cached
file_info_s *previous_file;
file_info_s **file_lists; /* only for directory */
// physical side of file
blockdev::block_device *block_device;
fsdev::file_system_driver *fs_driver;
// mounted location
file_info_s *mounted_loc;
}file_info;
Not sure what I have to do actually. I'm in the haze of this management of file system.. gosh.