Author: delphij Date: Sat Oct 4 07:35:50 2014 New Revision: 272497 URL: https://svnweb.freebsd.org/changeset/base/272497
Log: 5148 zvol's DKIOCFREE holds zfsdev_state_lock too long Reviewed by: Matthew Ahrens <mahr...@delphix.com> Reviewed by: Paul Dagnelie <paul.dagne...@delphix.com> Reviewed by: Sebastien Roy <sebastien....@delphix.com> Reviewed by: Josef 'Jeff' Sipek <jef...@josefsipek.net> Reviewed by: Dan McDonald <dan...@omniti.com> Approved by: Richard Lowe <richl...@richlowe.net> Author: George Wilson <george.wil...@delphix.com> illumos/illumos-gate@574e2414ac6a50c9d6097c2e4a98eb9263f90c44 Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zvol.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zvol.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zvol.c Sat Oct 4 07:34:50 2014 (r272496) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zvol.c Sat Oct 4 07:35:50 2014 (r272497) @@ -1781,8 +1781,8 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t */ if (df.df_start >= zv->zv_volsize) break; /* No need to do anything... */ - if (df.df_start + df.df_length > zv->zv_volsize) - df.df_length = DMU_OBJECT_END; + + mutex_exit(&zfsdev_state_lock); rl = zfs_range_lock(&zv->zv_znode, df.df_start, df.df_length, RL_WRITER); @@ -1821,7 +1821,7 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t dmu_objset_pool(zv->zv_objset), 0); } } - break; + return (error); } default: _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"