mirror of
https://github.com/samba-team/samba.git
synced 2025-01-13 13:18:06 +03:00
r2573: - added a configure test for nanosecond time resolution in struct stat
(recently Linux systems support this, allowing us to support the full resolution in NTTIME) - use nanosecond resolution in the posix backend if available - moved the configure tests and list of object files for the posix backend into ntvfs/posix/ to keep them more neatlly separated.
This commit is contained in:
parent
4103392a59
commit
d92ad9f307
@ -1,5 +1,8 @@
|
||||
dnl # NTVFS Server subsystem
|
||||
|
||||
SMB_INCLUDE_M4(ntvfs/posix/config.m4)
|
||||
SMB_MODULE_MK(ntvfs_posix, NTVFS, STATIC, ntvfs/posix/config.mk)
|
||||
|
||||
SMB_MODULE_MK(ntvfs_cifs, NTVFS, STATIC, ntvfs/config.mk)
|
||||
|
||||
SMB_MODULE_MK(ntvfs_simple, NTVFS, STATIC, ntvfs/config.mk)
|
||||
@ -8,8 +11,6 @@ SMB_MODULE_MK(ntvfs_print, NTVFS, STATIC, ntvfs/config.mk)
|
||||
|
||||
SMB_MODULE_MK(ntvfs_ipc, NTVFS, STATIC, ntvfs/config.mk)
|
||||
|
||||
SMB_MODULE_MK(ntvfs_posix, NTVFS, STATIC, ntvfs/config.mk)
|
||||
|
||||
SMB_MODULE_MK(ntvfs_nbench, NTVFS, STATIC, ntvfs/config.mk)
|
||||
|
||||
SMB_SUBSYSTEM_MK(NTVFS,ntvfs/config.mk)
|
||||
|
@ -35,33 +35,10 @@ INIT_OBJ_FILES = \
|
||||
ntvfs/ipc/vfs_ipc.o \
|
||||
ntvfs/ipc/ipc_rap.o \
|
||||
ntvfs/ipc/rap_server.o
|
||||
|
||||
# End MODULE ntvfs_ipc
|
||||
################################################
|
||||
|
||||
################################################
|
||||
# Start MODULE ntvfs_posix
|
||||
[MODULE::ntvfs_posix]
|
||||
INIT_OBJ_FILES = \
|
||||
ntvfs/posix/vfs_posix.o
|
||||
ADD_OBJ_FILES = \
|
||||
ntvfs/posix/pvfs_util.o \
|
||||
ntvfs/posix/pvfs_search.o \
|
||||
ntvfs/posix/pvfs_dirlist.o \
|
||||
ntvfs/posix/pvfs_fileinfo.o \
|
||||
ntvfs/posix/pvfs_unlink.o \
|
||||
ntvfs/posix/pvfs_mkdir.o \
|
||||
ntvfs/posix/pvfs_open.o \
|
||||
ntvfs/posix/pvfs_read.o \
|
||||
ntvfs/posix/pvfs_write.o \
|
||||
ntvfs/posix/pvfs_fsinfo.o \
|
||||
ntvfs/posix/pvfs_qfileinfo.o \
|
||||
ntvfs/posix/pvfs_setfileinfo.o \
|
||||
ntvfs/posix/pvfs_rename.o \
|
||||
ntvfs/posix/pvfs_resolve.o \
|
||||
ntvfs/posix/pvfs_shortname.o
|
||||
# End MODULE ntvfs_posix
|
||||
################################################
|
||||
|
||||
|
||||
################################################
|
||||
# Start MODULE ntvfs_nbench
|
||||
|
23
source/ntvfs/posix/config.m4
Normal file
23
source/ntvfs/posix/config.m4
Normal file
@ -0,0 +1,23 @@
|
||||
SMB_MODULE_MK(ntvfs_posix, NTVFS, STATIC, ntvfs/config.mk)
|
||||
|
||||
|
||||
dnl #############################################
|
||||
dnl see if we have nanosecond resolution for stat
|
||||
AC_CACHE_CHECK([for tv_nsec nanosecond fields in struct stat],ac_cv_have_stat_tv_nsec,[
|
||||
AC_TRY_COMPILE(
|
||||
[
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
],
|
||||
[struct stat st;
|
||||
st.st_mtim.tv_nsec;
|
||||
st.st_atim.tv_nsec;
|
||||
st.st_ctim.tv_nsec;
|
||||
],
|
||||
ac_cv_decl_have_stat_tv_nsec=yes,
|
||||
ac_cv_decl_have_stat_tv_nsec=no)
|
||||
])
|
||||
if test x"$ac_cv_decl_have_stat_tv_nsec" = x"yes"; then
|
||||
AC_DEFINE(HAVE_STAT_TV_NSEC,1,[Whether stat has tv_nsec nanosecond fields])
|
||||
fi
|
23
source/ntvfs/posix/config.mk
Normal file
23
source/ntvfs/posix/config.mk
Normal file
@ -0,0 +1,23 @@
|
||||
################################################
|
||||
# Start MODULE ntvfs_posix
|
||||
[MODULE::ntvfs_posix]
|
||||
INIT_OBJ_FILES = \
|
||||
ntvfs/posix/vfs_posix.o
|
||||
ADD_OBJ_FILES = \
|
||||
ntvfs/posix/pvfs_util.o \
|
||||
ntvfs/posix/pvfs_search.o \
|
||||
ntvfs/posix/pvfs_dirlist.o \
|
||||
ntvfs/posix/pvfs_fileinfo.o \
|
||||
ntvfs/posix/pvfs_unlink.o \
|
||||
ntvfs/posix/pvfs_mkdir.o \
|
||||
ntvfs/posix/pvfs_open.o \
|
||||
ntvfs/posix/pvfs_read.o \
|
||||
ntvfs/posix/pvfs_write.o \
|
||||
ntvfs/posix/pvfs_fsinfo.o \
|
||||
ntvfs/posix/pvfs_qfileinfo.o \
|
||||
ntvfs/posix/pvfs_setfileinfo.o \
|
||||
ntvfs/posix/pvfs_rename.o \
|
||||
ntvfs/posix/pvfs_resolve.o \
|
||||
ntvfs/posix/pvfs_shortname.o
|
||||
# End MODULE ntvfs_posix
|
||||
################################################
|
@ -139,6 +139,12 @@ NTSTATUS pvfs_fill_dos_info(struct pvfs_state *pvfs, struct pvfs_filename *name)
|
||||
unix_to_nt_time(&name->dos.access_time, name->st.st_atime);
|
||||
unix_to_nt_time(&name->dos.write_time, name->st.st_mtime);
|
||||
unix_to_nt_time(&name->dos.change_time, name->st.st_mtime);
|
||||
#ifdef HAVE_STAT_TV_NSEC
|
||||
name->dos.create_time += name->st.st_ctim.tv_nsec / 100;
|
||||
name->dos.access_time += name->st.st_atim.tv_nsec / 100;
|
||||
name->dos.write_time += name->st.st_mtim.tv_nsec / 100;
|
||||
name->dos.change_time += name->st.st_mtim.tv_nsec / 100;
|
||||
#endif
|
||||
name->dos.attrib = dos_mode_from_stat(pvfs, &name->st);
|
||||
name->dos.alloc_size = name->st.st_size;
|
||||
name->dos.nlink = name->st.st_nlink;
|
||||
|
Loading…
Reference in New Issue
Block a user