]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC: r203072
authorrmacklem <rmacklem@FreeBSD.org>
Wed, 10 Feb 2010 16:16:50 +0000 (16:16 +0000)
committerrmacklem <rmacklem@FreeBSD.org>
Wed, 10 Feb 2010 16:16:50 +0000 (16:16 +0000)
commitb6d1f5950e91f998eee0f7ee194538a94044805b
tree085e01c80aed10080315dab9782a6cede4eb417d
parent45cd18393740d18b632fe8aad9738c5523818ff5
MFC: r203072
Fix a race that can occur when nfs nfsiod threads are being created.
Without this patch it was possible for a different thread that calls
nfs_asyncio() to snitch a newly created nfsiod thread that was
intended for another caller of nfs_asyncio(), because the nfs_iod_mtx
mutex was unlocked while the new nfsiod thread was created. This patch
labels the newly created nfsiod, so that it is not taken by another
caller of nfs_asyncio(). This is believed to fix the problem reported
on the freebsd-stable email list under the subject:
FreeBSD NFS client/Linux NFS server issue.

Tested by: to DOT my DOT trociny AT gmail DOT com
Reviewed by: jhb
sys/nfsclient/nfs.h
sys/nfsclient/nfs_bio.c
sys/nfsclient/nfs_nfsiod.c
sys/nfsclient/nfs_subs.c
sys/nfsclient/nfs_vnops.c
sys/nfsclient/nfsnode.h