обратите внимание, что fs_rename делает с сообщением и получает указатель на inode.
unlink_file уже содержит указатель на inode файла и указатель на каталог, в котором находится файл.Если вам нужно только переименовать его, вы можете проверить, как fs_rename () действует, когда и old_dirp, и new_dirp одинаковы
same_pdir == (old_dip == new_dirp); //somewhere in fs_rename()
(bunch of error checks..)
if(same_pdir){
r = search_dir(old_dirp, old_name, NULL, DELETE, IGN_PERM); // this deletes the file from directory
if(r == OK)
(void)search_dir(old_dirp, new_name, &numb, ENTER, IGN_PERM); //this creates file with new_name in the directory
}
Имейте в виду, что в этой части кода не предполагается, что в настоящее время в файле существует файл с именем new_name.директория (как при проверке ошибок, которую я пропустил, такой файл удаляется)