]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
o Implement "options FFS_EXTATTR_AUTOSTART", which depends on
authorRobert Watson <rwatson@FreeBSD.org>
Wed, 14 Mar 2001 05:32:31 +0000 (05:32 +0000)
committerRobert Watson <rwatson@FreeBSD.org>
Wed, 14 Mar 2001 05:32:31 +0000 (05:32 +0000)
commitf5161237adaa44d248ce85dd01957cef6c0c4847
treec38bf36713ab270b2aa849946c92157052a86e83
parent695b6f2c31c2e798c00c8315bce2c921f7a88eb5
o Implement "options FFS_EXTATTR_AUTOSTART", which depends on
  "options FFS_EXTATTR".  When extended attribute auto-starting
  is enabled, FFS will scan the .attribute directory off of the
  root of each file system, as it is mounted.  If .attribute
  exists, EA support will be started for the file system.  If
  there are files in the directory, FFS will attempt to start
  them as attribute backing files for attributes baring the same
  name.  All attributes are started before access to the file
  system is permitted, so this permits race-free enabling of
  attributes.  For attributes backing support for security
  features, such as ACLs, MAC, Capabilities, this is vital, as
  it prevents the file system attributes from getting out of
  sync as a result of file system operations between mount-time
  and the enabling of the extended attribute.  The userland
  extattrctl tool will still function exactly as previously.
  Files must be placed directly in .attribute, which must be
  directly off of the file system root: symbolic links are
  not permitted.  FFS_EXTATTR will continue to be able
  to function without FFS_EXTATTR_AUTOSTART for sites that do not
  want/require auto-starting.  If you're using the UFS_ACL code
  available from www.TrustedBSD.org, using FFS_EXTATTR_AUTOSTART
  is recommended.

o This support is implemented by adding an invocation of
  ufs_extattr_autostart() to ffs_mountfs().  In addition,
  several new supporting calls are introduced in
  ufs_extattr.c:

    ufs_extattr_autostart(): start EAs on the specified mount
    ufs_extattr_lookup(): given a directory and filename,
                          return the vnode for the file.
    ufs_extattr_enable_with_open(): invoke ufs_extattr_enable()
                          after doing the equililent of vn_open()
                          on the passed file.
    ufs_extattr_iterate_directory(): iterate over a directory,
                          invoking ufs_extattr_lookup() and
                          ufs_extattr_enable_with_open() on each
                          entry.

o This feature is not widely tested, and therefore may contain
  bugs, caution is advised.  Several changes are in the pipeline
  for this feature, including breaking out of EA namespaces into
  subdirectories of .attribute (this is waiting on the updated
  EA API), as well as a per-filesystem flag indicating whether
  or not EAs should be auto-started.  This is required because
  administrators may not want .attribute auto-started on all
  file systems, especially if non-administrators have write access
  to the root of a file system.

Obtained from: TrustedBSD Project
sys/conf/options
sys/ufs/ffs/ffs_vfsops.c
sys/ufs/ufs/extattr.h
sys/ufs/ufs/ufs_extattr.c
sys/ufs/ufs/ufs_extern.h