From: Xavi Hernandez Date: Tue, 13 Jan 2026 12:38:24 +0000 (+0100) Subject: libcephfs_proxy: add option to disable config copies X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bbe9687e19236bc695d7c219faa40e1060e057af;p=ceph.git libcephfs_proxy: add option to disable config copies Signed-off-by: Xavi Hernandez --- diff --git a/src/libcephfs_proxy/libcephfsd.c b/src/libcephfs_proxy/libcephfsd.c index cb424fea65f..396ddea5ed0 100644 --- a/src/libcephfs_proxy/libcephfsd.c +++ b/src/libcephfs_proxy/libcephfsd.c @@ -2327,12 +2327,13 @@ static void log_print(proxy_log_handler_t *handler, int32_t level, int32_t err, } static struct option main_opts[] = { - {"socket", required_argument, NULL, 's'}, - {"work-dir", required_argument, NULL, 'w'}, + {"socket", required_argument, NULL, 's'}, + {"work-dir", required_argument, NULL, 'w'}, + {"disable-safe-config", no_argument, NULL, 'u'}, {} }; -static const char short_opts[] = ":s:w:"; +static const char short_opts[] = ":s:w:u"; int32_t main(int32_t argc, char *argv[]) { @@ -2350,6 +2351,7 @@ int32_t main(int32_t argc, char *argv[]) proxy.settings.socket_path = PROXY_SOCKET; proxy.settings.work_dir = "."; + proxy.settings.disable_copy = false; env = getenv(PROXY_SOCKET_ENV); if (env != NULL) { @@ -2361,6 +2363,8 @@ int32_t main(int32_t argc, char *argv[]) proxy.settings.socket_path = optarg; } else if (val == 'w') { proxy.settings.work_dir = optarg; + } else if (val == 'u') { + proxy.settings.disable_copy = true; } else if (val == ':') { proxy_log(LOG_ERR, ENODATA, "Argument missing for '%s'\n", optopt); diff --git a/src/libcephfs_proxy/proxy.h b/src/libcephfs_proxy/proxy.h index e0295e4ecf3..baa16008c4a 100644 --- a/src/libcephfs_proxy/proxy.h +++ b/src/libcephfs_proxy/proxy.h @@ -98,6 +98,7 @@ struct _list { struct _proxy_settings { const char *socket_path; const char *work_dir; + bool disable_copy; }; #endif diff --git a/src/libcephfs_proxy/proxy_mount.c b/src/libcephfs_proxy/proxy_mount.c index 67f8c588288..c4e40959fe6 100644 --- a/src/libcephfs_proxy/proxy_mount.c +++ b/src/libcephfs_proxy/proxy_mount.c @@ -657,6 +657,10 @@ static int32_t proxy_config_prepare(proxy_settings_t *settings, const char *name; int32_t err; + if (settings->disable_copy) { + return proxy_snprintf(path, size, "%s", config); + } + cfg.size = 4096; cfg.buffer = proxy_malloc(cfg.size); if (cfg.buffer == NULL) {