[csjp@FreeBSD.org: cvs commit: src/sys/kern init_sysent.c vfs_syscalls.c]

Christian S.J. Peron csjp at FreeBSD.org
Sun Sep 25 15:04:01 GMT 2005


FYI

----- Forwarded message from "Christian S.J. Peron" <csjp at FreeBSD.org> -----

csjp        2005-09-24 23:47:04 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             init_sysent.c vfs_syscalls.c 
  Log:
  Implement new world order in VFS locking for extended attributes. This will
  remove the unconditional acquisition of Giant for extended attribute related
  operations. If the file system is set as being MP safe and debug.mpsafevfs is
  1, do not pickup Giant.
  
  Mark the following system calls as being MP safe so we no longer pickup Giant
  in the system call handler:
  
  o extattrctl
  o extattr_set_file
  o extattr_get_file
  o extattr_delete_file
  o extattr_set_fd
  o extattr_get_fd
  o extattr_delete_fd
  o extattr_set_link
  o extattr_get_link
  o extattr_delete_link
  o extattr_list_file
  o extattr_list_link
  o extattr_list_fd
  
  -Pass MPSAFE flags to namei(9) lookup and introduce vfslocked variable which
   will keep track of any Giant acquisitions.
  -Wrap any fd operations which manipulate vnodes in VFS_{UN}LOCK_GIANT
  -Drop VFS_ASSERT_GIANT into function which operate on vnodes to ensure that
   we are sufficiently protected.
  
  I've tested these changes with various TrustedBSD MAC policies which use
  extended attribute a lot on SMP and UP systems (thanks to Scott Long for
  making some SMP hardware available to me for testing).
  
  Discussed with: jeff
  Requested by:   jhb, rwatson
  
  Revision  Changes    Path
  1.196     +13 -13    src/sys/kern/init_sysent.c
  1.395     +62 -29    src/sys/kern/vfs_syscalls.c

----- End forwarded message -----

-- 
Christian S.J. Peron
csjp at FreeBSD.ORG
FreeBSD Committer
FreeBSD Security Team
To Unsubscribe: send mail to majordomo at trustedbsd.org
with "unsubscribe trustedbsd-discuss" in the body of the message



More information about the trustedbsd-discuss mailing list