mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-28 17:39:23 +03:00
OpenZFS 7431 - ZFS Channel Programs
Authored by: Chris Williamson <chris.williamson@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: John Kennedy <john.kennedy@delphix.com> Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Approved by: Garrett D'Amore <garrett@damore.org> Ported-by: Don Brady <don.brady@delphix.com> Ported-by: John Kennedy <john.kennedy@delphix.com> OpenZFS-issue: https://www.illumos.org/issues/7431 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/dfc11533 Porting Notes: * The CLI long option arguments for '-t' and '-m' don't parse on linux * Switched from kmem_alloc to vmem_alloc in zcp_lua_alloc * Lua implementation is built as its own module (zlua.ko) * Lua headers consumed directly by zfs code moved to 'include/sys/lua/' * There is no native setjmp/longjump available in stock Linux kernel. Brought over implementations from illumos and FreeBSD * The get_temporary_prop() was adapted due to VFS platform differences * Use of inline functions in lua parser to reduce stack usage per C call * Skip some ZFS Test Suite ZCP tests on sparc64 to avoid stack overflow
This commit is contained in:
committed by
Brian Behlendorf
parent
8824a7f133
commit
d99a015343
@@ -271,6 +271,12 @@
|
||||
.Op Fl FHt
|
||||
.Ar snapshot Ar snapshot Ns | Ns Ar filesystem
|
||||
.Nm
|
||||
.Cm program
|
||||
.Op Fl t Ar timeout
|
||||
.Op Fl m Ar memory_limit
|
||||
.Ar pool script
|
||||
.Op Ar arg1 No ...
|
||||
.Nm
|
||||
.Cm load-key
|
||||
.Op Fl nr
|
||||
.Op Fl L Ar keylocation
|
||||
@@ -4035,6 +4041,47 @@ Display the path's inode change time as the first column of output.
|
||||
.El
|
||||
.It Xo
|
||||
.Nm
|
||||
.Cm program
|
||||
.Op Fl t Ar timeout
|
||||
.Op Fl m Ar memory_limit
|
||||
.Ar pool script
|
||||
.Op Ar arg1 No ...
|
||||
.Xc
|
||||
Executes
|
||||
.Ar script
|
||||
as a ZFS channel program on
|
||||
.Ar pool .
|
||||
The ZFS channel
|
||||
program interface allows ZFS administrative operations to be run
|
||||
programmatically via a Lua script.
|
||||
The entire script is executed atomically, with no other administrative
|
||||
operations taking effect concurrently.
|
||||
A library of ZFS calls is made available to channel program scripts.
|
||||
Channel programs may only be run with root privileges.
|
||||
.sp
|
||||
For full documentation of the ZFS channel program interface, see the manual
|
||||
page for
|
||||
.Xr zfs-program 8 .
|
||||
.Bl -tag -width ""
|
||||
.It Fl t Ar timeout
|
||||
Execution time limit, in milliseconds.
|
||||
If a channel program executes for longer than the provided timeout, it will
|
||||
be stopped and an error will be returned.
|
||||
The default timeout is 1000 ms, and can be set to a maximum of 10000 ms.
|
||||
.It Fl m Ar memory-limit
|
||||
Memory limit, in bytes.
|
||||
If a channel program attempts to allocate more memory than the given limit,
|
||||
it will be stopped and an error returned.
|
||||
The default memory limit is 10 MB, and can be set to a maximum of 100 MB.
|
||||
.sp
|
||||
All remaining argument strings are passed directly to the channel program as
|
||||
arguments.
|
||||
See
|
||||
.Xr zfs-program 8
|
||||
for more information.
|
||||
.El
|
||||
.It Xo
|
||||
.Nm
|
||||
.Cm load-key
|
||||
.Op Fl nr
|
||||
.Op Fl L Ar keylocation
|
||||
|
||||
Reference in New Issue
Block a user