Hi I reinstated the reiser part of my page: http://mjt.nysv.org/reiser/
The broken package is here: http://mjt.nysv.org/reiser/bk-2004-05-25/ With the screenshots (courtesy of my Siemens SX1, which decided it won't crash while taking pictures) and the config on the top level. It's uploading still and will be doing so for quite a while, but if you see a tarball there, it's completely uploaded, because I'll have made the tar :) Or then I'll go to sleep and I will make a tar when needed. Maybe only vmlinux is enough for debugging. I'm also doing a new, clean, bk clone/get. That is not what I figured to mail about though. I'm afraid I'll reopen a can of worms here. But hopefully compensate with something that may arouse discussion of practical issues. I'm sure we all know about Hans' attitude toward xattrs. As I said before, I don't care which API is in or out as long as it works for me, and I hope the better one wins. Now, considering the state of the union, maybe it might be a wise strategic move to back off a bit from that. The pseudo file API is really near completion, right? All I don't see are the compression and crypto plugins. The following paragraphs may be a bit flawed, depending on how much a difference there should be between the pseudo files API and the syscall API. Looking at the web page, the ACLs seem to be the biggest issue. So, the Reiser4 API is good for providing passphrases for encrypted files and directories, right? Because using echo to unlock them from the file system is hazardous? Why not add user-space programs which basically do what echo does, but with the terminal echo turned off? They would probably size at around 0k and would use the pseudo file API. Maybe this would be a use case: 1. Joe wants to encrypt the files he l33ch3d from kazaa at work. 2. Joe chdirs to the pseudo directory under ~/Work/Warez/ 3. Joe says echo 3DES\0 > plugin/crypto 4. Now the directory knows it must be 3DES-encrypted, but it needs a passphrase. 5. Joe says echo TOPSECRETPASSWORD\0 > plugin/cryptokey 6. The file system works its magic Now every file Joe downloads under ~/Work/Warez/ is automatically encrypted with the provided phrase. Joe then decides that his work documents might be good to encrypt as well. 7. chdir again 8. echo BLOWFISH\0 > plugin/crypto 9. echo THEOTHERPASSWORD\0 > plugin/cryptokey 10. The encryption kicks in and encrypts the directory (contents?) Does that, btw, encrypt the directory object or it and its children? With fibration the new children are fibrated as per the parent directory's settings, right? So this should be the same with every plugin? ~/Work/Warez/ should still be left untouched, no matter what happens, because it has a different algorithm. Files which contain passphrases must be write-only and hopefully even have the passphrase expire on some idle time. Now Joe needs to access the files as well. This is where it gets trickier... No matter what happens, the software accessing encrypted data must support some api. 11a. echo TOPSECRETPASSWORD\0 > plugin/cryptounlock This would unlock the directory, naturally the cryptoplugin could not be changed to none without the data being unencrypted to boot. 11b. echo PID-TOPSECRETPASSWORD\0 > plugin/cryptounlock This would grant access to one certain PID. What happens when Joe is a SuSE or Mandrake user, who just wants to clickety-click his way through these procedures? Solution 1: Have a graphical pseudo file manager as a separate project, maybe just start it and let someone else finalize and admin it. Solution 2: Contribute, or have someone else contribute, code to popular graphical file managers. The question arises, is it possible for a pseudo file to know which pid is accessing it? What happens if you want to use Apache or some other program that has close to n+1 processes, maybe specify the PPID? Also, it might be clearer if the plugin file crypto were a plugin directory crypto, with files in it like "algorithm", "passphrase", "unlock" or something? The same use case would apply with compression algorithms, I suppose? This did not really get us very far from the can of worms, however. If all this is doable like this, or done better than my suggestions, from the base of meta files, why bother with the Reiser4 syscalls API now? Seems to me like a waste of resources, financial and human, and time. I never tried them, but xattrs were in Reiser4, at least to some extent, so would it be possible to re-integrate them and start working on the syscalls later on? I think, if possible with little work, xattrs could be pushed quicky in. Maybe left there as "the crappy alternative" Also, I think Chris Mason said the ReiserFS xattrs were implemented as files? Or have I misunderstood/forgotten? Maybe Reiser4 xattrs could be implemented as pseudo files? And maybe I should see for myself some day... Stuff like sequencing I/Os and file access without descriptors can't be done with xattrs? That's how I interpret this. So the syscalls must come. Will the syscalls, or I wish much more the pseudo files, enable stuff like retroactive inheritance of parent plugin settings? All I'm aiming at here is to minimize work and provide some ideas of how to get quick community acceptance, so if the xattrs advocation seems like worthless provocation or annoying rambling, it was not my intent and if I just made an innocent fool of myself, I can live with that :) Also, some hints at what the future will bring would be good. Like, what's the next Big Thing? If the mmap bug and NFS are fixed, the next logical things to attack would be: * Re-sustain stability and performance (The loss which I can not estimate since the bugger crashes on mount :) * The pseudo files API, more closely crypto and compression. * Copy-on-capture * Reiser4 syscalls Apart from the social aspect of getting it out to the public, for which only the first, or first two, are required. What is Hans' take on those attacks? Thanks and I hope at least some reaction comes from this mail :) -- mjt