Commits on May 24, 2011
  1. Prep for 1.0-pre31 tag

    garlick committed May 24, 2011
  2. Make threadmode=aname the default.

    garlick committed May 24, 2011
    Remove the --threadmode option and do threadpool-per-aname
    unconditionally.  Otherwise, test coverage is a problem and
    monitoring tools can't leverage the different way stats are
    collected (currently) in the two models.
  3. Fix ignored open flags (issue 43)

    garlick committed May 24, 2011
    diod_lcreate was calling creat(2) which hardwires flags to
    O_CREAT|O_WRONLY|O_TRUNC.  Call open(2) instead.
  4. Fix fsync returning EBADF on directory (issue 42)

    garlick committed May 24, 2011
    Fsync on a directory was failing because the fid's fd was used
    unconditionally.  Use fsync(dirfd(f->dir)) on directories.
    Added regression test kern/t34.
Commits on May 23, 2011
  1. Change some libnpclient convinence functions

    garlick committed May 23, 2011
    Drop npc_pread_all, npc_pwrite_all, npc_read_all, npc_write_all.
    And npc_get (read whole file) and npc_put (write whole file).
Commits on May 21, 2011
  1. Add dbench and postmark tests

    garlick committed May 20, 2011
Commits on May 20, 2011
  1. Added fstest to test suite.

    garlick committed May 20, 2011
Commits on May 19, 2011
  1. Prep for 1.0-pre30 tag

    garlick committed May 19, 2011
  2. Add threadmode=aname option (issue 26)

    garlick committed May 19, 2011
    By default, the server starts one threadpool as before.  However,
    if diod is started with --threadmode=aname, then a new threadpool
    is started up for each unique aname (except 'ctl' which is handled
    with the default threadpool)
    This solves issue 26, where a down NFS server mounted with -ohard
    that is being forwarded through diod could hang the threadpool,
    preventing access to other file systems.
    Thread pools, with private request queues, are created/selected at
    attach time and a reference to the thread pool is attached to the fid.
    Cloned fids inherit a reference back to the thread pool selected at
    attach time.  Thread pools are destroyed when their reference count
    goes to zero (all fids are clunked = file system is unmounted).
  3. Add default diodcat options

    garlick committed May 19, 2011
     -h locahost
     -a ctl
    So it can be run as a "server alive" debugging tool with minimal
    command line pain, per suggestion from Jim Silva.
Commits on May 18, 2011
  1. More groundwork for thread scheduling

    garlick committed May 18, 2011
    Create a new data structure, Nptpool for a thread pool, and give
    the Npsrv a linked listed of them.  At this point create only one,
    but change all points of access so they can work with multiple tpools.
  2. Associate aname with each request for thread scheduling.

    garlick committed May 17, 2011
    Create fid->aname and look up each request's fid before enqueueing
    for the server.  This allows us to, for example, create a separate
    queue and worker thread pool for each forwarded file system, so when
    one gets stuck the entire server doesn't deadlock.
Commits on May 17, 2011
Commits on May 16, 2011
  1. Prep for 1.0-pre29 tag

    garlick committed May 16, 2011
  2. Rename synthetic namespace to ctl and add exports

    garlick committed May 16, 2011
    Instead of mounting synthetic file system with nil aname, use
    aname=ctl (issue 38).
    Fix a bug in diodmount where aname was used uninitialized in
    initial pre-auth mount from user space.  Add CFLAGS=-Werror to
    spec file build so compiler warnings get noticed when building
    a package.
    In diodmount, clunk the afid, if any, when attach fails.
    Rename internal names from np_syn_* to np_ctl_*.
    Rename np_ctl_mkdir to np_ctl_adddir to avoid confusion with op
    callback that would have the same name.
    Add quotes around all Npstr's in trace output, so empty strings
    stand out from white space, then fix up regression tests that were
    expecting the non-quoted output.
    Implement ctl/exports
    Make it possible for clients, etc. to access the list of exported
    file systems through ctl/exports.  Modify auto.diod to use this
    to map automounter keys.
    In the process, split export handling code in diod/ops.c out to
    Also fixed an incidental config problem where defaults were not
    restored when config file values that were previously set explicitly,
    were commented out and the server sent a SIGHUP.
    Minor cleanup.
Commits on May 14, 2011
  1. Prep for 1.0-pre28 tag

    garlick committed May 14, 2011
  2. Clean up synthetic file code, add new files

    garlick committed May 13, 2011
    Rename File to Npfile.  Add np_syn_mkdir () so an entire hierarchy
    can be externally created.  The internal synthetic namespace is
    selected (only) by nil aname.  Move the usercache onto the Npsrv
    struct so we can free it when the server is cleaned up.
    Add 'usercache' - list users in cache and ttl
    Add "connections" - includes last aname attached, active fids in the
    fidpool, and number of requests submitted and retired.
    Add "wthreads" - thread state, fsuid, fsgid, number of requests handled.
Commits on May 13, 2011
  1. Add functional synthetic files

    garlick committed May 13, 2011
    Mount with nil aname and get access to 'connections' (list of conected
    clients), and 'version' (diod version).
    Also renamed lopen argument from mode to flags.  It was a misnomer.
Commits on May 12, 2011
  1. Add beginning of npfile replacement.

    garlick committed May 12, 2011
    Use P9_QTTMP qid type flag to identify synthetic files.  Handle them
    along side a regular server so they can be used to implement utilities that
    monitor or reconfigure the server.  Identify synthetic files in an attach
    for an aname that does not begin with a "/" character.
Commits on May 11, 2011
  1. Housecleaning in libnpfs

    garlick committed May 11, 2011
    Dropped unused npfile code.
    Removed indirection through np_default_op functions and just handle
    ENOSYS in the np_op handlers.
  2. Don't setfsgid to gid outside of user's sg set

    garlick committed May 11, 2011
    Return EPERM to P9_LCREATE et al if the provided gid is not one of
    the user's supplemental groups.
    Without this check, a user could get elevated privilege in a server
    running as root by attaching as themselves from user space and
    issuing requests with arbitrary gids.  Add a testcase demonstrating
Commits on May 10, 2011
  1. Add --no-userdb option.

    garlick committed May 10, 2011
    This option tells diod to ignore the password and group db's and
    allow attaches from any user, assuming gid == uid, and no additional
    group membership.