From: Leandro F. <leo...@gm...> - 2005-12-28 11:54:00
|
Hi all, I am having a couple of problems and I would like to know if someone has an interesting idea to solve them ( as you always do :) ). 1. The ugliest one: I have a FS that enforces quotas. The idea is simple, when I write to a file I increase the "used" variable and when I delete a file I decrease the variable (a bit more than that but is not really difficult). However, I have a tricky scenario where things get messy and I end up with negative used space. - create file "test" - truncate(test,10) used=3D=3D10 - link(test, link_to_test) used=3D=3D20 - truncate(link_to_test,20) used=3D=3D30 (here both increase !!!) - unlink(test) used=3D=3D10 (Will say "test" is 20 not 10 !!!) - unlink(link_to_test) used=3D=3D-10 !!!!!!!!! I only know the basics about hard links and I dont see how to solve the problem in a simple way... :/ 2. Very ugly: The same idea than the last one but with directories.... When there are too many files in a directory it will increase (in size), and I dont know a way to track it... so we get a negative "used" space when we delete it. 3. Not so ugly but seems to be a fuse bug: - mkdir("dir") - open("dir/file", O_CREAT) - unlink("dir/file") - rmdir("dir") !!!! Error, directory not emp= ty - close("dir/file"); the .fuse is deleted here I saw it using fsstress and apart from that I don't know if it could be dangerous... I suppose the error comes from the .fuse_hidden file so I dont think it will be easy to solve.... All the comments are welcome and thanks a lot for the great work Leandro Franco |