aboutsummaryrefslogtreecommitdiff
path: root/lib/libdevdctl
Commit message (Collapse)AuthorAgeFilesLines
* libdevdctl: Force full match of "timestamp" field nameRyan Moeller2020-06-231-1/+1
| | | | | | | | | | | | | | | | OpenZFS generates events with a "zio_timestamp" field, which gets mistaken for "timestamp" by libdevdctl due to imprecise string matching. Then later it is assumed a "timestamp" field exists when it doesn't and an exception is thrown. Add a space to the search string so we match exactly "timestamp" rather than anything with that as a suffix. Approved by: mav (mentor) MFC after: 3 days Sponsored by: iXsystems, Inc. Notes: svn path=/head/; revision=362544
* libdevdctl: g++9 avoid Wdeprecated-copyRyan Libby2019-12-211-10/+0
| | | | | | | | | | | | | g++9 now warns about having defined an assignment operator but using the default copy constructor, or vice versa. Avoid the issue in libdevdctl by just using the default assignment operator too. Reviewed by: asomers, dim Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D22887 Notes: svn path=/head/; revision=355974
* Update Makefile.depend filesSimon J. Gerraty2019-12-111-1/+0
| | | | | | | | | | | | | Update a bunch of Makefile.depend files as a result of adding Makefile.depend.options files Reviewed by: bdrewery MFC after: 1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22494 Notes: svn path=/head/; revision=355617
* Another round of attempting to squelch -Wdeprecated-declarations, whichDimitry Andric2019-09-171-0/+4
| | | | | | | | | | | | has become very trigger-happy with libc++ 9.0.0. It does not help that gcc's implementation of this warning is even more trigger-happy, in the sense that it already warns on the declaration itself, not when you are using it. This is very annoying with our use of -Wsystem-headers. That should really be disabled for gcc. Notes: svn path=/projects/clang900-import/; revision=352435
* Instead of disabling gcc's deprecated declaration warnings about e.g.Dimitry Andric2019-09-141-4/+0
| | | | | | | | | std::auto_ptr in a whole bunch of individual Makefiles, make the warning globally non-fatal instead. This is similar to what was done to many more non-fatal warnings from newer gcc versions. Notes: svn path=/projects/clang900-import/; revision=352335
* Silence gcc warnings in libdevdctl about deprecated std::auto_ptr, andDimitry Andric2019-09-091-0/+4
| | | | | | | various function objects from <functional>. Notes: svn path=/projects/clang900-import/; revision=352104
* zfsd: Allow zfsd to work on any type of GEOM providerAlan Somers2018-02-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | cddl/usr.sbin/zfsd/zfsd_event.cc Remove the check for da and ada devices. This way zfsd can work on md, geli, glabel, gstripe, etc devices. geli in particular is useful combined with ZFS. gnop is also useful for simulating drive pulls in the ZFSD test suite. Also, eliminate the DevfsEvent class entirely. Move its responsibilities into GeomEvent. We can get everything we need to know just from listening to GEOM events. lib/libdevdctl/event.cc Fix GeomEvent::DevName for CREATE events. Oddly, the relevant field is named "cdev" for CREATE events but "devname" for disk events. MFC after: 3 weeks Relnotes: Yes (probably worth mentioning the geli part) Sponsored by: Spectra Logic Corp Notes: svn path=/head/; revision=329284
* DIRDEPS_BUILD: Update dependencies.Bryan Drewery2017-10-311-1/+0
| | | | | | | Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325188
* Partially revert r325011: restore Guid's default constructorAlan Somers2017-10-261-0/+10
| | | | | | | | | | Reported by: ohartmann MFC after: 3 weeks X-MFC-With: 325011 Sponsored by: Spectra Logic Corp Notes: svn path=/head/; revision=325016
* zfsd should be able to online an L2ARC that disappears and returnsAlan Somers2017-10-261-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, this didn't work because L2ARC devices' labels don't contain pool GUIDs. Modify zfsd so that the pool GUID won't be required: lib/libdevdctl/guid.h Change INVALID_GUID from a uint64_t constant to a function that returns an invalid Guid object. Remove the void constructor. Nothing uses it, and it violates RAII. cddl/usr.sbin/zfsd/case_file.h cddl/usr.sbin/zfsd/case_file.cc Allow CaseFile::Find to match a CaseFile based on Vdev GUID alone. In CaseFile::ReEvaluate, attempt to online devices even if the newly arrived device has no pool GUID. cddl/usr.sbin/zfsd/vdev_iterator.cc Iterate through a pool's cache devices as well as its regular devices. Reported by: avg Reviewed by: avg MFC after: 3 weeks Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D12791 Notes: svn path=/head/; revision=325011
* Use .CURDIR:H instead of .CURDIR to simplify pathing in output, etcEnji Cooper2017-01-201-1/+1
| | | | | | | | MFC after: 3 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=312512
* directly create the socket with SOCK_NONBLOCK instead of calling fcntl(2)Baptiste Daroussin2016-10-151-3/+1
| | | | Notes: svn path=/head/; revision=307364
* DIRDEPS_BUILD: Connect new directories and update dependencies.Bryan Drewery2016-06-031-0/+21
| | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301283
* Coverity fixes for r300906Alan Somers2016-05-312-15/+3
| | | | | | | | | | | | | | | | | | lib/libdevdctl/consumer.cc In Consumer::DisconnectFromDevd, don't close the socket if it's already closed. cddl/usr.sbin/zfsd/case_file.cc lib/libdevdctl/consumer.h Delete dead code leftover from before devd(8) gained SOCK_SEQPACKET support Reported by: Coverity CID: 1356155, 1356169 Sponsored by: Spectra Logic Corp Notes: svn path=/head/; revision=301087
* libdevdctl: minor spelling fixes.Pedro F. Giffuni2016-05-301-2/+2
| | | | Notes: svn path=/head/; revision=301001
* Avoid literal-suffix error due to missing space.Bryan Drewery2016-05-281-1/+1
| | | | Notes: svn path=/head/; revision=300915
* zfsd(8), the ZFS fault management daemonAlan Somers2016-05-2813-0/+2360
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 Notes: svn path=/head/; revision=300906