Hi, I recently installed SuSE 10.0 on a machine we have and I notice that NFS locking seems to be broken. Whenever I try to set a lock with fcntl F_SETLK on an NFS mounted filesystem served by a SuSE 10.0 machine I get a "Stale NFS file handle" error. This happens from a variety of NFS clients IRIX, Solaris, SuSE 9.x and MAC OSX. If I turn on debugging by doing "echo 65535 > /proc/sys/sunrpc/nlm_debug" I get the following messages in dmesg/syslog: lockd: request from 905c6e82 lockd: LOCK called lockd: nlm_lookup_host(905c6e82, p=17, v=4, my role=server, name=uwast) lockd: host garbage collection lockd: nlmsvc_mark_resources nlm_gc_hosts skipping uwast (cnt 2 use 0 exp 42936407) lockd: nsm_monitor(uwast) lockd: nlm_file_lookup(02000001 05000800 00000080 0d5287c8 00000001 0d5287c7) lockd: creating file for (02000001 05000800 00000080 0d5287c8 00000001 0d5287c7) lockd: open failed (error 1) lockd: release host uwast, refcount is now 0 nlmsvc_retry_blocked(00000000, when=0) nlmsvc_retry_blocked(00000000, when=0) lockd: nlm_lookup_host(905c6e82, p=6, v=4, my role=client, name=uwast) Anyone have an idea on how to fix this problem? Here's a simple test program that shows this problem: #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #define LOOPS 3 main(int argc, char **argv) { int i; int fd; int status; #ifdef __DARWIN__ struct flock lock = {0, 0, 0, F_WRLCK, SEEK_SET}; #else struct flock lock = {F_WRLCK, SEEK_SET, 0, 0, 0}; #endif if(argc != 2) { printf("usage: %s FILE\n", argv[0]); exit(0); } i = 0; while(i++ < LOOPS) { #ifdef _LARGEFILE64_SOURCE fd = open((const char *) argv[1], O_RDWR|O_LARGEFILE); #else fd = open((const char *) argv[1], O_RDWR); #endif if (fd < 0) { perror("Unable to open file"); exit(-1); } status = fcntl(fd, F_SETLK, &lock); if (status != 0) { perror("Error locking file"); } close(fd); } exit(0); } -- ------- Stephan