All filesystems must have their own locking now.
We have been MPSAFE for quite some time, but the preprocessor macro
"MPSAFE" has been removed and we must catch up in order to compile.
The MNTK_MPSAFE macro has not yet been removed, but it is toothless
now, so we can preemptively stop using it.
Reviewed-on: http://gerrit.openafs.org/8366
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit
f749f17fe1a2bc56a8129f5579e5cf5009f12d95)
Change-Id: I35ad1c63bf3b1c91035bcdd29d7cfcb5603dfd12
Reviewed-on: http://gerrit.openafs.org/8374
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
if (glocked)
AFS_GUNLOCK();
+#if __FreeBSD_version >= 1000021 /* MPSAFE is gone for good! */
+ flags = LOCKLEAF;
+#else
flags = LOCKLEAF | MPSAFE; /* namei must take Giant if needed */
+#endif
if (followlink)
flags |= FOLLOW;
else
#if defined(AFS_FBSD61_ENV) && !defined(AFS_FBSD62_ENV)
MNT_ILOCK(mp);
#endif
+#if __FreeBSD_version < 1000021
mp->mnt_kern_flag |= MNTK_MPSAFE; /* solid steel */
+#endif
#ifndef AFS_FBSD61_ENV
MNT_ILOCK(mp);
#endif
lockparent = flags & LOCKPARENT;
wantparent = flags & (LOCKPARENT | WANTPARENT);
+#if __FreeBSD_version < 1000021
cnp->cn_flags |= MPSAFE; /* steel */
+#endif
if (flags & ISDOTDOT)
MA_VOP_UNLOCK(dvp, 0, p);