]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_gpfs: pass fsp to smbd_gpfs_set_times()
authorRalph Boehme <slow@samba.org>
Thu, 5 Aug 2021 09:58:58 +0000 (11:58 +0200)
committerRalph Boehme <slow@samba.org>
Thu, 26 Aug 2021 19:18:31 +0000 (19:18 +0000)
No change in behaviour. Prepares for dealing with pathref fsps in
smbd_gpfs_set_times().

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14771

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Christof Schmitt <cs@samba.org>
source3/modules/vfs_gpfs.c

index 8fc6bb21c9043528b5a695d8bea3b0b173dd7c7f..a3e725f0fd8d20e3e3b6e5c45dd29cdbfed2a43f 100644 (file)
@@ -1714,7 +1714,8 @@ static void timespec_to_gpfs_time(struct timespec ts, gpfs_timestruc_t *gt,
        }
 }
 
-static int smbd_gpfs_set_times(int fd, char *path, struct smb_file_time *ft)
+static int smbd_gpfs_set_times(struct files_struct *fsp,
+                              struct smb_file_time *ft)
 {
        gpfs_timestruc_t gpfs_times[4];
        int flags = 0;
@@ -1731,12 +1732,12 @@ static int smbd_gpfs_set_times(int fd, char *path, struct smb_file_time *ft)
                return 0;
        }
 
-       rc = gpfswrap_set_times(fd, flags, gpfs_times);
+       rc = gpfswrap_set_times(fsp_get_io_fd(fsp), flags, gpfs_times);
 
        if (rc != 0 && errno != ENOSYS) {
                DBG_WARNING("gpfs_set_times() returned with error %s for %s\n",
                            strerror(errno),
-                           path);
+                           fsp_str_dbg(fsp));
        }
 
        return rc;
@@ -1758,9 +1759,7 @@ static int vfs_gpfs_fntimes(struct vfs_handle_struct *handle,
 
        /* Try to use gpfs_set_times if it is enabled and available */
        if (config->settimes) {
-               ret = smbd_gpfs_set_times(fsp_get_io_fd(fsp),
-                                         fsp->fsp_name->base_name,
-                                         ft);
+               ret = smbd_gpfs_set_times(fsp, ft);
                if (ret == 0 || (ret == -1 && errno != ENOSYS)) {
                        return ret;
                }