That's what kernel versioning is for! :)
Just to make the point, I am the person who ported AFS to Linux. Due
to the licensing constraints of AFS placed upon me by Transarc, I
cannot release the sources to AFS. On the other hand, Transarc has
been more than willing to help me make Linux-AFS available to
everyone, including filing a request with the US governemt for export
approval (which was recently granted).
But to return to your question: you are correct that it is a problem.
For example, early in the 1.3 cycle a number of VFS interfaces changed
which caused Linux-AFS to fail to load. Since then, a lot of changes
have been made in the 1.3.x tree, further diverging it from the 1.2
sources.
However making a new release is far from as simple as just recompiling
the sources. I was doing active development during the 1.1.x
lifetime. In fact, 1.1.33 was the first Linux kernel that could
support AFS. Whenever a new kernel was released, I had to test it
with AFS, and would frequently be required to release a new AFS
version.
Once 1.2 came, the kernel interfaces stabilitzed. The release I made
for 1.1.95 will work on the same kernels as 1.2.2 and 1.2.13 do (all
the 1.2 kernels). I suspect that once 1.4/2.0 is released, the same
thing will happen, the kernel will stabilize, and there will be one
Linux-AFS release that works on all 1.4/2.0 kernels.
Until that time, there will have to be a lot of releases to keep up
with the rapidly changing kernel. (Note: AFS is still being ported to
1.3; no releases have been made, yet, nor is there an estimated time
of release).
-derek