https://bugzilla.novell.com/show_bug.cgi?id=272268 Summary: lockd/statd: failed to create /var/lib/nfs/sm/: err=-21 Product: openSUSE 10.2 Version: Final Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Kernel AssignedTo: kernel-maintainers@forge.provo.novell.com ReportedBy: knweiss@science-computing.de QAContact: qa@suse.de We have a problem with openSUSE 10.2's latest kernel (2.6.18.8-0.3-default) as a NFS server and HP-UX 11.11 as a NFS client. Accessing files from the HP-UX machine running the CAD application Catia V5 (which uses locking) results in the following kernel message: lockd/statd: failed to create /var/lib/nfs/sm/: err=-21 ^missing hostname!!! and the file access fails. The creation of the hostname file in the sm directoy failes because the hostname is the empty string (I've verified this by putting some debug code in nsm_create() function of the SUSE kernel's lockd patch). The filesystem gets exported with the following options: /net/XXX/fs1 @XXX(rw,insecure,sync,insecure_locks,no_subtree_check) The same HP-UX NFS client does NOT have this problem with a SUSE 9.3 based NFS server (kernel 2.6.11.4-21.15-smp)! Our current workaround for this problem is: echo "0" >/proc/sys/fs/nfs/nsm_use_hostnames By clearing this sysctl flag the IP adresses (instead of the hostnames) of the NFS clients will be used to populate the /var/lib/nfs/sm directory. This works so far. Here's the code from the SUSE 10.2 kernel patch which creates the filenames used: +/* + * Build the NSM file name + */ +static char * +nsm_filename(struct nsm_handle *nsm) +{ + char *name; + + name = (char *) __get_free_page(GFP_KERNEL); + if (name == NULL) + return ERR_PTR(-ENOMEM); + + if (nsm_use_hostnames) { + snprintf(name, PAGE_SIZE, "%s/%s", + NSM_SM_PATH, nsm->sm_name); + } else { + /* FIXME IPV6 */ + snprintf(name, PAGE_SIZE, "%s/%u.%u.%u.%u", + NSM_SM_PATH, + NIPQUAD(nsm->sm_addr.sin_addr)); + } + return name; +} In our error case nsm->sm_name is the empty string but nsm->sm_addr.sin_addr contains the correct IP address of the client i.e. then the file creation in nsm_create() succeeds. How does the NFS server determine the hostname of the client in this case? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.