Ciao, sono un principiante della programmazione del kernel. Sto scrivendo un piccolo modulo del kernel basato sul modello wrapfs per implementare un meccanismo di backup. Questo è esclusivamente per la base di apprendimento.memorizza alcuni dati nella struct inode
Sto estendendo wrapfs in modo che quando viene effettuata una chiamata di scrittura wrapfs in modo trasparente fa una copia di quel file in una directory separata e quindi viene eseguita la scrittura sul file. Ma non voglio che crei una copia per ogni chiamata scritta.
Un approccio ingenuo potrebbe essere il controllo dell'esistenza del file in tale directory. Ma Penso che per ogni chiamata controllare questa potrebbe essere una severa sanzione.
È anche possibile verificare la prima chiamata di scrittura e quindi memorizzare un valore per quel file specifico utilizzando l'attributo private_data. Ma questo non verrebbe memorizzato sul disco . Quindi dovrei controllarlo di nuovo.
Stavo anche pensando di utilizzare il tempo di modifica. Potrei salvare un tempo di modifica . Se il tempo di modifica precedente è prima di tale ora, solo viene creata una copia altrimenti non farò nulla. Ho provato ad usare inode.i_mtime per questo, ma era il tempo modificato anche prima che venisse chiamata la scrittura, anche le applicazioni possono modificare quella volta.
Quindi stavo pensando di memorizzare qualche valore in inode su disco che indica che il suo backup è stato creato o meno. È possibile? Qualsiasi altro suggerimento o approccio sono i benvenuti.
La formattazione del vostro BLOB è molto utile per ottenere la vostra domanda anche _read_. – sehe