[Unionfs] Re: Exporting a union with NFS4 ?

pascal at pabr.org pascal at pabr.org
Sat Feb 9 10:26:22 EST 2008


Jesse I Pollard wrote:
> pascal at pabr.org wrote:
>> So would it be possible to export unions over NFS4 if we initialized
>> sb->s_export_op in unionfs_read_super(), along the lines of what was
>> done in unionfs-1.4 ?
>>
>> Does anyone have a patch which does that ?  I do not mind if it only
>> supports lower filesystems with small inode numbers or if branches
>> cannot be added/removed afterward.
> nope. been there, tried that.

Thanks for the feedback...  But did you discover that there are
fundamental incompatibilities, or only that it did not work as
easily as expected ?


 From RFC3530 (NFS version 4):

 > 4.2.  Filehandle Types

 >    The volatile filehandle type was introduced to address server
 >    functionality or implementation issues which make correct
 >    implementation of a persistent filehandle infeasible.  Some server
 >    environments do not provide a filesystem level invariant that can be
 >    used to construct a persistent filehandle.

 > 4.2.3.  Volatile Filehandle

 >    FH4_VOLATILE_ANY
 >              The filehandle may expire at any time, except as
 >              specifically excluded (i.e., FH4_NO_EXPIRE_WITH_OPEN).

 >    FH4_NOEXPIRE_WITH_OPEN
 >              May only be set when FH4_VOLATILE_ANY is set.  If this bit
 >              is set, then the meaning of FH4_VOLATILE_ANY is qualified
 >              to exclude any expiration of the filehandle when it is
 >              open.

 > 4.3.  Client Recovery from Filehandle Expiration

 >    For volatile filehandles, most commonly the client will need to store
 >    the component names leading up to and including the filesystem object
 >    in question.  With these names, the client should be able to recover
 >    by finding a filehandle in the name space that is still available or
 >    by starting at the root of the server's filesystem name space.


With all this, shouldn't we be able to export dynamically-allocated inode
numbers, and declare them expired when they leave the unionfs cache ?

Unfortunately I suspect volatile filehandles are not supported yet in the
current Linux NFS4 implementation (i.e. "grep NFS4_FH_VOL fs/nfs*/*"
does not find much).

Pascal



More information about the unionfs mailing list