Date: Mon, 26 Sep 2005 11:45:42 -0400 From: John Baldwin <jhb@FreeBSD.org> To: "Christian S.J. Peron" <csjp@FreeBSD.org> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern init_sysent.c vfs_syscalls.c Message-ID: <200509261145.43313.jhb@FreeBSD.org> In-Reply-To: <200509242347.j8ONl4Rv030044@repoman.freebsd.org> References: <200509242347.j8ONl4Rv030044@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200509261145.43313.jhb>
