From owner-svn-src-head@freebsd.org Thu Nov 10 22:21:49 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70D4AC3B700; Thu, 10 Nov 2016 22:21:49 +0000 (UTC) (envelope-from kczekirda@gmail.com) Received: from mail-wm0-x232.google.com (mail-wm0-x232.google.com [IPv6:2a00:1450:400c:c09::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A27A3A63; Thu, 10 Nov 2016 22:21:48 +0000 (UTC) (envelope-from kczekirda@gmail.com) Received: by mail-wm0-x232.google.com with SMTP id t79so59903215wmt.0; Thu, 10 Nov 2016 14:21:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vAwjOTZfabfCtM79bnuysLyBrtdB2jKdXzY1cnn+a44=; b=iuSg7/wRHbsWmy996SNJJ71Prp/UT+JPmxcXv51wKitHRFfapfS6xM2E3F5zM35lE5 vYEiwvmpJ0yiBFRj1EuPV0BZKG/QWizZD5hmikEi8erYOPkDj6dgL2JX9jBrpCegE/jU WH1o34jkK/8udAk5TZsT0X0EwMI0dS0xeCnqVxbR9Nc9A8ttYR4+7k4y2mjkvSvJee8O zuvAiTAC2YnKBJA1foVLT+EfIYx0CJc99IuZ4zoBKHLVqj5b+ogfsMmrTxlRyZbLDdKM 5788RAco4hSCj/k3uyxtowhjCQflSXNgVtwqh5E118hLgdam5erbhGPYzti8LD52g5US LhFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vAwjOTZfabfCtM79bnuysLyBrtdB2jKdXzY1cnn+a44=; b=LpevMsV6Sp73aNNAPtuHC3OCkt9cfJ7GWsjzM6s3LhDRCsUkIGdNGQWDhwRdyK/LEf zTci54RNg0vH80624Z6AD5RnBlun/D7Ef4W6rl9yzN7FSvUJkRMRsgm/9T6szxEYpzw6 1ih8wA0MR2rE7nqAKZM5bYuHDkRFjyWbrjW/JYjsaunGbSkwEWz4zlDswUEYgAV0l84U nLh0FwRfm81y9dPDpUEGVXlWAAE6nzUUo/tKyVn16FYR+EyXtNibhJGqQuCL3js62dDF 6r73358l5RDJ94XJDKdRRulrMSw0OQcnixPRmAws4+mbZ+IlYvthZ4ch5Gjx7c+pVpqR C1Fg== X-Gm-Message-State: ABUngvfd8S7Kd2Hy9nudPtsJMs6SR69dewda5pUk6RiowSJN+w8k6xxMgxS5zsi9jiIPB6A79/KxhZRR+Zjd0Q== X-Received: by 10.194.236.72 with SMTP id us8mr6482570wjc.211.1478816506152; Thu, 10 Nov 2016 14:21:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.49.137 with HTTP; Thu, 10 Nov 2016 14:21:15 -0800 (PST) In-Reply-To: <201611080650.uA86oJ7W056026@repo.freebsd.org> References: <201611080650.uA86oJ7W056026@repo.freebsd.org> From: Kamil Czekirda Date: Thu, 10 Nov 2016 23:21:15 +0100 Message-ID: Subject: Re: svn commit: r308434 - in head: lib/libstand sys/boot/common sys/boot/efi/libefi sys/boot/efi/loader sys/boot/i386/libfirewire sys/boot/i386/libi386 sys/boot/mips/beri/loader sys/boot/ofw/libofw sys... To: Toomas Soome Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Nov 2016 22:21:49 -0000 Hi, I got the following: root@current:/usr/src # svnlite up -r r308434 Updating '.': U lib/libstand/stand.h U sys/boot/common/dev_net.c U sys/boot/common/module.c U sys/boot/common/part.c U sys/boot/common/util.c U sys/boot/common/util.h U sys/boot/efi/libefi/efinet.c U sys/boot/efi/libefi/efipart.c U sys/boot/efi/loader/main.c U sys/boot/i386/libfirewire/firewire.c U sys/boot/i386/libi386/bioscd.c U sys/boot/i386/libi386/biosdisk.c U sys/boot/mips/beri/loader/beri_disk_cfi.c U sys/boot/mips/beri/loader/beri_disk_sdcard.c U sys/boot/ofw/libofw/ofw_disk.c U sys/boot/pc98/libpc98/bioscd.c U sys/boot/pc98/libpc98/biosdisk.c U sys/boot/powerpc/kboot/hostdisk.c U sys/boot/powerpc/ps3/ps3cdrom.c U sys/boot/powerpc/ps3/ps3disk.c U sys/boot/uboot/lib/disk.c U sys/boot/usb/storage/umass_loader.c U sys/boot/userboot/userboot/host.c U sys/boot/userboot/userboot/userboot_disk.c U sys/boot/zfs/zfs.c U sys/boot/zfs/zfsimpl.c U sys/boot/i386/libi386/pxe.c Updated to revision 308434. root@current:/usr/src # cd sys/boot/ root@current:/usr/src/sys/boot # make clean (...) root@current:/usr/src/sys/boot # make obj (...) root@current:/usr/src/sys/boot # make (...) cc -O2 -pipe -DSKEIN_LOOP=111 -fPIC -I/usr/src/sys/boot/efi/loader -I/usr/src/sys/boot/efi/loader/arch/amd64 -I/usr/src/sys/boot/efi/loader/../include -I/usr/src/sys/boot/efi/loader/../include/amd64 -I/usr/src/sys/boot/efi/loader/../../../contrib/dev/acpica/include -I/usr/src/sys/boot/efi/loader/../../.. -I/usr/src/sys/boot/efi/loader/../../i386/libi386 -I/usr/src/sys/boot/efi/loader/../../zfs -I/usr/src/sys/boot/efi/loader/../../../cddl/boot/zfs -I/usr/src/sys/boot/efi/loader/../../../crypto/skein -DEFI_ZFS_BOOT -DNO_PCI -DEFI -DSMBIOS_SERIAL_NUMBERS -DBOOT_FORTH -I/usr/src/sys/boot/efi/loader/../../ficl -I/usr/src/sys/boot/efi/loader/../../ficl/amd64 -DLOADER_DISK_SUPPORT -DLOADER_GPT_SUPPORT -DLOADER_MBR_SUPPORT -fPIC -I/usr/src/sys/boot/ficl -I/usr/src/sys/boot/ficl/amd64 -I/usr/src/sys/boot/ficl/../common -I/usr/src/sys/boot/efi/loader/../../common -ffreestanding -Wformat -msoft-float -mno-mmx -mno-sse -mno-avx -fshort-wchar -mno-red-zone -mno-aes -g -MD -MF.depend.vers.o -MTvers.o -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Qunused-arguments -c vers.c -o vers.o cc -O2 -pipe -DSKEIN_LOOP=111 -fPIC -I/usr/src/sys/boot/efi/loader -I/usr/src/sys/boot/efi/loader/arch/amd64 -I/usr/src/sys/boot/efi/loader/../include -I/usr/src/sys/boot/efi/loader/../include/amd64 -I/usr/src/sys/boot/efi/loader/../../../contrib/dev/acpica/include -I/usr/src/sys/boot/efi/loader/../../.. -I/usr/src/sys/boot/efi/loader/../../i386/libi386 -I/usr/src/sys/boot/efi/loader/../../zfs -I/usr/src/sys/boot/efi/loader/../../../cddl/boot/zfs -I/usr/src/sys/boot/efi/loader/../../../crypto/skein -DEFI_ZFS_BOOT -DNO_PCI -DEFI -DSMBIOS_SERIAL_NUMBERS -DBOOT_FORTH -I/usr/src/sys/boot/efi/loader/../../ficl -I/usr/src/sys/boot/efi/loader/../../ficl/amd64 -DLOADER_DISK_SUPPORT -DLOADER_GPT_SUPPORT -DLOADER_MBR_SUPPORT -fPIC -I/usr/src/sys/boot/ficl -I/usr/src/sys/boot/ficl/amd64 -I/usr/src/sys/boot/ficl/../common -I/usr/src/sys/boot/efi/loader/../../common -ffreestanding -Wformat -msoft-float -mno-mmx -mno-sse -mno-avx -fshort-wchar -mno-red-zone -mno-aes -g -MD -MF.depend.zfs.o -MTzfs.o -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-sign-compare -Wno-array-bounds -Wno-missing-prototypes -Qunused-arguments -c /usr/src/sys/boot/efi/loader/../../zfs/zfs.c -o zfs.o /usr/src/sys/boot/efi/loader/../../zfs/zfs.c:599:14: error: incompatible pointer types initializing 'void (*)(int)' with an expression of type 'int (int)' [-Werror,-Wincompatible-pointer-types] .dv_print = zfs_dev_print, ^~~~~~~~~~~~~ 1 error generated. *** Error code 1 Stop. make[2]: stopped in /usr/src/sys/boot/efi/loader *** Error code 1 Stop. make[1]: stopped in /usr/src/sys/boot/efi *** Error code 1 Stop. make: stopped in /usr/src/sys/boot Kamil 2016-11-08 7:50 GMT+01:00 Toomas Soome : > Author: tsoome > Date: Tue Nov 8 06:50:18 2016 > New Revision: 308434 > URL: https://svnweb.freebsd.org/changeset/base/308434 > > Log: > Loader paged/pageable data is not always paged. > > This change does modify devsw dv_print() to return the int value, > enabling walkers to interrupt the walk on non zero value from dv_print(). > > This will allow the pager_print actually to stop displaying data on > user input, and additionally pager is used in various *dev_print > callbacks, > where it was missing. > > For test, lsdev [-v] command should display data by screenfuls and should > stop when the key 'q' is pressed on pager prompt. > > Reviewed by: allanjude > Approved by: allanjude (mentor) > Differential Revision: https://reviews.freebsd.org/D5461 > > Modified: > head/lib/libstand/stand.h > head/sys/boot/common/dev_net.c > head/sys/boot/common/module.c > head/sys/boot/common/part.c > head/sys/boot/common/util.c > head/sys/boot/common/util.h > head/sys/boot/efi/libefi/efinet.c > head/sys/boot/efi/libefi/efipart.c > head/sys/boot/efi/loader/main.c > head/sys/boot/i386/libfirewire/firewire.c > head/sys/boot/i386/libi386/bioscd.c > head/sys/boot/i386/libi386/biosdisk.c > head/sys/boot/i386/libi386/pxe.c > head/sys/boot/mips/beri/loader/beri_disk_cfi.c > head/sys/boot/mips/beri/loader/beri_disk_sdcard.c > head/sys/boot/ofw/libofw/ofw_disk.c > head/sys/boot/pc98/libpc98/bioscd.c > head/sys/boot/pc98/libpc98/biosdisk.c > head/sys/boot/powerpc/kboot/hostdisk.c > head/sys/boot/powerpc/ps3/ps3cdrom.c > head/sys/boot/powerpc/ps3/ps3disk.c > head/sys/boot/uboot/lib/disk.c > head/sys/boot/usb/storage/umass_loader.c > head/sys/boot/userboot/userboot/host.c > head/sys/boot/userboot/userboot/userboot_disk.c > head/sys/boot/zfs/zfs.c > head/sys/boot/zfs/zfsimpl.c > > Modified: head/lib/libstand/stand.h > ============================================================ > ================== > --- head/lib/libstand/stand.h Tue Nov 8 06:13:22 2016 (r308433) > +++ head/lib/libstand/stand.h Tue Nov 8 06:50:18 2016 (r308434) > @@ -143,7 +143,7 @@ struct devsw { > int (*dv_open)(struct open_file *f, ...); > int (*dv_close)(struct open_file *f); > int (*dv_ioctl)(struct open_file *f, u_long cmd, void > *data); > - void (*dv_print)(int verbose); /* print device > information */ > + int (*dv_print)(int verbose); /* print device > information */ > void (*dv_cleanup)(void); > }; > > > Modified: head/sys/boot/common/dev_net.c > ============================================================ > ================== > --- head/sys/boot/common/dev_net.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/common/dev_net.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -80,7 +80,7 @@ static int net_open(struct open_file *, > static int net_close(struct open_file *); > static void net_cleanup(void); > static int net_strategy(); > -static void net_print(int); > +static int net_print(int); > > static int net_getparams(int sock); > > @@ -325,23 +325,27 @@ exit: > return (0); > } > > -static void > +static int > net_print(int verbose) > { > struct netif_driver *drv; > int i, d, cnt; > + int ret = 0; > > cnt = 0; > for (d = 0; netif_drivers[d]; d++) { > drv = netif_drivers[d]; > for (i = 0; i < drv->netif_nifs; i++) { > printf("\t%s%d:", "net", cnt++); > - if (verbose) > + if (verbose) { > printf(" (%s%d)", drv->netif_bname, > drv->netif_ifs[i].dif_unit); > + } > + if ((ret = pager_output("\n")) != 0) > + return (ret); > } > } > - printf("\n"); > + return (ret); > } > > /* > > Modified: head/sys/boot/common/module.c > ============================================================ > ================== > --- head/sys/boot/common/module.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/common/module.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -254,7 +254,7 @@ command_lsmod(int argc, char *argv[]) > struct kernel_module *mp; > struct file_metadata *md; > char lbuf[80]; > - int ch, verbose; > + int ch, verbose, ret = 0; > > verbose = 0; > optind = 1; > @@ -273,11 +273,13 @@ command_lsmod(int argc, char *argv[]) > > pager_open(); > for (fp = preloaded_files; fp; fp = fp->f_next) { > - sprintf(lbuf, " %p: ", (void *) fp->f_addr); > + snprintf(lbuf, sizeof(lbuf), " %p: ", (void *) fp->f_addr); > pager_output(lbuf); > pager_output(fp->f_name); > - sprintf(lbuf, " (%s, 0x%lx)\n", fp->f_type, (long)fp->f_size); > - pager_output(lbuf); > + snprintf(lbuf, sizeof(lbuf), " (%s, 0x%lx)\n", fp->f_type, > + (long)fp->f_size); > + if (pager_output(lbuf)) > + break; > if (fp->f_args != NULL) { > pager_output(" args: "); > pager_output(fp->f_args); > @@ -287,7 +289,8 @@ command_lsmod(int argc, char *argv[]) > if (fp->f_modules) { > pager_output(" modules: "); > for (mp = fp->f_modules; mp; mp = mp->m_next) { > - sprintf(lbuf, "%s.%d ", mp->m_name, mp->m_version); > + snprintf(lbuf, sizeof(lbuf), "%s.%d ", mp->m_name, > + mp->m_version); > pager_output(lbuf); > } > if (pager_output("\n")) > @@ -296,11 +299,14 @@ command_lsmod(int argc, char *argv[]) > if (verbose) { > /* XXX could add some formatting smarts here to display some > better */ > for (md = fp->f_metadata; md != NULL; md = md->md_next) { > - sprintf(lbuf, " 0x%04x, 0x%lx\n", md->md_type, (long) > md->md_size); > + snprintf(lbuf, sizeof(lbuf), " 0x%04x, 0x%lx\n", > + md->md_type, (long) md->md_size); > if (pager_output(lbuf)) > break; > } > } > + if (ret) > + break; > } > pager_close(); > return(CMD_OK); > > Modified: head/sys/boot/common/part.c > ============================================================ > ================== > --- head/sys/boot/common/part.c Tue Nov 8 06:13:22 2016 (r308433) > +++ head/sys/boot/common/part.c Tue Nov 8 06:50:18 2016 (r308434) > @@ -834,6 +834,7 @@ ptable_iterate(const struct ptable *tabl > { > struct pentry *entry; > char name[32]; > + int ret = 0; > > name[0] = '\0'; > STAILQ_FOREACH(entry, &table->entries, entry) { > @@ -856,9 +857,8 @@ ptable_iterate(const struct ptable *tabl > if (table->type == PTABLE_BSD) > sprintf(name, "%c", (u_char) 'a' + > entry->part.index); > - if (iter(arg, name, &entry->part)) > - return 1; > + if ((ret = iter(arg, name, &entry->part)) != 0) > + return (ret); > } > - return 0; > + return (ret); > } > - > > Modified: head/sys/boot/common/util.c > ============================================================ > ================== > --- head/sys/boot/common/util.c Tue Nov 8 06:13:22 2016 (r308433) > +++ head/sys/boot/common/util.c Tue Nov 8 06:50:18 2016 (r308434) > @@ -114,7 +114,7 @@ strlen(const char *s) > return (len); > } > > -void > +int > printf(const char *fmt, ...) > { > va_list ap; > @@ -178,4 +178,5 @@ nextfmt: > } > } > va_end(ap); > + return (0); > } > > Modified: head/sys/boot/common/util.h > ============================================================ > ================== > --- head/sys/boot/common/util.h Tue Nov 8 06:13:22 2016 (r308433) > +++ head/sys/boot/common/util.h Tue Nov 8 06:50:18 2016 (r308434) > @@ -48,6 +48,6 @@ void strcat(char *dst, const char *src); > char *strchr(const char *s, char ch); > size_t strlen(const char *s); > > -void printf(const char *fmt, ...); > +int printf(const char *fmt, ...); > > #endif /* !_UTIL_H_ */ > > Modified: head/sys/boot/efi/libefi/efinet.c > ============================================================ > ================== > --- head/sys/boot/efi/libefi/efinet.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/efi/libefi/efinet.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -252,7 +252,7 @@ efinet_end(struct netif *nif) > } > > static int efinet_dev_init(void); > -static void efinet_dev_print(int); > +static int efinet_dev_print(int); > > struct devsw efinet_dev = { > .dv_name = "net", > @@ -346,14 +346,13 @@ efinet_dev_init() > return (0); > } > > -static void > +static int > efinet_dev_print(int verbose) > { > CHAR16 *text; > EFI_HANDLE h; > - int unit; > + int unit, ret = 0; > > - pager_open(); > for (unit = 0, h = efi_find_handle(&efinet_dev, 0); > h != NULL; h = efi_find_handle(&efinet_dev, ++unit)) { > printf(" %s%d:", efinet_dev.dv_name, unit); > @@ -364,8 +363,8 @@ efinet_dev_print(int verbose) > efi_free_devpath_name(text); > } > } > - if (pager_output("\n")) > + if ((ret = pager_output("\n")) != 0) > break; > } > - pager_close(); > + return (ret); > } > > Modified: head/sys/boot/efi/libefi/efipart.c > ============================================================ > ================== > --- head/sys/boot/efi/libefi/efipart.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/efi/libefi/efipart.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -47,7 +47,7 @@ static int efipart_realstrategy(void *, > size_t *); > static int efipart_open(struct open_file *, ...); > static int efipart_close(struct open_file *); > -static void efipart_print(int); > +static int efipart_print(int); > > struct devsw efipart_dev = { > .dv_name = "part", > @@ -162,7 +162,7 @@ efipart_init(void) > return (err); > } > > -static void > +static int > efipart_print(int verbose) > { > char line[80]; > @@ -170,28 +170,29 @@ efipart_print(int verbose) > EFI_HANDLE h; > EFI_STATUS status; > u_int unit; > + int ret = 0; > > - pager_open(); > for (unit = 0, h = efi_find_handle(&efipart_dev, 0); > h != NULL; h = efi_find_handle(&efipart_dev, ++unit)) { > - sprintf(line, " %s%d:", efipart_dev.dv_name, unit); > - if (pager_output(line)) > + snprintf(line, sizeof(line), " %s%d:", > + efipart_dev.dv_name, unit); > + if ((ret = pager_output(line)) != 0) > break; > > status = BS->HandleProtocol(h, &blkio_guid, (void > **)&blkio); > if (!EFI_ERROR(status)) { > - sprintf(line, " %llu blocks", > + snprintf(line, sizeof(line), " %llu blocks", > (unsigned long long)(blkio->Media->LastBlock + > 1)); > - if (pager_output(line)) > + if ((ret = pager_output(line)) != 0) > break; > if (blkio->Media->RemovableMedia) > - if (pager_output(" (removable)")) > + if ((ret = pager_output(" (removable)")) > != 0) > break; > } > - if (pager_output("\n")) > + if ((ret = pager_output("\n")) != 0) > break; > } > - pager_close(); > + return (ret); > } > > static int > > Modified: head/sys/boot/efi/loader/main.c > ============================================================ > ================== > --- head/sys/boot/efi/loader/main.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/efi/loader/main.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -533,6 +533,7 @@ command_memmap(int argc, char *argv[]) > UINT32 dver; > EFI_STATUS status; > int i, ndesc; > + char line[80]; > static char *types[] = { > "Reserved", > "LoaderCode", > @@ -564,14 +565,19 @@ command_memmap(int argc, char *argv[]) > } > > ndesc = sz / dsz; > - printf("%23s %12s %12s %8s %4s\n", > + snprintf(line, sizeof(line), "%23s %12s %12s %8s %4s\n", > "Type", "Physical", "Virtual", "#Pages", "Attr"); > + pager_open(); > + if (pager_output(line)) { > + pager_close(); > + return (CMD_OK); > + } > > for (i = 0, p = map; i < ndesc; > i++, p = NextMemoryDescriptor(p, dsz)) { > printf("%23s %012jx %012jx %08jx ", types[p->Type], > - (uintmax_t)p->PhysicalStart, (uintmax_t)p->VirtualStart, > - (uintmax_t)p->NumberOfPages); > + (uintmax_t)p->PhysicalStart, > (uintmax_t)p->VirtualStart, > + (uintmax_t)p->NumberOfPages); > if (p->Attribute & EFI_MEMORY_UC) > printf("UC "); > if (p->Attribute & EFI_MEMORY_WC) > @@ -588,9 +594,11 @@ command_memmap(int argc, char *argv[]) > printf("RP "); > if (p->Attribute & EFI_MEMORY_XP) > printf("XP "); > - printf("\n"); > + if (pager_output("\n")) > + break; > } > > + pager_close(); > return (CMD_OK); > } > > @@ -612,10 +620,17 @@ guid_to_string(EFI_GUID *guid) > static int > command_configuration(int argc, char *argv[]) > { > + char line[80]; > UINTN i; > > - printf("NumberOfTableEntries=%lu\n", > + snprintf(line, sizeof(line), "NumberOfTableEntries=%lu\n", > (unsigned long)ST->NumberOfTableEntries); > + pager_open(); > + if (pager_output(line)) { > + pager_close(); > + return (CMD_OK); > + } > + > for (i = 0; i < ST->NumberOfTableEntries; i++) { > EFI_GUID *guid; > > @@ -642,9 +657,13 @@ command_configuration(int argc, char *ar > printf("FDT Table"); > else > printf("Unknown Table (%s)", guid_to_string(guid)); > - printf(" at %p\n", ST->ConfigurationTable[i].VendorTable); > + snprintf(line, sizeof(line), " at %p\n", > + ST->ConfigurationTable[i].VendorTable); > + if (pager_output(line)) > + break; > } > > + pager_close(); > return (CMD_OK); > } > > > Modified: head/sys/boot/i386/libfirewire/firewire.c > ============================================================ > ================== > --- head/sys/boot/i386/libfirewire/firewire.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/i386/libfirewire/firewire.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -69,7 +69,7 @@ static int fw_strategy(void *devdata, in > size_t offset, size_t size, char *buf, size_t *rsize); > static int fw_open(struct open_file *f, ...); > static int fw_close(struct open_file *f); > -static void fw_print(int verbose); > +static int fw_print(int verbose); > static void fw_cleanup(void); > > void fw_enable(void); > @@ -148,21 +148,26 @@ fw_init(void) > /* > * Print information about OHCI chips > */ > -static void > +static int > fw_print(int verbose) > { > - int i; > + char line[80]; > + int i, ret = 0; > struct fwohci_softc *sc; > > for (i = 0; i < MAX_OHCI; i ++) { > sc = &fwinfo[i]; > if (sc->state == FWOHCI_STATE_DEAD) > break; > - printf("%d: locator=0x%04x devid=0x%08x" > + snprintf(line, sizeof(line), "%d: locator=0x%04x > devid=0x%08x" > " base_addr=0x%08x handle=0x%08x bus_id=0x%08x\n", > i, sc->locator, sc->devid, > sc->base_addr, sc->handle, sc->bus_id); > + ret = pager_output(line); > + if (ret != 0) > + break; > } > + return (ret); > } > > static int > > Modified: head/sys/boot/i386/libi386/bioscd.c > ============================================================ > ================== > --- head/sys/boot/i386/libi386/bioscd.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/i386/libi386/bioscd.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -100,7 +100,7 @@ static int bc_realstrategy(void *devdata > size_t offset, size_t size, char *buf, size_t *rsize); > static int bc_open(struct open_file *f, ...); > static int bc_close(struct open_file *f); > -static void bc_print(int verbose); > +static int bc_print(int verbose); > > struct devsw bioscd = { > "cd", > @@ -177,20 +177,19 @@ bc_add(int biosdev) > /* > * Print information about disks > */ > -static void > +static int > bc_print(int verbose) > { > char line[80]; > - int i; > + int i, ret = 0; > > - pager_open(); > for (i = 0; i < nbcinfo; i++) { > - sprintf(line, " cd%d: Device 0x%x\n", i, > + snprintf(line, sizeof(line), " cd%d: Device 0x%x\n", i, > bcinfo[i].bc_sp.sp_devicespec); > - if (pager_output(line)) > + if ((ret = pager_output(line)) != 0) > break; > } > - pager_close(); > + return (ret); > } > > /* > > Modified: head/sys/boot/i386/libi386/biosdisk.c > ============================================================ > ================== > --- head/sys/boot/i386/libi386/biosdisk.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/i386/libi386/biosdisk.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -135,7 +135,7 @@ static int bd_realstrategy(void *devdata > static int bd_open(struct open_file *f, ...); > static int bd_close(struct open_file *f); > static int bd_ioctl(struct open_file *f, u_long cmd, void *data); > -static void bd_print(int verbose); > +static int bd_print(int verbose); > static void bd_cleanup(void); > > #ifdef LOADER_GELI_SUPPORT > @@ -321,21 +321,21 @@ bd_int13probe(struct bdinfo *bd) > /* > * Print information about disks > */ > -static void > +static int > bd_print(int verbose) > { > static char line[80]; > struct disk_devdesc dev; > - int i; > + int i, ret = 0; > > - pager_open(); > for (i = 0; i < nbdinfo; i++) { > - sprintf(line, " disk%d: BIOS drive %c (%ju X %u):\n", > i, > + snprintf(line, sizeof(line), > + " disk%d: BIOS drive %c (%ju X %u):\n", i, > (bdinfo[i].bd_unit < 0x80) ? ('A' + bdinfo[i].bd_unit): > ('C' + bdinfo[i].bd_unit - 0x80), > (uintmax_t)bdinfo[i].bd_sectors, > bdinfo[i].bd_sectorsize); > - if (pager_output(line)) > + if ((ret = pager_output(line)) != 0) > break; > dev.d_dev = &biosdisk; > dev.d_unit = i; > @@ -346,12 +346,14 @@ bd_print(int verbose) > bdinfo[i].bd_sectorsize, > (bdinfo[i].bd_flags & BD_FLOPPY) ? > DISK_F_NOCACHE: 0) == 0) { > - sprintf(line, " disk%d", i); > - disk_print(&dev, line, verbose); > + snprintf(line, sizeof(line), " disk%d", i); > + ret = disk_print(&dev, line, verbose); > disk_close(&dev); > + if (ret != 0) > + return (ret); > } > } > - pager_close(); > + return (ret); > } > > /* > > Modified: head/sys/boot/i386/libi386/pxe.c > ============================================================ > ================== > --- head/sys/boot/i386/libi386/pxe.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/i386/libi386/pxe.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -75,7 +75,7 @@ static int pxe_strategy(void *devdata, i > size_t offset, size_t size, char *buf, size_t > *rsize); > static int pxe_open(struct open_file *f, ...); > static int pxe_close(struct open_file *f); > -static void pxe_print(int verbose); > +static int pxe_print(int verbose); > static void pxe_cleanup(void); > static void pxe_setnfshandle(char *rootpath); > > @@ -381,14 +381,20 @@ pxe_close(struct open_file *f) > return (0); > } > > -static void > +static int > pxe_print(int verbose) > { > - > + char line[255]; > if (pxe_call == NULL) > - return; > + return (0); > > - printf(" pxe0: %s:%s\n", inet_ntoa(rootip), rootpath); > + if (verbose) { > + snprintf(line, sizeof(line), " pxe0: %s:%s\n", > + inet_ntoa(rootip), rootpath); > + } else { > + snprintf(line, sizeof(line), " pxe0:\n"); > + } > + return (pager_output(line)); > } > > static void > > Modified: head/sys/boot/mips/beri/loader/beri_disk_cfi.c > ============================================================ > ================== > --- head/sys/boot/mips/beri/loader/beri_disk_cfi.c Tue Nov 8 > 06:13:22 2016 (r308433) > +++ head/sys/boot/mips/beri/loader/beri_disk_cfi.c Tue Nov 8 > 06:50:18 2016 (r308434) > @@ -47,7 +47,7 @@ static int beri_cfi_disk_close(struct op > static void beri_cfi_disk_cleanup(void); > static int beri_cfi_disk_strategy(void *, int, daddr_t, size_t, > size_t, > char *, size_t *); > -static void beri_cfi_disk_print(int); > +static int beri_cfi_disk_print(int); > > struct devsw beri_cfi_disk = { > .dv_name = "cfi", > @@ -112,25 +112,29 @@ beri_cfi_disk_close(struct open_file *f) > return (disk_close(dev)); > } > > -static void > +static int > beri_cfi_disk_print(int verbose) > { > struct disk_devdesc dev; > char line[80]; > + int ret; > > - sprintf(line, " cfi%d CFI flash device\n", 0); > - pager_output(line); > + snprintf(line, sizeof(line), " cfi%d CFI flash device\n", 0); > + ret = pager_output(line); > + if (ret != 0) > + return (ret); > dev.d_dev = &beri_cfi_disk; > dev.d_unit = 0; > dev.d_slice = -1; > dev.d_partition = -1; > if (disk_open(&dev, cfi_get_mediasize(), > cfi_get_sectorsize(), 0) == 0) { > - sprintf(line, " cfi%d", 0); > - disk_print(&dev, line, verbose); > + snprintf(line, sizeof(line), " cfi%d", 0); > + ret = disk_print(&dev, line, verbose); > disk_close(&dev); > } > > + return (ret); > } > > static void > > Modified: head/sys/boot/mips/beri/loader/beri_disk_sdcard.c > ============================================================ > ================== > --- head/sys/boot/mips/beri/loader/beri_disk_sdcard.c Tue Nov 8 > 06:13:22 2016 (r308433) > +++ head/sys/boot/mips/beri/loader/beri_disk_sdcard.c Tue Nov 8 > 06:50:18 2016 (r308434) > @@ -47,7 +47,7 @@ static int beri_sdcard_disk_close(struct > static void beri_sdcard_disk_cleanup(void); > static int beri_sdcard_disk_strategy(void *, int, daddr_t, size_t, > size_t, > char *, size_t *); > -static void beri_sdcard_disk_print(int); > +static int beri_sdcard_disk_print(int); > > struct devsw beri_sdcard_disk = { > .dv_name = "sdcard", > @@ -123,19 +123,23 @@ beri_sdcard_disk_print(int verbose) > { > struct disk_devdesc dev; > char line[80]; > + int ret; > > - sprintf(line, " sdcard%d Altera SD card drive\n", 0); > - pager_output(line); > + snprintf(line, sizeof(line), " sdcard%d Altera SD card > drive\n", 0); > + ret = pager_output(line); > + if (ret != 0) > + return (ret); > dev.d_dev = &beri_sdcard_disk; > dev.d_unit = 0; > dev.d_slice = -1; > dev.d_partition = -1; > if (disk_open(&dev, altera_sdcard_get_mediasize(), > altera_sdcard_get_sectorsize(), 0) == 0) { > - sprintf(line, " sdcard%d", 0); > - disk_print(&dev, line, verbose); > + snprintf(line, sizeof(line), " sdcard%d", 0); > + ret = disk_print(&dev, line, verbose); > disk_close(&dev); > } > + return (ret); > } > > static void > > Modified: head/sys/boot/ofw/libofw/ofw_disk.c > ============================================================ > ================== > --- head/sys/boot/ofw/libofw/ofw_disk.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/ofw/libofw/ofw_disk.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -47,7 +47,7 @@ static int ofwd_strategy(void *devdata, > static int ofwd_open(struct open_file *f, ...); > static int ofwd_close(struct open_file *f); > static int ofwd_ioctl(struct open_file *f, u_long cmd, void *data); > -static void ofwd_print(int verbose); > +static int ofwd_print(int verbose); > > struct devsw ofwdisk = { > "block", > @@ -161,8 +161,8 @@ ofwd_ioctl(struct open_file *f __unused, > return (EINVAL); > } > > -static void > +static int > ofwd_print(int verbose __unused) > { > - > + return (0); > } > > Modified: head/sys/boot/pc98/libpc98/bioscd.c > ============================================================ > ================== > --- head/sys/boot/pc98/libpc98/bioscd.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/pc98/libpc98/bioscd.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -99,7 +99,7 @@ static int bc_realstrategy(void *devdata > size_t offset, size_t size, char *buf, size_t *rsize); > static int bc_open(struct open_file *f, ...); > static int bc_close(struct open_file *f); > -static void bc_print(int verbose); > +static int bc_print(int verbose); > > struct devsw bioscd = { > "cd", > @@ -173,20 +173,19 @@ bc_add(int biosdev) > /* > * Print information about disks > */ > -static void > +static int > bc_print(int verbose) > { > char line[80]; > - int i; > + int i, ret = 0; > > - pager_open(); > for (i = 0; i < nbcinfo; i++) { > sprintf(line, " cd%d: Device 0x%x\n", i, > bcinfo[i].bc_sp.sp_devicespec); > - if (pager_output(line)) > + if ((ret = pager_output(line)) != 0) > break; > } > - pager_close(); > + return (ret); > } > > /* > > Modified: head/sys/boot/pc98/libpc98/biosdisk.c > ============================================================ > ================== > --- head/sys/boot/pc98/libpc98/biosdisk.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/pc98/libpc98/biosdisk.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -123,7 +123,7 @@ static int bd_realstrategy(void *devdata > size_t offset, size_t size, char *buf, size_t *rsize); > static int bd_open(struct open_file *f, ...); > static int bd_close(struct open_file *f); > -static void bd_print(int verbose); > +static int bd_print(int verbose); > > struct devsw biosdisk = { > "disk", > @@ -249,21 +249,20 @@ bd_int13probe(struct bdinfo *bd) > /* > * Print information about disks > */ > -static void > +static int > bd_print(int verbose) > { > - int i, j, done; > + int i, j, ret = 0; > char line[80]; > struct i386_devdesc dev; > struct open_disk *od; > struct pc98_partition *dptr; > > - pager_open(); > - done = 0; > - for (i = 0; i < nbdinfo && !done; i++) { > - sprintf(line, " disk%d: BIOS drive %c:\n", i, 'A' + i); > - if (pager_output(line)) > - break; > + for (i = 0; i < nbdinfo; i++) { > + snprintf(line, sizeof(line), " disk%d: BIOS drive %c:\n", > + i, 'A' + i); > + if ((ret = pager_output(line)) != 0) > + break; > > /* try to open the whole disk */ > dev.d_unit = i; > @@ -278,17 +277,17 @@ bd_print(int verbose) > > /* Check for a "dedicated" disk */ > for (j = 0; j < od->od_nslices; j++) { > - sprintf(line, " disk%ds%d", i, j + 1); > - if (bd_printslice(od, &dptr[j], line, verbose)) { > - done = 1; > - break; > - } > + snprintf(line, sizeof(line), " disk%ds%d", i, j + > 1); > + if ((ret = bd_printslice(od, &dptr[j], line, verbose)) > != 0) > + break; > } > } > bd_closedisk(od); > + if (ret != 0) > + break; > } > } > - pager_close(); > + return (ret); > } > > /* Given a size in 512 byte sectors, convert it to a human-readable > number. */ > > Modified: head/sys/boot/powerpc/kboot/hostdisk.c > ============================================================ > ================== > --- head/sys/boot/powerpc/kboot/hostdisk.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/powerpc/kboot/hostdisk.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -37,7 +37,7 @@ static int hostdisk_strategy(void *devda > static int hostdisk_open(struct open_file *f, ...); > static int hostdisk_close(struct open_file *f); > static int hostdisk_ioctl(struct open_file *f, u_long cmd, void *data); > -static void hostdisk_print(int verbose); > +static int hostdisk_print(int verbose); > > struct devsw hostdisk = { > "/dev", > @@ -117,9 +117,9 @@ hostdisk_ioctl(struct open_file *f, u_lo > return (EINVAL); > } > > -static void > +static int > hostdisk_print(int verbose) > { > - > + return (0); > } > > > Modified: head/sys/boot/powerpc/ps3/ps3cdrom.c > ============================================================ > ================== > --- head/sys/boot/powerpc/ps3/ps3cdrom.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/powerpc/ps3/ps3cdrom.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -49,7 +49,7 @@ static int ps3cdrom_strategy(void *devda > size_t offset, size_t size, char *buf, size_t *rsize); > static int ps3cdrom_open(struct open_file *f, ...); > static int ps3cdrom_close(struct open_file *f); > -static void ps3cdrom_print(int verbose); > +static int ps3cdrom_print(int verbose); > > struct devsw ps3cdrom = { > "cd", > @@ -149,6 +149,7 @@ static int ps3cdrom_close(struct open_fi > return 0; > } > > -static void ps3cdrom_print(int verbose) > +static int ps3cdrom_print(int verbose) > { > + return (0); > } > > Modified: head/sys/boot/powerpc/ps3/ps3disk.c > ============================================================ > ================== > --- head/sys/boot/powerpc/ps3/ps3disk.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/powerpc/ps3/ps3disk.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -61,7 +61,7 @@ static int ps3disk_strategy(void *devdat > size_t offset, size_t size, char *buf, size_t *rsize); > static int ps3disk_open(struct open_file *f, ...); > static int ps3disk_close(struct open_file *f); > -static void ps3disk_print(int verbose); > +static int ps3disk_print(int verbose); > > struct devsw ps3disk = { > "disk", > @@ -186,8 +186,9 @@ static int ps3disk_close(struct open_fil > return 0; > } > > -static void ps3disk_print(int verbose) > +static int ps3disk_print(int verbose) > { > + return (0); > } > > static int ps3disk_open_gpt(struct ps3_devdesc *dev, struct open_dev *od) > > Modified: head/sys/boot/uboot/lib/disk.c > ============================================================ > ================== > --- head/sys/boot/uboot/lib/disk.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/uboot/lib/disk.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -78,7 +78,7 @@ static int stor_strategy(void *, int, da > static int stor_open(struct open_file *, ...); > static int stor_close(struct open_file *); > static int stor_ioctl(struct open_file *f, u_long cmd, void *data); > -static void stor_print(int); > +static int stor_print(int); > static void stor_cleanup(void); > > struct devsw uboot_storage = { > @@ -238,30 +238,31 @@ stor_readdev(struct disk_devdesc *dev, d > return (err); > } > > -static void > +static int > stor_print(int verbose) > { > struct disk_devdesc dev; > static char line[80]; > - int i; > + int i, ret = 0; > > - pager_open(); > for (i = 0; i < stor_info_no; i++) { > dev.d_dev = &uboot_storage; > dev.d_unit = i; > dev.d_slice = -1; > dev.d_partition = -1; > - sprintf(line, "\tdisk%d (%s)\n", i, > + snprintf(line, sizeof(line), "\tdisk%d (%s)\n", i, > ub_stor_type(SI(&dev).type)); > - if (pager_output(line)) > + if ((ret = pager_output(line)) != 0) > break; > if (stor_opendev(&dev) == 0) { > sprintf(line, "\tdisk%d", i); > - disk_print(&dev, line, verbose); > + ret = disk_print(&dev, line, verbose); > disk_close(&dev); > + if (ret != 0) > + break; > } > } > - pager_close(); > + return (ret); > } > > static int > > Modified: head/sys/boot/usb/storage/umass_loader.c > ============================================================ > ================== > --- head/sys/boot/usb/storage/umass_loader.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/usb/storage/umass_loader.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -50,7 +50,7 @@ static void umass_disk_cleanup(void); > static int umass_disk_ioctl(struct open_file *, u_long, void *); > static int umass_disk_strategy(void *, int, daddr_t, size_t, size_t, char > *, > size_t *); > -static void umass_disk_print(int); > +static int umass_disk_print(int); > > struct devsw umass_disk = { > .dv_name = "umass", > @@ -170,23 +170,26 @@ umass_disk_close(struct open_file *f) > return (disk_close(dev)); > } > > -static void > +static int > umass_disk_print(int verbose) > { > struct disk_devdesc dev; > > memset(&dev, 0, sizeof(dev)); > > - pager_output(" umass0 UMASS device\n"); > + ret = pager_output(" umass0 UMASS device\n"); > + if (ret != 0) > + return (ret); > dev.d_dev = &umass_disk; > dev.d_unit = 0; > dev.d_slice = -1; > dev.d_partition = -1; > > if (umass_disk_open_sub(&dev) == 0) { > - disk_print(&dev, " umass0", verbose); > + ret = disk_print(&dev, " umass0", verbose); > disk_close(&dev); > } > + return (ret); > } > > static void > > Modified: head/sys/boot/userboot/userboot/host.c > ============================================================ > ================== > --- head/sys/boot/userboot/userboot/host.c Tue Nov 8 06:13:22 2016 > (r308433) > +++ head/sys/boot/userboot/userboot/host.c Tue Nov 8 06:50:18 2016 > (r308434) > @@ -134,13 +134,13 @@ host_dev_init(void) > return (0); > } > > -static void > +static int > host_dev_print(int verbose) > { > char line[80]; > > - sprintf(line, " host%d: Host filesystem\n", 0); > - pager_output(line); > + snprintf(line, sizeof(line), " host%d: Host filesystem\n", 0); > + return (pager_output(line)); > } > > /* > > Modified: head/sys/boot/userboot/userboot/userboot_disk.c > ============================================================ > ================== > --- head/sys/boot/userboot/userboot/userboot_disk.c Tue Nov 8 > 06:13:22 2016 (r308433) > +++ head/sys/boot/userboot/userboot/userboot_disk.c Tue Nov 8 > 06:50:18 2016 (r308434) > @@ -60,7 +60,7 @@ static int userdisk_realstrategy(void *d > static int userdisk_open(struct open_file *f, ...); > static int userdisk_close(struct open_file *f); > static int userdisk_ioctl(struct open_file *f, u_long cmd, void > *data); > -static void userdisk_print(int verbose); > +static int userdisk_print(int verbose); > > struct devsw userboot_disk = { > "disk", > @@ -116,27 +116,33 @@ userdisk_cleanup(void) > /* > * Print information about disks > */ > -static void > +static int > userdisk_print(int verbose) > { > struct disk_devdesc dev; > char line[80]; > - int i; > + int i, ret = 0; > > for (i = 0; i < userdisk_maxunit; i++) { > - sprintf(line, " disk%d: Guest drive image\n", i); > - pager_output(line); > + snprintf(line, sizeof(line), > + " disk%d: Guest drive image\n", i); > + ret = pager_output(line); > + if (ret != 0) > + break; > dev.d_dev = &userboot_disk; > dev.d_unit = i; > dev.d_slice = -1; > dev.d_partition = -1; > if (disk_open(&dev, ud_info[i].mediasize, > ud_info[i].sectorsize, 0) == 0) { > - sprintf(line, " disk%d", i); > - disk_print(&dev, line, verbose); > + snprintf(line, sizeof(line), " disk%d", i); > + ret = disk_print(&dev, line, verbose); > disk_close(&dev); > + if (ret != 0) > + break; > } > } > + return (ret); > } > > /* > > Modified: head/sys/boot/zfs/zfs.c > ============================================================ > ================== > --- head/sys/boot/zfs/zfs.c Tue Nov 8 06:13:22 2016 (r308433) > +++ head/sys/boot/zfs/zfs.c Tue Nov 8 06:50:18 2016 (r308434) > @@ -514,20 +514,23 @@ zfs_probe_dev(const char *devname, uint6 > /* > * Print information about ZFS pools > */ > -static void > +static int > zfs_dev_print(int verbose) > { > spa_t *spa; > char line[80]; > + int ret = 0; > > if (verbose) { > - spa_all_status(); > - return; > + return (spa_all_status()); > } > STAILQ_FOREACH(spa, &zfs_pools, spa_link) { > - sprintf(line, " zfs:%s\n", spa->spa_name); > - pager_output(line); > + snprintf(line, sizeof(line), " zfs:%s\n", > spa->spa_name); > + ret = pager_output(line); > + if (ret != 0) > + break; > } > + return (ret); > } > > /* > > Modified: head/sys/boot/zfs/zfsimpl.c > ============================================================ > ================== > --- head/sys/boot/zfs/zfsimpl.c Tue Nov 8 06:13:22 2016 (r308433) > +++ head/sys/boot/zfs/zfsimpl.c Tue Nov 8 06:50:18 2016 (r308434) > @@ -780,7 +780,7 @@ state_name(vdev_state_t state) > > #else > > -static void > +static int > pager_printf(const char *fmt, ...) > { > char line[80]; > @@ -789,14 +789,14 @@ pager_printf(const char *fmt, ...) > va_start(args, fmt); > vsprintf(line, fmt, args); > va_end(args); > - pager_output(line); > + return (pager_output(line)); > } > > #endif > > #define STATUS_FORMAT " %s %s\n" > > -static void > +static int > print_state(int indent, const char *name, vdev_state_t state) > { > int i; > @@ -806,40 +806,56 @@ print_state(int indent, const char *name > for (i = 0; i < indent; i++) > strcat(buf, " "); > strcat(buf, name); > > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** > _______________________________________________ > 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-unsubscribe@freebsd.org" >