[sanniolug] Re: FS

  • From: Massimiliano Mirra <mmirra@xxxxxxxxx>
  • To: sanniolug@xxxxxxxxxxxxx
  • Date: Fri, 01 Aug 2003 23:33:59 +0200

> la soluzione di prima ha un problema......... quando riavvio il sistema
> dove memorizzo i dati come dati permanenti?... mi sa che dovrei toccare
> i sorgenti dell' ext2

Forse in un file /.meta, così come ext3 memorizza il suo journal in
/.journal.  Avevo in mente grosso modo questo:

bard@prism:~/workspace/meta$ ls
article.txt  song.mid

bard@prism:~/workspace/meta$ ls -1i
 409636 article.txt
 409637 song.mid

bard@prism:~/workspace/meta$ annotate article.txt
Scritto per il Linux Journal.

bard@prism:~/workspace/meta$ annotate song.mid
Composto per il concerto del 12/2.

bard@prism:~/workspace/meta$ cd

bard@prism:~$ cat .meta
 409636 Scritto per il Linux Journal.
 409637 Composto per il concerto del 12/2.

bard@prism:~$ cd ~/workspace/meta

bard@prism:~/workspace/meta$ ls -l --meta
total 0
-rw-r--r--    1 bard     bard            0 Aug  1 23:23 article.txt  Scritto 
per il Linux Journal.
-rw-r--r--    1 bard     bard            0 Aug  1 23:23 song.mid     Composto 
per il concerto del 12/2.

bard@prism:~/workspace/meta$ rm article.txt

bard@prism:~/workspace/meta$ cd

bard@prism:~$ cat .meta
 409637 Composto per il concerto del 12/2.


Come vedi, scrivere il comando annotate sarebbe di una facilità
spaventosa (basta aggiungere a un file una riga con l'inode
dell'argomento e la descrizione).  Anche modificare ls aggiungendo
l'istruzione --meta è probabilmente banale, al massimo bisogna che
sappia dove pescare il file .meta ma glielo si può dire con una
variabile d'ambiente META_PATH.

Inoltre, spostando per esempio article.txt con mv rimanendo nello
stesso filesystem, l'inode rimane uguale, per cui l'operazione è
trasparente.

La parte meno semplice del gioco è l'ultima, quella in cui rimuovo il
article.txt e per magia scompare anche l'annotazione nel file .meta.
Come fare?  libtrash fa qualcosa di simile, intercetta le chiamate ad
unlink() e fa sì che, anziché essere rimosso, il file venga spostato
``nel cestino''.  Come in dettaglio lo faccia non lo so, non ho
neppure scaricato i sorgenti e probabilmente sei molto più qualificato
di me per ficcarci il naso.  :-)

Fammi sapere se ti sembra una strada percorribile.

Other related posts: