Hi,

I have a few questions about the low level functionality of ReiserFS as it
pertains to overwriting a file in place from userland.  I am implementing
GNU shred on top of Reiser in metadata journaling only mode with tail
packing enabled.

To start off, I have several questions:

1) If I perform an exact file size shred (i.e. the file will not grow or
shrink as a result of the shred) of a file with a tail, can I be assured
that the write will occur over the existing data in all cases?
Specifically, will Reiser allocate a new block to store the overwritten
tail, thus abandoning the original data in the original block and defeating
the shred attempt?

2) If someone confirms that there is not a way to guarantee obliteration of
original data in all cases with tails, can I assume that disabling tails
will rectify the problem?

3) If I disable tail packing on mount (this is the only way, correct?) how
are previously tail packed blocks handled?  I can't imagine that ReiserFS
will go through all of them and unpack them--the performance hit of this
would be terrible no?  Does this only affect future writes?

4) What is the best way to determine and read the physical sectors that a
file is mapped to in order to verify obliteration?  I have used
debugreiserfs a bit (with the -d option) and get keys and locations of files
but the documentation is rather limited on what all of the output means and
how to use it.


Thanks for your help,
Brett

Reply via email to