From owner-svn-src-all@freebsd.org Tue May 10 03:57:48 2016 Return-Path: Delivered-To: svn-src-all@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 BE245B350F5; Tue, 10 May 2016 03:57:48 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8E012165D; Tue, 10 May 2016 03:57:48 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u4A3vl55056270; Tue, 10 May 2016 03:57:47 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u4A3vlU6056269; Tue, 10 May 2016 03:57:47 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201605100357.u4A3vlU6056269@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Tue, 10 May 2016 03:57:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r299312 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 May 2016 03:57:48 -0000 Author: imp Date: Tue May 10 03:57:47 2016 New Revision: 299312 URL: https://svnweb.freebsd.org/changeset/base/299312 Log: Document g_reset_bio(). This is long overdue. g_reset_bio will reset the bio to a pristine state should you wish to re-use it for another I/O without freeing it. In the bast, a simple bzero was done to do this, but that may not be sufficient in the future when the bio may contain state that's not part of the documented API. Besides, it makes the code clearer as to the intent... Noticed by: smh@ Modified: head/share/man/man9/g_bio.9 Modified: head/share/man/man9/g_bio.9 ============================================================================== --- head/share/man/man9/g_bio.9 Tue May 10 03:42:18 2016 (r299311) +++ head/share/man/man9/g_bio.9 Tue May 10 03:57:47 2016 (r299312) @@ -31,7 +31,8 @@ .Nm g_new_bio , .Nm g_clone_bio , .Nm g_destroy_bio , -.Nm g_print_bio +.Nm g_print_bio , +.Nm g_reset_bio .Nd "GEOM bio controlling functions" .Sh SYNOPSIS .In sys/bio.h @@ -48,6 +49,8 @@ .Fn g_destroy_bio "struct bio *bp" .Ft void .Fn g_print_bio "struct bio *bp" +.Ft void +.Fn g_reset_bio "struct bio *bp" .Sh DESCRIPTION A .Vt "struct bio" @@ -205,6 +208,32 @@ The function prints information about the given .Vt bio structure (for debugging purposes). +.Pp +The +.Fn g_reset_bio +function resets the given +.Vt bio +for reuse. +Prior to +.Fx 11 +a +.Vt bio +was reset for reuse with +.Xr bzero 3 . +.Fn g_reset_bio +preserves internal data structures, while resetting all +user visible values. +Its use is required for any +.Vt bio +that has been returned by +.Fn g_new_bio , +.Fn g_alloc_bio , +.Fn g_clone_bio , +or +.Fn g_duplicate_bio . +It may be used for a +.Vt bio +created in another way, but that is not required. .Sh RETURN VALUES The .Fn g_new_bio