diff options
author | Jeremy Allison <jra@samba.org> | 2010-12-02 16:25:59 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-12-02 16:25:59 -0800 |
commit | 5819a36aef030772f1e9da81655c1f911a10372c (patch) | |
tree | 8746c0f52b94f3b2bd722474b653860b10df2a14 /source3/modules/vfs_time_audit.c | |
parent | de8ceb5364de86f9b016251201474f011c16f6cb (diff) | |
download | samba-5819a36aef030772f1e9da81655c1f911a10372c.tar.gz samba-5819a36aef030772f1e9da81655c1f911a10372c.tar.bz2 samba-5819a36aef030772f1e9da81655c1f911a10372c.zip |
Move posix_fallocate into the VFS where it belongs.
Jeremy.
Diffstat (limited to 'source3/modules/vfs_time_audit.c')
-rw-r--r-- | source3/modules/vfs_time_audit.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c index af4fd3313a..e9481b5d67 100644 --- a/source3/modules/vfs_time_audit.c +++ b/source3/modules/vfs_time_audit.c @@ -905,6 +905,27 @@ static int smb_time_audit_ftruncate(vfs_handle_struct *handle, return result; } +static int smb_time_audit_posix_fallocate(vfs_handle_struct *handle, + files_struct *fsp, + SMB_OFF_T offset, + SMB_OFF_T len) +{ + int result; + struct timespec ts1,ts2; + double timediff; + + clock_gettime_mono(&ts1); + result = SMB_VFS_NEXT_POSIX_FALLOCATE(handle, fsp, offset, len); + clock_gettime_mono(&ts2); + timediff = nsec_time_diff(&ts2,&ts1)*1.0e-9; + + if (timediff > audit_timeout) { + smb_time_audit_log("posix_fallocate", timediff); + } + + return result; +} + static bool smb_time_audit_lock(vfs_handle_struct *handle, files_struct *fsp, int op, SMB_OFF_T offset, SMB_OFF_T count, int type) @@ -2336,6 +2357,7 @@ static struct vfs_fn_pointers vfs_time_audit_fns = { .getwd = smb_time_audit_getwd, .ntimes = smb_time_audit_ntimes, .ftruncate = smb_time_audit_ftruncate, + .posix_fallocate = smb_time_audit_posix_fallocate, .lock = smb_time_audit_lock, .kernel_flock = smb_time_audit_kernel_flock, .linux_setlease = smb_time_audit_linux_setlease, |