Rationalise some #ifdefs in the LINUX osi layer
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Fri, 2 Oct 2009 12:43:01 +0000 (13:43 +0100)
committerDerrick Brashear <shadow|account-1000005@unknown>
Sat, 3 Oct 2009 23:18:42 +0000 (16:18 -0700)
commit3e164335affa617137ebf280fe4c82a51c99894e
tree37d4ad877e4775023f4df3ab09e691350b4a7974
parent109927bf6f54b58b76ac48ba41c2012c74937fed
Rationalise some #ifdefs in the LINUX osi layer

Introduce osi_compat.h, a place to hide compatibility #ifdefs. Make
a start on using this by purging #ifdefs from osi_vnodeops, and pushing
changes into inline compatibility functions.

The general idea here is to create a single location where we can do our
multiple version compatibility magic, and by doing so reduce the
complexity of the rest of the code. The approach is that where the
kernel introduces a new interface, we should switch to using it in the
rest of the code, and add a compatibility function (in osi_compat.h)
which implements the new interface in terms of the old one, suitably
protected by #ifdefs.

Where an interface changes signature, but not name, we should implement
an afs_<blah> version of the function which has the signature of the
newest version, and within that call out to the real kernel versions,
mapping between the different parameters as appropriate.

Reviewed-on: http://gerrit.openafs.org/568
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/afs/LINUX/osi_compat.h [new file with mode: 0644]
src/afs/LINUX/osi_vfsops.c
src/afs/LINUX/osi_vnodeops.c