X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=frontend.ml;h=e8526cc694a87d8625bbe0965504378c786c5f6c;hb=10d5ee4bc0c1fb4b74001c45c877c9c0c74205b9;hp=335782a549d4dade281cbab12a72cf1c6a1447ed;hpb=c9636f84acdab799ccfc5d50824138db70d0a5d3;p=vsys.git diff --git a/frontend.ml b/frontend.ml index 335782a..e8526cc 100644 --- a/frontend.ml +++ b/frontend.ml @@ -24,7 +24,7 @@ object(this) let res = Directfifowatcher.mkentry fqp abspath realperm slice_name in match res with | Success -> - Directfifowatcher.openentry fqp (abspath,slice_name) + Directfifowatcher.openentry root_dir fqp (abspath,slice_name) | _ -> () (** A new directory was created at the backend, make a corresponding directory @@ -77,5 +77,24 @@ object(this) fprintf logfd "Hm. %s disappeared or not empty. Looks like slice %s shot itself in the foot\n" fqp (this#get_slice_name ());flush logfd initializer - Directfifowatcher.add_dir_watch root_dir + ( + try + let s = Unix.stat root_dir in + if (s.st_kind<>S_DIR) then + begin + Unix.unlink root_dir; + Unix.mkdir root_dir 0o700 + end + else if (s.st_perm <> 0o700) then + begin + Unix.rmdir root_dir; + Unix.mkdir root_dir 0o700 + end; + with Unix.Unix_error(_,_,_) -> + begin + try + Unix.mkdir root_dir 0o700; + with _ -> (); + end); + Directfifowatcher.add_dir_watch root_dir end