zfs/cmd
Todd Seidelmann 03006174b7 Implement default user and group quotas
This change adds the 'defaultuserquota' and 'defaultgroupquota'
properties to ZFS datasets to apply a quota to users and groups that do
not have a specific quota assigned. The default quota checking
mechanism works alongside the existing 'userquota' and 'groupquota'
checks, only taking effect if no quota is assigned for a particular
user/group. This means that it's possible to exceed a default quota
by quite a lot before the user/groupused property is updated and
further writes are denied, which was already the case for
user/groupquota.

Default quotas are implemented similarly to 'normal' user quotas,
but instead of being user properties that are preserved across
snapshots, they default back to none. NB: this is different from the
observed Solaris behavior, which is to preserve default quotas across
snapshot/clone/promote.

For instance, Solaris has:
    # zfs set defaultuserquota=100M tank/fs
    # zfs snap tank/fs@snap
    # zfs clone tank/fs@snap tank/fs-clone
    # zfs get -H defaultuserquota tank/fs-clone
    tank/fs-clone   defaultuserquota        100M    -

Whereas this commit does:
    # zfs set defaultuserquota=100M tank/fs
    # zfs snap tank/fs@snap
    # zfs clone tank/fs@snap tank/fs-clone
    # zfs get -H defaultuserquota tank/fs-clone
    tank/fs-clone	defaultuserquota	none	default

It should also be possible to implement a default project quota using
an analogous process, if doing so makes sense.

Signed-off-by: Todd Seidelmann <seidelma@wharton.upenn.edu>
2024-08-02 17:14:42 -04:00
..
raidz_test RAID-Z expansion feature 2023-11-08 10:19:41 -08:00
zdb Fix zdb_dump_block for little endian (#16310) 2024-07-31 18:33:39 -07:00
zed zed: Add deadman-slot_off.sh zedlet 2024-05-29 10:46:41 -07:00
zfs Implement default user and group quotas 2024-08-02 17:14:42 -04:00
zinject Parallel pool import 2024-04-22 09:42:38 -07:00
zpool ddt: add support for prefetching tables into the ARC 2024-07-26 09:16:18 -07:00
zpool_influxdb Do not report bytes skipped by scan as issued. 2023-06-30 08:47:13 -07:00
zstream Use memset to zero stack allocations containing unions 2024-05-24 19:00:29 -07:00
Makefile.am config: use -Wno-format-truncation globally 2024-02-26 12:23:55 -08:00
arc_summary Speculative prefetch for reordered requests 2024-04-08 15:13:27 -07:00
arcstat.in Fix arcstats for FreeBSD after zfetch support 2024-04-29 13:28:50 -07:00
dbufstat.in Consider `dnode_t` allocations in dbuf cache size accounting 2023-11-17 13:25:53 -08:00
fsck.zfs.in cmd: move single-file binaries up, extract udev programs to udev/ 2022-05-10 10:20:34 -07:00
mount_zfs.c nvpair: Constify string functions 2023-03-14 15:25:50 -07:00
zfs_ids_to_path.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zgenhostid.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zhack.c Provide macros for setting and getting blkptr birth times 2024-03-25 15:01:54 -07:00
zilstat.in zil: add stats for commit failure/fallback (#16315) 2024-07-25 16:53:59 -07:00
ztest.c ddt: add support for prefetching tables into the ARC 2024-07-26 09:16:18 -07:00
zvol_wait zvol_wait logic may terminate prematurely 2022-10-11 12:12:04 -07:00