'\" t
.\"
.\" CDDL HEADER START
.\"
.\" The contents of this file are subject to the terms of the
.\" Common Development and Distribution License (the "License").
.\" You may not use this file except in compliance with the License.
.\"
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
.\" or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions
.\" and limitations under the License.
.\"
.\" When distributing Covered Code, include this CDDL HEADER in each
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
.\" If applicable, add the following below this CDDL HEADER, with the
.\" fields enclosed by brackets "[]" replaced with your own identifying
.\" information: Portions Copyright [yyyy] [name of copyright owner]
.\"
.\" CDDL HEADER END
.\"
.\"
.\" Copyright 2013 Darik Horn <dajhorn@vanadac.com>. All rights reserved.
.\"
.TH fsck.zfs 8 "2013 MAR 16" "ZFS on Linux" "System Administration Commands"

.SH NAME
fsck.zfs \- Dummy ZFS filesystem checker.

.SH SYNOPSIS
.LP
.BI "fsck.zfs [" "options" "] <" "dataset" ">"

.SH DESCRIPTION
.LP
\fBfsck.zfs\fR is a shell stub that does nothing and always returns
true. It is installed by ZoL because some Linux distributions expect
a fsck helper for all filesystems.

.SH OPTIONS
.HP
All \fIoptions\fR and the \fIdataset\fR are ignored.

.SH "NOTES"
.LP
ZFS datasets are checked by running \fBzpool scrub\fR on the
containing pool. An individual ZFS dataset is never checked
independently of its pool, which is unlike a regular filesystem.

.SH "BUGS"
.LP
On some systems, if the \fIdataset\fR is in a degraded pool, then it
might be appropriate for \fBfsck.zfs\fR to return exit code 4 to
indicate an uncorrected filesystem error.
.LP
Similarly, if the \fIdataset\fR is in a faulted pool and has a legacy
/etc/fstab record, then \fBfsck.zfs\fR should return exit code 8 to
indicate a fatal operational error.

.SH "AUTHORS"
.LP
Darik Horn <dajhorn@vanadac.com>.

.SH "SEE ALSO"
.BR fsck (8),
.BR fstab (5),
.BR zpool (8)
