linux-symlink-handling-avoid-crash-20070418
authorChristopher Allen Wing <wingc@engin.umich.edu>
Wed, 18 Apr 2007 19:18:35 +0000 (19:18 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 18 Apr 2007 19:18:35 +0000 (19:18 +0000)
commit2d18bd1777b8d18a3b855685928dcdafcbe609b8
tree2b47983eeeaccc161d36963f8dd95758d7f56480
parent9943fe1fd71fc29331dcac7cd6a51bd37f307876
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.
acinclude.m4
src/afs/LINUX/osi_vnodeops.c
src/cf/linux-test4.m4