kernel - Remove CACHE_*MPLOCK* macros & sysctl
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 11 Dec 2010 17:13:47 +0000 (09:13 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 11 Dec 2010 17:13:47 +0000 (09:13 -0800)
* Remove the vfs.cache_mpsafe sysctl and related macros.  This has
  defaulted to 1 (mpsafe) for a while now and is no longer needed.

sys/emulation/linux/linux_file.c
sys/emulation/linux/linux_stats.c
sys/kern/vfs_cache.c
sys/kern/vfs_syscalls.c
sys/sys/namecache.h

index 8e9718a..c641dbe 100644 (file)
@@ -65,7 +65,6 @@
 int
 sys_linux_creat(struct linux_creat_args *args)
 {
-       CACHE_MPLOCK_DECLARE;
        struct nlookupdata nd;
        char *path;
        int error;
@@ -77,13 +76,11 @@ sys_linux_creat(struct linux_creat_args *args)
        if (ldebug(creat))
                kprintf(ARGS(creat, "%s, %d"), path, args->mode);
 #endif
-       CACHE_GETMPLOCK1();
        error = nlookup_init(&nd, path, UIO_SYSSPACE, NLC_FOLLOW);
        if (error == 0) {
                error = kern_open(&nd, O_WRONLY | O_CREAT | O_TRUNC,
                                  args->mode, &args->sysmsg_iresult);
        }
-       CACHE_RELMPLOCK();
        linux_free_path(&path);
        return(error);
 }
@@ -94,7 +91,6 @@ sys_linux_creat(struct linux_creat_args *args)
 static int
 linux_open_common(int dfd, char *lpath, int lflags, int mode, int *iresult)
 {
-       CACHE_MPLOCK_DECLARE;
        struct thread *td = curthread;
        struct proc *p = td->td_proc;
        struct nlookupdata nd;
@@ -138,7 +134,6 @@ linux_open_common(int dfd, char *lpath, int lflags, int mode, int *iresult)
        if (lflags & LINUX_O_NOCTTY)
                flags |= O_NOCTTY;
 
-       CACHE_GETMPLOCK1();
        error = nlookup_init_at(&nd, &fp, dfd, path, UIO_SYSSPACE, NLC_FOLLOW);
        if (error == 0) {
                error = kern_open(&nd, flags, mode, iresult);
@@ -175,8 +170,6 @@ linux_open_common(int dfd, char *lpath, int lflags, int mode, int *iresult)
                }
        }
 
-       CACHE_RELMPLOCK();
-
        linux_free_path(&path);
        return error;
 }
index e233e2a..1302e41 100644 (file)
@@ -481,7 +481,6 @@ sys_linux_fstat64(struct linux_fstat64_args *args)
 int
 sys_linux_fstatat64(struct linux_fstatat64_args *args)
 {
-       CACHE_MPLOCK_DECLARE;
        struct nlookupdata nd;
        struct file *fp;
        struct stat st;
@@ -501,7 +500,6 @@ sys_linux_fstatat64(struct linux_fstatat64_args *args)
        dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd;
        flags = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ? 0 : NLC_FOLLOW;
 
-       CACHE_GETMPLOCK1();
        error = nlookup_init_at(&nd, &fp, dfd, path, UIO_SYSSPACE, flags);
        if (error == 0) {
                error = kern_stat(&nd, &st);
@@ -509,7 +507,6 @@ sys_linux_fstatat64(struct linux_fstatat64_args *args)
                        error = stat64_copyout(&st, args->statbuf);
        }
        nlookup_done_at(&nd, fp);
-       CACHE_RELMPLOCK();
        linux_free_path(&path);
        return (error);
 }
index eb60e11..f7a8866 100644 (file)
@@ -179,9 +179,6 @@ SYSCTL_INT(_debug, OID_AUTO, vnsize, CTLFLAG_RD, 0, sizeof(struct vnode),
 SYSCTL_INT(_debug, OID_AUTO, ncsize, CTLFLAG_RD, 0, sizeof(struct namecache),
     "sizeof(struct namecache)");
 
-int cache_mpsafe = 1;
-SYSCTL_INT(_vfs, OID_AUTO, cache_mpsafe, CTLFLAG_RW, &cache_mpsafe, 0, "");
-
 static int cache_resolve_mp(struct mount *mp);
 static struct vnode *cache_dvpref(struct namecache *ncp);
 static void _cache_lock(struct namecache *ncp);
index 0311280..aaa85bc 100644 (file)
@@ -1978,18 +1978,15 @@ kern_open(struct nlookupdata *nd, int oflags, int mode, int *res)
 int
 sys_open(struct open_args *uap)
 {
-       CACHE_MPLOCK_DECLARE;
        struct nlookupdata nd;
        int error;
 
-       CACHE_GETMPLOCK1();
        error = nlookup_init(&nd, uap->path, UIO_USERSPACE, 0);
        if (error == 0) {
                error = kern_open(&nd, uap->flags,
                                    uap->mode, &uap->sysmsg_result);
        }
        nlookup_done(&nd);
-       CACHE_RELMPLOCK();
        return (error);
 }
 
@@ -2001,19 +1998,16 @@ sys_open(struct open_args *uap)
 int
 sys_openat(struct openat_args *uap)
 {
-       CACHE_MPLOCK_DECLARE;
        struct nlookupdata nd;
        int error;
        struct file *fp;
 
-       CACHE_GETMPLOCK1();
        error = nlookup_init_at(&nd, &fp, uap->fd, uap->path, UIO_USERSPACE, 0);
        if (error == 0) {
                error = kern_open(&nd, uap->flags, uap->mode, 
                                        &uap->sysmsg_result);
        }
        nlookup_done_at(&nd, fp);
-       CACHE_RELMPLOCK();
        return (error);
 }
 
@@ -2777,12 +2771,10 @@ again:
 int
 sys_stat(struct stat_args *uap)
 {
-       CACHE_MPLOCK_DECLARE;
        struct nlookupdata nd;
        struct stat st;
        int error;
 
-       CACHE_GETMPLOCK1();
        error = nlookup_init(&nd, uap->path, UIO_USERSPACE, NLC_FOLLOW);
        if (error == 0) {
                error = kern_stat(&nd, &st);
@@ -2790,7 +2782,6 @@ sys_stat(struct stat_args *uap)
                        error = copyout(&st, uap->ub, sizeof(*uap->ub));
        }
        nlookup_done(&nd);
-       CACHE_RELMPLOCK();
        return (error);
 }
 
@@ -2804,12 +2795,10 @@ sys_stat(struct stat_args *uap)
 int
 sys_lstat(struct lstat_args *uap)
 {
-       CACHE_MPLOCK_DECLARE;
        struct nlookupdata nd;
        struct stat st;
        int error;
 
-       CACHE_GETMPLOCK1();
        error = nlookup_init(&nd, uap->path, UIO_USERSPACE, 0);
        if (error == 0) {
                error = kern_stat(&nd, &st);
@@ -2817,7 +2806,6 @@ sys_lstat(struct lstat_args *uap)
                        error = copyout(&st, uap->ub, sizeof(*uap->ub));
        }
        nlookup_done(&nd);
-       CACHE_RELMPLOCK();
        return (error);
 }
 
@@ -2831,7 +2819,6 @@ sys_lstat(struct lstat_args *uap)
 int
 sys_fstatat(struct fstatat_args *uap)
 {
-       CACHE_MPLOCK_DECLARE;
        struct nlookupdata nd;
        struct stat st;
        int error;
@@ -2843,7 +2830,6 @@ sys_fstatat(struct fstatat_args *uap)
 
        flags = (uap->flags & AT_SYMLINK_NOFOLLOW) ? 0 : NLC_FOLLOW;
 
-       CACHE_GETMPLOCK1();
        error = nlookup_init_at(&nd, &fp, uap->fd, uap->path, 
                                UIO_USERSPACE, flags);
        if (error == 0) {
@@ -2852,7 +2838,6 @@ sys_fstatat(struct fstatat_args *uap)
                        error = copyout(&st, uap->sb, sizeof(*uap->sb));
        }
        nlookup_done_at(&nd, fp);
-       CACHE_RELMPLOCK();
        return (error);
 }
 
index 4df15f9..1bec155 100644 (file)
@@ -172,46 +172,6 @@ struct nchandle {
 #define CINV_UNUSED02  0x0002
 #define CINV_CHILDREN  0x0004  /* recursively set children to unresolved */
 
-/*
- * MP lock helper for namecache.
- *
- * CACHE_GETMPLOCK1() Conditionally gets the MP lock if cache_mpsafe
- *                   is not set, otherwise does not.
- *
- * CACHE_GETMPLOCK2() Unconditionally gets the MP lock if it is not already
- *                   held (e.g. from GETMPLOCK1).
- *
- * CACHE_RELMPLOCK()  Releases the MP lock if it was previously acquired
- *                   by GETMPLOCK1 or GETMPLOCK2.
- */
-#define CACHE_MPLOCK_DECLARE           int have_mplock
-
-#define CACHE_GETMPLOCK1()                                             \
-               do {                                                    \
-                       if (cache_mpsafe) {                             \
-                               have_mplock = 0;                        \
-                       } else {                                        \
-                               get_mplock();                           \
-                               have_mplock = 1;                        \
-                       }                                               \
-               } while (0)
-
-#define CACHE_GETMPLOCK2()                                             \
-               do {                                                    \
-                       if (have_mplock == 0) {                         \
-                               have_mplock = 1;                        \
-                               get_mplock();                           \
-                       }                                               \
-               } while(0)
-
-#define CACHE_RELMPLOCK()                                              \
-               do {                                                    \
-                       if (have_mplock) {                              \
-                               have_mplock = 0;                        \
-                               rel_mplock();                           \
-                       }                                               \
-               } while(0)
-
 #ifdef _KERNEL
 
 extern int cache_mpsafe;