From bb8e7e2b487efab07d8eef515b126f36e111bb2d Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Sat, 5 Apr 2025 11:05:08 +0200 Subject: [PATCH] ui: expose GC atime safety check flag in datastore tuning options Allow to edit the atime safety check flag via the datastore tuning options edit window. Do not expose the flag for datastore creation as it is strongly discouraged to create datastores on filesystems not correctly handling atime updates as the garbage collection expects. It is nevertheless still possible to create a datastore via the cli and pass in the `--tuning gc-atime-safety-check=false` option. Signed-off-by: Christian Ebner --- www/Utils.js | 4 ++++ www/datastore/OptionView.js | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/www/Utils.js b/www/Utils.js index 2746ef0b..9bd7e161 100644 --- a/www/Utils.js +++ b/www/Utils.js @@ -846,6 +846,10 @@ Ext.define('PBS.Utils', { sync = PBS.Utils.tuningOptions['sync-level'][sync ?? '__default__']; options.push(`${gettext('Sync Level')}: ${sync}`); + let gc_atime_safety_check = tuning['gc-atime-safety-check']; + delete tuning['gc-atime-safety-check']; + options.push(`${gettext('GC Access Time Safety Check')}: ${gc_atime_safety_check ?? true}`); + for (const [k, v] of Object.entries(tuning)) { options.push(`${k}: ${v}`); } diff --git a/www/datastore/OptionView.js b/www/datastore/OptionView.js index e1f38af6..e23ce2a6 100644 --- a/www/datastore/OptionView.js +++ b/www/datastore/OptionView.js @@ -271,6 +271,19 @@ Ext.define('PBS.Datastore.Options', { deleteEmpty: true, value: '__default__', }, + { + xtype: 'proxmoxcheckbox', + name: 'gc-atime-safety-check', + fieldLabel: gettext('GC atime Check'), + autoEl: { + tag: 'div', + 'data-qtip': gettext('Ensure underlying storage honors access time updates'), + }, + value: 1, + uncheckedValue: 0, + defaultValue: 1, + deleteDefaultValue: true, + }, ], }, },