DEVEL15-linux-symlink-handling-avoid-crash-20070418
authorChristopher Allen Wing <wingc@engin.umich.edu>
Wed, 18 Apr 2007 19:19:59 +0000 (19:19 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 18 Apr 2007 19:19:59 +0000 (19:19 +0000)
commit607b35e6df9eb272016e587f36a5e8f1be4c4770
tree4113204f7abf281cdff317f034466ba33855ea14
parent9adb2ba31349ca5ff3899a8b7c9e4144acfa9bac
DEVEL15-linux-symlink-handling-avoid-crash-20070418

Background: OpenAFS is vulnerable to crashing in the linux kernel symlink
code when running on kernel versions between 2.6.10 to 2.6.12.  This also
includes all RHEL4 kernels, because RHEL4 includes the code from 2.6.10. The
problem is that the symlink text caching API, page_follow_link() et al, is
unsuitable for network filesystems where the page cache may be invalidated
in parallel with a path lookup.

This crash can be triggered easily by doing a bunch of path lookups
involving symlinks (e.g., stat() on various files pointed to through links),
while simultaneously running 'fs flushvol' on the volume containing the
symlinks.

The simplest way to fix this problem is to disable the use of symlink text
caching when the kernel does not provide a usable symlink API.

(cherry picked from commit 2d18bd1777b8d18a3b855685928dcdafcbe609b8)
acinclude.m4
src/afs/LINUX/osi_vnodeops.c
src/cf/linux-test4.m4