Set 'zfs_expire_snapshot=0' to disable auto-unmount
There are cases where it's desirable that auto-mounted snapshots not expire after a fixed duration. They should be unmounted only when the filesystem they are a snapshot of is unmounted. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
This commit is contained in:
parent
a22502c9e6
commit
5e94284fe5
@ -333,6 +333,11 @@ snapentry_expire(void *data)
|
||||
spa_t *spa = se->se_spa;
|
||||
uint64_t objsetid = se->se_objsetid;
|
||||
|
||||
if (zfs_expire_snapshot <= 0) {
|
||||
zfsctl_snapshot_rele(se);
|
||||
return;
|
||||
}
|
||||
|
||||
se->se_taskqid = -1;
|
||||
(void) zfsctl_snapshot_unmount(se->se_name, MNT_EXPIRE);
|
||||
zfsctl_snapshot_rele(se);
|
||||
@ -373,6 +378,9 @@ zfsctl_snapshot_unmount_delay_impl(zfs_snapentry_t *se, int delay)
|
||||
{
|
||||
ASSERT3S(se->se_taskqid, ==, -1);
|
||||
|
||||
if (delay <= 0)
|
||||
return;
|
||||
|
||||
se->se_taskqid = taskq_dispatch_delay(zfs_expire_taskq,
|
||||
snapentry_expire, se, TQ_SLEEP, ddi_get_lbolt() + delay * HZ);
|
||||
zfsctl_snapshot_hold(se);
|
||||
|
Loading…
Reference in New Issue
Block a user