summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/dmu_objset.c
AgeCommit message (Collapse)AuthorFilesLines
2020-12-3113399 zfs: error: implicit conversion from 'boolean_t' to 'ds_hold_flags_t'Toomas Soome1-10/+17
Reviewed by: Andy Fiddaman <andy@omnios.org> Reviewed by: Gergő Mihály Doma <domag02@gmail.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-12-1613358 dmu_objset_upgrade_stop() needs to waitAndy Fiddaman1-4/+12
12397 12254 broke the zfs test suite for older python versions Portions contributed by: Tom Caputi <tcaputi@datto.com> Portions contributed by: Nasf-Fan <fan.yong@intel.com> Portions contributed by: Gvozden Neskovic <neskovic@gmail.com> Reviewed by: Jason King <jason.king@joyent.com> Reviewed by: Igor Kozhukhov <igor@dilos.org> Approved by: Dan McDonald <danmcd@joyent.com>
2020-12-0413194 null/dangling pointer deref somewhere under dmu_objset_upgradeArkadiusz Bubała1-2/+13
Portions contributed by: Andy Fiddaman <andy@omniosce.org> Reviewed by: Jason King <jason.king@joyent.com> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Jerry Jelinek <gjelinek@gmail.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-10-2013231 dmu_objset: release bonus buffer in failure pathGvozden Neskovic1-0/+1
Reviewed by: George Melikov <mail@gmelikov.ru> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Giuseppe Di Natale <dinatale2@llnl.gov> Reviewed by: C Fraire <cfraire@me.com> Reviewed by: Mike Zeller <mike.zeller@joyent.com> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2019-12-0611971 Reduce loaded range tree memory usagePaul Dagnelie1-1/+1
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: George Wilson <gwilson@delphix.com> Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed by: Sebastien Roy seb@delphix.com Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Reviewed by: Andy Fiddaman <andy@omniosce.org> Approved by: Dan McDonald <danmcd@joyent.com>
2019-09-2511557 Log Spacemap ProjectSerapheim Dimitropoulos1-1/+1
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: George Melikov <mail@gmelikov.ru> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Tony Nguyen <tony.nguyen@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Sara Hartse <sara.hartse@delphix.com> Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Andy Fiddaman <andy@omniosce.org> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: C Fraire <cfraire@me.com> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Approved by: Gordon Ross <gwr@nexenta.com>
2019-09-1211650 ZFS user accounting fixesTom Caputi1-1/+5
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: loli10K <ezomori.nozomu@gmail.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Alek Pinchuk <apinchuk@datto.com> Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Approved by: Gordon Ross <gwr@nexenta.com>
2019-08-2011479 zfs project supportNasf-Fan1-50/+363
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: Jinshan Xiong <jinshan.xiong@intel.com> Portions contributed by: Suman Chakravartula <schakrava@gmail.com> Portions contributed by: jxiong <jinshan.xiong@gmail.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Andreas Dilger <andreas.dilger@intel.com> Reviewed by Ned Bass <bass6@llnl.gov> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: C Fraire <cfraire@me.com> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2019-06-2811276 Allow unencrypted children of encrypted datasetsTom Caputi1-7/+0
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Jason King <jason.king@joyent.com> Reviewed by: Sean Eric Fagan <sef@ixsystems.com> Reviewed by: Richard Laager <rlaager@wiktel.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Reviewed by: C Fraire <cfraire@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
2019-06-258727 Native data and metadata encryption for zfsTom Caputi1-57/+266
Portions contributed by: Jorgen Lundman <lundman@lundman.net> Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: Paul Zuchowski <pzuchowski@datto.com> Portions contributed by: Tim Chase <tim@chase2k.com> Portions contributed by: Matthew Ahrens <mahrens@delphix.com> Portions contributed by: ab-oe <arkadiusz.bubala@open-e.com> Portions contributed by: Brian Behlendorf <behlendorf1@llnl.gov> Portions contributed by: loli10K <ezomori.nozomu@gmail.com> Portions contributed by: Igor K <igor@dilos.org> Portions contributed by: Richard Laager <rlaager@wiktel.com> Reviewed by: Jason Cohen <jwittlincohen@gmail.com> Reviewed by: Allan Jude <allanjude@freebsd.org> Reviewed by: George Melikov <mail@gmelikov.ru> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: RageLtMan <rageltman@sempervictus> Reviewed by: Matthew Thode <prometheanfire@gentoo.org> Reviewed by: Giuseppe Di Natale <dinatale2@llnl.gov> Reviewed by: Kash Pande <kash@tripleback.net> Reviewed by: Alek Pinchuk <apinchuk@datto.com> Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: David Quigley <david.quigley@intel.com> Reviewed by: Jorgen Lundman <lundman@lundman.net> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: C Fraire <cfraire@me.com> Reviewed by: Jason King <jason.king@joyent.com> Reviewed by: Andy Stormont <astormont@racktopsystems.com> Approved by: Garrett D'Amore <garrett@damore.org>
2019-05-1310405 Implement ZFS sorted scansToomas Soome1-0/+2
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
2019-04-1310601 Pool allocation classesDon Brady1-0/+20
10757 Add -gLp to zpool subcommands for alt vdev names Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: Håkan Johansson <f96hajo@chalmers.se> Portions contributed by: Richard Yao <ryao@gentoo.org> Portions contributed by: Chunwei Chen <david.chen@nutanix.com> Portions contributed by: loli10K <ezomori.nozomu@gmail.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Richard Laager <rlaager@wiktel.com> Reviewed by: Alek Pinchuk <apinchuk@datto.com> Reviewed by: Andreas Dilger <andreas.dilger@chamcloud.com> Reviewed by: DHE <git@dehacked.net> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed by: Gregor Kopka <gregor@kopka.net> Reviewed by: Kash Pande <kash@tripleback.net> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Tony Hutter <hutter2@llnl.gov> Reviewed by: George Melikov <mail@gmelikov.ru> Reviewed by: Giuseppe Di Natale <guss80@gmail.com> Reviewed by: bunder2015 <omfgbunder@gmail.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Kody Kantor <kody.kantor@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
2019-03-2710572 Fix race in dnode_check_slots_free()Tom Caputi1-0/+15
10579 Don't allow dnode allocation if dn_holds != 0 Reviewed by: Kody Kantor <kody.kantor@joyent.com> Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
2019-02-138423 Implement large_dnode pool featureToomas Soome1-3/+49
8199 multi-threaded dmu_object_alloc() 7432 Large dnode pool feature Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Jason King <jason.king@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
2018-05-219330 stack overflow when creating a deeply nested datasetSerapheim Dimitropoulos1-0/+4
Reviewed by: John Kennedy <john.kennedy@delphix.com> Reviewed by: Matt Ahrens <matt@delphix.com> Approved by: Garrett D'Amore <garrett@damore.org>
2018-04-229337 zfs get all is slow due to uncached metadataMatthew Ahrens1-0/+8
Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Thomas Caputi <tcaputi@datto.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2018-03-149164 assert: newds == os->os_dsl_datasetAndriy Gapon1-7/+5
Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: Don Brady <don.brady@delphix.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2018-01-107614 zfs device evacuation/removalPrashanth Sreenivasa1-0/+107
Reviewed by: Alex Reece <alex@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: John Kennedy <john.kennedy@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Richard Laager <rlaager@wiktel.com> Reviewed by: Tim Chase <tim@chase2k.com> Approved by: Garrett D'Amore <garrett@damore.org>
2017-06-058155 simplify dmu_write_policy handling of pre-compressed buffersMatthew Ahrens1-1/+1
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com>
2017-03-167968 multi-threaded spa_sync()Matthew Ahrens1-37/+157
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Brad Lewis <brad.lewis@delphix.com> Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Approved by: Dan McDonald <danmcd@omniti.com>
2017-02-287793 ztest fails assertion in dmu_tx_willuse_spaceMatthew Ahrens1-0/+17
Reviewed by: Steve Gonczi <steve.gonczi@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Approved by: Robert Mustacchi <rm@joyent.com>
2017-01-241300 filename normalization doesn't work for removesKevin Crowe1-2/+3
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Matt Ahrens <mahrens@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com>
2016-11-307606 dmu_objset_find_dp() takes a long time while importing poolMatthew Ahrens1-5/+24
Reviewed by: Steve Gonczi <steve.gonczi@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Prashanth Sreenivasa <prashksp@gmail.com> Approved by: Gordon Ross <gordon.w.ross@gmail.com>
2016-11-297252 compressed zfs send / receiveDan Kimmel1-6/+5
7628 create long versions of ZFS send / receive options Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: John Kennedy <john.kennedy@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Sebastien Roy <sebastien.roy@delphix.com> Reviewed by: David Quigley <dpquigl@davequigley.com> Reviewed by: Thomas Caputi <tcaputi@datto.com> Approved by: Dan McDonald <danmcd@omniti.com>
2016-10-217430 Backfill metadnode more intelligentlyNed Bass1-0/+14
Reviewed by: Alek Pinchuk <alek@nexenta.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Gordon Ross <gordon.w.ross@gmail.com>
2016-09-286988 spa_sync() spends half its time in dmu_objset_do_userquota_updatesMatthew Ahrens1-20/+86
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Steve Gonczi <steve.gonczi@delphix.com> Reviewed by: Ned Bass <bass6@llnl.gov> Reviewed by: Jinshan Xiong <jinshan.xiong@intel.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2016-09-247254 ztest failed assertion in ztest_dataset_dirobj_verify: dirobjs + 1 == ↵Paul Dagnelie1-2/+13
usedobjs Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Steve Gonczi <steve.gonczi@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com>
2016-07-147104 increase indirect block sizeMatthew Ahrens1-3/+9
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Robert Mustacchi <rm@joyent.com>
2016-07-146950 ARC should cache compressed dataGeorge Wilson1-10/+5
Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Don Brady <don.brady@intel.com> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2016-06-096314 buffer overflow in dsl_dataset_nameMatthew Ahrens1-4/+10
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com> Approved by: Dan McDonald <danmcd@omniti.com>
2016-05-156513 partially filled holes lose birth timePaul Dagnelie1-4/+4
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Boris Protopopov <bprotopopov@hotmail.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2016-02-085027 zfs large block support (add copyright)Matthew Ahrens1-0/+1
2015-12-156495 Fix mutex leak in dmu_objset_find_dpSteven Hartland1-0/+3
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Albert Lee <trisk@omniti.com>
2015-10-116267 dn_bonus evicted too earlyJustin T. Gibbs1-1/+0
Reviewed by: Richard Yao <ryao@gentoo.org> Reviewed by: Xin LI <delphij@freebsd.org> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2015-10-092605 want to resume interrupted zfs sendMatthew Ahrens1-0/+20
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed by: Xin Li <delphij@freebsd.org> Reviewed by: Arne Jansen <sensille@gmx.net> Approved by: Dan McDonald <danmcd@omniti.com>
2015-09-176171 dsl_prop_unregister() slows down dataset eviction.Justin Gibbs1-34/+2
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com>
2015-06-205981 Deadlock in dmu_objset_find_dpArne Jansen1-1/+9
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Robert Mustacchi <rm@joyent.com>
2015-05-095269 zpool import slowArne Jansen1-39/+182
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george@delphix.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Dan McDonald <danmcd@omniti.com>
2015-04-155610 zfs clone from different source and target pools produces coredumpAlexander Eremin1-11/+2
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com>
2015-03-105661 ZFS: "compression = on" should use lz4 if feature is enabledJustin T. Gibbs1-2/+3
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net> Reviewed by: Xin LI <delphij@freebsd.org> Approved by: Robert Mustacchi <rm@joyent.com>
2015-01-065056 ZFS deadlock on db_mtx and dn_holdsJustin Gibbs1-43/+68
Reviewed by: Will Andrews <willa@spectralogic.com> Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com>
2014-12-065369 arc flags should be an enumGeorge Wilson1-3/+3
5370 consistent arc_buf_hdr_t naming scheme Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Alex Reece <alex.reece@delphix.com> Reviewed by: Sebastien Roy <sebastien.roy@delphix.com> Reviewed by: Richard Elling <richard.elling@richardelling.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2014-12-045314 Remove "dbuf phys" db->db_data pointer aliases in ZFSJustin T. Gibbs1-13/+17
Reviewed by: Andriy Gapon <avg@freebsd.org> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Will Andrews <willa@spectralogic.com> Approved by: Dan McDonald <danmcd@omniti.com>
2014-11-075027 zfs large block supportMatthew Ahrens1-0/+16
Reviewed by: Alek Pinchuk <pinchuk.alek@gmail.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com> Reviewed by: Richard Elling <richard.elling@richardelling.com> Reviewed by: Saso Kiselkov <skiselkov.ml@gmail.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Approved by: Dan McDonald <danmcd@omniti.com>
2014-07-084951 ZFS administrative commands should use reserved space, not fail with ENOSPCMatthew Ahrens1-2/+4
Reviewed by: John Kennedy <john.kennedy@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Garrett D'Amore <garrett@damore.org>
2014-06-254914 zfs on-disk bookmark structure should be named *_phys_tMatthew Ahrens1-2/+2
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Richard Lowe <richlowe@richlowe.net> Reviewed by: Saso Kiselkov <skiselkov.ml@gmail.com> Approved by: Robert Mustacchi <rm@joyent.com>
2014-06-054757 ZFS embedded-data block pointers ("zero block compression")Matthew Ahrens1-17/+15
4913 zfs release should not be subject to space checks Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Max Grossman <max.grossman@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Dan McDonald <danmcd@omniti.com>
2014-05-233835 zfs need not store 2 copies of all metadataMatthew Ahrens1-6/+29
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Richard Lowe <richlowe@richlowe.net>
2014-04-223897 zfs filesystem and snapshot limitsJerry Jelinek1-1/+10
Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Christopher Siden <christopher.siden@delphix.com>
2013-08-264045 zfs write throttle & i/o scheduler performance workMatthew Ahrens1-1/+1
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Ned Bass <bass6@llnl.gov> Reviewed by: Brendan Gregg <brendan.gregg@joyent.com> Approved by: Robert Mustacchi <rm@joyent.com>