1468
Comment: described first patch set, TODO: svn info
|
← Revision 6 as of 2009-07-13 13:15:09 ⇥
2862
obsoleted, link to trac wiki
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
/!\ This page is obsolete. Please refer to http://pfanne.rzg.mpg.de/trac/openAFS-OSD/wiki/Patches instead. /!\ |
|
Line 3: | Line 5: |
= Retrieving patches from svn = | = About the patches = For (my) convenience, I opted to store the patches in form of a mailbox as generated by {{{ git format-patch --stdout }}} Ideally, you use a git repository and {{{ git checkout -b rxosd-patches openafs-stable-1_4_10 git am <patch-file.mb }}} You then have all the goodness of git to review the changes. Alternatively, it shouldn't be too hard to retrieve individual u-diffs from the files. == Latest patches == /!\ Notice that updates are most likely rebased, so you should `reset --hard` to the original pristine state and reapply the whole thing. 1. Protocol Abstraction Layer: [[attachment:protocol-abstraction-2009-07-01.mb]] (''obsolete'') * UPDATE: followed up on Simon's suggestions: [[attachment:protocol-abstraction-2009-07-02.mb]] * done: * squashed patches for unification and abstraction * simplified struct afs_cacheOps * removed the reference to CACHE_BYPASS * using void* instead of char* for rocks * removed changes to afs_stats.h * don't initialize pointer with 0 but NULL * omitted excessive casting * '''not''' done: * marry storeOps / fetchOps to cacheOps * initialize storeVariables in cachetype-specific places * add typing the rxfs_fetchInit protoype |
Line 14: | Line 42: |
The caches should use identical Fetch/Store routines. This patch concerns only Store. The code is quite insane, as this patch is only a bridge to rxosd-03. | The caches should use identical Fetch/Store routines. This patch concerns only Store. |
Line 16: | Line 44: |
== rxosd-03 == The actual protocol abstraction. !StoreOps are yet another differentiation layer underneath cache type abstraction. Interaction with `rxosd` servers will manifest itself in form of a set of alternative !StoreOps. |
!StoreOps are yet another differentiation layer underneath cache type abstraction. Interaction with `rxosd` servers will manifest itself in form of a set of alternative !StoreOps. |
Line 21: | Line 48: |
== rxosd-04 == | == rxosd-03 == |
Line 24: | Line 51: |
== rxosd-05 and rxosd-06 == These are the counterparts of rxosd-02 and rxosd-03 wrt. the `CacheFetchProc`s. |
== rxosd-04 == The counterparts of rxosd-02 wrt. the `CacheFetchProc`s. == rxosd-05 == Another simplification - this comes for free, as without the macros from ''afs_chunkops.h'', the pointers from afs_cacheOps were no longer used for !StoreProc / !FetchProc. |
This page is obsolete. Please refer to http://pfanne.rzg.mpg.de/trac/openAFS-OSD/wiki/Patches instead.
Contents
About the patches
For (my) convenience, I opted to store the patches in form of a mailbox as generated by
git format-patch --stdout
Ideally, you use a git repository and
git checkout -b rxosd-patches openafs-stable-1_4_10 git am <patch-file.mb
You then have all the goodness of git to review the changes.
Alternatively, it shouldn't be too hard to retrieve individual u-diffs from the files.
Latest patches
Notice that updates are most likely rebased, so you should reset --hard to the original pristine state and reapply the whole thing.
Protocol Abstraction Layer: protocol-abstraction-2009-07-01.mb (obsolete)
UPDATE: followed up on Simon's suggestions: protocol-abstraction-2009-07-02.mb
- done:
- squashed patches for unification and abstraction
- simplified struct afs_cacheOps
- removed the reference to CACHE_BYPASS
- using void* instead of char* for rocks
- removed changes to afs_stats.h
- don't initialize pointer with 0 but NULL
- omitted excessive casting
not done:
- marry storeOps / fetchOps to cacheOps
- initialize storeVariables in cachetype-specific places
- add typing the rxfs_fetchInit protoype
- done:
Overview
Client changes
- Protocol Abstraction Layer
Unifies CacheStoreProc / CacheFetchProc routines for UFS- and MemCache, respectively. Encapsules server interactions into discrete functions that are specific to the cache type used. Additional protocols can be added relatively easy then, by defining additional sets of Store/Fetch mini-operations.
Protocol Abstraction layer
rxosd-01
The CacheStoreProcs and CacheStoreProcs for the respective cache types are counterintuitively distributed in the source tree. We propose a new afs_fetchstore.c for these.
rxosd-02
The caches should use identical Fetch/Store routines. This patch concerns only Store.
StoreOps are yet another differentiation layer underneath cache type abstraction. Interaction with rxosd servers will manifest itself in form of a set of alternative StoreOps.
Note that the ((struct rxfs_storeVariables *)rock)->call = acall; line is actually a hack. The final rxfs_storeInit() will work rather differently than how it does now, so this is my way of bridging the gap.
rxosd-03
Make code more readable, and replace some return codes.
rxosd-04
The counterparts of rxosd-02 wrt. the CacheFetchProcs.
rxosd-05
Another simplification - this comes for free, as without the macros from afs_chunkops.h, the pointers from afs_cacheOps were no longer used for StoreProc / FetchProc.