Tomasz Wegrzanowski <[EMAIL PROTECTED]> writes: > There is big problem with giving empty dir. > > User S > 1. creates ~/1/foo/bar > 2. enters ~/shadow/foo/bar > 3. deletes ~/1/foo/bar > 4. deletes ~/1/foo > > What then ?
No problem, "." and ".." are both empty directories. > One solution is to block ~/1/foo/bar when ~/shadow/foo/bar > is opened and return EBUSY on unlink(2) I think you mean rmdir(2). I don't like EBUSY here. Unix lets one unlink files which are being used; the same should work with directories. BTW, Linux allows removing the current directory but gets a bit weird with "." and "..": [EMAIL PROTECTED]:/tmp$ mkdir foo [EMAIL PROTECTED]:/tmp$ cd foo [EMAIL PROTECTED]:/tmp/foo$ ls -al total 21 drwxrwxr-x 2 kalle kalle 1024 May 15 18:08 . drwxrwxrwt 4 root root 19456 May 15 18:08 .. [EMAIL PROTECTED]:/tmp/foo$ rmdir ../foo [EMAIL PROTECTED]:/tmp/foo$ ls -al total 0 [EMAIL PROTECTED]:/tmp/foo$ ls -ld . .. drwxrwxr-x 0 kalle kalle 0 May 15 18:08 . drwxrwxrwt 3 root root 19456 May 15 18:08 .. [EMAIL PROTECTED]:/tmp/foo$ touch bar touch: bar: Operation not permitted [EMAIL PROTECTED]:/tmp/foo$ cd .. [EMAIL PROTECTED]:/tmp$ Perhaps this means that the shadowfs empty directories can be totally empty as well. ;-) > So shadowfs would have to check change_notifies from /foo/bar's of all > subfs where it exists and last directory from path of all other subfs's > (/foo or /), to see if one directory more hasn't been just created. If it doesn't cache anything, it needn't watch anything. I think you should first make a prototype without caches, and then try how much faster it gets with caching.

