Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Tags: Architectures Distributions Performance Style Tests
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

Architectures Distributions Performance Style Tests
Richard Laager
Clarify and improve encryption documentation

- Remove the language that "all user data" is encrypted.  This is to
  avoid misunderstandings or arguments about what is "user data",
  especially in light of "user properties".
- Document that properties are unencrypted.
- Document that snapshot names are unencrypted.
- For consistency with the rest of the zfs.8 man page, use "ZFS" as the
  generic noun, not (bolded) "zfs".  The latter refers to the command.
  Likewise, use "ZFS" instead of "the kernel module".
- Give "a passphrase" as an example of a "user's key".

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8652 part 1/1
Richard Laager
Duplicate the encryption copies=3 limitation

This adds the encryption copies=3 limitation language into the copies
property section.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8651 part 1/1
Richard Laager
Deprecate dedupditto

This documents, in zpool.8, that dedupditto is deprecated and will be
made to have no effect in a future release.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8650 part 1/1
Rafael Kitover
kernel timer API rework

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
because some kernels (notably 4.14) have the new `timer_setup()` API but
use the old callback signature. Also add a check for a `flags` member in
`struct timer_list`, much older kernels do not have it.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback
argument type must be declared as `TIMER_FUNC_ARG` and an explicit
assignment is required to get the timer variable for the `timer_of()`
macro. So the callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
kernel timer API rework

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
because some kernels (notably 4.14) have the new `timer_setup()` API but
use the old callback signature. Also add a check for a `flags` member in
`struct timer_list`, much older kernels do not have it.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback argument
type must be declared as `TIMER_FUNC_ARG` and an explicit assignment is
required to get the timer variable for the `timer_of()` macro. So the
callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
kernel timer API rework

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
because some kernels (notably 4.14) have the new `timer_setup()` API but
use the old callback signature. Also add a check for a `flags` member in
`struct timer_list`, much older kernels do not have it.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback argument
type must be declared as `TIMER_FUNC_ARG` and an explicit assignment is
required to get the timer variable for the `timer_of()` macro. So the
callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
timer API rework, minor kernel config improvements

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
and add another check for a `flags` member in `struct timer_list`.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback argument
type must be declared as `TIMER_FUNC_ARG` and an explicit assignment is
required to get the timer variable for the `timer_of()` macro. So the
callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
timer API rework, minor kernel config improvements

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
and add another check for a `flags` member in `struct timer_list`.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback argument
type must be declared as `TIMER_FUNC_ARG` and an explicit assignment is
required to get the timer variable for the `timer_of()` macro. So the
callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
timer API rework, minor kernel config improvements

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
and add another check for a `flags` member in `struct timer_list`.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback argument
type must be declared as `TIMER_FUNC_ARG` and an explicit assignment is
required to get the timer variable for the `timer_of()` macro. So the
callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
timer API rework, minor kernel config improvements

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
and add another check for a `flags` member in `struct timer_list`.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback argument
type must be declared as `TIMER_FUNC_ARG` and an explicit assignment is
required to get the timer variable for the `timer_of()` macro. So the
callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
timer API rework, minor kernel config improvements

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
and add another check for a `flags` member in `struct timer_list`.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only two caveats being that the callback argument
type must be declared as `TIMER_FUNC_ARG` and an explicit assignment is
required to get the timer variable for the `timer_of()` macro. So the
callback would look like this:

```c
__cv_wakeup(TIMER_FUNC_ARG t)
{
        struct timer_list *tmr = (struct timer_list *)t;
struct thing *parent = from_timer(parent, tmr,
parent_timer_field);
... /* do stuff with parent */
```

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
timer API rework, minor kernel config improvements

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs, but keep the old timer callback signature check
and add another check for a `flags` member in `struct timer_list`.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only caveat being that the callback argument
type must be declared as `TIMER_FUNC_ARG`.

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Rafael Kitover
timer API rework, minor kernel config improvements

In `config/kernel-pde-data.m4` check that the `PDE_DATA()` is available
in any form rather than checking for the symbol, as it is sometimes
defined as a function.

In `config/kernel-timer.m4` check more generally for the new
`timer_setup()` APIs.

Add compatibility shims to `include/spl/sys/timer.h` to allow using the
new timer APIs with the only caveat being that the callback argument
type must be declared as `TIMER_FUNC_ARG`.

Make some minor changes to `spl-condvar.c` and `spl-taskq.c` to use the
new timer APIs instead of conditional code.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Pull-request: #8647 part 1/1
Olaf Faaland
zpool import progress indicator

When an import requires a long MMP activity check, or when the user
requests pool recovery, the import make take a long time.  The user may
not know why, or be able to tell whether the import is progressing or is
hung.

Add a kstat which lists all imports currently being processed by the
kernel (currently only one at a time is possible, but the kstat allows
for more than one).  The kstat is at
/proc/spl/kstat/zfs/import_progress.

In the zpool utility, create an additional thread which periodically
checks the contents of this kstat.  If the import does not finish
quickly, it reports the following on stderr:
* Name and guid of pool being imported
* User-friendly version of spa_load_state
* spa_load_max_txg

If one or more of these values change, the thread prints a new record.

A new record will be printed to stderr with a maximum frequency of one
per second so as not to spam the user.  As a result the printed output
may reflect only some of the import states transitioned through.

Sample output:

Pool tank1 (guid 4591991398949870326):
Checking for a remote import.
Check will complete by Tue Apr 16 08:43:58 2019

Pool tank1 (guid 4591991398949870326):
Checking for a remote import.
Check will complete by Tue Apr 16 08:44:43 2019
Recovering Pool max txg 745

Signed-off-by: Olaf Faaland <faaland1@llnl.gov>

Pull-request: #8646 part 1/1
Olaf Faaland
zpool import progress indicator

When an import requires a long MMP activity check, or when the user
requests pool recovery, the import make take a long time.  The user may
not know why, or be able to tell whether the import is progressing or is
hung.

Add a kstat which lists all imports currently being processed by the
kernel (currently only one at a time is possible, but the kstat allows
for more than one).  The kstat is at
/proc/spl/kstat/zfs/import_progress.

In the zpool utility, create an additional thread which periodically
checks the contents of this kstat.  If the import does not finish
quickly, it reports the following on stderr:
* Name and guid of pool being imported
* User-friendly version of spa_load_state
* spa_load_max_txg

If one or more of these values change, the thread prints a new record.

A new record will be printed to stderr with a maximum frequency of one
per second so as not to spam the user.  As a result the printed output
may reflect only some of the import states transitioned through.

Sample output:

Pool tank1 (guid 4591991398949870326):
Checking for a remote import.
Check will complete by Tue Apr 16 08:43:58 2019

Pool tank1 (guid 4591991398949870326):
Checking for a remote import.
Check will complete by Tue Apr 16 08:44:43 2019
Recovering Pool max txg 745

Signed-off-by: Olaf Faaland <faaland1@llnl.gov>

Pull-request: #8646 part 1/1
Rafael Kitover
config: libintl/libiconv for gettext() detection

Detect in autoconf whether `-lintl` and possibly `-liconv` are necessary
for translation functions like `gettext()`.

The actual autoconf code is just:

```
AM_ICONV
AM_GNU_GETTEXT([external])
LIBS="$LIBS $LTLIBINTL $LTLIBICONV"
```

References:

https://www.gnu.org/software/gettext/manual/html_node/AM_005fGNU_005fGETTEXT.html
https://www.gnu.org/software/gettext/manual/html_node/AM_005fICONV.html

The reason to check for `libiconv` and add it separately is that this is
sometimes necessary if users are linking statically.

The `config/*.m4` files were added by running `gettextize` and removing
everything else.

The empty file `config/config.rpath` is necessary to avoid an error with
some versions of autotools, see:

http://ramblingfoo.blogspot.com/2007/07/required-file-configrpath-not-found.html

The `config.rpath` copied by `gettextize` does not currently work, there
is some kind of missing interaction with `libtool` and it tries to apply
`libtool` flags to the compiler.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Richard Laager <rlaager@wiktel.com>
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Closes #8554
Tomohiro Kusumi
Drop unused ZNODE_STATS and ZNODE_STAT_ADD()

Unused since 5649246dd3("Remove znode move functionality"),
and ZNODE_STAT_ADD() will never be needed.

Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Closes #8636
Tomohiro Kusumi
Fix typo "/zbin/zpool" -> "/sbin/zpool"

Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Closes #8643
Tomohiro Kusumi
Fix incorrect "[UNUSED]" comments

These aren't unused.
`flag` in zfs_create() also isn't to indicate large file.

Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Richard Laager <rlaager@wiktel.com>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Closes #8635
Tomohiro Kusumi
Fix incorrect use of .Nm directive for ZPOOL_VDEV_NAME_GUID in zpool(8)

It should only affect "zpool".

Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

Pull-request: #8644 part 1/1
Tomohiro Kusumi
Fix incorrect use of .Nm directive for ZPOOL_VDEV_NAME_GUID

It should only affect "zpool".

Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

Pull-request: #8644 part 1/1
  • Amazon 2 x86_64 (BUILD): cloning zfs -  stdio
  • Debian 8 arm (BUILD): cloning zfs -  stdio
  • CentOS 6 x86_64 (BUILD): cloning zfs -  stdio
  • CentOS 7 x86_64 (BUILD): cloning zfs -  stdio
  • Debian 9 x86_64 (BUILD): cloning zfs -  stdio
  • Kernel.org Built-in x86_64 (BUILD): cloning zfs -  stdio
  • Ubuntu 16.04 x86_64 (BUILD): cloning zfs -  stdio
  • Ubuntu 18.04 x86_64 (BUILD): cloning zfs -  stdio
  • Ubuntu 17.10 x86_64 (STYLE): cloning zfs -  stdio
Richard Laager
Eliminate useless double-bolding in man pages

As far as I know and can tell from testing, \fB\fB...\fR\fR is exactly
equivalent to \fB...\fR.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 10/10
Richard Laager
Alphabetize zpool-features.5 by short name

The features are sorted in the en_US locale, not the C locale.
Specifically, that means that bookmark_v2 comes _after_ bookmarks.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 9/10
Richard Laager
Standardize .RE placement in zpool-features.5

This command is being used to unindent, so it should be at the end of
each block.  This is consistent with the other man pages.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 8/10
Richard Laager
Add missing formatting to sha512 in zpool-features.5

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 7/10
Richard Laager
Correct GUID of large_blocks in zpool-features.5

It is org.open-zfs:large_blocks (plural).

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 6/10
Richard Laager
Change wording in zfs-module-parameters.5

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 5/10
Richard Laager
Document that hole_birth is effectively useless

The first sentence of this commit comes from the wiki, and was
originally written by:
Rich Ercolani <rincebrain@gmail.com>
with changes by:
Tom Caputi <tcaputi@datto.com>

Signed-off-by: Richard Laager <rlaager@wiktel.com>
Closes #8642

Pull-request: #8641 part 4/10
Richard Laager
Document send_holes_without_birth_time

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 3/10
Richard Laager
Correct bookmark_v2 dependencies

encryption depends on bookmark_v2.

bookmark_v2 depends on bookmarks.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 2/10
Richard Laager
Fix formatting for multi_vdev_crash_dump in zpool-features.5

This needs to use tabs instead of spaces to display correctly (i.e. with
things lined up).

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 1/10
Richard Laager
Alphabetize zpool-features.5 by short name

The features are sorted in the en_US locale, not the C locale.
Specifically, that means that bookmark_v2 comes _after_ bookmarks.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 9/9
Richard Laager
Standardize .RE placement in zpool-features.5

This command is being used to unindent, so it should be at the end of
each block.  This is consistent with the other man pages.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 8/9
Richard Laager
Add missing formatting to sha512 in zpool-features.5

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 7/9
Richard Laager
Correct GUID of large_blocks in zpool-features.5

It is org.open-zfs:large_blocks (plural).

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 6/9
Richard Laager
Change wording in zfs-module-parameters.5

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 5/9
Richard Laager
Document that hole_birth is effectively useless

The first sentence of this commit comes from the wiki, and was
originally written by:
Rich Ercolani <rincebrain@gmail.com>
with changes by:
Tom Caputi <tcaputi@datto.com>

Signed-off-by: Richard Laager <rlaager@wiktel.com>
Closes #8642

Pull-request: #8641 part 4/9
Richard Laager
Document send_holes_without_birth_time

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 3/9
Richard Laager
Correct bookmark_v2 dependencies

encryption depends on bookmark_v2.

bookmark_v2 depends on bookmarks.

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 2/9
Richard Laager
Fix formatting for multi_vdev_crash_dump in zpool-features.5

This needs to use tabs instead of spaces to display correctly (i.e. with
things lined up).

Signed-off-by: Richard Laager <rlaager@wiktel.com>

Pull-request: #8641 part 1/9