OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-408-g1a0f62d

Gerrit Code Review gerrit@openafs.org
Thu, 8 Jan 2026 12:15:27 -0500


The following commit has been merged in the master branch:
commit 1a0f62d8d7b62b78392fda1c29ccccff87379efc
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Wed Dec 3 18:21:43 2025 -0600

    afsd: Support fuse3
    
    Currently, we detect the 'fuse' pkg-config package to build afsd.fuse,
    which looks for fuse version 2. Fuse version 3 lives under the 'fuse3'
    package name instead, so fuse2 and fuse3 are co-installable.
    
    Fuse 3 has been around for quite a while (released in 2016), so we
    should support building against it. To do so, look for the 'fuse3'
    package, falling back to 'fuse' if we can't find 'fuse3'.
    
    Also make various changes to afsd_fuse.c so we can build against fuse3:
    
    - Define FUSE_USE_VERSION to 31, to indicate we support the API from
      version 3.1
    
    - Accept the new argument 'cfg' in fuafsd_init(). We can ignore the
      value of the arg for now, but in the future we may want to specify
      some values (for example, we can set 'nullpath_ok' to indicate that we
      don't need the full path for some operations, which lets fuse run
      faster).
    
    - Accept the new argument 'fi' in fuafsd_getattr(), fuafsd_chmod(), and
      fuafsd_truncate().  We don't use any of the info in this arg for now;
      we just use the given path instead.
    
    - Accept new argument 'flags' in fuafsd_readdir(). We can just ignore
      the value; we always call filler() without providing any extra stat
      info.
    
    - The 'fuse_fill_dir_t' callback function type has gained a new argument
      'flags' (of type 'enum fuse_fill_dir_flags'), where we can specify
      FUSE_FILL_DIR_PLUS to indicate we have provided additional stat info.
      Pass 0 for the flags to indicate we haven't provided any extra info.
    
    - Accept new argument 'flags' in fuafsd_rename(), which can be used to
      indicate that the caller wants to not clobber the destination
      (RENAME_NOREPLACE), or atomically exchange the destination
      (RENAME_EXCHANGE). We don't support either of these, so return an
      error if any non-zero flags are set.
    
    Change-Id: Icd66f2250a4a7f0d8767eca7da19b7fd5ae3809c
    Reviewed-on: https://gerrit.openafs.org/16639
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
    Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

 src/afsd/afsd_fuse.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++----
 src/cf/fuse.m4       | 11 +++++---
 2 files changed, 76 insertions(+), 9 deletions(-)

-- 
OpenAFS Master Repository