Não tenho reputação para fazer um comentário, por isso devo responder à sua pergunta mesmo que não consiga entender completamente o que você quer dizer com
the updated inode id
OK, para pegar o caminho do diretório raiz para um diretório onde você está, vamos na direção inversa. Você precisa primeiro obter o número de inode do diretório em que você está (você obtém a partir da entrada . ), depois acessar o diretório pai através da entrada .. e pesquisar no diretório pai procurando um diretório que tem o mesmo número de inode que você tem no começo. Esse é o nome dessa entrada de diretório no diretório pai. Dessa forma, você obterá como esse diretório . é chamado no diretório pai ... repetindo essa iteração, você obterá o nome do diretório granparent ... e assim por diante, até .... o que?
Ok, o diretório raiz tem uma entrada .. que aponta para si mesma (como . ) e você tem que comparar o número do inode que você obteve da última vez com o que obteve nesta iteração e parar se eles são o mesmo número inode. Uma vez que este diretório especial tenha sido alcançado, você tem uma lista de nomes que você deve inverter, colocar barras / entre eles e você terá o caminho para o diretório atual.
Se você não está no sistema de arquivos raiz, o kernel faz a mágica que você precisa para obter o diretório pai (ele segue a entrada .. pelos pontos de montagem, ignorando que a entrada .. aponta para si) e você ll obterá o caminho para o diretório raiz corretamente, então você pode seguir este methot até você obter . e .. apontando para o mesmo inode.
Espero que isso responda totalmente a você.