[AFS3-std] Re: RxOSD claim on 2 structure members
Hartmut Reuter
reuter@rzg.mpg.de
Mon, 15 Jun 2009 17:18:41 +0200
Hi,
After all the problems with claiming the SyncCounter field for RxOSD I
would like to make a revised proposal for how AFS+RxOSD could use a
field in struct FetchStatus. Instead of "SyncCounter" we could use
"ResidencyMask" which has become obsolete since MR-AFS isn't used
anymore at any site. When I decided to use the "SyncCounter" field as
"Protocol" MR-AFS was still alive at our site so it would have been
filled differently by the MR-AFS fileservers and could not be used for
the new RxOSD code.
The field ResidencyMask was introduced by my patch
client-64bit-file-size-support-20011031 by renaming the former field
"SegSize". Since that time the OpenAFS fileserver fills this field with
'1' which corresponds to the local_disk residency in MR-AFS. Presently
this field isn't interpreted any more by the client.
The AFS+RxOSD client presently copies the contents of "Protocol" (alias
SyncCounter) into the new field "Protocol" of struct vcache. If we would
copy instead the contents of "ResidencyMask" into avc->Protocol we would
get a conflict with the present bit meaning of "1" which is VICEP_ACCESS
and not the default rx-fileserver protocol (which is 0 as the default
contents of SyncCounter used to be). This conflict could be solved
either by using another bit for VICEO_ACCESS or by not having a
one-to-one correspondence between ResidencyMask and avc->Protocol. The
latter one is the smaller modification, but the first one may appear as
logically cleaner.
Any comments?
Thanks,
Hartmut
Matt W. Benjamin wrote:
> Hi,
>
> A priority for openafs is to merge the rxosd changeset. One obstacle
> to merging is the use of two 'unused' members in existing structures
> without prior coordination. We've been asked to move discussion of
> the topic into this forum, which we hereby do.
>
> The following diffs summarize the changes:
>
> afsint.xg
>
> 1. SyncCounter field in AFSFetchStatus (no longer used in openafs) is
> renamed Protocol, claiming it.
>
> @@ -99,7 +99,7 @@
> afs_uint32 ClientModTime;
> afs_uint32 ServerModTime;
> afs_uint32 Group;
> - - afs_uint32 SyncCounter;
> + afs_uint32 Protocol;
> afs_uint32 dataVersionHigh; /* For AFS/DFS translator, hi
> bits of dvn */
> afs_uint32 lockCount; afs_uint32 Length_hi;
@@ -115,6
> +115,10 @@ afs_uint32 SegSize; };
>
> volint.xg
>
> 1. struct volintInfo is altered, spare0 and spare3 spare fields are
> renamed (claimed) as osdFlag and filequota, respsectively
>
> struct volintInfo {
> @@ -111,10 +130,10 @@ int maxquota; int size;
> afs_int32 flags; /* used by the backup system */
> -- afs_int32 spare0; /* Used to hold the minquota value */
> + afs_int32 osdPolicy; /* whether and how to use object
> storage */ afs_int32 spare1; /* Used to hold the weekuse
> value */ - - afs_int32 spare2; - - afs_int32 spare3; +
> afs_int32 spare2; /* Used to hold the updateCount */ +
> afs_int32 filequota; /* max. number of files MR-AFS / AFS+OSD */
>
> As a starting point for discussion, I wish to make the following
> proposal:
>
> 1. as apparent patch maintainer for fetchvstatus, the only change I
> am aware of (so far) which conflicts with the rxosd change, in
> claiming the AFSFetchStatus SyncCounter, I propose that SyncCounter
> be allocated to rxosd, renaming to Protocol
>
> 2. I propose that fetchvstatus be added to the list of features to be
> accommodated in the upcoming round of extended AFSFetchStatus
> discussions
>
> 3. I would request that any other claimants of SyncCounter or of the
> spare0 and spare3 members in volintInfo (claimed as osdPolicy and
> filequota in rxosd) disclose their use here, or otherwise state here
> how they would be harmed by allocating these members to rxosd.
>
> Thanks,
>
> Matt
>
--
-----------------------------------------------------------------
Hartmut Reuter e-mail reuter@rzg.mpg.de
phone +49-89-3299-1328
fax +49-89-3299-1301
RZG (Rechenzentrum Garching) web http://www.rzg.mpg.de/~hwr
Computing Center of the Max-Planck-Gesellschaft (MPG) and the
Institut fuer Plasmaphysik (IPP)
-----------------------------------------------------------------