From owner-svn-src-head@FreeBSD.ORG Thu Sep 18 17:22:46 2014 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AFA29E93; Thu, 18 Sep 2014 17:22:46 +0000 (UTC) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 769C996E; Thu, 18 Sep 2014 17:22:45 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id UAA23731; Thu, 18 Sep 2014 20:22:43 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1XUfPn-000Dze-Kp; Thu, 18 Sep 2014 20:22:43 +0300 Message-ID: <541B14AB.3060004@FreeBSD.org> Date: Thu, 18 Sep 2014 20:21:47 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.1.0 MIME-Version: 1.0 To: Will Andrews Subject: Re: svn commit: r271788 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201409181655.s8IGtgft042984@svn.freebsd.org> <541B1069.1030704@FreeBSD.org> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, "src-committers@FreeBSD.org" X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 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, 18 Sep 2014 17:22:46 -0000 On 18/09/2014 20:05, Will Andrews wrote: > Which one is more idiomatic? Sorry, I never noticed that one. I prefer your commit. > > On Thu, Sep 18, 2014 at 11:03 AM, Andriy Gapon wrote: >> On 18/09/2014 19:55, Will Andrews wrote: >>> Author: will >>> Date: Thu Sep 18 16:55:41 2014 >>> New Revision: 271788 >>> URL: http://svnweb.freebsd.org/changeset/base/271788 >>> >>> Log: >>> Enable ZFS debug flags to be modified via vfs.zfs.debug_flags. >>> >>> This is primarily only of interest to ZFS developers, but it makes it >>> easier to get additional debugging. >>> >>> Submitted by: gibbs >>> MFC after: 1 month >>> Sponsored by: Spectra Logic >>> MFSpectraBSD: 517074 on 2011/12/15 (by will), 662343 on 2013/03/20 (by gibbs) >> >> zfs_flags was already accessible via debug.zfs_flags sysctl and tunable. >> That should probably be removed now? >> >>> Modified: >>> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c >>> >>> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c >>> ============================================================================== >>> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c Thu Sep 18 16:53:44 2014 (r271787) >>> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c Thu Sep 18 16:55:41 2014 (r271788) >>> @@ -259,6 +259,33 @@ SYSCTL_DECL(_vfs_zfs); >>> SYSCTL_INT(_vfs_zfs, OID_AUTO, recover, CTLFLAG_RDTUN, &zfs_recover, 0, >>> "Try to recover from otherwise-fatal errors."); >>> >>> +static int >>> +sysctl_vfs_zfs_debug_flags(SYSCTL_HANDLER_ARGS) >>> +{ >>> + int err, val; >>> + >>> + val = zfs_flags; >>> + err = sysctl_handle_int(oidp, &val, 0, req); >>> + if (err != 0 || req->newptr == NULL) >>> + return (err); >>> + >>> + /* >>> + * ZFS_DEBUG_MODIFY must be enabled prior to boot so all >>> + * arc buffers in the system have the necessary additional >>> + * checksum data. However, it is safe to disable at any >>> + * time. >>> + */ >>> + if (!(zfs_flags & ZFS_DEBUG_MODIFY)) >>> + val &= ~ZFS_DEBUG_MODIFY; >>> + zfs_flags = val; >>> + >>> + return (0); >>> +} >>> +TUNABLE_INT("vfs.zfs.debug_flags", &zfs_flags); >>> +SYSCTL_PROC(_vfs_zfs, OID_AUTO, debug_flags, >>> + CTLTYPE_UINT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, sizeof(int), >>> + sysctl_vfs_zfs_debug_flags, "IU", "Debug flags for ZFS testing."); >>> + >>> /* >>> * If destroy encounters an EIO while reading metadata (e.g. indirect >>> * blocks), space referenced by the missing metadata can not be freed. >>> >> >> >> -- >> Andriy Gapon -- Andriy Gapon