coda: change Coda's user api to use 64-bit time_t in timespec
Move the 32-bit time_t problems to userspace. Link: http://lkml.kernel.org/r/8d089068823bfb292a4020f773922fbd82ffad39.1558117389.git.jaharkes@cs.cmu.edu Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Colin Ian King <colin.king@canonical.com> Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: David Howells <dhowells@redhat.com> Cc: Fabian Frederick <fabf@skynet.be> Cc: Mikko Rapeli <mikko.rapeli@iki.fi> Cc: Sam Protsenko <semen.protsenko@linaro.org> Cc: Yann Droneaud <ydroneaud@opteya.com> Cc: Zhouyang Jia <jiazhouyang09@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6ced9aa7b5
commit
5e7c31dfe7
3 changed files with 19 additions and 45 deletions
|
|
@ -86,10 +86,6 @@ typedef unsigned long long u_quad_t;
|
|||
|
||||
#define inline
|
||||
|
||||
struct timespec {
|
||||
long ts_sec;
|
||||
long ts_nsec;
|
||||
};
|
||||
#else /* DJGPP but not KERNEL */
|
||||
#include <sys/time.h>
|
||||
typedef unsigned long long u_quad_t;
|
||||
|
|
@ -110,13 +106,6 @@ typedef unsigned long long u_quad_t;
|
|||
#define cdev_t dev_t
|
||||
#endif
|
||||
|
||||
#ifdef __CYGWIN32__
|
||||
struct timespec {
|
||||
time_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* nanoseconds */
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef __BIT_TYPES_DEFINED__
|
||||
#define __BIT_TYPES_DEFINED__
|
||||
typedef signed char int8_t;
|
||||
|
|
@ -211,19 +200,10 @@ struct CodaFid {
|
|||
*/
|
||||
enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
|
||||
|
||||
#ifdef __linux__
|
||||
/*
|
||||
* This matches the traditional Linux 'timespec' structure binary layout,
|
||||
* before using 64-bit time_t everywhere. Overflows in y2038 on 32-bit
|
||||
* architectures.
|
||||
*/
|
||||
struct vtimespec {
|
||||
long tv_sec; /* seconds */
|
||||
struct coda_timespec {
|
||||
int64_t tv_sec; /* seconds */
|
||||
long tv_nsec; /* nanoseconds */
|
||||
};
|
||||
#else
|
||||
#define vtimespec timespec
|
||||
#endif
|
||||
|
||||
struct coda_vattr {
|
||||
long va_type; /* vnode type (for create) */
|
||||
|
|
@ -234,9 +214,9 @@ struct coda_vattr {
|
|||
long va_fileid; /* file id */
|
||||
u_quad_t va_size; /* file size in bytes */
|
||||
long va_blocksize; /* blocksize preferred for i/o */
|
||||
struct vtimespec va_atime; /* time of last access */
|
||||
struct vtimespec va_mtime; /* time of last modification */
|
||||
struct vtimespec va_ctime; /* time file changed */
|
||||
struct coda_timespec va_atime; /* time of last access */
|
||||
struct coda_timespec va_mtime; /* time of last modification */
|
||||
struct coda_timespec va_ctime; /* time file changed */
|
||||
u_long va_gen; /* generation number of file */
|
||||
u_long va_flags; /* flags defined for file */
|
||||
cdev_t va_rdev; /* device special file represents */
|
||||
|
|
@ -301,7 +281,8 @@ struct coda_statfs {
|
|||
|
||||
#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
|
||||
|
||||
#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
|
||||
// CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
|
||||
#define CODA_KERNEL_VERSION 4 /* 64-bit timespec */
|
||||
|
||||
/*
|
||||
* Venus <-> Coda RPC arguments
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue