freebsd-skq/etc/rc.d/Makefile
asomers 442baa5184 zfsd(8), the ZFS fault management daemon
Add zfsd, which deals with hard drive faults in ZFS pools. It manages
hotspares and replements in drive slots that publish physical paths.

cddl/usr.sbin/zfsd
	Add zfsd(8) and its unit tests

cddl/usr.sbin/Makefile
	Add zfsd to the build

lib/libdevdctl
	A C++ library that helps devd clients process events

lib/Makefile
share/mk/bsd.libnames.mk
share/mk/src.libnames.mk
	Add libdevdctl to the build. It's a private library, unusable by
	out-of-tree software.

etc/defaults/rc.conf
	By default, set zfsd_enable to NO

etc/mtree/BSD.include.dist
	Add a directory for libdevdctl's include files

etc/mtree/BSD.tests.dist
	Add a directory for zfsd's unit tests

etc/mtree/BSD.var.dist
	Add /var/db/zfsd/cases, where zfsd stores case files while it's shut
	down.

etc/rc.d/Makefile
etc/rc.d/zfsd
	Add zfsd's rc script

sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
	Fix the resource.fs.zfs.statechange message. It had a number of
	problems:

	It was only being emitted on a transition to the HEALTHY state.
	That made it impossible for zfsd to take actions based on drives
	getting sicker.

	It compared the new state to vdev_prevstate, which is the state that
	the vdev had the last time it was opened.  That doesn't make sense,
	because a vdev can change state multiple times without being
	reopened.

	vdev_set_state contains logic that will change the device's new
	state based on various conditions.  However, the statechange event
	was being posted _before_ that logic took effect.  Now it's being
	posted after.

Submitted by:	gibbs, asomers, mav, allanjude
Reviewed by:	mav, delphij
Relnotes:	yes
Sponsored by:	Spectra Logic Corp, iX Systems
Differential Revision:	https://reviews.freebsd.org/D6564
2016-05-28 17:43:40 +00:00

321 lines
3.9 KiB
Makefile

# $FreeBSD$
.include <src.opts.mk>
BINDIR= /etc/rc.d
FILESGROUPS= FILES
FILES= DAEMON \
FILESYSTEMS \
LOGIN \
NETWORKING \
SERVERS \
abi \
addswap \
adjkerntz \
archdep \
auditd \
auditdistd \
bgfsck \
${_bluetooth} \
bridge \
${_bthidd} \
cleanvar \
cleartmp \
cron \
ctld \
ddb \
defaultroute \
devd \
devfs \
dhclient \
dmesg \
dumpon \
fsck \
gbde \
geli \
geli2 \
gptboot \
growfs \
gssd \
${_hcsecd} \
hostid \
hostid_save \
hostname \
iovctl \
ip6addrctl \
ipfilter \
ipfs \
ipfw \
ipmon \
ipnat \
ipsec \
${_kadmind} \
${_kdc} \
${_kfd} \
kld \
kldxref \
${_kpasswdd} \
ldconfig \
local \
localpkg \
lockd \
mixer \
motd \
mountcritlocal \
mountcritremote \
mountlate \
mdconfig \
mdconfig2 \
mountd \
msgs \
natd \
netif \
netoptions \
netwait \
newsyslog \
nfsclient \
nfscbd \
nfsd \
nfsuserd \
nisdomain \
${_nscd} \
nsswitch \
ntpdate \
${_opensm} \
pf \
pflog \
pfsync \
ppp \
pppoed \
pwcheck \
quota \
random \
rarpd \
rctl \
resolv \
root \
route6d \
routing \
rpcbind \
rtadvd \
rtsold \
savecore \
securelevel \
serial \
sppp \
statd \
static_arp \
static_ndp \
stf \
swap \
swaplate \
sysctl \
syslogd \
tmp \
${_ubthidhci} \
ugidfw \
${_utx} \
var \
watchdogd \
ypbind \
yppasswdd \
ypserv \
ypset \
ypupdated \
ypxfrd
.if ${MK_ACCT} != "no"
FILESGROUPS+= ACCT
ACCT+= accounting
ACCTPACKAGE= acct
.endif
.if ${MK_ACPI} != "no"
FILESGROUPS+= ACPI
ACPI= power_profile
ACPIPACKAGE= acpi
.endif
.if ${MK_ACPI} != "no" || ${MK_APM} != "no"
FILES+= powerd
.endif
.if ${MK_AMD} != "no"
FILESGROUPS+= AMD
AMD+= amd
AMDPACKAGE= amd
.endif
.if ${MK_APM} != "no"
FILESGROUPS+= APM
APM+= apm
APM+= apmd
APMPACKAGE= apm
.endif
.if ${MK_ATM} != "no"
FILESGROUPS+= ATM
ATM+= atm1
ATM+= atm2
ATM+= atm3
ATMPACKAGE= atm
.endif
.if ${MK_AUTOFS} != "no"
FILES+= automount
FILES+= automountd
FILES+= autounmountd
.endif
.if ${MK_BLUETOOTH} != "no"
_bluetooth= bluetooth
_bthidd= bthidd
_hcsecd= hcsecd
FILES+= rfcomm_pppd_server
FILES+= sdpd
_ubthidhci= ubthidhci
.endif
.if ${MK_BOOTPARAMD} != "no"
FILES+= bootparams
.endif
.if ${MK_BSNMP} != "no"
FILESGROUPS+= BSNMP
BSNMP+= bsnmpd
BSNMPPACKAGE= bsnmp
.endif
.if ${MK_CCD} != "no"
FILES+= ccd
.endif
.if ${MK_FTP} != "no"
FILES+= ftpd
.endif
.if ${MK_HAST} != "no"
FILESGROUPS+= HAST
HAST= hastd
HASTPACKAGE= hast
.endif
.if ${MK_INETD} != "no"
FILES+= inetd
.endif
.if ${MK_ISCSI} != "no"
FILES+= iscsictl
FILES+= iscsid
.endif
.if ${MK_JAIL} != "no"
FILESGROUPS+= JAIL
JAIL+= jail
JAILPACKAGE= jail
.endif
.if ${MK_LEGACY_CONSOLE} != "no"
FILES+= moused
FILES+= syscons
.endif
.if ${MK_LPR} != "no"
FILES+= lpd
.endif
.if ${MK_KERBEROS} != "no"
FILES+= ipropd_master
FILES+= ipropd_slave
_kadmind= kadmind
_kdc= kdc
_kfd= kfd
_kpasswdd= kpasswdd
.endif
.if ${MK_MAIL} != "no"
FILES+= othermta
.endif
.if ${MK_NS_CACHING} != "no"
_nscd= nscd
.endif
.if ${MK_NTP} != "no"
FILES+= ntpd
.endif
.if ${MK_OFED} != "no"
_opensm= opensm
.endif
.if ${MK_OPENSSL} != "no"
FILES+= keyserv
.endif
.if ${MK_OPENSSH} != "no"
FILESGROUPS+= SSH
SSH= sshd
SSHPACKAGE= ssh
.endif
.if ${MK_PF} != "no"
FILES+= ftp-proxy
.endif
.if ${MK_RCMDS} != "no"
FILESGROUPS+= RCMDS
RCMDS+= rwho
RCMDSPACKAGE= rcmds
.endif
.if ${MK_ROUTED} != "no"
FILES+= routed
.endif
.if ${MK_SENDMAIL} != "no"
FILESGROUPS+= SMRCD
SMRCD= sendmail
SMRCDPACKAGE= sendmail
.endif
.if ${MK_TIMED} != "no"
FILES+= timed
.endif
.if ${MK_UNBOUND} != "no"
FILESGROUPS+= UNBOUND
UNBOUND+= local_unbound
UNBOUNDPACKAGE= unbound
.endif
.if ${MK_UTMPX} != "no"
_utx= utx
.endif
.if ${MK_VI} != "no"
FILESGROUPS+= VI
VI+= virecover
VIPACKAGE= vi
.endif
.if ${MK_WIRELESS} != "no"
FILES+= hostapd
FILES+= wpa_supplicant
.endif
.if ${MK_ZFS} != "no"
FILESGROUPS+= ZFS
ZFS+= zfs
ZFS+= zfsd
ZFS+= zvol
ZFSPACKAGE= zfs
.endif
.for fg in ${FILESGROUPS}
${fg}MODE?= ${BINMODE}
.endfor
.include <bsd.prog.mk>