Hola, soy un novato en la programación del kernel. Estoy escribiendo un pequeño módulo de kernel que se basa en la plantilla de wrapfs para implementar un mecanismo de respaldo. Esto es puramente para aprender.almacenar algunos datos en la estructura inode
Estoy extendiendo wrapfs para que cuando se realiza una llamada de escritura, wrapfs transparente haga una copia de ese archivo en un directorio aparte y luego escriba en el archivo. Pero no quiero que cree una copia para cada llamada de escritura.
Un enfoque ingenuo podría ser verificar si existe algún archivo en ese directorio. Pero Creo que para cada comprobación de llamada esto podría ser una penalización severa.
También pude verificar la primera llamada de escritura y luego almacenar un valor para ese archivo específico usando el atributo private_data. Pero eso no se almacenaría en el disco . Entonces necesitaría verificar eso nuevamente.
También estaba pensando en hacer uso del tiempo de modificación. Podría guardar un tiempo de modificación de . Si el tiempo anterior de modificación es anterior a ese momento, entonces solo se crea una copia; de lo contrario, no haré nada. Intenté usar inode.i_mtime para esto, pero fue la hora modificada incluso antes de que se llamara a la escritura, también las aplicaciones pueden modificar ese tiempo.
Así que estaba pensando en almacenar algún valor en inode en el disco que indica que se ha creado o no la copia de seguridad . ¿Es eso posible? Cualquier otra sugerencia o enfoque son bienvenidos.
Formatear su blob es muy largo para obtener su pregunta, incluso _read_. – sehe