dougb [Fri, 18 Nov 2011 20:51:31 +0000 (20:51 +0000)]
MFC r226863:
Fix svnversion for svn 1.7.x by not looking for .svn in ${SYSDIR}
(since it no longer exists). Instead, run svnversion if we can find
the binary and test that the output looks like a version string.
rmacklem [Thu, 17 Nov 2011 16:38:22 +0000 (16:38 +0000)]
MFC: r227059
Both a crash reported on freebsd-current on Oct. 18 under the
subject heading "mtx_lock() of destroyed mutex on NFS" and
PR# 156168 appear to be caused by clnt_dg_destroy() closing
down the socket prematurely. When to close down the socket
is controlled by a reference count (cs_refs), but clnt_dg_create()
checks for sb_upcall being non-NULL to decide if a new socket
is needed. I believe the crashes were caused by the following race:
clnt_dg_destroy() finds cs_refs == 0 and decides to delete socket
clnt_dg_destroy() then loses race with clnt_dg_create() for
acquisition of the SOCKBUF_LOCK()
clnt_dg_create() finds sb_upcall != NULL and increments cs_refs to 1
clnt_dg_destroy() then acquires SOCKBUF_LOCK(), sets sb_upcall to
NULL and destroys socket
This patch fixes the above race by changing clnt_dg_destroy() so
that it acquires SOCKBUF_LOCK() before testing cs_refs.
Tested by: bz
Reviewed by: dfr
Approved by: re (kib)
dim [Thu, 17 Nov 2011 08:12:12 +0000 (08:12 +0000)]
MFC r227112:
Whenever you boot with nfsv4_server_enable=NO (the default) in rc.conf,
the /etc/rc.d/nfsd script sets vfs.nfsd.server_max_nfsvers to 3.
Then, when you set nfsv4_server_enable=YES in rc.conf, and restart nfsd
via the rc.d script, without rebooting, the sysctl does *not* get reset
to max version 4, so NFSv4 still doesn't work.
Fix this by explicitly setting vfs.nfsd.server_max_nfsvers to 4 when
NFSv4 is requested.
I also added resetting of the nfs_privport sysctls, since this has the
same issue: nfs_reserved_port_only=YES in rc.conf sets the nfs_privport
sysctl to 1, but in the other case, the sysctl doesn't get reset to 0.
Reviewed by: rmacklem
Silence from: rc@
Approved by: re (kib)
bschmidt [Wed, 16 Nov 2011 17:41:31 +0000 (17:41 +0000)]
MFC r226679:
Let net80211 also know about stopped BA sessions. This fixes some issues
where the driver assumed that BA resources are still available due to
net80211 saying so.
ae [Wed, 16 Nov 2011 15:37:13 +0000 (15:37 +0000)]
MFC r227272:
Add reference to gpart(8).
MFC r227280:
Initialize "acc" value inside the loop to reset failed attempts.
PR: misc/162262
MFC r227292:
Improve error reporting when MBR can not be written.
Remove obsolete code which uses DIOCSMBR ioctl.
When writing MBR first check that GEOM_MBR is available, if it is not
available, then try write MBR directly to provider. If both are failed,
then recommend to use gpart(8).
ae [Wed, 16 Nov 2011 15:32:52 +0000 (15:32 +0000)]
MFC r227231:
To be in sync with GEOM_PART_BSD limit the maximum number of supported
partitions to 20.
MFC r227248:
bsdlabel(8) could automatically fill many of disklabel's deprecated
fields, but user could specify some of those fields when edits disklabel
with `bsdlabel -e`. But without -A flag these fields might be
overwritten with default values from the virgin disklabel.
So, don't overwrite such fields if they are not zero. Also add checks
to prevent creating disklabel with less than DEFPARTITIONS and more
than MAXPARTITIONS partitions.
PR: bin/162332
Tested by: Eugene Grosbein
MFC r227262:
Remove unneeded checks.
MFC r227270:
Add recommendation to use gpart(8) when user tries write disklabel
or bootcode to already opened provider.