directory data -------------- what needs to be stored: filename, inode # struct dir_entry { unsigned short rec-len; unsigned char fname_len; unsigned int inode; chaf fname[MAX_DIRNAM]; }; cycling through all directs: opendir; readdir till there, closedir open_inode(inode); open_file(inode) { if (dir) error; return open_inode; } opendir(inode) { if (!dir) error; return open_inode; }