Author: asomers
Date: Fri Mar  2 21:26:48 2018
New Revision: 330295
URL: https://svnweb.freebsd.org/changeset/base/330295

Log:
  ZFS: fix adding vdevs to very large pools
  
  r323791 changed the return value of zpool_read_label.  Error paths that
  previously returned 0 began to return -1 instead.  However, not all error
  paths initialized errno.  When adding vdevs to a very large pool, errno could
  be prepopulated with ENOMEM, causing the operation to fail.  Fix the bug by
  setting errno=ENOENT in the case that no ZFS label is found.
  
  PR:           226096
  Submitted by: Nikita Kozlov
  Reviewed by:  avg
  MFC after:    3 weeks
  Differential Revision:        https://reviews.freebsd.org/D13088

Modified:
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c

Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c     Fri Mar 
 2 21:26:27 2018        (r330294)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c     Fri Mar 
 2 21:26:48 2018        (r330295)
@@ -923,6 +923,7 @@ zpool_read_label(int fd, nvlist_t **config)
 
        free(label);
        *config = NULL;
+       errno = ENOENT;
        return (-1);
 }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to