currently one may run 'vstorage-mount -s' with -L option, but
it will affect only current mount w/o reflection to fstab opts.
In fact mount.fuse.vstorage already has parser for logrotate option, so
this patch makes this feature fully supported.

Signed-off-by: Dmitry Monakhov <dmonak...@openvz.org>
---
 pcs/clients/fused/fused.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/pcs/clients/fused/fused.c b/pcs/clients/fused/fused.c
index b73da80..5c4a84e 100644
--- a/pcs/clients/fused/fused.c
+++ b/pcs/clients/fused/fused.c
@@ -176,6 +176,8 @@ static char *make_fstab_options(
                int timeout,
                char *logfile,
                int loglevel,
+               unsigned long rotate_num,
+               unsigned long long rotate_size,
                unsigned long mntflags,
                char *username,
                char *groupname,
@@ -197,6 +199,9 @@ static char *make_fstab_options(
                res += fstab_add_option(&out, "logfile=%s", logfile);
        if (loglevel != LOG_LEVEL_SRV_DEFAULT)
                res += fstab_add_option(&out, "loglevel=%u", 
(unsigned)loglevel);
+       if (rotate_num || rotate_size)
+               res += fstab_add_option(&out, "logrotate=%lux%llu", rotate_num, 
rotate_size);
+
        if (g_read_cache.params.pathname)
                res += fstab_add_option(&out, "cache=%s", 
g_read_cache.params.pathname);
        if (g_read_cache.params.total_sz_mb > 0)
@@ -501,6 +506,7 @@ int main(int argc, char** argv)
        unsigned long mntflags = 0;
        int ch, res = -1;
        int pipefd[2];
+       int rotate_opt = 0;
        unsigned long rotate_num = 10;
        unsigned long long rotate_size = 100LL * 1024LL * 1024LL;
        int after_exec = 0;
@@ -595,6 +601,7 @@ int main(int argc, char** argv)
                case 'L':
                        if (parse_logrotate_diskspace(optarg, &rotate_num, 
&rotate_size) < 0)
                                usage(NULL);
+                       rotate_opt = 1;
                        break;
                case 'd':
                        pcs_log_level = strtoul(optarg, &p, 10);
@@ -678,8 +685,11 @@ int main(int argc, char** argv)
                usage("Invalid read cache parameters");
 
        if (fstab_modify) {
-               fstab_options = make_fstab_options(timeout, logfile, 
pcs_log_level, mntflags,
-                               username, groupname, mode, nodef, mntparams);
+               fstab_options = make_fstab_options(timeout, logfile, 
pcs_log_level,
+                                                  rotate_opt ? rotate_num : 0,
+                                                  rotate_opt ? rotate_size : 0,
+                                                  mntflags,  username, 
+                                                  groupname, mode, nodef, 
mntparams);
                if (!fstab_options) {
                        pcs_log(LOG_ERR, PCS_FUSED_MSG_PREFIX"failed to make 
fstab options");
                        exit(252);
-- 
1.8.3.1

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to