linux user group brescia

immagine del castello

Archivio della mailing list

Hard Links

Luca Giuzzi giuzzi a dmf.bs.unicatt.it
Lun 31 Gen 2000 15:21:16 UTC
> ma le stesse . e .. non sono degli hardlink alle directory "se stessa" e
> "padre" ???

Questo e' esatto, e, infatti, il filesystem non ha alcuni problemi con la
 creazione di hard links a directories. Il problema risiede in
 1. nella chiamata di sistema usata per creare i links (mkdir e'
    una operazione atomica dal punto di vista user space)
 2. nelle possibili incompatibilita' con tools e programmi.

Il punto 1 e' facilmente aggirabile, semplicemente modificando il comportamento
  di link() [o di ext2_link() se hai paura che altri filesystems ti diano
  luogo a spiacevoli sorprese]...
Il punto 2 e' quello veramente `serio' ed e' il motivo per cui ho deprecato
  il tutto [e probabilmente anche il motivo per cui gli hard links a directories
  non sono solitamente supportati]:

considera questo scenario:
 /---a---b---c---a
e osserva che cosa combina tar (o cpio) quando cerchi di creare un archivio:
 cose non troppo carine (va in recursione). Pure find e' destinato ad avere
 problemi del genere e questo non mi piace molto.
So bene che con "." e ".." il tutto funziona (e funziona bene), ma il
  punto :) e' che quelli sono considerati `a priori' casi particolari
  da ignorare...

Similmente gli effetti di un remove possono essere `non auto-evidenti',
 nel senso che ``non e' possibile rimuovere una dir sintanto che contiene 
 files'. Cancellare una dir `hard linked' richiede la rimozione di tutti
 i files contenuti nella dir originale... [ovviamente esiste sempre un
 `piano B': limitarsi a fare un unlink() sull'entry... questo pero'
 comporta il rischio di lasciare spazio marcato come allocato sul disco
 ma non reclamato da nessun file] e questo potrebbe essere contrario a 
 quanto desiderato e/o desiderabile. 
La possibilita' c'e' ed e' piu' che legittimo usarla... considerarla una
 funzionalita' `da rendere semplice, facile ed immediata', forse non e'
 il caso... [opinione personale]

Ciao,
 luca




Maggiori informazioni sulla lista Lug