cvs commit: src/sys/kern init_sysent.c vfs_syscalls.c
John Baldwin
jhb at FreeBSD.org
Mon Sep 26 08:44:48 PDT 2005
On Saturday 24 September 2005 07:47 pm, Christian S.J. Peron wrote:
> 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
Hmm, it seems you hacked on init_sysent.c directly rather than modifying
syscalls.master and then running 'make sysent' to regenerate the appropriate
files and doing a follow up commit.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the cvs-src
mailing list