nnull
    Csaba Henk 
    csaba.henk at creo.hu
       
    Mon Jan  2 13:12:38 PST 2006
    
    
  
On 2006-01-02, Matthew Dillon <dillon at xxxxxxxxxxxxxxxxxxxx> wrote:
>     What a nice Christmas present!  I was hoping someone would come along
>     and rewrite nullfs!
It's good to hear that there is someone who thinks this day is still fine
as Christmas, as I have a nice pile of unanswered Xmas greetings :)
>     There is one issue with regards to overlayed namecache entries.
>     The issue occurs when you try to do a rename() or other namespace 
>     operation and you have multiple namecache records refering to the
>     same physical namespace.  Since rename() locks the namespace by locking
>     the related namecache records, it becomes possible for a namespace
>     operation in the nullfs layer to race a namespace operation in the
>     underlying filesystem layer.  The system probably wouldn't be too happy
>     when this happens.
Hm, I played a little bit with this. Here is a little test:
$ { cat flipflop.py; echo EOF; }
import os, sys
def flipflop(a, b):
   while True:
       try:
           os.rename(a, b)
           print os.path.basename(os.getcwd()), a, b
       except OSError: pass
a, b = sys.argv[3:]
for dir in sys.argv[1:3]:
    for x,y in ((a,b), (b,a)):
        if os.fork() == 0:
           os.chdir(dir)
           flipflop(x, y)
EOF
$ mkdir A B
$ > A/a
$ mount_null A B
$ python2.4 flipflop.py A B a b
As of now, the effect not fatal... rather funny: after a while the dir(s) end
up empty.
Csaba
    
    
More information about the Kernel
mailing list