svn commit: r271788 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Will Andrews
will at firepipe.net
Thu Sep 18 17:05:56 UTC 2014
Which one is more idiomatic? Sorry, I never noticed that one.
Thanks,
--Will.
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
More information about the svn-src-head
mailing list