Hi,
I am trying to test fscache for nfs. However, I am having problems
mount nfs with the fscache option.
I have provided some strace output from the mount comand. Could someone
please take a quick look at this problem or provide a list of
instructions on how to enable fscache for nfs? I think I must miss some
basic steps somewhere. I did notice that nfs file_system_type is
registered as a netfs for fs caching as the following two lines from
'dmesg' shows.
fscache: general fs caching registered
FS-Cache: netfs 'nfs' registered for caching
BTW, I have patched 2.6.9-11.EL tree with all patches from 2.6.12-mm1
that are related to cachefs/fscache/kafs/nfs. Patching process seems to
be fine. During the compilation, I have only a few parameter mismatches
for a few functions, related to do_generic_xxx_read() and PG_fs_misc.
Nothing major I could notice.
Thanks,
Weikuan
+++++++++++++++++++++++++++++++++
#modprobe cachefs
# mount -t cachefs /dev/hda9 /cachefs
# dmesg | tail -n 10
CacheFS: general fs caching v0.1 registered
CacheFS: Found initialised cache
CacheFS: The blockdev does not support barriers, so the journal may not
be reliable
CacheFS: Replaying the update journal...
CacheFS: Started kcachefsd 2731
CacheFS: Replaying the validity journal...
# mount -t nfs -o fscache fs1:/mnt/exports/devel /home/devel
Unsupported nfs mount option: fscache
# strace mount -t nfs -o fscache fs1:/mnt/exports/devel /home/devel
execve("/bin/mount", ["mount", "-t", "nfs", "-o", "fscache",
"fs1:/mnt/exports/devel", "/home/devel"], [/* 39 vars */]) = 0
uname({sys="Linux", node="c6-as4", ...}) = 0
brk(0) = 0x8cde000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=115457, ...}) = 0
old_mmap(NULL, 115457, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fe3000
close(3) = 0
open("/lib/tls/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 _\23\000"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1454835, ...}) = 0
old_mmap(0x121000, 1215644, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x121000
old_mmap(0x244000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x123000) = 0x244000
old_mmap(0x248000, 7324, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x248000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb7fe2000
mprotect(0x244000, 4096, PROT_READ) = 0
mprotect(0x119000, 4096, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fe2aa0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7fe3000, 115457) = 0
brk(0) = 0x8cde000
brk(0x8cff000) = 0x8cff000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=39550528, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7de2000
close(3) = 0
umask(022) = 022
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
close(3) = 0
getuid32() = 0
geteuid32() = 0
lstat64("/etc/mtab", {st_mode=S_IFREG|0644, st_size=896, ...}) = 0
stat64("/sbin/mount.nfs", 0xbffece90) = -1 ENOENT (No such file or
directory)
uname({sys="Linux", node="c6-as4", ...}) = 0
gettimeofday({1124889724, 306951}, NULL) = 0
getpid() = 2758
open("/etc/resolv.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7de1000
read(3, "search nowlab.cis.ohio-state.edu"..., 4096) = 92
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7de1000, 4096) = 0
socket(PF_FILE, SOCK_STREAM, 0) = 3
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1
ENOENT (No such file or directory)
close(3) = 0
socket(PF_FILE, SOCK_STREAM, 0) = 3
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1
ENOENT (No such file or directory)
close(3) = 0
open("/etc/nsswitch.conf", O_RDONLY) = 3
munmap(0xb7de1000, 4096) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=115457, ...}) = 0
old_mmap(NULL, 115457, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7dc5000
close(3) = 0
open("/lib/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\32"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=45868, ...}) = 0
old_mmap(NULL, 41604, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
3, 0) = 0xe89000
old_mmap(0xe92000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0xe92000
close(3) = 0
munmap(0xb7dc5000, 115457) = 0
open("/etc/host.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=17, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7de1000
read(3, "order hosts,bind\n", 4096) = 17
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7de1000, 4096) = 0
open("/etc/hosts", O_RDONLY) = 3
fcntl64(3, F_GETFD) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=29267, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7de1000
read(3, "#\n# Notes:\n#\n# Ethernet conn"..., 4096) = 4096
close(3) = 0
munmap(0xb7de1000, 4096) = 0
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2528, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7de1000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2528
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7de1000, 4096) = 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/util-linux.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/util-linux.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/util-linux.mo", O_RDONLY) =
-1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/util-linux.mo", O_RDONLY)
= -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/util-linux.mo", O_RDONLY) =
-1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/util-linux.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7de1000
write(1, "Unsupported nfs mount option: fs"..., 38Unsupported nfs mount
option: fscache
) = 38
munmap(0xb7de1000, 4096) = 0
exit_group(32) = ?