Fix per-jail zfs.mount_snapshot setting
When jail.conf set the nopersist flag during startup, it was incorrectly destroying the per-jail ZFS settings. PR: 260160 Reported by: imp (previous version), mm (upstream), freqlabs (upstream) MFC after: immediately Sponsored by: Modirum MDPay Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D38662
This commit is contained in:
parent
76578d601e
commit
8b04c1cbfc
@ -2495,7 +2495,9 @@ zfs_jailparam_set(void *obj, void *data)
|
||||
mount_snapshot = -1;
|
||||
else
|
||||
jsys = JAIL_SYS_NEW;
|
||||
if (jsys == JAIL_SYS_NEW) {
|
||||
switch (jsys) {
|
||||
case JAIL_SYS_NEW:
|
||||
{
|
||||
/* "zfs=new" or "zfs.*": the prison gets its own ZFS info. */
|
||||
struct zfs_jailparam *zjp;
|
||||
|
||||
@ -2513,12 +2515,22 @@ zfs_jailparam_set(void *obj, void *data)
|
||||
if (mount_snapshot != -1)
|
||||
zjp->mount_snapshot = mount_snapshot;
|
||||
mtx_unlock(&pr->pr_mtx);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
case JAIL_SYS_INHERIT:
|
||||
/* "zfs=inherit": inherit the parent's ZFS info. */
|
||||
mtx_lock(&pr->pr_mtx);
|
||||
osd_jail_del(pr, zfs_jailparam_slot);
|
||||
mtx_unlock(&pr->pr_mtx);
|
||||
break;
|
||||
case -1:
|
||||
/*
|
||||
* If the setting being changed is not ZFS related
|
||||
* then do nothing.
|
||||
*/
|
||||
break;
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user