summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorChristof Schmitt <cs@samba.org>2014-12-10 15:40:16 -0700
committerChristof Schmitt <cs@samba.org>2015-03-02 22:31:08 +0100
commit1907a88a6d4f6fa62a4332cb6e15ff1e6874fc03 (patch)
tree760835a7c91a77beb62fb737bc11ed946bc71a62 /source3
parentdb01831082f3120649d742b21aaff9c90fd3cdf0 (diff)
downloadsamba-1907a88a6d4f6fa62a4332cb6e15ff1e6874fc03.tar.gz
gpfs: Introduce wrapper for gpfs_set_times_path
Signed-off-by: Christof Schmitt <cs@samba.org> Reviewed-by: Ralph Böhme <slow@samba.org>
Diffstat (limited to 'source3')
-rw-r--r--source3/modules/gpfs.c20
-rw-r--r--source3/modules/vfs_gpfs.h2
2 files changed, 15 insertions, 7 deletions
diff --git a/source3/modules/gpfs.c b/source3/modules/gpfs.c
index b90d42292ed..1659f5b32fb 100644
--- a/source3/modules/gpfs.c
+++ b/source3/modules/gpfs.c
@@ -189,6 +189,17 @@ int gpfswrap_lib_init(int flags)
return gpfs_lib_init_fn(flags);
}
+int gpfswrap_set_times_path(char *pathname, int flags,
+ gpfs_timestruc_t times[4])
+{
+ if (gpfs_set_times_path_fn == NULL) {
+ errno = ENOSYS;
+ return -1;
+ }
+
+ return gpfs_set_times_path_fn(pathname, flags, times);
+}
+
bool set_gpfs_sharemode(files_struct *fsp, uint32 access_mask,
uint32 share_access)
{
@@ -350,11 +361,6 @@ int smbd_gpfs_set_times_path(char *path, struct smb_file_time *ft)
int flags = 0;
int rc;
- if (!gpfs_set_times_path_fn) {
- errno = ENOSYS;
- return -1;
- }
-
ZERO_ARRAY(gpfs_times);
timespec_to_gpfs_time(ft->atime, gpfs_times, 0, &flags);
timespec_to_gpfs_time(ft->mtime, gpfs_times, 1, &flags);
@@ -366,9 +372,9 @@ int smbd_gpfs_set_times_path(char *path, struct smb_file_time *ft)
return 0;
}
- rc = gpfs_set_times_path_fn(path, flags, gpfs_times);
+ rc = gpfswrap_set_times_path(path, flags, gpfs_times);
- if (rc != 0) {
+ if (rc != 0 && errno != ENOSYS) {
DEBUG(1,("gpfs_set_times() returned with error %s\n",
strerror(errno)));
}
diff --git a/source3/modules/vfs_gpfs.h b/source3/modules/vfs_gpfs.h
index 9d7ed542f3e..d56b80867b7 100644
--- a/source3/modules/vfs_gpfs.h
+++ b/source3/modules/vfs_gpfs.h
@@ -40,6 +40,8 @@ int gpfswrap_get_winattrs(int fd, struct gpfs_winattr *attrs);
int gpfswrap_prealloc(int fd, gpfs_off64_t start, gpfs_off64_t bytes);
int gpfswrap_ftruncate(int fd, gpfs_off64_t length);
int gpfswrap_lib_init(int flags);
+int gpfswrap_set_times_path(char *pathname, int flags,
+ gpfs_timestruc_t times[4]);
bool set_gpfs_sharemode(files_struct *fsp, uint32 access_mask,
uint32 share_access);
int set_gpfs_lease(int fd, int leasetype);