[OpenIndiana-discuss] NFS hidden files

Gabriele Bulfon gbulfon at sonicle.com
Wed Jun 6 00:42:42 UTC 2012


Nice discussion.
Even though I remember not being able to remove because of a bash waiting there,
but probably was a zfs destroy.......and IMHO this is a more logic approach

I'll read the RFCs :) Thanx!

Inviato da iPad

Il giorno 05/giu/2012, alle ore 22:06, James Carlson <carlsonj at workingcode.com> ha scritto:

> Gabriele Bulfon wrote:
>> I understand your point.
>> But, my question is...shouldn't a network filesystem try to completely emulate a local file system,
>> trying to hide as much as possible the fact of being a network share?
> 
> Sure, although "try" is certainly the operative word here.
> 
>> In this case, how does a local filesystem like ZFS or UFS manage these situations?
> 
> A local file system doesn't have this problem, because the directory
> entry is distinct from the "handle" that the program has on an open
> file.  An open local file essentially references the inode for that
> file.  If the directory entry (which points to the inode) is removed,
> the program can keep on using the now-nameless inode without trouble.
> When all references to the inode are dropped, the space is returned to
> the free pool.
> 
> (Depending on the OS, you may even be able to use link(2) to reattach an
> unlinked but still open file by using the procfs nodes.)
> 
> With NFS, the server doesn't know whether files are open or closed.  If
> the client actually removed the file, that would immediately invalidate
> any other client handles, and break the applications still using the
> now-unreferenced file.
> 
> In short, this is just how NFS works.
> 
>> Local file systems do not create .xxx files, and they never show up even in the situations you describe.
> 
> True.  Local file systems aren't remote.  :-/
> 
>> So, why NFS should be different? I believe that the NFS server may hold this files for himself and
>> the processes that already have opened sessions on them, not showing them in folder listings
>> (as zfs can do with its .zfs folder).
> 
> I suppose that NFS clients could be designed to hide these files from
> the user optionally.  It may well make some operations a little (or
> perhaps a lot) strange, but I think it could be made to work.  It's just
> not how it's done today.
> 
>> Also, is it correct by the file system to allow deletion of a file opened by someone else?
> 
> Sure; standard UNIX/POSIX semantics apply.
> 
>> For example, an "rm -r folder" will fail in case I have a bash inside it's tree.
> 
> That's not true.  In one window:
> 
> % bash
> carlsonj at carlson:/build/carlsonj$ mkdir foo
> carlsonj at carlson:/build/carlsonj$ cd foo
> carlsonj at carlson:/build/carlsonj/foo$
> 
> Now, in another window:
> 
> carlsonj at carlson:/build/carlsonj$ rm -r foo
> carlsonj at carlson:/build/carlsonj$
> 
> Now back in the first window:
> 
> carlsonj at carlson:/build/carlsonj/foo$ /bin/pwd
> pwd: cannot determine current directory!
> carlsonj at carlson:/build/carlsonj/foo$
> 
> You can always remove anything you want to remove, assuming you have the
> right permissions.  Directory entries are just that -- directory
> entries.  They have the name of the object and a pointer to where the
> object resides.  They're not the object itself.
> 
>> I believe an option to hide them would do no harm.
> 
> Fortunately, it's an open process.  Read RFCs 1813 and 3010 to start,
> and propose your own design.
> 
> -- 
> James Carlson         42.703N 71.076W         <carlsonj at workingcode.com>
> 
> _______________________________________________
> OpenIndiana-discuss mailing list
> OpenIndiana-discuss at openindiana.org
> http://openindiana.org/mailman/listinfo/openindiana-discuss



More information about the OpenIndiana-discuss mailing list