diff options
author | Matthew Ahrens <[email protected]> | 2016-01-01 14:15:31 +0100 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-01-11 11:58:26 -0800 |
commit | 1715493f38b0732b4bb23077d680e3a325a9096e (patch) | |
tree | 6afff7597b2f2adcb901e75cd3c493cc2b87c143 | |
parent | 9867e8be2a7182ce9b5eb28ed1d142e2ee60d69d (diff) |
Illumos 4929 - want prevsnap property
4929 want prevsnap property
Reviewed by: Adam Leventhal <[email protected]>
Reviewed by: Matt Amdur <[email protected]>
Reviewed by: Saso Kiselkov <[email protected]>
Reviewed by: Boris Protopopov <[email protected]>
Reviewed by: Richard Lowe <[email protected]>
Approved by: Dan McDonald <[email protected]>
References:
https://www.illumos.org/issues/4929
https://github.com/illumos/illumos-gate/commit/b461c74
Porting notes:
- [include/sys/fs/zfs.h]
- f67d70 Create an 'overlay' property
- 11b9ec Add full SELinux support
- [fs/zfs/dsl_dataset.c]
- This increases the stack size of dsl_dataset_stats() but
nothing has been changed until this is shown to be an issue.
Ported-by: kernelOfTruth [email protected]
Signed-off-by: Brian Behlendorf <[email protected]>
-rw-r--r-- | include/sys/fs/zfs.h | 1 | ||||
-rw-r--r-- | module/zcommon/zfs_prop.c | 2 | ||||
-rw-r--r-- | module/zfs/dsl_dataset.c | 6 |
3 files changed, 9 insertions, 0 deletions
diff --git a/include/sys/fs/zfs.h b/include/sys/fs/zfs.h index 4da144c72..536fab785 100644 --- a/include/sys/fs/zfs.h +++ b/include/sys/fs/zfs.h @@ -155,6 +155,7 @@ typedef enum { ZFS_PROP_RELATIME, ZFS_PROP_REDUNDANT_METADATA, ZFS_PROP_OVERLAY, + ZFS_PROP_PREV_SNAP, ZFS_NUM_PROPS } zfs_prop_t; diff --git a/module/zcommon/zfs_prop.c b/module/zcommon/zfs_prop.c index aaebab444..5a88cbe6c 100644 --- a/module/zcommon/zfs_prop.c +++ b/module/zcommon/zfs_prop.c @@ -452,6 +452,8 @@ zfs_prop_init(void) PROP_READONLY, ZFS_TYPE_DATASET, "OBJSETID"); zprop_register_hidden(ZFS_PROP_INCONSISTENT, "inconsistent", PROP_TYPE_NUMBER, PROP_READONLY, ZFS_TYPE_DATASET, "INCONSISTENT"); + zprop_register_hidden(ZFS_PROP_PREV_SNAP, "prevsnap", PROP_TYPE_STRING, + PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "PREVSNAP"); /* * Property to be removed once libbe is integrated diff --git a/module/zfs/dsl_dataset.c b/module/zfs/dsl_dataset.c index edc5ea17a..9c017124a 100644 --- a/module/zfs/dsl_dataset.c +++ b/module/zfs/dsl_dataset.c @@ -1695,6 +1695,12 @@ dsl_dataset_stats(dsl_dataset_t *ds, nvlist_t *nv) dsl_dataset_phys(ds)->ds_unique_bytes); get_clones_stat(ds, nv); } else { + if (ds->ds_prev != NULL && ds->ds_prev != dp->dp_origin_snap) { + char buf[MAXNAMELEN]; + dsl_dataset_name(ds->ds_prev, buf); + dsl_prop_nvlist_add_string(nv, ZFS_PROP_PREV_SNAP, buf); + } + dsl_dir_stats(ds->ds_dir, nv); } |