return result;
}
+static int smb_time_audit_mkdirat(vfs_handle_struct *handle,
+ struct files_struct *dirfsp,
+ const struct smb_filename *smb_fname,
+ mode_t mode)
+{
+ int result;
+ struct timespec ts1,ts2;
+ double timediff;
+
+ clock_gettime_mono(&ts1);
+ result = SMB_VFS_NEXT_MKDIRAT(handle,
+ dirfsp,
+ smb_fname,
+ mode);
+ clock_gettime_mono(&ts2);
+ timediff = nsec_time_diff(&ts2,&ts1)*1.0e-9;
+
+ if (timediff > audit_timeout) {
+ smb_time_audit_log_smb_fname("mkdirat",
+ timediff,
+ smb_fname);
+ }
+
+ return result;
+}
+
static int smb_time_audit_rmdir(vfs_handle_struct *handle,
const struct smb_filename *smb_fname)
{
.telldir_fn = smb_time_audit_telldir,
.rewind_dir_fn = smb_time_audit_rewinddir,
.mkdir_fn = smb_time_audit_mkdir,
+ .mkdirat_fn = smb_time_audit_mkdirat,
.rmdir_fn = smb_time_audit_rmdir,
.closedir_fn = smb_time_audit_closedir,
.open_fn = smb_time_audit_open,