mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
linux(4): Microoptimize futimesat, utimes, utime.
While here wrap long line. Differential Revision: https://reviews.freebsd.org/D30488 MFC after: 2 weeks
This commit is contained in:
parent
b4f9b6eef2
commit
2a0fa277f6
1 changed files with 11 additions and 29 deletions
|
|
@ -722,18 +722,10 @@ linux_utime(struct thread *td, struct linux_utime_args *args)
|
|||
struct l_utimbuf lut;
|
||||
char *fname;
|
||||
int error;
|
||||
bool convpath;
|
||||
|
||||
convpath = LUSECONVPATH(td);
|
||||
if (convpath)
|
||||
LCONVPATHEXIST(td, args->fname, &fname);
|
||||
|
||||
if (args->times) {
|
||||
if ((error = copyin(args->times, &lut, sizeof lut))) {
|
||||
if (convpath)
|
||||
LFREEPATH(fname);
|
||||
if ((error = copyin(args->times, &lut, sizeof lut)) != 0)
|
||||
return (error);
|
||||
}
|
||||
tv[0].tv_sec = lut.l_actime;
|
||||
tv[0].tv_usec = 0;
|
||||
tv[1].tv_sec = lut.l_modtime;
|
||||
|
|
@ -742,10 +734,11 @@ linux_utime(struct thread *td, struct linux_utime_args *args)
|
|||
} else
|
||||
tvp = NULL;
|
||||
|
||||
if (!convpath) {
|
||||
if (!LUSECONVPATH(td)) {
|
||||
error = kern_utimesat(td, AT_FDCWD, args->fname, UIO_USERSPACE,
|
||||
tvp, UIO_SYSSPACE);
|
||||
} else {
|
||||
LCONVPATHEXIST(td, args->fname, &fname);
|
||||
error = kern_utimesat(td, AT_FDCWD, fname, UIO_SYSSPACE, tvp,
|
||||
UIO_SYSSPACE);
|
||||
LFREEPATH(fname);
|
||||
|
|
@ -762,17 +755,10 @@ linux_utimes(struct thread *td, struct linux_utimes_args *args)
|
|||
struct timeval tv[2], *tvp = NULL;
|
||||
char *fname;
|
||||
int error;
|
||||
bool convpath;
|
||||
|
||||
convpath = LUSECONVPATH(td);
|
||||
if (convpath)
|
||||
LCONVPATHEXIST(td, args->fname, &fname);
|
||||
|
||||
if (args->tptr != NULL) {
|
||||
if ((error = copyin(args->tptr, ltv, sizeof ltv))) {
|
||||
LFREEPATH(fname);
|
||||
if ((error = copyin(args->tptr, ltv, sizeof ltv)) != 0)
|
||||
return (error);
|
||||
}
|
||||
tv[0].tv_sec = ltv[0].tv_sec;
|
||||
tv[0].tv_usec = ltv[0].tv_usec;
|
||||
tv[1].tv_sec = ltv[1].tv_sec;
|
||||
|
|
@ -780,10 +766,11 @@ linux_utimes(struct thread *td, struct linux_utimes_args *args)
|
|||
tvp = tv;
|
||||
}
|
||||
|
||||
if (!convpath) {
|
||||
if (!LUSECONVPATH(td)) {
|
||||
error = kern_utimesat(td, AT_FDCWD, args->fname, UIO_USERSPACE,
|
||||
tvp, UIO_SYSSPACE);
|
||||
} else {
|
||||
LCONVPATHEXIST(td, args->fname, &fname);
|
||||
error = kern_utimesat(td, AT_FDCWD, fname, UIO_SYSSPACE,
|
||||
tvp, UIO_SYSSPACE);
|
||||
LFREEPATH(fname);
|
||||
|
|
@ -897,19 +884,12 @@ linux_futimesat(struct thread *td, struct linux_futimesat_args *args)
|
|||
struct timeval tv[2], *tvp = NULL;
|
||||
char *fname;
|
||||
int error, dfd;
|
||||
bool convpath;
|
||||
|
||||
convpath = LUSECONVPATH(td);
|
||||
dfd = (args->dfd == LINUX_AT_FDCWD) ? AT_FDCWD : args->dfd;
|
||||
if (convpath)
|
||||
LCONVPATHEXIST_AT(td, args->filename, &fname, dfd);
|
||||
|
||||
if (args->utimes != NULL) {
|
||||
if ((error = copyin(args->utimes, ltv, sizeof ltv))) {
|
||||
if (convpath)
|
||||
LFREEPATH(fname);
|
||||
if ((error = copyin(args->utimes, ltv, sizeof ltv)) != 0)
|
||||
return (error);
|
||||
}
|
||||
tv[0].tv_sec = ltv[0].tv_sec;
|
||||
tv[0].tv_usec = ltv[0].tv_usec;
|
||||
tv[1].tv_sec = ltv[1].tv_sec;
|
||||
|
|
@ -917,11 +897,13 @@ linux_futimesat(struct thread *td, struct linux_futimesat_args *args)
|
|||
tvp = tv;
|
||||
}
|
||||
|
||||
if (!convpath) {
|
||||
if (!LUSECONVPATH(td)) {
|
||||
error = kern_utimesat(td, dfd, args->filename, UIO_USERSPACE,
|
||||
tvp, UIO_SYSSPACE);
|
||||
} else {
|
||||
error = kern_utimesat(td, dfd, fname, UIO_SYSSPACE, tvp, UIO_SYSSPACE);
|
||||
LCONVPATHEXIST_AT(td, args->filename, &fname, dfd);
|
||||
error = kern_utimesat(td, dfd, fname, UIO_SYSSPACE,
|
||||
tvp, UIO_SYSSPACE);
|
||||
LFREEPATH(fname);
|
||||
}
|
||||
return (error);
|
||||
|
|
|
|||
Loading…
Reference in a new issue