Como saber o caminho para um número de inode correspondente

1

Se eu conheço a referência do inode, ou seja,

struct inode *inode;

e a estrutura estrutural estará contendo informações de caminho para uma dentry específica na variável d_iname.

Como posso mapear de & inode- > i_dentry para saber o caminho do inode correspondente? também Como mapear de struct inode para struct dentry?

    
por LinuxLerner 14.10.2015 / 10:25

2 respostas

1

No caso geral, você não pode. Não há uma correspondência um-para-um entre inodes e entradas de diretório:

$ touch file1.txt
$ ln file1.txt file2.txt
$ ls -li file*.txt
1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file1.txt
1332145968 -rw-r--r-- 2 mark mark 0 Oct 17 17:02 file2.txt

Qual caminho é o "real" para o inode 1332145968 ?

$ rm file2.txt 
$ tail -f file1.txt &
[1] 7781
$ rm file1.txt

E agora? O inode 1332145968 ainda está em uso, como você pode ver usando lsof , mas não tem caminho.

    
por 18.10.2015 / 02:13
0

Caminho que você pode rastrear usando o campo d_parent de d_entry e salvando os nomes. Isso levará você até a raiz do sistema de arquivos. Mas tenha cuidado caso o objeto inode pertença ao sistema de arquivos montado, nesse caso, o rastreio será interrompido no ponto de montagem.

    
por 17.10.2015 / 23:08

Tags