Hello!

On Thu, 25 May 2006, Konstantin Belousov wrote:
        KASSERT(!(debug_mpsafenet == 1 && mtx_owned(&Giant)),
                    ("nfssvc_nfsd(): debug.mpsafenet=1 && Giant"));

from nfsserver/nfs_syscalls.c, line 570.

As I understand the problem, kern/vfs_lookup.c:lookup() could
aquire additional locks on Giant, indicating this by GIANTHELD
flag in nd. All processing in nfsserver already goes with Giant held,
so, I just dropped that excessive locks after return from lookup.
System with patch applied survived smoke test (client did
du on mounted dir, patch was generated from exported fs, etc.).
nfsd eats no more than 25% of CPU (with INVARIANTS).

Please, users who reported the problem and willing to help,
try the patch (generated against STABLE) and give the feedback.

Thank you very much. Your patch actually fixes "nfssvc_nfsd(): debug.mpsafenet=1 && Giant" panic during NFS mount of server's "/usr".
Oddly enough, NFS mount of server's "/" doesn't panic the server.
My kernel config contains "options QUOTA", however quotas are not enabled.
Please commit the fix, IMHO long-term breakage of such a basic functionality
(NFS server + quotas) in -STABLE branch isn't a Good Thing (TM).

Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail:  [EMAIL PROTECTED]
nic-hdl: LYNX-RIPE
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to