aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/svr4
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2014-11-13 18:01:51 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2014-11-13 18:01:51 +0000
commit6e646651d358c6de266562e0dc5c621b7ea4cd8d (patch)
tree6efcfbcf870ce7232247484b3f06affbcf5570d6 /sys/compat/svr4
parentea2af5c8bd95fe96ebeffa5d18d37fe4c505b776 (diff)
downloadsrc-6e646651d358c6de266562e0dc5c621b7ea4cd8d.tar.gz
src-6e646651d358c6de266562e0dc5c621b7ea4cd8d.zip
Remove the no-at variants of the kern_xx() syscall helpers. E.g., we
have both kern_open() and kern_openat(); change the callers to use kern_openat(). This removes one (sometimes two) levels of indirection and consolidates arguments checks. Reviewed by: mckusick Sponsored by: The FreeBSD Foundation MFC after: 1 week
Notes
Notes: svn path=/head/; revision=274476
Diffstat (limited to 'sys/compat/svr4')
-rw-r--r--sys/compat/svr4/svr4_fcntl.c10
-rw-r--r--sys/compat/svr4/svr4_misc.c11
-rw-r--r--sys/compat/svr4/svr4_stat.c22
-rw-r--r--sys/compat/svr4/svr4_stream.c9
4 files changed, 32 insertions, 20 deletions
diff --git a/sys/compat/svr4/svr4_fcntl.c b/sys/compat/svr4/svr4_fcntl.c
index c604675285f9..edcfcc1074ee 100644
--- a/sys/compat/svr4/svr4_fcntl.c
+++ b/sys/compat/svr4/svr4_fcntl.c
@@ -390,7 +390,8 @@ svr4_sys_open(td, uap)
CHECKALTEXIST(td, uap->path, &newpath);
bsd_flags = svr4_to_bsd_flags(uap->flags);
- error = kern_open(td, newpath, UIO_SYSSPACE, bsd_flags, uap->mode);
+ error = kern_openat(td, AT_FDCWD, newpath, UIO_SYSSPACE, bsd_flags,
+ uap->mode);
free(newpath, M_TEMP);
if (error) {
@@ -450,8 +451,8 @@ svr4_sys_creat(td, uap)
CHECKALTEXIST(td, uap->path, &newpath);
- error = kern_open(td, newpath, UIO_SYSSPACE, O_WRONLY | O_CREAT |
- O_TRUNC, uap->mode);
+ error = kern_openat(td, AT_FDCWD, newpath, UIO_SYSSPACE,
+ O_WRONLY | O_CREAT | O_TRUNC, uap->mode);
free(newpath, M_TEMP);
return (error);
}
@@ -494,7 +495,8 @@ svr4_sys_access(td, uap)
int error;
CHECKALTEXIST(td, uap->path, &newpath);
- error = kern_access(td, newpath, UIO_SYSSPACE, uap->amode);
+ error = kern_accessat(td, AT_FDCWD, newpath, UIO_SYSSPACE,
+ 0, uap->amode);
free(newpath, M_TEMP);
return (error);
}
diff --git a/sys/compat/svr4/svr4_misc.c b/sys/compat/svr4/svr4_misc.c
index 0db5453165f3..9e9b020a832f 100644
--- a/sys/compat/svr4/svr4_misc.c
+++ b/sys/compat/svr4/svr4_misc.c
@@ -653,10 +653,13 @@ svr4_mknod(td, retval, path, mode, dev)
CHECKALTEXIST(td, path, &newpath);
- if (S_ISFIFO(mode))
- error = kern_mkfifo(td, newpath, UIO_SYSSPACE, mode);
- else
- error = kern_mknod(td, newpath, UIO_SYSSPACE, mode, dev);
+ if (S_ISFIFO(mode)) {
+ error = kern_mkfifoat(td, AT_FDCWD, newpath, UIO_SYSSPACE,
+ mode);
+ } else {
+ error = kern_mknodat(td, AT_FDCWD, newpath, UIO_SYSSPACE,
+ mode, dev);
+ }
free(newpath, M_TEMP);
return (error);
}
diff --git a/sys/compat/svr4/svr4_stat.c b/sys/compat/svr4/svr4_stat.c
index b6866425d54c..6ed9873e7759 100644
--- a/sys/compat/svr4/svr4_stat.c
+++ b/sys/compat/svr4/svr4_stat.c
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/stat.h>
#include <sys/filedesc.h>
+#include <sys/fcntl.h>
#include <sys/jail.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
@@ -170,7 +171,7 @@ svr4_sys_stat(td, uap)
CHECKALTEXIST(td, uap->path, &path);
- error = kern_stat(td, path, UIO_SYSSPACE, &st);
+ error = kern_statat(td, 0, AT_FDCWD, path, UIO_SYSSPACE, &st, NULL);
free(path, M_TEMP);
if (error)
return (error);
@@ -195,7 +196,8 @@ svr4_sys_lstat(td, uap)
CHECKALTEXIST(td, uap->path, &path);
- error = kern_lstat(td, path, UIO_SYSSPACE, &st);
+ error = kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, path,
+ UIO_SYSSPACE, &st, NULL);
free(path, M_TEMP);
if (error)
return (error);
@@ -238,7 +240,7 @@ svr4_sys_xstat(td, uap)
CHECKALTEXIST(td, uap->path, &path);
- error = kern_stat(td, path, UIO_SYSSPACE, &st);
+ error = kern_statat(td, 0, AT_FDCWD, path, UIO_SYSSPACE, &st, NULL);
free(path, M_TEMP);
if (error)
return (error);
@@ -265,7 +267,8 @@ svr4_sys_lxstat(td, uap)
CHECKALTEXIST(td, uap->path, &path);
- error = kern_lstat(td, path, UIO_SYSSPACE, &st);
+ error = kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, path,
+ UIO_SYSSPACE, &st, NULL);
free(path, M_TEMP);
if (error)
return (error);
@@ -309,7 +312,7 @@ svr4_sys_stat64(td, uap)
CHECKALTEXIST(td, uap->path, &path);
- error = kern_stat(td, path, UIO_SYSSPACE, &st);
+ error = kern_statat(td, 0, AT_FDCWD, path, UIO_SYSSPACE, &st, NULL);
free(path, M_TEMP);
if (error)
return (error);
@@ -335,7 +338,8 @@ svr4_sys_lstat64(td, uap)
CHECKALTEXIST(td, uap->path, &path);
- error = kern_lstat(td, path, UIO_SYSSPACE, &st);
+ error = kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, path,
+ UIO_SYSSPACE, &st, NULL);
free(path, M_TEMP);
if (error)
return (error);
@@ -582,7 +586,8 @@ svr4_sys_utime(td, uap)
tp = NULL;
CHECKALTEXIST(td, uap->path, &path);
- error = kern_utimes(td, path, UIO_SYSSPACE, tp, UIO_SYSSPACE);
+ error = kern_utimesat(td, AT_FDCWD, path, UIO_SYSSPACE,
+ tp, UIO_SYSSPACE);
free(path, M_TEMP);
return (error);
}
@@ -597,7 +602,8 @@ svr4_sys_utimes(td, uap)
int error;
CHECKALTEXIST(td, uap->path, &path);
- error = kern_utimes(td, path, UIO_SYSSPACE, uap->tptr, UIO_USERSPACE);
+ error = kern_utimesat(td, AT_FDCWD, path, UIO_SYSSPACE,
+ uap->tptr, UIO_USERSPACE);
free(path, M_TEMP);
return (error);
}
diff --git a/sys/compat/svr4/svr4_stream.c b/sys/compat/svr4/svr4_stream.c
index 91c393f71a28..d287d5d3271d 100644
--- a/sys/compat/svr4/svr4_stream.c
+++ b/sys/compat/svr4/svr4_stream.c
@@ -282,7 +282,8 @@ clean_pipe(td, path)
struct stat st;
int error;
- error = kern_lstat(td, path, UIO_SYSSPACE, &st);
+ error = kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, path,
+ UIO_SYSSPACE, &st, NULL);
/*
* Make sure we are dealing with a mode 0 named pipe.
@@ -293,7 +294,7 @@ clean_pipe(td, path)
if ((st.st_mode & ALLPERMS) != 0)
return (0);
- error = kern_unlink(td, path, UIO_SYSSPACE);
+ error = kern_unlinkat(td, AT_FDCWD, path, UIO_SYSSPACE, 0);
if (error)
DPRINTF(("clean_pipe: unlink failed %d\n", error));
return (error);
@@ -812,7 +813,7 @@ ti_bind(fp, fd, ioc, td)
DPRINTF(("TI_BIND: fileno %d\n", fd));
- if ((error = kern_bind(td, fd, skp)) != 0) {
+ if ((error = kern_bindat(td, AT_FDCWD, fd, skp)) != 0) {
DPRINTF(("TI_BIND: bind failed %d\n", error));
return error;
}
@@ -1586,7 +1587,7 @@ svr4_do_putmsg(td, uap, fp)
case SVR4_TI_CONNECT_REQUEST: /* connect */
{
- return (kern_connect(td, uap->fd, sa));
+ return (kern_connectat(td, AT_FDCWD, uap->fd, sa));
}
case SVR4_TI_SENDTO_REQUEST: /* sendto */