svn commit: r241896 - in head: . cddl/contrib/opensolaris/lib/libzpool/common/sys share/man/man9 sys/cam/ctl sys/cddl/compat/opensolaris/kern sys/cddl/compat/opensolaris/sys sys/cddl/contrib/openso...

Ben Kaduk minimarmot at gmail.com
Tue Nov 6 22:50:44 UTC 2012


On Mon, Oct 22, 2012 at 1:50 PM, Konstantin Belousov <kib at freebsd.org> wrote:
> Author: kib
> Date: Mon Oct 22 17:50:54 2012
> New Revision: 241896
> URL: http://svn.freebsd.org/changeset/base/241896
>
> Log:
>   Remove the support for using non-mpsafe filesystem modules.
>
>   In particular, do not lock Giant conditionally when calling into the
>   filesystem module, remove the VFS_LOCK_GIANT() and related
>   macros. Stop handling buffers belonging to non-mpsafe filesystems.
>
>   The VFS_VERSION is bumped to indicate the interface change which does
>   not result in the interface signatures changes.
>
>   Conducted and reviewed by:    attilio
>   Tested by:    pho
>

Sorry for late reply.

% --- head/sys/sys/namei.h	2011/12/29 12:28:05	228952
% +++ head/sys/sys/namei.h	2012/10/22 17:50:54	241896
% @@ -144,15 +144,11 @@
%  #define	ISOPEN		0x00200000 /* caller is opening; return a real vnode. */
%  #define	NOCROSSMOUNT	0x00400000 /* do not cross mount points */
%  #define	NOMACCHECK	0x00800000 /* do not perform MAC checks */
% -#define	MPSAFE		0x01000000 /* namei() must acquire Giant if needed. */

It seems that removing the definition of MPSAFE causes out-of-tree
filesystem modules to not build.
Perhaps a definition can remain for some period to allow a smoother transition?
Conditional on __FreeBSD_Version is the proper fix, of course, but
takes longer to get everywhere.

-Ben Kaduk

% -#define	GIANTHELD	0x02000000 /* namei() is holding giant. */
%  #define	AUDITVNODE1	0x04000000 /* audit the looked up vnode information */
%  #define	AUDITVNODE2 	0x08000000 /* audit the looked up vnode information */
%  #define	TRAILINGSLASH	0x10000000 /* path ended in a slash */
%  #define	PARAMASK	0x1ffffe00 /* mask of parameter descriptors */
%
% -#define	NDHASGIANT(NDP)	(((NDP)->ni_cnd.cn_flags & GIANTHELD) != 0)
% -
%  /*
%   * Initialization of a nameidata structure.
%   */


More information about the svn-src-all mailing list