1. 17 Oct, 2008 6 commits
    • Eric Van Hensbergen's avatar
      9p: eliminate callback complexity · 044c7768
      Eric Van Hensbergen authored
      The current trans_fd rpc mechanisms use a dynamic callback mechanism which
      introduces a lot of complexity which only accomodates a single special case.
      This patch removes much of that complexity in favor of a simple exception
      mechanism to deal with flushes.
      Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
      044c7768
    • Eric Van Hensbergen's avatar
      9p: consolidate mux_rpc and request structure · 21c00368
      Eric Van Hensbergen authored
      Currently, trans_fd has two structures (p9_req and p9_mux-rpc)
      which contain mostly duplicate data.
      
      This patch consolidates these two structures and removes p9_mux_rpc.
      Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
      21c00368
    • Eric Van Hensbergen's avatar
      9p: remove unnecessary prototypes · 5503ac56
      Eric Van Hensbergen authored
      Cleanup files by reordering functions in order to remove need for
      unnecessary function prototypes.
      
      There are no code changes here, just functions being moved around and
      prototypes being eliminated.
      Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
      5503ac56
    • Eric Van Hensbergen's avatar
      9p: remove duplicate client state · bead27f0
      Eric Van Hensbergen authored
      Now that we are passing client state into the transport modules, remove
      duplicate state which is present in transport private structures.
      Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
      bead27f0
    • Eric Van Hensbergen's avatar
      9p: consolidate transport structure · 8b81ef58
      Eric Van Hensbergen authored
      Right now there is a transport module structure which provides per-transport
      type functions and data and a transport structure which contains per-instance
      public data as well as function pointers to instance specific functions.
      
      This patch moves public transport visible instance data to the client
      structure (which in some cases had duplicate data) and consolidates the
      functions into the transport module structure.
      Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
      8b81ef58
    • Tejun Heo's avatar
      9p-trans_fd: use single poller · 992b3f1d
      Tejun Heo authored
      trans_fd used pool of upto 100 pollers to monitor the r/w fds.  The
      approach makes sense in userspace back when the only available
      interfaces were poll(2) and select(2).  As each event monitor -
      trigger - handling iteration took O(n) where `n' is the number of
      watched fds, it makes sense to spread them to many pollers such that
      the `n' can be divided by the number of pollers.  However, this
      doesn't make any sense in kernel because persistent edge triggered
      event monitoring is how the whole thing is implemented in the kernel
      in the first place.
      
      This patch converts trans_fd to use single poller which watches all
      the fds instead of the poll of pollers approach.  All the fds are
      registered for monitoring on creation and only the fds with pending
      events are scanned when something happens much like how epoll is
      implemented.
      
      This change makes trans_fd fd monitoring more efficient and simpler.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
      992b3f1d
  2. 16 Oct, 2008 34 commits