ksmbd-tools: append config from /var/run/config/ for runtime shares
authorRafał Miłecki <rafal@milecki.pl>
Wed, 10 Aug 2022 12:23:40 +0000 (14:23 +0200)
committerRosen Penev <rosenp@gmail.com>
Thu, 11 Aug 2022 21:05:45 +0000 (14:05 -0700)
Dynamically created shares shouldn't be stored in the /etc/config/
because of:
1. Flash wearing
2. Risk of inconsistent state on reboots

With this change all automation/hotplug.d scripts can store runtime in
the /var/run/config/samba. It's useful e.g. for USB drives that user
wants to be automatically shared.

Also: automated scripts should never call "uci [foo] commit" as that
could flush incomplete config. This problem also gets solved.

Identical feature was added to samba36 in the OpenWrt commit
5a59e2c059866 ("samba36: append config from /var/run/config/ for runtime
shares") but wasn't ported to ksmbd until now.

Cc: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
net/ksmbd-tools/files/ksmbd.init

index 7c628e826d814608a03fea8a47f216af456ab33c..8758ed4ec23f90b085e10d529436aff1a8b1f580 100644 (file)
@@ -116,6 +116,7 @@ init_config()
        mkdir -p /var/etc/ksmbd
 
        config_load ksmbd
+       CONFIG_APPEND=1 UCI_CONFIG_DIR=/var/run/config config_load ksmbd
        config_foreach smb_header globals
        config_foreach smb_add_share share
 }