svn commit: r271788 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Andriy Gapon avg at FreeBSD.org
Thu Sep 18 17:22:46 UTC 2014


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 <avg at freebsd.org> 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


More information about the svn-src-all mailing list