mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Add snapshots_changed_nsecs dataset property
Add a read-only dataset property, snapshots_changed_nsecs, which exposes the nanosecond resolution version of snapshots_changed. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> Signed-off-by: Wolfgang Hoschek <wolfgang.hoschek@mac.com> Closes #17998 Closes #18031
This commit is contained in:
@@ -796,6 +796,12 @@ zfs_prop_init(void)
|
||||
ZFS_TYPE_VOLUME, "<date>", "SNAPSHOTS_CHANGED", B_FALSE, B_TRUE,
|
||||
B_TRUE, NULL, sfeatures);
|
||||
|
||||
zprop_register_impl(ZFS_PROP_SNAPSHOTS_CHANGED_NSECS,
|
||||
"snapshots_changed_nsecs", PROP_TYPE_NUMBER, 0, NULL,
|
||||
PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "<nsec>",
|
||||
"SNAPSHOTS_CHANGED_NSECS", B_FALSE, B_TRUE, B_TRUE, NULL,
|
||||
sfeatures);
|
||||
|
||||
zprop_register_index(ZFS_PROP_LONGNAME, "longname", 0, PROP_INHERIT,
|
||||
ZFS_TYPE_FILESYSTEM, "on | off", "LONGNAME", boolean_table,
|
||||
sfeatures);
|
||||
|
||||
@@ -2855,8 +2855,14 @@ dsl_dataset_stats(dsl_dataset_t *ds, nvlist_t *nv)
|
||||
dsl_get_userrefs(ds));
|
||||
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_DEFER_DESTROY,
|
||||
dsl_get_defer_destroy(ds));
|
||||
inode_timespec_t snap_cmtime = dsl_dir_snap_cmtime(ds->ds_dir);
|
||||
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_SNAPSHOTS_CHANGED,
|
||||
dsl_dir_snap_cmtime(ds->ds_dir).tv_sec);
|
||||
snap_cmtime.tv_sec);
|
||||
uint64_t snap_cmtime_ns =
|
||||
((uint64_t)snap_cmtime.tv_sec * NANOSEC) +
|
||||
snap_cmtime.tv_nsec;
|
||||
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_SNAPSHOTS_CHANGED_NSECS,
|
||||
snap_cmtime_ns);
|
||||
dsl_dataset_crypt_stats(ds, nv);
|
||||
|
||||
if (dsl_dataset_phys(ds)->ds_prev_snap_obj != 0) {
|
||||
|
||||
@@ -434,6 +434,14 @@ get_special_prop(lua_State *state, dsl_dataset_t *ds, const char *dsname,
|
||||
numval = dsl_dir_snap_cmtime(ds->ds_dir).tv_sec;
|
||||
break;
|
||||
|
||||
case ZFS_PROP_SNAPSHOTS_CHANGED_NSECS: {
|
||||
inode_timespec_t snap_cmtime =
|
||||
dsl_dir_snap_cmtime(ds->ds_dir);
|
||||
numval = ((uint64_t)snap_cmtime.tv_sec * NANOSEC) +
|
||||
snap_cmtime.tv_nsec;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
/* Did not match these props, check in the dsl_dir */
|
||||
error = get_dsl_dir_prop(ds, zfs_prop, &numval);
|
||||
|
||||
Reference in New Issue
Block a user