All of lore.kernel.org
 help / color / mirror / Atom feed
* [Virtio-fs] [PATCH 0/2] virtiofsd: Remove fuse_loop_mt.c and clone_fd option
@ 2020-01-20 12:43 Misono Tomohiro
  2020-01-20 12:43 ` [Virtio-fs] [PATCH 1/2] virtiofsd: fuse_lowevel: remove call of fuse_chan_{get, put} Misono Tomohiro
  2020-01-20 12:43 ` [Virtio-fs] [PATCH 2/2] virtiofsd: Remove fuse_loop_mt.c Misono Tomohiro
  0 siblings, 2 replies; 4+ messages in thread
From: Misono Tomohiro @ 2020-01-20 12:43 UTC (permalink / raw)
  To: virtio-fs

While reviewing virtiofsd code, I noticed fuse_loop_mt.c became not
needed for virtiofs. As it seems that it is easier to remove them on top
of current virtiofs branch, I made these patches.
Feel free to squash or rebase if convenient.

Thanks,
Misono

Misono Tomohiro (2):
  virtiofsd: fuse_lowevel: remove call of fuse_chan_{get,put}
  virtiofsd: Remove fuse_loop_mt.c

 tools/virtiofsd/Makefile.objs   |  1 -
 tools/virtiofsd/fuse.h          | 38 ----------------------
 tools/virtiofsd/fuse_common.h   | 24 --------------
 tools/virtiofsd/fuse_i.h        | 19 -----------
 tools/virtiofsd/fuse_loop_mt.c  | 56 ---------------------------------
 tools/virtiofsd/fuse_lowlevel.c |  3 +-
 tools/virtiofsd/fuse_lowlevel.h | 20 ------------
 tools/virtiofsd/fuse_virtio.c   |  1 -
 tools/virtiofsd/helper.c        |  3 --
 9 files changed, 1 insertion(+), 164 deletions(-)
 delete mode 100644 tools/virtiofsd/fuse_loop_mt.c

-- 
2.21.1



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Virtio-fs] [PATCH 1/2] virtiofsd: fuse_lowevel: remove call of fuse_chan_{get, put}
  2020-01-20 12:43 [Virtio-fs] [PATCH 0/2] virtiofsd: Remove fuse_loop_mt.c and clone_fd option Misono Tomohiro
@ 2020-01-20 12:43 ` Misono Tomohiro
  2020-01-20 12:43 ` [Virtio-fs] [PATCH 2/2] virtiofsd: Remove fuse_loop_mt.c Misono Tomohiro
  1 sibling, 0 replies; 4+ messages in thread
From: Misono Tomohiro @ 2020-01-20 12:43 UTC (permalink / raw)
  To: virtio-fs

This is a cleanup patch.

fuse_chan_{get,put} manages allocated fuse_chan and free it when its
counter reaches zero. This came from original libfuse code but virtiofs
will not malloc fuse_chan itself and therefore these function is not
needed.

Currently there is no issue in calling them since
 1. ch.ctr is set to 1 in fv_queue_worker.
 2. ch.ctr is incremented by fuse_chan_get() in
    fuse_session_process_buf_int()
 3. ch.ctr is decremented by fuse_chan_put() in fuse_free_req()
So, ch.ctr never reaches zero and free() is not called.

Let's remove unnecessary code for better readability.

Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
---
 tools/virtiofsd/fuse_lowlevel.c | 3 +--
 tools/virtiofsd/fuse_virtio.c   | 1 -
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowlevel.c
index 09a7b23726..69f00fc0a6 100644
--- a/tools/virtiofsd/fuse_lowlevel.c
+++ b/tools/virtiofsd/fuse_lowlevel.c
@@ -128,7 +128,6 @@ void fuse_free_req(fuse_req_t req)
     req->u.ni.data = NULL;
     list_del_req(req);
     ctr = --req->ctr;
-    fuse_chan_put(req->ch);
     req->ch = NULL;
     pthread_mutex_unlock(&se->lock);
     if (!ctr) {
@@ -2430,7 +2429,7 @@ void fuse_session_process_buf_int(struct fuse_session *se,
     req->ctx.uid = in->uid;
     req->ctx.gid = in->gid;
     req->ctx.pid = in->pid;
-    req->ch = ch ? fuse_chan_get(ch) : NULL;
+    req->ch = ch;
 
     /*
      * INIT and DESTROY requests are serialized, all other request types
diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c
index 7bc6ff2f19..84491fd47d 100644
--- a/tools/virtiofsd/fuse_virtio.c
+++ b/tools/virtiofsd/fuse_virtio.c
@@ -448,7 +448,6 @@ static void fv_queue_worker(gpointer data, gpointer user_data)
 
     fuse_mutex_init(&req->ch.lock);
     req->ch.fd = (int)0xdaff0d111;
-    req->ch.ctr = 1;
     req->ch.qi = qi;
 
     /* The 'out' part of the elem is from qemu */
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Virtio-fs] [PATCH 2/2] virtiofsd: Remove fuse_loop_mt.c
  2020-01-20 12:43 [Virtio-fs] [PATCH 0/2] virtiofsd: Remove fuse_loop_mt.c and clone_fd option Misono Tomohiro
  2020-01-20 12:43 ` [Virtio-fs] [PATCH 1/2] virtiofsd: fuse_lowevel: remove call of fuse_chan_{get, put} Misono Tomohiro
@ 2020-01-20 12:43 ` Misono Tomohiro
  2020-01-20 16:59   ` Dr. David Alan Gilbert
  1 sibling, 1 reply; 4+ messages in thread
From: Misono Tomohiro @ 2020-01-20 12:43 UTC (permalink / raw)
  To: virtio-fs

Since now there is no user of fuse_loop_mt.c in virtiofs, remove it.
Also cleanup related code (e.g. clone_fd option).

Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
---
 tools/virtiofsd/Makefile.objs   |  1 -
 tools/virtiofsd/fuse.h          | 38 ----------------------
 tools/virtiofsd/fuse_common.h   | 24 --------------
 tools/virtiofsd/fuse_i.h        | 19 -----------
 tools/virtiofsd/fuse_loop_mt.c  | 56 ---------------------------------
 tools/virtiofsd/fuse_lowlevel.h | 20 ------------
 tools/virtiofsd/helper.c        |  3 --
 7 files changed, 161 deletions(-)
 delete mode 100644 tools/virtiofsd/fuse_loop_mt.c

diff --git a/tools/virtiofsd/Makefile.objs b/tools/virtiofsd/Makefile.objs
index 941b19f18e..076f667e46 100644
--- a/tools/virtiofsd/Makefile.objs
+++ b/tools/virtiofsd/Makefile.objs
@@ -1,7 +1,6 @@
 virtiofsd-obj-y = buffer.o \
                   fuse_opt.o \
                   fuse_log.o \
-                  fuse_loop_mt.o \
                   fuse_lowlevel.o \
                   fuse_signals.o \
                   fuse_virtio.o \
diff --git a/tools/virtiofsd/fuse.h b/tools/virtiofsd/fuse.h
index 945ebc7a0d..7a4c713559 100644
--- a/tools/virtiofsd/fuse.h
+++ b/tools/virtiofsd/fuse.h
@@ -996,44 +996,6 @@ int fuse_loop(struct fuse *f);
  */
 void fuse_exit(struct fuse *f);
 
-/**
- * FUSE event loop with multiple threads
- *
- * Requests from the kernel are processed, and the appropriate
- * operations are called.  Request are processed in parallel by
- * distributing them between multiple threads.
- *
- * For a description of the return value and the conditions when the
- * event loop exits, refer to the documentation of
- * fuse_session_loop().
- *
- * Note: using fuse_loop() instead of fuse_loop_mt() means you are running in
- * single-threaded mode, and that you will not have to worry about reentrancy,
- * though you will have to worry about recursive lookups. In single-threaded
- * mode, FUSE will wait for one callback to return before calling another.
- *
- * Enabling multiple threads, by using fuse_loop_mt(), will cause FUSE to make
- * multiple simultaneous calls into the various callback functions given by your
- * fuse_operations record.
- *
- * If you are using multiple threads, you can enjoy all the parallel execution
- * and interactive response benefits of threads, and you get to enjoy all the
- * benefits of race conditions and locking bugs, too. Ensure that any code used
- * in the callback function of fuse_operations is also thread-safe.
- *
- * @param f the FUSE handle
- * @param config loop configuration
- * @return see fuse_session_loop()
- *
- * See also: fuse_loop()
- */
-#if FUSE_USE_VERSION < 32
-int fuse_loop_mt_31(struct fuse *f, int clone_fd);
-#define fuse_loop_mt(f, clone_fd) fuse_loop_mt_31(f, clone_fd)
-#else
-int fuse_loop_mt(struct fuse *f, struct fuse_loop_config *config);
-#endif
-
 /**
  * Get the current context
  *
diff --git a/tools/virtiofsd/fuse_common.h b/tools/virtiofsd/fuse_common.h
index 1e8191b7a6..4b2c215fd9 100644
--- a/tools/virtiofsd/fuse_common.h
+++ b/tools/virtiofsd/fuse_common.h
@@ -118,30 +118,6 @@ struct fuse_file_info {
     uint32_t poll_events;
 };
 
-/**
- * Configuration parameters passed to fuse_session_loop_mt() and
- * fuse_loop_mt().
- */
-struct fuse_loop_config {
-    /**
-     * whether to use separate device fds for each thread
-     * (may increase performance)
-     */
-    int clone_fd;
-
-    /**
-     * The maximum number of available worker threads before they
-     * start to get deleted when they become idle. If not
-     * specified, the default is 10.
-     *
-     * Adjusting this has performance implications; a very small number
-     * of threads in the pool will cause a lot of thread creation and
-     * deletion overhead and performance may suffer. When set to 0, a new
-     * thread will be created to service every operation.
-     */
-    unsigned int max_idle_threads;
-};
-
 /*
  * Capability bits for 'fuse_conn_info.capable' and 'fuse_conn_info.want'
  */
diff --git a/tools/virtiofsd/fuse_i.h b/tools/virtiofsd/fuse_i.h
index 4da6a242ba..4e47e5880d 100644
--- a/tools/virtiofsd/fuse_i.h
+++ b/tools/virtiofsd/fuse_i.h
@@ -97,25 +97,6 @@ struct fuse_module {
     int ctr;
 };
 
-/*
- * Channel interface (when using -o clone_fd)
- */
-
-/**
- * Obtain counted reference to the channel
- *
- * @param ch the channel
- * @return the channel
- */
-struct fuse_chan *fuse_chan_get(struct fuse_chan *ch);
-
-/**
- * Drop counted reference to a channel
- *
- * @param ch the channel
- */
-void fuse_chan_put(struct fuse_chan *ch);
-
 int fuse_send_reply_iov_nofree(fuse_req_t req, int error, struct iovec *iov,
                                int count);
 void fuse_free_req(fuse_req_t req);
diff --git a/tools/virtiofsd/fuse_loop_mt.c b/tools/virtiofsd/fuse_loop_mt.c
deleted file mode 100644
index 5dfaff35fd..0000000000
--- a/tools/virtiofsd/fuse_loop_mt.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * FUSE: Filesystem in Userspace
- * Copyright (C) 2001-2007  Miklos Szeredi <miklos@szeredi.hu>
- *
- * Implementation of the multi-threaded FUSE session loop.
- *
- * This program can be distributed under the terms of the GNU LGPLv2.
- * See the file COPYING.LIB.
- */
-
-#include "fuse_i.h"
-#include "fuse_lowlevel.h"
-#include "fuse_misc.h"
-#include "standard-headers/linux/fuse.h"
-#include "fuse_virtio.h"
-
-#include <assert.h>
-#include <errno.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <unistd.h>
-
-/* Environment var controlling the thread stack size */
-#define ENVNAME_THREAD_STACK "FUSE_THREAD_STACK"
-
-struct fuse_chan *fuse_chan_get(struct fuse_chan *ch)
-{
-    assert(ch->ctr > 0);
-    pthread_mutex_lock(&ch->lock);
-    ch->ctr++;
-    pthread_mutex_unlock(&ch->lock);
-
-    return ch;
-}
-
-void fuse_chan_put(struct fuse_chan *ch)
-{
-    if (ch == NULL) {
-        return;
-    }
-    pthread_mutex_lock(&ch->lock);
-    ch->ctr--;
-    if (!ch->ctr) {
-        pthread_mutex_unlock(&ch->lock);
-        close(ch->fd);
-        pthread_mutex_destroy(&ch->lock);
-        free(ch);
-    } else {
-        pthread_mutex_unlock(&ch->lock);
-    }
-}
diff --git a/tools/virtiofsd/fuse_lowlevel.h b/tools/virtiofsd/fuse_lowlevel.h
index 27f631d9fc..3a7213f42f 100644
--- a/tools/virtiofsd/fuse_lowlevel.h
+++ b/tools/virtiofsd/fuse_lowlevel.h
@@ -1827,7 +1827,6 @@ struct fuse_cmdline_opts {
     int show_version;
     int show_help;
     int print_capabilities;
-    int clone_fd;
     int syslog;
     int log_level;
     unsigned int max_idle_threads;
@@ -1918,25 +1917,6 @@ int fuse_session_mount(struct fuse_session *se);
  */
 int fuse_session_loop(struct fuse_session *se);
 
-/**
- * Enter a multi-threaded event loop.
- *
- * For a description of the return value and the conditions when the
- * event loop exits, refer to the documentation of
- * fuse_session_loop().
- *
- * @param se the session
- * @param config session loop configuration
- * @return see fuse_session_loop()
- */
-#if FUSE_USE_VERSION < 32
-int fuse_session_loop_mt_31(struct fuse_session *se, int clone_fd);
-#define fuse_session_loop_mt(se, clone_fd) fuse_session_loop_mt_31(se, clone_fd)
-#else
-int fuse_session_loop_mt(struct fuse_session *se,
-                         struct fuse_loop_config *config);
-#endif
-
 /**
  * Flag a session as terminated.
  *
diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
index bcb8c05063..2f46f4719a 100644
--- a/tools/virtiofsd/helper.c
+++ b/tools/virtiofsd/helper.c
@@ -52,7 +52,6 @@ static const struct fuse_opt fuse_helper_opts[] = {
     FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
     FUSE_HELPER_OPT("subtype=", nodefault_subtype),
     FUSE_OPT_KEY("subtype=", FUSE_OPT_KEY_KEEP),
-    FUSE_HELPER_OPT("clone_fd", clone_fd),
     FUSE_HELPER_OPT("max_idle_threads=%u", max_idle_threads),
     FUSE_HELPER_OPT("--syslog", syslog),
     FUSE_HELPER_OPT_VALUE("log_level=debug", log_level, FUSE_LOG_DEBUG),
@@ -147,8 +146,6 @@ void fuse_cmdline_help(void)
            "    -f                         foreground operation\n"
            "    --daemonize                run in background\n"
            "    -s                         disable multi-threaded operation\n"
-           "    -o clone_fd                use separate fuse device fd for "
-           "each thread\n"
            "                               (may improve performance)\n"
            "    -o max_idle_threads        the maximum number of idle worker "
            "threads\n"
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Virtio-fs] [PATCH 2/2] virtiofsd: Remove fuse_loop_mt.c
  2020-01-20 12:43 ` [Virtio-fs] [PATCH 2/2] virtiofsd: Remove fuse_loop_mt.c Misono Tomohiro
@ 2020-01-20 16:59   ` Dr. David Alan Gilbert
  0 siblings, 0 replies; 4+ messages in thread
From: Dr. David Alan Gilbert @ 2020-01-20 16:59 UTC (permalink / raw)
  To: Misono Tomohiro; +Cc: virtio-fs

* Misono Tomohiro (misono.tomohiro@jp.fujitsu.com) wrote:
> Since now there is no user of fuse_loop_mt.c in virtiofs, remove it.
> Also cleanup related code (e.g. clone_fd option).
> 
> Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>

I'll try and squash this into one of the earlier patches in the series.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  tools/virtiofsd/Makefile.objs   |  1 -
>  tools/virtiofsd/fuse.h          | 38 ----------------------
>  tools/virtiofsd/fuse_common.h   | 24 --------------
>  tools/virtiofsd/fuse_i.h        | 19 -----------
>  tools/virtiofsd/fuse_loop_mt.c  | 56 ---------------------------------
>  tools/virtiofsd/fuse_lowlevel.h | 20 ------------
>  tools/virtiofsd/helper.c        |  3 --
>  7 files changed, 161 deletions(-)
>  delete mode 100644 tools/virtiofsd/fuse_loop_mt.c
> 
> diff --git a/tools/virtiofsd/Makefile.objs b/tools/virtiofsd/Makefile.objs
> index 941b19f18e..076f667e46 100644
> --- a/tools/virtiofsd/Makefile.objs
> +++ b/tools/virtiofsd/Makefile.objs
> @@ -1,7 +1,6 @@
>  virtiofsd-obj-y = buffer.o \
>                    fuse_opt.o \
>                    fuse_log.o \
> -                  fuse_loop_mt.o \
>                    fuse_lowlevel.o \
>                    fuse_signals.o \
>                    fuse_virtio.o \
> diff --git a/tools/virtiofsd/fuse.h b/tools/virtiofsd/fuse.h
> index 945ebc7a0d..7a4c713559 100644
> --- a/tools/virtiofsd/fuse.h
> +++ b/tools/virtiofsd/fuse.h
> @@ -996,44 +996,6 @@ int fuse_loop(struct fuse *f);
>   */
>  void fuse_exit(struct fuse *f);
>  
> -/**
> - * FUSE event loop with multiple threads
> - *
> - * Requests from the kernel are processed, and the appropriate
> - * operations are called.  Request are processed in parallel by
> - * distributing them between multiple threads.
> - *
> - * For a description of the return value and the conditions when the
> - * event loop exits, refer to the documentation of
> - * fuse_session_loop().
> - *
> - * Note: using fuse_loop() instead of fuse_loop_mt() means you are running in
> - * single-threaded mode, and that you will not have to worry about reentrancy,
> - * though you will have to worry about recursive lookups. In single-threaded
> - * mode, FUSE will wait for one callback to return before calling another.
> - *
> - * Enabling multiple threads, by using fuse_loop_mt(), will cause FUSE to make
> - * multiple simultaneous calls into the various callback functions given by your
> - * fuse_operations record.
> - *
> - * If you are using multiple threads, you can enjoy all the parallel execution
> - * and interactive response benefits of threads, and you get to enjoy all the
> - * benefits of race conditions and locking bugs, too. Ensure that any code used
> - * in the callback function of fuse_operations is also thread-safe.
> - *
> - * @param f the FUSE handle
> - * @param config loop configuration
> - * @return see fuse_session_loop()
> - *
> - * See also: fuse_loop()
> - */
> -#if FUSE_USE_VERSION < 32
> -int fuse_loop_mt_31(struct fuse *f, int clone_fd);
> -#define fuse_loop_mt(f, clone_fd) fuse_loop_mt_31(f, clone_fd)
> -#else
> -int fuse_loop_mt(struct fuse *f, struct fuse_loop_config *config);
> -#endif
> -
>  /**
>   * Get the current context
>   *
> diff --git a/tools/virtiofsd/fuse_common.h b/tools/virtiofsd/fuse_common.h
> index 1e8191b7a6..4b2c215fd9 100644
> --- a/tools/virtiofsd/fuse_common.h
> +++ b/tools/virtiofsd/fuse_common.h
> @@ -118,30 +118,6 @@ struct fuse_file_info {
>      uint32_t poll_events;
>  };
>  
> -/**
> - * Configuration parameters passed to fuse_session_loop_mt() and
> - * fuse_loop_mt().
> - */
> -struct fuse_loop_config {
> -    /**
> -     * whether to use separate device fds for each thread
> -     * (may increase performance)
> -     */
> -    int clone_fd;
> -
> -    /**
> -     * The maximum number of available worker threads before they
> -     * start to get deleted when they become idle. If not
> -     * specified, the default is 10.
> -     *
> -     * Adjusting this has performance implications; a very small number
> -     * of threads in the pool will cause a lot of thread creation and
> -     * deletion overhead and performance may suffer. When set to 0, a new
> -     * thread will be created to service every operation.
> -     */
> -    unsigned int max_idle_threads;
> -};
> -
>  /*
>   * Capability bits for 'fuse_conn_info.capable' and 'fuse_conn_info.want'
>   */
> diff --git a/tools/virtiofsd/fuse_i.h b/tools/virtiofsd/fuse_i.h
> index 4da6a242ba..4e47e5880d 100644
> --- a/tools/virtiofsd/fuse_i.h
> +++ b/tools/virtiofsd/fuse_i.h
> @@ -97,25 +97,6 @@ struct fuse_module {
>      int ctr;
>  };
>  
> -/*
> - * Channel interface (when using -o clone_fd)
> - */
> -
> -/**
> - * Obtain counted reference to the channel
> - *
> - * @param ch the channel
> - * @return the channel
> - */
> -struct fuse_chan *fuse_chan_get(struct fuse_chan *ch);
> -
> -/**
> - * Drop counted reference to a channel
> - *
> - * @param ch the channel
> - */
> -void fuse_chan_put(struct fuse_chan *ch);
> -
>  int fuse_send_reply_iov_nofree(fuse_req_t req, int error, struct iovec *iov,
>                                 int count);
>  void fuse_free_req(fuse_req_t req);
> diff --git a/tools/virtiofsd/fuse_loop_mt.c b/tools/virtiofsd/fuse_loop_mt.c
> deleted file mode 100644
> index 5dfaff35fd..0000000000
> --- a/tools/virtiofsd/fuse_loop_mt.c
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -/*
> - * FUSE: Filesystem in Userspace
> - * Copyright (C) 2001-2007  Miklos Szeredi <miklos@szeredi.hu>
> - *
> - * Implementation of the multi-threaded FUSE session loop.
> - *
> - * This program can be distributed under the terms of the GNU LGPLv2.
> - * See the file COPYING.LIB.
> - */
> -
> -#include "fuse_i.h"
> -#include "fuse_lowlevel.h"
> -#include "fuse_misc.h"
> -#include "standard-headers/linux/fuse.h"
> -#include "fuse_virtio.h"
> -
> -#include <assert.h>
> -#include <errno.h>
> -#include <semaphore.h>
> -#include <signal.h>
> -#include <stdio.h>
> -#include <stdlib.h>
> -#include <string.h>
> -#include <sys/ioctl.h>
> -#include <sys/time.h>
> -#include <unistd.h>
> -
> -/* Environment var controlling the thread stack size */
> -#define ENVNAME_THREAD_STACK "FUSE_THREAD_STACK"
> -
> -struct fuse_chan *fuse_chan_get(struct fuse_chan *ch)
> -{
> -    assert(ch->ctr > 0);
> -    pthread_mutex_lock(&ch->lock);
> -    ch->ctr++;
> -    pthread_mutex_unlock(&ch->lock);
> -
> -    return ch;
> -}
> -
> -void fuse_chan_put(struct fuse_chan *ch)
> -{
> -    if (ch == NULL) {
> -        return;
> -    }
> -    pthread_mutex_lock(&ch->lock);
> -    ch->ctr--;
> -    if (!ch->ctr) {
> -        pthread_mutex_unlock(&ch->lock);
> -        close(ch->fd);
> -        pthread_mutex_destroy(&ch->lock);
> -        free(ch);
> -    } else {
> -        pthread_mutex_unlock(&ch->lock);
> -    }
> -}
> diff --git a/tools/virtiofsd/fuse_lowlevel.h b/tools/virtiofsd/fuse_lowlevel.h
> index 27f631d9fc..3a7213f42f 100644
> --- a/tools/virtiofsd/fuse_lowlevel.h
> +++ b/tools/virtiofsd/fuse_lowlevel.h
> @@ -1827,7 +1827,6 @@ struct fuse_cmdline_opts {
>      int show_version;
>      int show_help;
>      int print_capabilities;
> -    int clone_fd;
>      int syslog;
>      int log_level;
>      unsigned int max_idle_threads;
> @@ -1918,25 +1917,6 @@ int fuse_session_mount(struct fuse_session *se);
>   */
>  int fuse_session_loop(struct fuse_session *se);
>  
> -/**
> - * Enter a multi-threaded event loop.
> - *
> - * For a description of the return value and the conditions when the
> - * event loop exits, refer to the documentation of
> - * fuse_session_loop().
> - *
> - * @param se the session
> - * @param config session loop configuration
> - * @return see fuse_session_loop()
> - */
> -#if FUSE_USE_VERSION < 32
> -int fuse_session_loop_mt_31(struct fuse_session *se, int clone_fd);
> -#define fuse_session_loop_mt(se, clone_fd) fuse_session_loop_mt_31(se, clone_fd)
> -#else
> -int fuse_session_loop_mt(struct fuse_session *se,
> -                         struct fuse_loop_config *config);
> -#endif
> -
>  /**
>   * Flag a session as terminated.
>   *
> diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
> index bcb8c05063..2f46f4719a 100644
> --- a/tools/virtiofsd/helper.c
> +++ b/tools/virtiofsd/helper.c
> @@ -52,7 +52,6 @@ static const struct fuse_opt fuse_helper_opts[] = {
>      FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
>      FUSE_HELPER_OPT("subtype=", nodefault_subtype),
>      FUSE_OPT_KEY("subtype=", FUSE_OPT_KEY_KEEP),
> -    FUSE_HELPER_OPT("clone_fd", clone_fd),
>      FUSE_HELPER_OPT("max_idle_threads=%u", max_idle_threads),
>      FUSE_HELPER_OPT("--syslog", syslog),
>      FUSE_HELPER_OPT_VALUE("log_level=debug", log_level, FUSE_LOG_DEBUG),
> @@ -147,8 +146,6 @@ void fuse_cmdline_help(void)
>             "    -f                         foreground operation\n"
>             "    --daemonize                run in background\n"
>             "    -s                         disable multi-threaded operation\n"
> -           "    -o clone_fd                use separate fuse device fd for "
> -           "each thread\n"
>             "                               (may improve performance)\n"
>             "    -o max_idle_threads        the maximum number of idle worker "
>             "threads\n"
> -- 
> 2.21.1
> 
> 
> _______________________________________________
> Virtio-fs mailing list
> Virtio-fs@redhat.com
> https://www.redhat.com/mailman/listinfo/virtio-fs
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-01-20 16:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-20 12:43 [Virtio-fs] [PATCH 0/2] virtiofsd: Remove fuse_loop_mt.c and clone_fd option Misono Tomohiro
2020-01-20 12:43 ` [Virtio-fs] [PATCH 1/2] virtiofsd: fuse_lowevel: remove call of fuse_chan_{get, put} Misono Tomohiro
2020-01-20 12:43 ` [Virtio-fs] [PATCH 2/2] virtiofsd: Remove fuse_loop_mt.c Misono Tomohiro
2020-01-20 16:59   ` Dr. David Alan Gilbert

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.