diff options
Diffstat (limited to 'sys/contrib/openzfs')
18 files changed, 930 insertions, 118 deletions
diff --git a/sys/contrib/openzfs/.gitignore b/sys/contrib/openzfs/.gitignore index 1ef47d921c28..47d17ae16d34 100644 --- a/sys/contrib/openzfs/.gitignore +++ b/sys/contrib/openzfs/.gitignore @@ -45,6 +45,7 @@ !.cirrus.yml !.gitignore !.gitmodules +!.mailmap !AUTHORS !autogen.sh !CODE_OF_CONDUCT.md diff --git a/sys/contrib/openzfs/.mailmap b/sys/contrib/openzfs/.mailmap new file mode 100644 index 000000000000..46ef016b93f8 --- /dev/null +++ b/sys/contrib/openzfs/.mailmap @@ -0,0 +1,189 @@ +# This file maps the name+email seen in a commit back to a canonical +# name+email. Git will replace the commit name/email with the canonical version +# wherever it sees it. +# +# If there is a commit in the history with a "wrong" name or email, list it +# here. If you regularly commit with an alternate name or email address and +# would like to ensure that you are always listed consistently in the repo, add +# mapping here. +# +# On the other hand, if you use multiple names or email addresses legitimately +# (eg you use a company email address for your paid OpenZFS work, and a +# personal address for your evening side projects), then don't map one to the +# other here. +# +# The most common formats are: +# +# Canonical Name <canonical-email> +# Canonical Name <canonical-email> <commit-email> +# Canonical Name <canonical-email> Commit Name <commit-email> +# +# See https://git-scm.com/docs/gitmailmap for more info. + +# These maps are making names consistent where they have varied but the email +# address has never changed. In most cases, the full name is in the +# Signed-off-by of a commit with a matching author. +Ahelenia Ziemiańska <nabijaczleweli@gmail.com> +Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> +Alex John <alex@stty.io> +Andreas Dilger <adilger@dilger.ca> +Andrew Walker <awalker@ixsystems.com> +Benedikt Neuffer <github@itfriend.de> +Chengfei Zhu <chengfeix.zhu@intel.com> +Chris Lindee <chris.lindee+github@gmail.com> +Colm Buckley <colm@tuatha.org> +Crag Wang <crag0715@gmail.com> +Damian Szuberski <szuberskidamian@gmail.com> +Daniel Kolesa <daniel@octaforge.org> +Debabrata Banerjee <dbavatar@gmail.com> +Finix Yan <yanchongwen@hotmail.com> +Gaurav Kumar <gauravk.18@gmail.com> +Gionatan Danti <g.danti@assyoma.it> +Glenn Washburn <development@efficientek.com> +Gordan Bobic <gordan.bobic@gmail.com> +Gregory Bartholomew <gregory.lee.bartholomew@gmail.com> +hedong zhang <h_d_zhang@163.com> +InsanePrawn <Insane.Prawny@gmail.com> +Jason Cohen <jwittlincohen@gmail.com> +Jason Harmening <jason.harmening@gmail.com> +Jeremy Faulkner <gldisater@gmail.com> +Jinshan Xiong <jinshan.xiong@gmail.com> +John Poduska <jpoduska@datto.com> +Justin Scholz <git@justinscholz.de> +Ka Ho Ng <khng300@gmail.com> +Kash Pande <github@tripleback.net> +Kay Pedersen <christianpe96@gmail.com> +KernelOfTruth <kerneloftruth@gmail.com> +Liu Hua <liu.hua130@zte.com.cn> +Liu Qing <winglq@gmail.com> +loli10K <ezomori.nozomu@gmail.com> +Matthias Blankertz <matthias@blankertz.org> +Michael Gmelin <grembo@FreeBSD.org> +Olivier Mazouffre <olivier.mazouffre@ims-bordeaux.fr> +Piotr Kubaj <pkubaj@anongoth.pl> +Quentin Zdanis <zdanisq@gmail.com> +Roberto Ricci <ricci@disroot.org> +Rob Norris <robn@despairlabs.com> +Rob Norris <rob.norris@klarasystems.com> +Sam Lunt <samuel.j.lunt@gmail.com> +Sanjeev Bagewadi <sanjeev.bagewadi@gmail.com> +Stoiko Ivanov <github@nomore.at> +Tamas TEVESZ <ice@extreme.hu> +WHR <msl0000023508@gmail.com> +Yanping Gao <yanping.gao@xtaotech.com> +Youzhong Yang <youzhong@gmail.com> + +# Commits from strange places, long ago +Brian Behlendorf <behlendorf1@llnl.gov> <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> +Brian Behlendorf <behlendorf1@llnl.gov> <behlendo@fedora-17-amd64.(none)> +Brian Behlendorf <behlendorf1@llnl.gov> <behlendo@myhost.(none)> +Brian Behlendorf <behlendorf1@llnl.gov> <ubuntu@ip-172-31-16-145.us-west-1.compute.internal> +Brian Behlendorf <behlendorf1@llnl.gov> <ubuntu@ip-172-31-20-6.us-west-1.compute.internal> +Herb Wartens <wartens2@llnl.gov> <wartens2@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> +Ned Bass <bass6@llnl.gov> <bass6@zeno1.(none)> +Tulsi Jain <tulsi.jain@delphix.com> <tulsi.jain@Tulsi-Jains-MacBook-Pro.local> + +# Mappings from Github no-reply addresses +ajs124 <git@ajs124.de> <ajs124@users.noreply.github.com> +Alek Pinchuk <apinchuk@axcient.com> <alek-p@users.noreply.github.com> +Alexander Lobakin <alobakin@pm.me> <solbjorn@users.noreply.github.com> +Alexey Smirnoff <fling@member.fsf.org> <fling-@users.noreply.github.com> +Allen Holl <allen.m.holl@gmail.com> <65494904+allen-4@users.noreply.github.com> +Ameer Hamza <ahamza@ixsystems.com> <106930537+ixhamza@users.noreply.github.com> +Andrew J. Hesford <ajh@sideband.org> <48421688+ahesford@users.noreply.github.com>> +Andrew Sun <me@andrewsun.com> <as-com@users.noreply.github.com> +Aron Xu <happyaron.xu@gmail.com> <happyaron@users.noreply.github.com> +Arun KV <arun.kv@datacore.com> <65647132+arun-kv@users.noreply.github.com> +Ben Wolsieffer <benwolsieffer@gmail.com> <lopsided98@users.noreply.github.com> +bernie1995 <bernie.pikes@gmail.com> <42413912+bernie1995@users.noreply.github.com> +Boris Protopopov <boris.protopopov@actifio.com> <bprotopopov@users.noreply.github.com> +Brad Forschinger <github@bnjf.id.au> <bnjf@users.noreply.github.com> +Brandon Thetford <brandon@dodecatec.com> <dodexahedron@users.noreply.github.com> +buzzingwires <buzzingwires@outlook.com> <131118055+buzzingwires@users.noreply.github.com> +Cedric Maunoury <cedric.maunoury@gmail.com> <38213715+cedricmaunoury@users.noreply.github.com> +Charles Suh <charles.suh@gmail.com> <charlessuh@users.noreply.github.com> +Dacian Reece-Stremtan <dacianstremtan@gmail.com> <35844628+dacianstremtan@users.noreply.github.com> +Damian Szuberski <szuberskidamian@gmail.com> <30863496+szubersk@users.noreply.github.com> +Daniel Hiepler <d-git@coderdu.de> <32984777+heeplr@users.noreply.github.com> +Daniel Kobras <d.kobras@science-computing.de> <sckobras@users.noreply.github.com> +Daniel Reichelt <hacking@nachtgeist.net> <nachtgeist@users.noreply.github.com> +David Quigley <david.quigley@intel.com> <dpquigl@users.noreply.github.com> +DHE <git@dehacked.net> <DeHackEd@users.noreply.github.com> +Dmitri John Ledkov <dimitri.ledkov@canonical.com> <19779+xnox@users.noreply.github.com> +Dries Michiels <driesm.michiels@gmail.com> <32487486+driesmp@users.noreply.github.com> +Edmund Nadolski <edmund.nadolski@ixsystems.com> <137826107+ednadolski-ix@users.noreply.github.com> +Érico Nogueira <erico.erc@gmail.com> <34201958+ericonr@users.noreply.github.com> +Fedor Uporov <fuporov.vstack@gmail.com> <60701163+fuporovvStack@users.noreply.github.com> +Felix Dörre <felix@dogcraft.de> <felixdoerre@users.noreply.github.com> +Felix Neumärker <xdch47@posteo.de> <34678034+xdch47@users.noreply.github.com> +Finix Yan <yancw@info2soft.com> <Finix1979@users.noreply.github.com> +Gaurav Kumar <gauravk.18@gmail.com> <gaurkuma@users.noreply.github.com> +George Gaydarov <git@gg7.io> <gg7@users.noreply.github.com> +Georgy Yakovlev <gyakovlev@gentoo.org> <168902+gyakovlev@users.noreply.github.com> +Gerardwx <gerardw@alum.mit.edu> <Gerardwx@users.noreply.github.com> +Gian-Carlo DeFazio <defazio1@llnl.gov> <defaziogiancarlo@users.noreply.github.com> +Giuseppe Di Natale <dinatale2@llnl.gov> <dinatale2@users.noreply.github.com> +Hajo Möller <dasjoe@gmail.com> <dasjoe@users.noreply.github.com> +Harry Mallon <hjmallon@gmail.com> <1816667+hjmallon@users.noreply.github.com> +Hiếu Lê <leorize+oss@disroot.org> <alaviss@users.noreply.github.com> +Jake Howard <git@theorangeone.net> <RealOrangeOne@users.noreply.github.com> +James Cowgill <james.cowgill@mips.com> <jcowgill@users.noreply.github.com> +Jason King <jason.king@joyent.com> <jasonbking@users.noreply.github.com> +Jeff Dike <jdike@akamai.com> <52420226+jdike@users.noreply.github.com> +Jitendra Patidar <jitendra.patidar@nutanix.com> <53164267+jsai20@users.noreply.github.com> +João Carlos Mendes Luís <jonny@jonny.eng.br> <dioni21@users.noreply.github.com> +John Eismeier <john.eismeier@gmail.com> <32205350+jeis2497052@users.noreply.github.com> +John L. Hammond <john.hammond@intel.com> <35266395+jhammond-intel@users.noreply.github.com> +John-Mark Gurney <jmg@funkthat.com> <jmgurney@users.noreply.github.com> +John Ramsden <johnramsden@riseup.net> <johnramsden@users.noreply.github.com> +Jonathon Fernyhough <jonathon@m2x.dev> <559369+jonathonf@users.noreply.github.com> +Justin Hibbits <chmeeedalf@gmail.com> <chmeeedalf@users.noreply.github.com> +Kevin Jin <lostking2008@hotmail.com> <33590050+jxdking@users.noreply.github.com> +Kevin P. Fleming <kevin@km6g.us> <kpfleming@users.noreply.github.com> +Krzysztof Piecuch <piecuch@kpiecuch.pl> <3964215+pikrzysztof@users.noreply.github.com> +Kyle Evans <kevans@FreeBSD.org> <kevans91@users.noreply.github.com> +Laurențiu Nicola <lnicola@dend.ro> <lnicola@users.noreply.github.com> +loli10K <ezomori.nozomu@gmail.com> <loli10K@users.noreply.github.com> +Lorenz Hüdepohl <dev@stellardeath.org> <lhuedepohl@users.noreply.github.com> +Luís Henriques <henrix@camandro.org> <73643340+lumigch@users.noreply.github.com> +Marcin Skarbek <git@skarbek.name> <mskarbek@users.noreply.github.com> +Matt Fiddaman <github@m.fiddaman.uk> <81489167+matt-fidd@users.noreply.github.com> +Max Zettlmeißl <max@zettlmeissl.de> <6818198+maxz@users.noreply.github.com> +Michael Niewöhner <foss@mniewoehner.de> <c0d3z3r0@users.noreply.github.com> +Michael Zhivich <mzhivich@akamai.com> <33133421+mzhivich@users.noreply.github.com> +Mo Zhou <cdluminate@gmail.com> <5723047+cdluminate@users.noreply.github.com> +Nick Mattis <nickm970@gmail.com> <nmattis@users.noreply.github.com> +omni <omni+vagant@hack.org> <79493359+omnivagant@users.noreply.github.com> +Pablo Correa Gómez <ablocorrea@hotmail.com> <32678034+pablofsf@users.noreply.github.com> +Paul Zuchowski <pzuchowski@datto.com> <31706010+PaulZ-98@users.noreply.github.com> +Peter Ashford <ashford@accs.com> <pashford@users.noreply.github.com> +Peter Dave Hello <hsu@peterdavehello.org> <PeterDaveHello@users.noreply.github.com> +Peter Wirdemo <peter.wirdemo@gmail.com> <4224155+pewo@users.noreply.github.com> +Petros Koutoupis <petros@petroskoutoupis.com> <pkoutoupis@users.noreply.github.com> +Ping Huang <huangping@smartx.com> <101400146+hpingfs@users.noreply.github.com> +Piotr P. Stefaniak <pstef@freebsd.org> <pstef@users.noreply.github.com> +Richard Allen <belperite@gmail.com> <33836503+belperite@users.noreply.github.com> +Rich Ercolani <rincebrain@gmail.com> <214141+rincebrain@users.noreply.github.com> +Rob Wing <rob.wing@klarasystems.com> <98866084+rob-wing@users.noreply.github.com> +Roman Strashkin <roman.strashkin@nexenta.com> <Ramzec@users.noreply.github.com> +Ryan Hirasaki <ryanhirasaki@gmail.com> <4690732+RyanHir@users.noreply.github.com> +Samuel Wycliffe J <samwyc@hpe.com> <115969550+samwyc@users.noreply.github.com> +Samuel Wycliffe <samuelwycliffe@gmail.com> <50765275+npc203@users.noreply.github.com> +Savyasachee Jha <hi@savyasacheejha.com> <savyajha@users.noreply.github.com> +Scott Colby <scott@scolby.com> <scolby33@users.noreply.github.com> +Sean Eric Fagan <kithrup@mac.com> <kithrup@users.noreply.github.com> +Spencer Kinny <spencerkinny1995@gmail.com> <30333052+Spencer-Kinny@users.noreply.github.com> +Srikanth N S <srikanth.nagasubbaraoseetharaman@hpe.com> <75025422+nssrikanth@users.noreply.github.com> +Thomas Geppert <geppi@digitx.de> <geppi@users.noreply.github.com> +Tim Crawford <tcrawford@datto.com> <crawfxrd@users.noreply.github.com> +Tom Matthews <tom@axiom-partners.com> <tomtastic@users.noreply.github.com> +Tony Perkins <tperkins@datto.com> <62951051+tony-zfs@users.noreply.github.com> +Torsten Wörtwein <twoertwein@gmail.com> <twoertwein@users.noreply.github.com> +Tulsi Jain <tulsi.jain@delphix.com> <TulsiJain@users.noreply.github.com> +Václav Skála <skala@vshosting.cz> <33496485+vaclavskala@users.noreply.github.com> +Violet Purcell <vimproved@inventati.org> <66446404+vimproved@users.noreply.github.com> +Vipin Kumar Verma <vipin.verma@hpe.com> <75025470+vermavipinkumar@users.noreply.github.com> +Wolfgang Bumiller <w.bumiller@proxmox.com> <Blub@users.noreply.github.com> +xtouqh <xtouqh@hotmail.com> <72357159+xtouqh@users.noreply.github.com> +Yuri Pankov <yuripv@FreeBSD.org> <113725409+yuripv@users.noreply.github.com> +Yuri Pankov <yuripv@FreeBSD.org> <82001006+yuripv@users.noreply.github.com> diff --git a/sys/contrib/openzfs/AUTHORS b/sys/contrib/openzfs/AUTHORS index c2af58d75085..be1efb87b34c 100644 --- a/sys/contrib/openzfs/AUTHORS +++ b/sys/contrib/openzfs/AUTHORS @@ -10,228 +10,450 @@ PAST MAINTAINERS: CONTRIBUTORS: Aaron Fineman <abyxcos@gmail.com> + Adam D. Moss <c@yotes.com> Adam Leventhal <ahl@delphix.com> Adam Stevko <adam.stevko@gmail.com> + adisbladis <adis@blad.is> + Adrian Chadd <adrian@freebsd.org> + Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Ahmed G <ahmedg@delphix.com> + Aidan Harris <me@aidanharr.is> + AJ Jordan <alex@strugee.net> + ajs124 <git@ajs124.de> Akash Ayare <aayare@delphix.com> + Akash B <akash-b@hpe.com> Alan Somers <asomers@gmail.com> Alar Aun <spamtoaun@gmail.com> Albert Lee <trisk@nexenta.com> Alec Salazar <alec.j.salazar@gmail.com> + Alejandro Colomar <Colomar.6.4.3@GMail.com> Alejandro R. Sedeño <asedeno@mit.edu> Alek Pinchuk <alek@nexenta.com> Aleksa Sarai <cyphar@cyphar.com> - Alex Braunegg <alex.braunegg@gmail.com> - Alex McWhirter <alexmcwhirter@triadic.us> - Alex Reece <alex@delphix.com> - Alex Wilson <alex.wilson@joyent.com> - Alex Zhuravlev <alexey.zhuravlev@intel.com> Alexander Eremin <a.eremin@nexenta.com> + Alexander Lobakin <alobakin@pm.me> Alexander Motin <mav@freebsd.org> Alexander Pyhalov <apyhalov@gmail.com> + Alexander Richardson <Alexander.Richardson@cl.cam.ac.uk> Alexander Stetsenko <ams@nexenta.com> + Alex Braunegg <alex.braunegg@gmail.com> Alexey Shvetsov <alexxy@gentoo.org> Alexey Smirnoff <fling@member.fsf.org> + Alex John <alex@stty.io> + Alex McWhirter <alexmcwhirter@triadic.us> + Alex Reece <alex@delphix.com> + Alex Wilson <alex.wilson@joyent.com> + Alex Zhuravlev <alexey.zhuravlev@intel.com> Allan Jude <allanjude@freebsd.org> + Allen Holl <allen.m.holl@gmail.com> + alteriks <alteriks@gmail.com> + Alyssa Ross <hi@alyssa.is> + Ameer Hamza <ahamza@ixsystems.com> + Anatoly Borodin <anatoly.borodin@gmail.com> AndCycle <andcycle@andcycle.idv.tw> + Andrea Gelmini <andrea.gelmini@gelma.net> + Andrea Righi <andrea.righi@canonical.com> Andreas Buschmann <andreas.buschmann@tech.net.de> Andreas Dilger <adilger@intel.com> + Andreas Vögele <andreas@andreasvoegele.com> Andrew Barnes <barnes333@gmail.com> Andrew Hamilton <ahamilto@tjhsst.edu> + Andrew Innes <andrew.c12@gmail.com> + Andrew J. Hesford <ajh@sideband.org> Andrew Reid <ColdCanuck@nailedtotheperch.com> Andrew Stormont <andrew.stormont@nexenta.com> + Andrew Sun <me@andrewsun.com> Andrew Tselischev <andrewtselischev@gmail.com> + Andrew Turner <andrew@fubar.geek.nz> + Andrew Walker <awalker@ixsystems.com> + Andrey Prokopenko <job@terem.fr> Andrey Vesnovaty <andrey.vesnovaty@gmail.com> Andriy Gapon <avg@freebsd.org> Andy Bakun <github@thwartedefforts.org> + Andy Fiddaman <omnios@citrus-it.co.uk> Aniruddha Shankar <k@191a.net> + Anton Gubarkov <anton.gubarkov@gmail.com> Antonio Russo <antonio.e.russo@gmail.com> Arkadiusz Bubała <arkadiusz.bubala@open-e.com> + Armin Wehrfritz <dkxls23@gmail.com> Arne Jansen <arne@die-jansens.de> Aron Xu <happyaron.xu@gmail.com> + Arshad Hussain <arshad.hussain@aeoncomputing.com> + Arun KV <arun.kv@datacore.com> + Arvind Sankar <nivedita@alum.mit.edu> + Attila Fülöp <attila@fueloep.org> + Avatat <kontakt@avatat.pl> Bart Coddens <bart.coddens@gmail.com> Basil Crow <basil.crow@delphix.com> - Huang Liu <liu.huang@zte.com.cn> + Bassu <bassu@phi9.com> Ben Allen <bsallen@alcf.anl.gov> - Ben Rubson <ben.rubson@gmail.com> + Ben Cordero <bencord0@condi.me> + Benedikt Neuffer <github@itfriend.de> Benjamin Albrecht <git@albrecht.io> + Benjamin Gentil <benjgentil.pro@gmail.com> + Ben McGough <bmcgough@fredhutch.org> + Ben Rubson <ben.rubson@gmail.com> + Ben Wolsieffer <benwolsieffer@gmail.com> + bernie1995 <bernie.pikes@gmail.com> Bill McGonigle <bill-github.com-public1@bfccomputing.com> Bill Pijewski <wdp@joyent.com> Boris Protopopov <boris.protopopov@nexenta.com> + Brad Forschinger <github@bnjf.id.au> Brad Lewis <brad.lewis@delphix.com> + Brandon Thetford <brandon@dodecatec.com> + Brian Atkinson <bwa@g.clemson.edu> Brian Behlendorf <behlendorf1@llnl.gov> Brian J. Murrell <brian@sun.com> + Brooks Davis <brooks@one-eyed-alien.net> + BtbN <btbn@btbn.de> + bunder2015 <omfgbunder@gmail.com> + buzzingwires <buzzingwires@outlook.com> + bzzz77 <bzzz.tomas@gmail.com> + cable2999 <cable2999@users.noreply.github.com> Caleb James DeLisle <calebdelisle@lavabit.com> Cao Xuewen <cao.xuewen@zte.com.cn> Carlo Landmeter <clandmeter@gmail.com> Carlos Alberto Lopez Perez <clopez@igalia.com> + Cedric Maunoury <cedric.maunoury@gmail.com> Chaoyu Zhang <zhang.chaoyu@zte.com.cn> + Charles Suh <charles.suh@gmail.com> Chen Can <chen.can2@zte.com.cn> + Chengfei Zhu <chengfeix.zhu@intel.com> Chen Haiquan <oc@yunify.com> Chip Parker <aparker@enthought.com> Chris Burroughs <chris.burroughs@gmail.com> Chris Dunlap <cdunlap@llnl.gov> Chris Dunlop <chris@onthe.net.au> + Chris Lindee <chris.lindee+github@gmail.com> + Chris McDonough <chrism@plope.com> Chris Siden <chris.siden@delphix.com> - Chris Wedgwood <cw@f00f.org> - Chris Williamson <chris.williamson@delphix.com> - Chris Zubrzycki <github@mid-earth.net> - Christ Schlacta <aarcane@aarcane.info> + Chris Siebenmann <cks.github@cs.toronto.edu> Christer Ekholm <che@chrekh.se> Christian Kohlschütter <christian@kohlschutter.com> Christian Neukirchen <chneukirchen@gmail.com> Christian Schwarz <me@cschwarz.com> Christopher Voltz <cjunk@voltz.ws> + Christ Schlacta <aarcane@aarcane.info> + Chris Wedgwood <cw@f00f.org> + Chris Williamson <chris.williamson@delphix.com> + Chris Zubrzycki <github@mid-earth.net> + Chuck Tuffli <ctuffli@gmail.com> Chunwei Chen <david.chen@nutanix.com> Clemens Fruhwirth <clemens@endorphin.org> + Clemens Lang <cl@clang.name> + Clint Armstrong <clint@clintarmstrong.net> Coleman Kane <ckane@colemankane.org> Colin Ian King <colin.king@canonical.com> + Colm Buckley <colm@tuatha.org> + Crag Wang <crag0715@gmail.com> Craig Loomis <cloomis@astro.princeton.edu> Craig Sanders <github@taz.net.au> Cyril Plisko <cyril.plisko@infinidat.com> - DHE <git@dehacked.net> + Cy Schubert <cy@FreeBSD.org> + Cédric Berger <cedric@precidata.com> + Dacian Reece-Stremtan <dacianstremtan@gmail.com> + Dag-Erling Smørgrav <des@FreeBSD.org> + Damiano Albani <damiano.albani@gmail.com> + Damian Szuberski <szuberskidamian@gmail.com> Damian Wojsław <damian@wojslaw.pl> + Daniel Hiepler <d-git@coderdu.de> + Daniel Hoffman <dj.hoffman@delphix.com> + Daniel Kobras <d.kobras@science-computing.de> + Daniel Kolesa <daniel@octaforge.org> + Daniel Reichelt <hacking@nachtgeist.net> + Daniel Stevenson <bot@dstev.net> + Daniel Verite <daniel@verite.pro> + Daniil Lunev <d.lunev.mail@gmail.com> Dan Kimmel <dan.kimmel@delphix.com> Dan McDonald <danmcd@nexenta.com> Dan Swartzendruber <dswartz@druber.com> Dan Vatca <dan.vatca@gmail.com> - Daniel Hoffman <dj.hoffman@delphix.com> - Daniel Verite <daniel@verite.pro> - Daniil Lunev <d.lunev.mail@gmail.com> Darik Horn <dajhorn@vanadac.com> Dave Eddy <dave@daveeddy.com> + David Hedberg <david@qzx.se> David Lamparter <equinox@diac24.net> David Qian <david.qian@intel.com> David Quigley <david.quigley@intel.com> Debabrata Banerjee <dbanerje@akamai.com> + D. Ebdrup <debdrup@freebsd.org> Denys Rtveliashvili <denys@rtveliashvili.name> Derek Dai <daiderek@gmail.com> + DHE <git@dehacked.net> + Didier Roche <didrocks@ubuntu.com> Dimitri John Ledkov <xnox@ubuntu.com> + Dimitry Andric <dimitry@andric.com> + Dirkjan Bussink <d.bussink@gmail.com> Dmitry Khasanov <pik4ez@gmail.com> + Dominic Pearson <dsp@technoanimal.net> Dominik Hassler <hadfl@omniosce.org> Dominik Honnef <dominikh@fork-bomb.org> Don Brady <don.brady@delphix.com> + Doug Rabson <dfr@rabson.org> Dr. András Korn <korn-github.com@elan.rulez.org> + Dries Michiels <driesm.michiels@gmail.com> + Edmund Nadolski <edmund.nadolski@ixsystems.com> + Eitan Adler <lists@eitanadler.com> Eli Rosenthal <eli.rosenthal@delphix.com> + Eli Schwartz <eschwartz93@gmail.com> Eric Desrochers <eric.desrochers@canonical.com> Eric Dillmann <eric@jave.fr> Eric Schrock <Eric.Schrock@delphix.com> + Ethan Coe-Renner <coerenner1@llnl.gov> Etienne Dechamps <etienne@edechamps.fr> + Evan Allrich <eallrich@gmail.com> + Evan Harris <eharris@puremagic.com> Evan Susarret <evansus@gmail.com> Fabian Grünbichler <f.gruenbichler@proxmox.com> + Fabio Buso <dev.siroibaf@gmail.com> + Fabio Scaccabarozzi <fsvm88@gmail.com> Fajar A. Nugraha <github@fajar.net> Fan Yong <fan.yong@intel.com> + fbynite <fbynite@users.noreply.github.com> + Fedor Uporov <fuporov.vstack@gmail.com> + Felix Dörre <felix@dogcraft.de> + Felix Neumärker <xdch47@posteo.de> Feng Sun <loyou85@gmail.com> + Finix Yan <yancw@info2soft.com> + Francesco Mazzoli <f@mazzo.li> Frederik Wessels <wessels147@gmail.com> Frédéric Vanniere <f.vanniere@planet-work.com> + Gabriel A. Devenyi <gdevenyi@gmail.com> Garrett D'Amore <garrett@nexenta.com> + Garrett Fields <ghfields@gmail.com> Garrison Jensen <garrison.jensen@gmail.com> Gary Mills <gary_mills@fastmail.fm> Gaurav Kumar <gauravk.18@gmail.com> GeLiXin <ge.lixin@zte.com.cn> George Amanakis <g_amanakis@yahoo.com> + George Diamantopoulos <georgediam@gmail.com> + George Gaydarov <git@gg7.io> George Melikov <mail@gmelikov.ru> George Wilson <gwilson@delphix.com> Georgy Yakovlev <ya@sysdump.net> + Gerardwx <gerardw@alum.mit.edu> + Gian-Carlo DeFazio <defazio1@llnl.gov> + Gionatan Danti <g.danti@assyoma.it> Giuseppe Di Natale <guss80@gmail.com> + Glenn Washburn <development@efficientek.com> Gordan Bobic <gordan@redsleeve.org> + Gordon Bergling <gbergling@googlemail.com> Gordon Ross <gwr@nexenta.com> + Graham Christensen <graham@grahamc.com> + Graham Perrin <grahamperrin@gmail.com> Gregor Kopka <gregor@kopka.net> + Gregory Bartholomew <gregory.lee.bartholomew@gmail.com> + grembo <freebsd@grem.de> Grischa Zengel <github.zfsonlinux@zengel.info> + grodik <pat@litke.dev> Gunnar Beutner <gunnar@beutner.name> Gvozden Neskovic <neskovic@gmail.com> Hajo Möller <dasjoe@gmail.com> + Han Gao <rabenda.cn@gmail.com> Hans Rosenfeld <hans.rosenfeld@nexenta.com> + Harald van Dijk <harald@gigawatt.nl> + Harry Mallon <hjmallon@gmail.com> + Harry Sintonen <github-piru@kyber.fi> + HC <mmttdebbcc@yahoo.com> + hedong zhang <h_d_zhang@163.com> + Heitor Alves de Siqueira <halves@canonical.com> + Henrik Riomar <henrik.riomar@gmail.com> + Herb Wartens <wartens2@llnl.gov> + Hiếu Lê <leorize+oss@disroot.org> + Huang Liu <liu.huang@zte.com.cn> Håkan Johansson <f96hajo@chalmers.se> + Igor K <igor@dilos.org> Igor Kozhukhov <ikozhukhov@gmail.com> Igor Lvovsky <ilvovsky@gmail.com> + ilbsmart <wgqimut@gmail.com> + illiliti <illiliti@protonmail.com> + ilovezfs <ilovezfs@icloud.com> + InsanePrawn <Insane.Prawny@gmail.com> Isaac Huang <he.huang@intel.com> - JK Dingwall <james@dingwall.me.uk> Jacek Fefliński <feflik@gmail.com> + Jacob Adams <tookmund@gmail.com> + Jake Howard <git@theorangeone.net> James Cowgill <james.cowgill@mips.com> + James H <james@kagisoft.co.uk> James Lee <jlee@thestaticvoid.com> James Pan <jiaming.pan@yahoo.com> + James Wah <james@laird-wah.net> Jan Engelhardt <jengelh@inai.de> Jan Kryl <jan.kryl@nexenta.com> Jan Sanislo <oystr@cs.washington.edu> + Jason Cohen <jwittlincohen@gmail.com> + Jason Harmening <jason.harmening@gmail.com> Jason King <jason.brian.king@gmail.com> Jason Zaman <jasonzaman@gmail.com> Javen Wu <wu.javen@gmail.com> + Jean-Baptiste Lallement <jean-baptiste@ubuntu.com> + Jeff Dike <jdike@akamai.com> + Jeremy Faulkner <gldisater@gmail.com> Jeremy Gill <jgill@parallax-innovations.com> Jeremy Jones <jeremy@delphix.com> + Jeremy Visser <jeremy.visser@gmail.com> Jerry Jelinek <jerry.jelinek@joyent.com> + Jessica Clarke <jrtc27@jrtc27.com> Jinshan Xiong <jinshan.xiong@intel.com> + Jitendra Patidar <jitendra.patidar@nutanix.com> + JK Dingwall <james@dingwall.me.uk> Joe Stein <joe.stein@delphix.com> + John-Mark Gurney <jmg@funkthat.com> John Albietz <inthecloud247@gmail.com> John Eismeier <john.eismeier@gmail.com> - John L. Hammond <john.hammond@intel.com> + John Gallagher <john.gallagher@delphix.com> John Layman <jlayman@sagecloud.com> + John L. Hammond <john.hammond@intel.com> + John M. Layman <jml@frijid.net> + Johnny Stenback <github@jstenback.com> John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> + John Poduska <jpoduska@datto.com> + John Ramsden <johnramsden@riseup.net> John Wren Kennedy <john.kennedy@delphix.com> - Johnny Stenback <github@jstenback.com> + jokersus <lolivampireslave@gmail.com> + Jonathon Fernyhough <jonathon@m2x.dev> Jorgen Lundman <lundman@lundman.net> Josef 'Jeff' Sipek <josef.sipek@nexenta.com> + Josh Soref <jsoref@users.noreply.github.com> Joshua M. Clulow <josh@sysmgr.org> + José Luis Salvador Rufo <salvador.joseluis@gmail.com> + João Carlos Mendes Luís <jonny@jonny.eng.br> + Julian Brunner <julian.brunner@gmail.com> + Julian Heuking <JulianH@beckhoff.com> + jumbi77 <jumbi77@users.noreply.github.com> Justin Bedő <cu@cua0.org> + Justin Gottula <justin@jgottula.com> + Justin Hibbits <chmeeedalf@gmail.com> + Justin Keogh <github.com@v6y.net> Justin Lecher <jlec@gentoo.org> + Justin Scholz <git@justinscholz.de> Justin T. Gibbs <gibbs@FreeBSD.org> + jyxent <jordanp@gmail.com> Jörg Thalheim <joerg@higgsboson.tk> - KORN Andras <korn@elan.rulez.org> + ka7 <ka7@la-evento.com> + Ka Ho Ng <khng@FreeBSD.org> Kamil Domański <kamil@domanski.co> Karsten Kretschmer <kkretschmer@gmail.com> Kash Pande <kash@tripleback.net> + Kay Pedersen <christianpe96@gmail.com> Keith M Wesolowski <wesolows@foobazco.org> + KernelOfTruth <kerneloftruth@gmail.com> + Kevin Bowling <kevin.bowling@kev009.com> + Kevin Jin <lostking2008@hotmail.com> + Kevin P. Fleming <kevin@km6g.us> Kevin Tanguy <kevin.tanguy@ovh.net> KireinaHoro <i@jsteward.moe> Kjeld Schouten-Lebbing <kjeld@schouten-lebbing.nl> + Kleber Tarcísio <klebertarcisio@yahoo.com.br> + Kody A Kantor <kody.kantor@gmail.com> Kohsuke Kawaguchi <kk@kohsuke.org> + Konstantin Khorenko <khorenko@virtuozzo.com> + KORN Andras <korn@elan.rulez.org> + Kristof Provost <github@sigsegv.be> + Krzysztof Piecuch <piecuch@kpiecuch.pl> Kyle Blatter <kyleblatter@llnl.gov> + Kyle Evans <kevans@FreeBSD.org> Kyle Fuller <inbox@kylefuller.co.uk> - Loli <ezomori.nozomu@gmail.com> + Laevos <Laevos@users.noreply.github.com> + Lalufu <Lalufu@users.noreply.github.com> Lars Johannsen <laj@it.dk> + Laura Hild <lsh@jlab.org> + Laurențiu Nicola <lnicola@dend.ro> + Lauri Tirkkonen <lauri@hacktheplanet.fi> + liaoyuxiangqin <guo.yong33@zte.com.cn> Li Dongyang <dongyang.li@anu.edu.au> + Liu Hua <liu.hua130@zte.com.cn> + Liu Qing <winglq@gmail.com> Li Wei <W.Li@Sun.COM> + Loli <ezomori.nozomu@gmail.com> + lorddoskias <lorddoskias@gmail.com> + Lorenz Brun <lorenz@dolansoft.org> + Lorenz Hüdepohl <dev@stellardeath.org> + louwrentius <louwrentius@gmail.com> Lukas Wunner <lukas@wunner.de> + luozhengzheng <luo.zhengzheng@zte.com.cn> + Luís Henriques <henrix@camandro.org> Madhav Suresh <madhav.suresh@delphix.com> + manfromafar <jonsonb10@gmail.com> Manoj Joseph <manoj.joseph@delphix.com> Manuel Amador (Rudd-O) <rudd-o@rudd-o.com> Marcel Huber <marcelhuberfoo@gmail.com> + Marcel Menzel <mail@mcl.gg> + Marcel Schilling <marcel.schilling@uni-luebeck.de> Marcel Telka <marcel.telka@nexenta.com> Marcel Wysocki <maci.stgn@gmail.com> + Marcin Skarbek <git@skarbek.name> + Mariusz Zaborski <mariusz.zaborski@klarasystems.com> + Mark Johnston <markj@FreeBSD.org> + Mark Maybee <mark.maybee@delphix.com> + Mark Roper <markroper@gmail.com> Mark Shellenbaum <Mark.Shellenbaum@Oracle.COM> + marku89 <mar42@kola.li> Mark Wright <markwright@internode.on.net> Martin Matuska <mm@FreeBSD.org> + Martin Rüegg <martin.rueegg@metaworx.ch> Massimo Maggi <me@massimo-maggi.eu> - Matt Johnston <matt@fugro-fsi.com.au> - Matt Kemp <matt@mattikus.com> + Mateusz Guzik <mjguzik@gmail.com> + Mateusz Piotrowski <0mp@FreeBSD.org> + Mathieu Velten <matmaul@gmail.com> + Matt Fiddaman <github@m.fiddaman.uk> Matthew Ahrens <matt@delphix.com> Matthew Thode <mthode@mthode.org> + Matthias Blankertz <matthias@blankertz.org> + Matt Johnston <matt@fugro-fsi.com.au> + Matt Kemp <matt@mattikus.com> + Matt Macy <mmacy@freebsd.org> Matus Kral <matuskral@me.com> + Mauricio Faria de Oliveira <mfo@canonical.com> Max Grossman <max.grossman@delphix.com> Maximilian Mehnert <maximilian.mehnert@gmx.de> + Max Zettlmeißl <max@zettlmeissl.de> + Md Islam <mdnahian@outlook.com> + megari <megari@iki.fi> + Michael D Labriola <michael.d.labriola@gmail.com> + Michael Franzl <michael@franzl.name> Michael Gebetsroither <michael@mgeb.org> Michael Kjorling <michael@kjorling.se> Michael Martin <mgmartin.mgm@gmail.com> Michael Niewöhner <foss@mniewoehner.de> + Michael Zhivich <mzhivich@akamai.com> + Michal Vasilek <michal@vasilek.cz> Mike Gerdts <mike.gerdts@joyent.com> Mike Harsch <mike@harschsystems.com> Mike Leddy <mike.leddy@gmail.com> Mike Swanson <mikeonthecomputer@gmail.com> Milan Jurik <milan.jurik@xylab.cz> + Minsoo Choo <minsoochoo0122@proton.me> + Mohamed Tawfik <m_tawfik@aucegypt.edu> Morgan Jones <mjones@rice.edu> Moritz Maxeiner <moritz@ucworks.org> + Mo Zhou <cdluminate@gmail.com> + naivekun <naivekun@outlook.com> + nathancheek <myself@nathancheek.com> Nathaniel Clark <Nathaniel.Clark@misrule.us> Nathaniel Wesley Filardo <nwf@cs.jhu.edu> + Nathan Lewis <linux.robotdude@gmail.com> Nav Ravindranath <nav@delphix.com> Neal Gompa (ニール・ゴンパ) <ngompa13@gmail.com> Ned Bass <bass6@llnl.gov> Neependra Khare <neependra@kqinfotech.com> Neil Stockbridge <neil@dist.ro> + Nick Black <dank@qemfd.net> Nick Garvey <garvey.nick@gmail.com> + Nick Mattis <nickm970@gmail.com> + Nick Terrell <terrelln@fb.com> + Niklas Haas <github-c6e1c8@haasn.xyz> Nikolay Borisov <n.borisov.lkml@gmail.com> + nordaux <nordaux@gmail.com> + ofthesun9 <olivier@ofthesun.net> Olaf Faaland <faaland1@llnl.gov> Oleg Drokin <green@linuxhacker.ru> Oleg Stepura <oleg@stepura.com> + Olivier Mazouffre <olivier.mazouffre@ims-bordeaux.fr> + omni <omni+vagant@hack.org> + Orivej Desh <orivej@gmx.fr> + Pablo Correa Gómez <ablocorrea@hotmail.com> + Palash Gandhi <pbg4930@rit.edu> + Patrick Mooney <pmooney@pfmooney.com> Patrik Greco <sikevux@sikevux.se> Paul B. Henson <henson@acm.org> Paul Dagnelie <pcd@delphix.com> @@ -243,69 +465,160 @@ CONTRIBUTORS: Pedro Giffuni <pfg@freebsd.org> Peng <peng.hse@xtaotech.com> Peter Ashford <ashford@accs.com> + Peter Dave Hello <hsu@peterdavehello.org> + Peter Levine <plevine457@gmail.com> + Peter Wirdemo <peter.wirdemo@gmail.com> + Petros Koutoupis <petros@petroskoutoupis.com> + Philip Pokorny <ppokorny@penguincomputing.com> + Philipp Riederer <pt@philipptoelke.de> + Phil Kauffman <philip@kauffman.me> + Ping Huang <huangping@smartx.com> + Piotr Kubaj <pkubaj@anongoth.pl> + Piotr P. Stefaniak <pstef@freebsd.org> Prakash Surya <prakash.surya@delphix.com> Prasad Joshi <prasadjoshi124@gmail.com> + privb0x23 <privb0x23@users.noreply.github.com> + P.SCH <p88@yahoo.com> + Quentin Zdanis <zdanisq@gmail.com> + Rafael Kitover <rkitover@gmail.com> + RageLtMan <sempervictus@users.noreply.github.com> Ralf Ertzinger <ralf@skytale.net> Randall Mason <ClashTheBunny@gmail.com> Remy Blank <remy.blank@pobox.com> + renelson <bnelson@nelsonbe.com> + Reno Reckling <e-github@wthack.de> Ricardo M. Correia <ricardo.correia@oracle.com> - Rich Ercolani <rincebrain@gmail.com> + Riccardo Schirone <rschirone91@gmail.com> + Richard Allen <belperite@gmail.com> Richard Elling <Richard.Elling@RichardElling.com> Richard Laager <rlaager@wiktel.com> Richard Lowe <richlowe@richlowe.net> Richard Sharpe <rsharpe@samba.org> Richard Yao <ryao@gentoo.org> + Rich Ercolani <rincebrain@gmail.com> + Robert Novak <sailnfool@gmail.com> + Roberto Ricci <ricci@disroot.org> + Rob Norris <robn@despairlabs.com> + Rob Wing <rew@FreeBSD.org> Rohan Puri <rohan.puri15@gmail.com> Romain Dolbeau <romain.dolbeau@atos.net> Roman Strashkin <roman.strashkin@nexenta.com> + Ross Williams <ross@ross-williams.net> Ruben Kerkhof <ruben@rubenkerkhof.com> + Ryan Hirasaki <ryanhirasaki@gmail.com> + Ryan Lahfa <masterancpp@gmail.com> + Ryan Libby <rlibby@FreeBSD.org> + Ryan Moeller <freqlabs@FreeBSD.org> + Sam Hathaway <github.com@munkynet.org> + Sam Lunt <samuel.j.lunt@gmail.com> + Samuel VERSCHELDE <stormi-github@ylix.fr> + Samuel Wycliffe <samuelwycliffe@gmail.com> + Samuel Wycliffe J <samwyc@hpe.com> + Sanjeev Bagewadi <sanjeev.bagewadi@gmail.com> + Sara Hartse <sara.hartse@delphix.com> Saso Kiselkov <saso.kiselkov@nexenta.com> + Satadru Pramanik <satadru@gmail.com> + Savyasachee Jha <genghizkhan91@hawkradius.com> + Scott Colby <scott@scolby.com> Scot W. Stevenson <scot.stevenson@gmail.com> Sean Eric Fagan <sef@ixsystems.com> Sebastian Gottschall <s.gottschall@dd-wrt.com> + Sebastien Roy <seb@delphix.com> Sen Haerens <sen@senhaerens.be> Serapheim Dimitropoulos <serapheim@delphix.com> Seth Forshee <seth.forshee@canonical.com> + Shaan Nobee <sniper111@gmail.com> Shampavman <sham.pavman@nexenta.com> + Shaun Tancheff <shaun@aeonazure.com> Shen Yan <shenyanxxxy@qq.com> Simon Guest <simon.guest@tesujimath.org> Simon Klinkert <simon.klinkert@gmail.com> Sowrabha Gopal <sowrabha.gopal@delphix.com> + Spencer Kinny <spencerkinny1995@gmail.com> + Srikanth N S <srikanth.nagasubbaraoseetharaman@hpe.com> Stanislav Seletskiy <s.seletskiy@gmail.com> Steffen Müthing <steffen.muething@iwr.uni-heidelberg.de> Stephen Blinick <stephen.blinick@delphix.com> + sterlingjensen <sterlingjensen@users.noreply.github.com> Steve Dougherty <sdougherty@barracuda.com> + Steve Mokris <smokris@softpixel.com> Steven Burgess <sburgess@dattobackup.com> Steven Hartland <smh@freebsd.org> Steven Johnson <sjohnson@sakuraindustries.com> + Steven Noonan <steven@uplinklabs.net> + stf <s@ctrlc.hu> Stian Ellingsen <stian@plaimi.net> + Stoiko Ivanov <github@nomore.at> + Stéphane Lesimple <speed47_github@speed47.net> Suman Chakravartula <schakrava@gmail.com> Sydney Vanda <sydney.m.vanda@intel.com> Sören Tempel <soeren+git@soeren-tempel.net> + Tamas TEVESZ <ice@extreme.hu> + Teodor Spæren <teodor_spaeren@riseup.net> + TerraTech <TerraTech@users.noreply.github.com> Thijs Cramer <thijs.cramer@gmail.com> + Thomas Geppert <geppi@digitx.de> + Thomas Lamprecht <guggentom@hotmail.de> + Till Maas <opensource@till.name> Tim Chase <tim@chase2k.com> Tim Connors <tconnors@rather.puzzling.org> Tim Crawford <tcrawford@datto.com> Tim Haley <Tim.Haley@Sun.COM> + timor <timor.dd@googlemail.com> + Timothy Day <tday141@gmail.com> + Tim Schumacher <timschumi@gmx.de> Tino Reichardt <milky-zfs@mcmilk.de> Tobin Harding <me@tobin.cc> Tom Caputi <tcaputi@datto.com> Tom Matthews <tom@axiom-partners.com> - Tom Prince <tom.prince@ualberta.net> Tomohiro Kusumi <kusumi.tomohiro@gmail.com> + Tom Prince <tom.prince@ualberta.net> Tony Hutter <hutter2@llnl.gov> + Tony Nguyen <tony.nguyen@delphix.com> + Tony Perkins <tperkins@datto.com> Toomas Soome <tsoome@me.com> + Torsten Wörtwein <twoertwein@gmail.com> + Toyam Cox <aviator45003@gmail.com> + Trevor Bautista <trevrb@trevrb.net> Trey Dockendorf <treydock@gmail.com> + Troels Nørgaard <tnn@tradeshift.com> + Tulsi Jain <tulsi.jain@delphix.com> Turbo Fredriksson <turbo@bayour.com> Tyler J. Stachecki <stachecki.tyler@gmail.com> + Umer Saleem <usaleem@ixsystems.com> + Valmiky Arquissandas <kayvlim@gmail.com> + Val Packett <val@packett.cool> + Vince van Oosten <techhazard@codeforyouand.me> + Violet Purcell <vimproved@inventati.org> + Vipin Kumar Verma <vipin.verma@hpe.com> Vitaut Bajaryn <vitaut.bayaryn@gmail.com> + Volker Mauel <volkermauel@gmail.com> + Václav Skála <skala@vshosting.cz> + Walter Huf <hufman@gmail.com> + Warner Losh <imp@bsdimp.com> Weigang Li <weigang.li@intel.com> + WHR <msl0000023508@gmail.com> Will Andrews <will@freebsd.org> Will Rouesnel <w.rouesnel@gmail.com> + Windel Bouwman <windel@windel.nl> + Wojciech Małota-Wójcik <outofforest@users.noreply.github.com> Wolfgang Bumiller <w.bumiller@proxmox.com> Xin Li <delphij@FreeBSD.org> + Xinliang Liu <xinliang.liu@linaro.org> + xtouqh <xtouqh@hotmail.com> + Yann Collet <cyan@fb.com> + Yanping Gao <yanping.gao@xtaotech.com> Ying Zhu <casualfisher@gmail.com> + Youzhong Yang <youzhong@gmail.com> + yparitcher <y@paritcher.com> + yuina822 <ayuichi@club.kyutech.ac.jp> YunQiang Su <syq@debian.org> Yuri Pankov <yuri.pankov@gmail.com> Yuxuan Shui <yshuiv7@gmail.com> Zachary Bedell <zac@thebedells.org> + Zach Dykstra <dykstra.zachary@gmail.com> + zgock <zgock@nuc.base.zgock-lab.net> + Zhu Chuang <chuang@melty.land> + Érico Nogueira <erico.erc@gmail.com> + Đoàn Trần Công Danh <congdanhqx@gmail.com> + 韩朴宇 <w12101111@gmail.com> diff --git a/sys/contrib/openzfs/config/zfs-build.m4 b/sys/contrib/openzfs/config/zfs-build.m4 index e4197dc1424e..5f36569fe25b 100644 --- a/sys/contrib/openzfs/config/zfs-build.m4 +++ b/sys/contrib/openzfs/config/zfs-build.m4 @@ -626,6 +626,7 @@ AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [ ubuntu) bashcompletiondir=/usr/share/bash-completion/completions ;; debian) bashcompletiondir=/usr/share/bash-completion/completions ;; freebsd) bashcompletiondir=$sysconfdir/bash_completion.d;; + gentoo) bashcompletiondir=/usr/share/bash-completion/completions ;; *) bashcompletiondir=/etc/bash_completion.d ;; esac AC_MSG_RESULT([$bashcompletiondir]) diff --git a/sys/contrib/openzfs/include/os/freebsd/spl/sys/ctype.h b/sys/contrib/openzfs/include/os/freebsd/spl/sys/ctype.h index 201fa95550e3..b9ca0f8ef2c4 100644 --- a/sys/contrib/openzfs/include/os/freebsd/spl/sys/ctype.h +++ b/sys/contrib/openzfs/include/os/freebsd/spl/sys/ctype.h @@ -39,6 +39,6 @@ ((C) >= 0x3A && (C) <= 0x40) || \ ((C) >= 0x5B && (C) <= 0x60) || \ ((C) >= 0x7B && (C) <= 0x7E)) -#define isspace(C) ((C) == 0x20 || ((C) >= 0x9 && (C) <= 0xD)) +#define isspace(C) ((C) == 0x20 || ((C) >= 0x9 && (C) <= 0xD)) #endif diff --git a/sys/contrib/openzfs/man/man4/zfs.4 b/sys/contrib/openzfs/man/man4/zfs.4 index cfadd79d87f3..71a3e67ee67e 100644 --- a/sys/contrib/openzfs/man/man4/zfs.4 +++ b/sys/contrib/openzfs/man/man4/zfs.4 @@ -2317,63 +2317,6 @@ If .Sy zvol_threads to the number of CPUs present or 32 (whichever is greater). . -.It Sy zvol_blk_mq_threads Ns = Ns Sy 0 Pq uint -The number of threads per zvol to use for queuing IO requests. -This parameter will only appear if your kernel supports -.Li blk-mq -and is only read and assigned to a zvol at zvol load time. -If -.Sy 0 -(the default) then internally set -.Sy zvol_blk_mq_threads -to the number of CPUs present. -. -.It Sy zvol_use_blk_mq Ns = Ns Sy 0 Ns | Ns 1 Pq uint -Set to -.Sy 1 -to use the -.Li blk-mq -API for zvols. -Set to -.Sy 0 -(the default) to use the legacy zvol APIs. -This setting can give better or worse zvol performance depending on -the workload. -This parameter will only appear if your kernel supports -.Li blk-mq -and is only read and assigned to a zvol at zvol load time. -. -.It Sy zvol_blk_mq_blocks_per_thread Ns = Ns Sy 8 Pq uint -If -.Sy zvol_use_blk_mq -is enabled, then process this number of -.Sy volblocksize Ns -sized blocks per zvol thread. -This tunable can be use to favor better performance for zvol reads (lower -values) or writes (higher values). -If set to -.Sy 0 , -then the zvol layer will process the maximum number of blocks -per thread that it can. -This parameter will only appear if your kernel supports -.Li blk-mq -and is only applied at each zvol's load time. -. -.It Sy zvol_blk_mq_queue_depth Ns = Ns Sy 0 Pq uint -The queue_depth value for the zvol -.Li blk-mq -interface. -This parameter will only appear if your kernel supports -.Li blk-mq -and is only applied at each zvol's load time. -If -.Sy 0 -(the default) then use the kernel's default queue depth. -Values are clamped to the kernel's -.Dv BLKDEV_MIN_RQ -and -.Dv BLKDEV_MAX_RQ Ns / Ns Dv BLKDEV_DEFAULT_RQ -limits. -. .It Sy zvol_volmode Ns = Ns Sy 1 Pq uint Defines zvol block devices behaviour when .Sy volmode Ns = Ns Sy default : diff --git a/sys/contrib/openzfs/module/os/linux/zfs/zpl_file_range.c b/sys/contrib/openzfs/module/os/linux/zfs/zpl_file_range.c index 2abbf44df587..c47fe99dacff 100644 --- a/sys/contrib/openzfs/module/os/linux/zfs/zpl_file_range.c +++ b/sys/contrib/openzfs/module/os/linux/zfs/zpl_file_range.c @@ -202,8 +202,10 @@ zpl_ioctl_ficlone(struct file *dst_file, void *arg) if (src_file == NULL) return (-EBADF); - if (dst_file->f_op != src_file->f_op) + if (dst_file->f_op != src_file->f_op) { + fput(src_file); return (-EXDEV); + } size_t len = i_size_read(file_inode(src_file)); @@ -237,8 +239,10 @@ zpl_ioctl_ficlonerange(struct file *dst_file, void __user *arg) if (src_file == NULL) return (-EBADF); - if (dst_file->f_op != src_file->f_op) + if (dst_file->f_op != src_file->f_op) { + fput(src_file); return (-EXDEV); + } size_t len = fcr.fcr_src_length; if (len == 0) diff --git a/sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c b/sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c index 7a95b54bdf0d..76521c95911e 100644 --- a/sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c +++ b/sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c @@ -1620,18 +1620,6 @@ MODULE_PARM_DESC(zvol_prefetch_bytes, "Prefetch N bytes at zvol start+end"); module_param(zvol_volmode, uint, 0644); MODULE_PARM_DESC(zvol_volmode, "Default volmode property value"); -#ifdef HAVE_BLK_MQ -module_param(zvol_blk_mq_queue_depth, uint, 0644); -MODULE_PARM_DESC(zvol_blk_mq_queue_depth, "Default blk-mq queue depth"); - -module_param(zvol_use_blk_mq, uint, 0644); -MODULE_PARM_DESC(zvol_use_blk_mq, "Use the blk-mq API for zvols"); - -module_param(zvol_blk_mq_blocks_per_thread, uint, 0644); -MODULE_PARM_DESC(zvol_blk_mq_blocks_per_thread, - "Process volblocksize blocks per thread"); -#endif - #ifndef HAVE_BLKDEV_GET_ERESTARTSYS module_param(zvol_open_timeout_ms, uint, 0644); MODULE_PARM_DESC(zvol_open_timeout_ms, "Timeout for ZVOL open retries"); diff --git a/sys/contrib/openzfs/module/zfs/vdev_trim.c b/sys/contrib/openzfs/module/zfs/vdev_trim.c index 0d71b9434342..03e17db024ea 100644 --- a/sys/contrib/openzfs/module/zfs/vdev_trim.c +++ b/sys/contrib/openzfs/module/zfs/vdev_trim.c @@ -23,6 +23,7 @@ * Copyright (c) 2016 by Delphix. All rights reserved. * Copyright (c) 2019 by Lawrence Livermore National Security, LLC. * Copyright (c) 2021 Hewlett Packard Enterprise Development LP + * Copyright 2023 RackTop Systems, Inc. */ #include <sys/spa.h> @@ -591,6 +592,7 @@ vdev_trim_ranges(trim_args_t *ta) uint64_t extent_bytes_max = ta->trim_extent_bytes_max; uint64_t extent_bytes_min = ta->trim_extent_bytes_min; spa_t *spa = vd->vdev_spa; + int error = 0; ta->trim_start_time = gethrtime(); ta->trim_bytes_done = 0; @@ -610,19 +612,32 @@ vdev_trim_ranges(trim_args_t *ta) uint64_t writes_required = ((size - 1) / extent_bytes_max) + 1; for (uint64_t w = 0; w < writes_required; w++) { - int error; - error = vdev_trim_range(ta, VDEV_LABEL_START_SIZE + rs_get_start(rs, ta->trim_tree) + (w *extent_bytes_max), MIN(size - (w * extent_bytes_max), extent_bytes_max)); if (error != 0) { - return (error); + goto done; } } } - return (0); +done: + /* + * Make sure all TRIMs for this metaslab have completed before + * returning. TRIM zios have lower priority over regular or syncing + * zios, so all TRIM zios for this metaslab must complete before the + * metaslab is re-enabled. Otherwise it's possible write zios to + * this metaslab could cut ahead of still queued TRIM zios for this + * metaslab causing corruption if the ranges overlap. + */ + mutex_enter(&vd->vdev_trim_io_lock); + while (vd->vdev_trim_inflight[0] > 0) { + cv_wait(&vd->vdev_trim_io_cv, &vd->vdev_trim_io_lock); + } + mutex_exit(&vd->vdev_trim_io_lock); + + return (error); } static void @@ -941,11 +956,6 @@ vdev_trim_thread(void *arg) } spa_config_exit(spa, SCL_CONFIG, FTAG); - mutex_enter(&vd->vdev_trim_io_lock); - while (vd->vdev_trim_inflight[0] > 0) { - cv_wait(&vd->vdev_trim_io_cv, &vd->vdev_trim_io_lock); - } - mutex_exit(&vd->vdev_trim_io_lock); range_tree_destroy(ta.trim_tree); diff --git a/sys/contrib/openzfs/rpm/generic/zfs.spec.in b/sys/contrib/openzfs/rpm/generic/zfs.spec.in index 711e6c751dc0..2e89abd0edfd 100644 --- a/sys/contrib/openzfs/rpm/generic/zfs.spec.in +++ b/sys/contrib/openzfs/rpm/generic/zfs.spec.in @@ -19,6 +19,15 @@ %endif %endif +# Set the default _bashcompletiondir directory based on distribution. +%if %{undefined _bashcompletiondir} +%if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} +%global _bashcompletiondir /etc/bash_completion.d +%else +%global _bashcompletiondir /usr/share/bash-completion +%endif +%endif + # Set the default dracut directory based on distribution. %if %{undefined _dracutdir} %if 0%{?rhel}%{?fedora}%{?centos}%{?suse_version}%{?openEuler} diff --git a/sys/contrib/openzfs/scripts/Makefile.am b/sys/contrib/openzfs/scripts/Makefile.am index 4175d27ea32a..95640727ac6a 100644 --- a/sys/contrib/openzfs/scripts/Makefile.am +++ b/sys/contrib/openzfs/scripts/Makefile.am @@ -27,6 +27,7 @@ endif dist_noinst_DATA += \ %D%/cstyle.pl \ %D%/enum-extract.pl \ + %D%/update_authors.pl \ %D%/zfs2zol-patch.sed \ %D%/zol2zfs-patch.sed diff --git a/sys/contrib/openzfs/scripts/update_authors.pl b/sys/contrib/openzfs/scripts/update_authors.pl new file mode 100755 index 000000000000..8dd49b5fb38d --- /dev/null +++ b/sys/contrib/openzfs/scripts/update_authors.pl @@ -0,0 +1,322 @@ +#!/usr/bin/env perl + +# SPDX-License-Identifier: MIT +# +# Copyright (c) 2023, Rob Norris <robn@despairlabs.com> +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + + +# This program will update the AUTHORS file to include commit authors that are +# in the git history but are not yet credited. +# +# The CONTRIBUTORS section of the AUTHORS file attempts to be a list of +# individual contributors to OpenZFS, with one name, address and line per +# person. This is good for readability, but does not really leave room for the +# that names and emails on commits from the same individual can be different, +# for all kinds of reasons, not limited to: +# +# - a person might change organisations, and so their email address changes +# +# - a person might be paid to work on OpenZFS for their employer, and then hack +# on personal projects in the evening, so commits legitimately come from +# different addresses +# +# - names change for all kinds of reasons +# +# To try and account for this, this program will try to find all the possible +# names and emails for a single contributor, and then select the "best" one to +# add to the AUTHORS file. +# +# The CONTRIBUTORS section of the AUTHORS file is considered the source of +# truth. Once an individual committer is listed in there, that line will not be +# removed regardless of what is discovered in the commit history. However, it +# can't just be _anything_. The name or email still has to match something seen +# in the commit history, so that we're able to undertand that its the same +# contributor. +# +# The bulk of the work is in running `git log` to fetch commit author names and +# emails. For each value, we generate a "slug" to use as an internal id for +# that value, which is mostly just the lowercase of the value with whitespace +# and punctuation removed. Two values with subtle differences can produce the +# same slug, so at this point we also try to keep the "best" pre-slug value as +# the display version. We use this slug to update two maps, one of email->name, +# the other of name->email. +# +# Once collected, we then walk all the emails we've seen and get all the names +# associated with every instance. Then for each of those names, we get all the +# emails associated, and so on until we've seen all the connected names and +# emails. This collection is every possible name and email for an individual +# contributor. +# +# Finaly, we consider these groups, and select the "best" name and email for +# the contributor, and add them to the author tables if they aren't there +# already. Once we've done everyone, we write out a new AUTHORS file, and +# that's the whole job. +# +# This is imperfect! Its necessary for the user to examine the diff and make +# sure its sensible. If it hasn't hooked up right, it may necessary to adjust +# the input data (via .mailmap) or improve the heuristics in this program. It +# took a long time to get into good shape when first written (355 new names +# added to AUTHORS!) but hopefully in the future we'll be running this +# regularly so it doesn't fall so far behind. + + +use 5.010; +use warnings; +use strict; + +# Storage for the "best looking" version of name or email, keyed on slug. +my %display_name; +my %display_email; + +# First, we load the existing AUTHORS file. We save everything before +# CONTRIBUTORS: line as-is so we can write it back out to the new file. Then +# we extract name,email pairs from the remainder and store them in a pair of +# hashtables, keyed on slug. +my %authors_name; +my %authors_email; + +my @authors_header; + +for my $line (do { local (@ARGV) = ('AUTHORS'); <> }) { + chomp $line; + state $in_header = 1; + if ($in_header) { + push @authors_header, $line; + $in_header = 0 if $line =~ m/^CONTRIBUTORS:/; + } else { + my ($name, $email) = $line =~ m/^\s+(.+)(?= <) <([^>]+)/; + next unless $name; + + my $semail = email_slug($email); + my $sname = name_slug($name); + + $authors_name{$semail} = $sname; + $authors_email{$sname} = $semail; + + # The name/email in AUTHORS is already the "best looking" + # version, by definition. + $display_name{$sname} = $name; + $display_email{$semail} = $email; + } +} + +# Next, we load all the commit authors. and form name<->email mappings, keyed +# on slug. Note that this format is getting the .mailmap-converted form. This +# lets us control the input to some extent by making changes there. +my %git_names; +my %git_emails; + +for my $line (reverse qx(git log --pretty=tformat:'%aN:::%aE')) { + chomp $line; + my ($name, $email) = $line =~ m/^(.*):::(.*)/; + next unless $name && $email; + + my $semail = email_slug($email); + my $sname = name_slug($name); + + $git_names{$semail}{$sname} = 1; + $git_emails{$sname}{$semail} = 1; + + # Update the "best looking" display value, but only if we don't already + # have something from the AUTHORS file. If we do, we must not change it. + if (!$authors_name{email_slug($email)}) { + update_display_email($email); + } + + if (!$authors_email{name_slug($name)}) { + update_display_name($name); + } +} + +# Now collect unique committers by all names+emails we've ever seen for them. +# We start with emails and resolve all possible names, then we resolve the +# emails for those names, and round and round until there's nothing left. +my @committers; +for my $start_email (sort keys %git_names) { + # it might have been deleted already through a cross-reference + next unless $git_names{$start_email}; + + my %emails; + my %names; + + my @check_emails = ($start_email); + my @check_names; + while (@check_emails || @check_names) { + while (my $email = shift @check_emails) { + next if $emails{$email}++; + push @check_names, + sort keys %{delete $git_names{$email}}; + } + while (my $name = shift @check_names) { + next if $names{$name}++; + push @check_emails, + sort keys %{delete $git_emails{$name}}; + } + } + + # A "committer" is the collection of connected names and emails. + push @committers, [[sort keys %emails], [sort keys %names]]; +} + +# Now we have our committers, we can work out what to add to AUTHORS. +for my $committer (@committers) { + my ($emails, $names) = @$committer; + + # If this commiter is already in AUTHORS, we must not touch. + next if grep { $authors_name{$_} } @$emails; + next if grep { $authors_email{$_} } @$names; + + # Decide on the "best" name and email to use + my $email = best_email(@$emails); + my $name = best_name(@$names); + + $authors_email{$name} = $email; + $authors_name{$email} = $name; +} + +# Now output the new AUTHORS file +open my $fh, '>', 'AUTHORS' or die "E: couldn't open AUTHORS for write: $!\n"; +#my $fh = \*STDOUT; +say $fh join("\n", @authors_header, ""); +for my $name (sort keys %authors_email) { + my $cname = $display_name{$name}; + my $cemail = $display_email{email_slug($authors_email{$name})}; + say $fh " $cname <$cemail>"; +} + +exit 0; + +# "Slugs" are used at the hashtable key for names and emails. They are used to +# making two variants of a value be the "same" for matching. Mostly this is +# to make upper and lower-case versions of a name or email compare the same, +# but we do a little bit of munging to handle some common cases. +# +# Note that these are only used for matching internally; for display, the +# slug will be used to look up the display form. +sub name_slug { + my ($name) = @_; + + # Remove spaces and dots, to handle differences in initials. + $name =~ s/[\s\.]//g; + + return lc $name; +} +sub email_slug { + my ($email) = @_; + + # Remove everything up to and including the first space, and the last + # space and everything after it. + $email =~ s/^(.*\s+)|(\s+.*)$//g; + + # Remove the leading userid+ on Github noreply addresses. They're + # optional and we want to treat them as the same thing. + $email =~ s/^[^\+]*\+//g if $email =~ m/\.noreply\.github\.com$/; + + return lc $email; +} + +sub update_display_name { + my ($name) = @_; + my $sname = name_slug($name); + + # For names, "more specific" means "has more non-lower-case characters" + # (in ASCII), guessing that if a person has gone to some effort to + # specialise their name in a later commit, they presumably care more + # about it. If this is wrong, its probably better to add a .mailmap + # entry. + + my $cname = $display_name{$sname}; + if (!$cname || + ($name =~ tr/a-z //) < ($cname =~ tr/a-z //)) { + $display_name{$sname} = $name; + } +} +sub update_display_email { + my ($email) = @_; + my $semail = email_slug($email); + + # Like names, we prefer uppercase when possible. We also remove any + # leading "plus address" for Github noreply addresses. + $email =~ s/^[^\+]*\+//g if $email =~ m/\.noreply\.github\.com$/; + + my $cemail = $display_email{$semail}; + if (!$cemail || + ($email =~ tr/a-z //) < ($cemail =~ tr/a-z //)) { + $display_email{$semail} = $email; + } +} + +sub best_name { + my @names = sort { + my $cmp; + my ($aa) = $display_name{$a}; + my ($bb) = $display_name{$b}; + + # The "best" name is very subjective, and a simple sort + # produced good-enough results, so I didn't try harder. Use of + # accented characters, punctuation and caps are probably an + # indicator of "better", but possibly we should also take into + # account the most recent name we saw, in case the committer + # has changed their name or nickname or similar. + # + # Really, .mailmap is the place to control this. + + return ($aa cmp $bb); + } @_; + + return shift @names; +} +sub best_email { + state $internal_re = qr/\.(?:internal|local|\(none\))$/; + state $noreply_re = qr/\.noreply\.github\.com$/; + state $freemail_re = qr/\@(?:gmail|hotmail)\.com$/; + + my @emails = sort { + my $cmp; + + # prefer address with a single @ over those without + $cmp = (($b =~ tr/@//) == 1) <=> (($a =~ tr/@//) == 1); + return $cmp unless $cmp == 0; + + # prefer any address over internal/local addresses + $cmp = (($a =~ $internal_re) <=> ($b =~ $internal_re)); + return $cmp unless $cmp == 0; + + # prefer any address over github noreply aliases + $cmp = (($a =~ $noreply_re) <=> ($b =~ $noreply_re)); + return $cmp unless $cmp == 0; + + # prefer any address over freemail providers + $cmp = (($a =~ $freemail_re) <=> ($b =~ $freemail_re)); + return $cmp unless $cmp == 0; + + # alphabetical by domain + my ($alocal, $adom) = split /\@/, $a; + my ($blocal, $bdom) = split /\@/, $b; + $cmp = ($adom cmp $bdom); + return $cmp unless $cmp == 0; + + # alphabetical by local part + return ($alocal cmp $blocal); + } @_; + + return shift @emails; +} diff --git a/sys/contrib/openzfs/tests/runfiles/common.run b/sys/contrib/openzfs/tests/runfiles/common.run index 1435c55e8fc2..ef787c65c0f9 100644 --- a/sys/contrib/openzfs/tests/runfiles/common.run +++ b/sys/contrib/openzfs/tests/runfiles/common.run @@ -415,10 +415,6 @@ tests = ['zpool_import_001_pos', 'zpool_import_002_pos', 'zpool_import_rename_001_pos', 'zpool_import_all_001_pos', 'zpool_import_encrypted', 'zpool_import_encrypted_load', 'zpool_import_errata3', 'zpool_import_errata4', - 'zpool_import_hostid_changed', - 'zpool_import_hostid_changed_unclean_export', - 'zpool_import_hostid_changed_cachefile', - 'zpool_import_hostid_changed_cachefile_unclean_export', 'import_cachefile_device_added', 'import_cachefile_device_removed', 'import_cachefile_device_replaced', diff --git a/sys/contrib/openzfs/tests/runfiles/linux.run b/sys/contrib/openzfs/tests/runfiles/linux.run index 2c8d5cb0ecbb..2252e46df3a8 100644 --- a/sys/contrib/openzfs/tests/runfiles/linux.run +++ b/sys/contrib/openzfs/tests/runfiles/linux.run @@ -82,6 +82,13 @@ tests = ['zpool_expand_001_pos', 'zpool_expand_002_pos', 'zpool_expand_003_neg', 'zpool_expand_004_pos', 'zpool_expand_005_pos'] tags = ['functional', 'cli_root', 'zpool_expand'] +[tests/functional/cli_root/zpool_import:Linux] +tests = ['zpool_import_hostid_changed', + 'zpool_import_hostid_changed_unclean_export', + 'zpool_import_hostid_changed_cachefile', + 'zpool_import_hostid_changed_cachefile_unclean_export'] +tags = ['functional', 'cli_root', 'zpool_import'] + [tests/functional/cli_root/zpool_reopen:Linux] tests = ['zpool_reopen_001_pos', 'zpool_reopen_002_pos', 'zpool_reopen_003_pos', 'zpool_reopen_004_pos', 'zpool_reopen_005_pos', diff --git a/sys/contrib/openzfs/tests/test-runner/bin/zts-report.py.in b/sys/contrib/openzfs/tests/test-runner/bin/zts-report.py.in index 558e4b57279d..5d1360380de5 100755 --- a/sys/contrib/openzfs/tests/test-runner/bin/zts-report.py.in +++ b/sys/contrib/openzfs/tests/test-runner/bin/zts-report.py.in @@ -262,7 +262,6 @@ if sys.platform.startswith('freebsd'): 'cli_root/zfs_inherit/zfs_inherit_001_neg': ['FAIL', known_reason], 'cli_root/zpool_import/zpool_import_012_pos': ['FAIL', known_reason], 'delegate/zfs_allow_003_pos': ['FAIL', known_reason], - 'delegate/zfs_allow_010_pos': ['FAIL', known_reason], 'inheritance/inherit_001_pos': ['FAIL', 11829], 'resilver/resilver_restart_001': ['FAIL', known_reason], 'pool_checkpoint/checkpoint_big_rewind': ['FAIL', 12622], diff --git a/sys/contrib/openzfs/tests/zfs-tests/include/tunables.cfg b/sys/contrib/openzfs/tests/zfs-tests/include/tunables.cfg index 80e7bcb3bd09..8010a9451597 100644 --- a/sys/contrib/openzfs/tests/zfs-tests/include/tunables.cfg +++ b/sys/contrib/openzfs/tests/zfs-tests/include/tunables.cfg @@ -89,7 +89,7 @@ VDEV_VALIDATE_SKIP vdev.validate_skip vdev_validate_skip VOL_INHIBIT_DEV UNSUPPORTED zvol_inhibit_dev VOL_MODE vol.mode zvol_volmode VOL_RECURSIVE vol.recursive UNSUPPORTED -VOL_USE_BLK_MQ UNSUPPORTED zvol_use_blk_mq +VOL_USE_BLK_MQ UNSUPPORTED UNSUPPORTED XATTR_COMPAT xattr_compat zfs_xattr_compat ZEVENT_LEN_MAX zevent.len_max zfs_zevent_len_max ZEVENT_RETAIN_MAX zevent.retain_max zfs_zevent_retain_max diff --git a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_concurrent_shares.ksh b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_concurrent_shares.ksh index c226f56e3dcb..d779689f83bd 100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_concurrent_shares.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zfs_share/zfs_share_concurrent_shares.ksh @@ -98,11 +98,26 @@ function test_share # filesystem zfs set sharenfs=on $filesystem || \ sub_fail "zfs set sharenfs=on $filesystem failed." - is_shared $mntp || \ - sub_fail "File system $filesystem is not shared (set sharenfs)." # - # Verify 'zfs share' works as well. + # Verify 'zfs share' results in a shared mount. We check this + # multiple times because of Fedora 37+ it's been observed in + # the CI that the share may not be immediately reported. + # + for retry in $(seq 1 10); do + is_shared $mntp && break + + log_note "Wait $retry / 10 for is_shared $mntp (set sharenfs)" + + if [[ $retry -eq 10 ]]; then + sub_fail "File system $filesystem is not shared (set sharenfs)." + fi + + sleep 1 + done + + # + # Verify 'zfs unshare' works as well. # zfs unshare $filesystem || \ sub_fail "zfs unshare $filesystem failed." @@ -112,9 +127,23 @@ function test_share # filesystem zfs share $filesystem || \ sub_fail "zfs share $filesystem failed." - is_shared $mntp || \ - sub_fail "file system $filesystem is not shared (zfs share)." + # + # Verify 'zfs share' results in a shared mount. We check this + # multiple times because of Fedora 37+ it's been observed in + # the CI that the share may not be immediately reported. + # + for retry in $(seq 1 10); do + is_shared $mntp && break + + log_note "Wait $retry / 10 for is_shared $mntp (zfs share)" + + if [[ $retry -eq 10 ]]; then + sub_fail "File system $filesystem is not shared (zfs share)." + fi + + sleep 1 + done #log_note "Sharing a shared file system fails." zfs share $filesystem && \ diff --git a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/delegate/delegate_common.kshlib b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/delegate/delegate_common.kshlib index 3f2f089e8171..5ddb6ca2ddc8 100644 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/delegate/delegate_common.kshlib +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/delegate/delegate_common.kshlib @@ -861,7 +861,7 @@ function verify_fs_mount fi if ! ismounted $fs ; then - log_must zfs set mountpoint=$newmntpt $fs + log_must zfs set -u mountpoint=$newmntpt $fs log_must rm -rf $newmntpt log_must mkdir $newmntpt @@ -878,7 +878,7 @@ function verify_fs_mount fi log_must zfs umount $fs log_must rm -rf $newmntpt - log_must zfs set mountpoint=$mntpt $fs + log_must zfs set -u mountpoint=$mntpt $fs fi return 0 |