> I did delete the filesystem under GNU/Linux, but I am not sure if that > wouldn't happen on GNU/Hurd as well, as we deliberately don't delete the > i_translator info when the inode is deleted (to make "undeletion" possible, > see comment in the code of write_node).
However, it doesn't happen because diskfs_drop_node clears it with diskfs_set_translator. I think it would be better for diskfs to leave it to the filesystem to clear it as part of deletion, as for data blocks. A filesystem could be more efficient deleting all the blocks together rather than deleting the one translator block in the normal way done when the file is surviving and then immediately deleting all its data blocks. (The efficiency difference here is marginal the filesystems we have, but could be more in other formats that are more different.) It also makes it possible to do things like leave the translator block set for possible undeletion, or anything else that might make sense in a particular filesystem to distinguish the "translator cleared on existing file" case from the "file with translator removed altogether" case. > Where should this happen? diskfs_alloc_node in ialloc.c? Yes. I think that more or less all the handling of i_translator should be directly analogous to the handling of i_data. I just put in an untested change that is slightly more hairy to stay analogous to i_data handling and avoid using diskfs_catch_exception in directly in diskfs_alloc_node. _______________________________________________ Bug-hurd mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-hurd