Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-6-0]: src/sys/compat/common Pull up following revision(s) (reques...
details: https://anonhg.NetBSD.org/src/rev/d4ec8f08b1f1
branches: netbsd-6-0
changeset: 775150:d4ec8f08b1f1
user: bouyer <bouyer%NetBSD.org@localhost>
date: Sat Aug 27 14:51:50 2016 +0000
description:
Pull up following revision(s) (requested by mrg in ticket #1400):
sys/compat/common/vfs_syscalls_43.c: revision 1.58
fill in the tv_nsec parts of the converted timespec in cvtstat().
diffstat:
sys/compat/common/vfs_syscalls_43.c | 37 ++++++++++++++++++++++++++++++++-----
1 files changed, 32 insertions(+), 5 deletions(-)
diffs (74 lines):
diff -r 6d77734c93d6 -r d4ec8f08b1f1 sys/compat/common/vfs_syscalls_43.c
--- a/sys/compat/common/vfs_syscalls_43.c Sat Aug 27 14:48:31 2016 +0000
+++ b/sys/compat/common/vfs_syscalls_43.c Sat Aug 27 14:51:50 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls_43.c,v 1.54 2010/11/19 06:44:36 dholland Exp $ */
+/* $NetBSD: vfs_syscalls_43.c,v 1.54.20.1 2016/08/27 14:51:50 bouyer Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.54 2010/11/19 06:44:36 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_43.c,v 1.54.20.1 2016/08/27 14:51:50 bouyer Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -72,15 +72,42 @@
#include <compat/common/compat_util.h>
+static void cvttimespec(struct timespec *, struct timespec50 *);
static void cvtstat(struct stat *, struct stat43 *);
/*
+ * Convert from an old to a new timespec structure.
+ */
+static void
+cvttimespec(struct timespec *ts, struct timespec50 *ots)
+{
+
+ if (ts->tv_sec > INT_MAX) {
+#if defined(DEBUG) || 1
+ static bool first = true;
+
+ if (first) {
+ first = false;
+ printf("%s[%s:%d]: time_t does not fit\n",
+ __func__, curlwp->l_proc->p_comm,
+ curlwp->l_lid);
+ }
+#endif
+ ots->tv_sec = INT_MAX;
+ } else
+ ots->tv_sec = ts->tv_sec;
+ ots->tv_nsec = ts->tv_nsec;
+}
+
+/*
* Convert from an old to a new stat structure.
*/
static void
cvtstat(struct stat *st, struct stat43 *ost)
{
+ /* Handle any padding. */
+ memset(ost, 0, sizeof *ost);
ost->st_dev = st->st_dev;
ost->st_ino = st->st_ino;
ost->st_mode = st->st_mode & 0xffff;
@@ -92,9 +119,9 @@
ost->st_size = st->st_size;
else
ost->st_size = -2;
- ost->st_atime = st->st_atime;
- ost->st_mtime = st->st_mtime;
- ost->st_ctime = st->st_ctime;
+ cvttimespec(&st->st_atimespec, &ost->st_atimespec);
+ cvttimespec(&st->st_mtimespec, &ost->st_mtimespec);
+ cvttimespec(&st->st_ctimespec, &ost->st_ctimespec);
ost->st_blksize = st->st_blksize;
ost->st_blocks = st->st_blocks;
ost->st_flags = st->st_flags;
Home |
Main Index |
Thread Index |
Old Index