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>