From: Jeremy Allison Date: Wed, 2 May 2018 23:56:33 +0000 (-0700) Subject: s3: VFS: Remove SMB_VFS_WRITE() function and all implementations. X-Git-Tag: ldb-1.4.0~405 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=30e6b5999bf0be297de74dc991beeccfe4af6088;p=samba.git s3: VFS: Remove SMB_VFS_WRITE() function and all implementations. All code in Samba now uses SMB_VFS_PWRITE or SMB_VFS_PWRITE_SEND. Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme Autobuild-User(master): Ralph Böhme Autobuild-Date(master): Sat May 5 01:38:07 CEST 2018 on sn-devel-144 --- diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c index 3f0e6652c56..5529ec76aa1 100644 --- a/examples/VFS/skel_opaque.c +++ b/examples/VFS/skel_opaque.c @@ -243,13 +243,6 @@ static ssize_t skel_pread_recv(struct tevent_req *req, return -1; } -static ssize_t skel_write(vfs_handle_struct *handle, files_struct *fsp, - const void *data, size_t n) -{ - errno = ENOSYS; - return -1; -} - static ssize_t skel_pwrite(vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n, off_t offset) { @@ -945,7 +938,6 @@ struct vfs_fn_pointers skel_opaque_fns = { .pread_fn = skel_pread, .pread_send_fn = skel_pread_send, .pread_recv_fn = skel_pread_recv, - .write_fn = skel_write, .pwrite_fn = skel_pwrite, .pwrite_send_fn = skel_pwrite_send, .pwrite_recv_fn = skel_pwrite_recv, diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c index a56cda50027..fde24fbc4db 100644 --- a/examples/VFS/skel_transparent.c +++ b/examples/VFS/skel_transparent.c @@ -289,12 +289,6 @@ static ssize_t skel_pread_recv(struct tevent_req *req, return state->ret; } -static ssize_t skel_write(vfs_handle_struct *handle, files_struct *fsp, - const void *data, size_t n) -{ - return SMB_VFS_NEXT_WRITE(handle, fsp, data, n); -} - static ssize_t skel_pwrite(vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n, off_t offset) { @@ -1120,7 +1114,6 @@ struct vfs_fn_pointers skel_transparent_fns = { .pread_fn = skel_pread, .pread_send_fn = skel_pread_send, .pread_recv_fn = skel_pread_recv, - .write_fn = skel_write, .pwrite_fn = skel_pwrite, .pwrite_send_fn = skel_pwrite_send, .pwrite_recv_fn = skel_pwrite_recv, diff --git a/source3/include/vfs.h b/source3/include/vfs.h index 74029a9edab..cc7948a115d 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -249,6 +249,8 @@ Only implement async versions. */ /* Version 39 - Remove SMB_VFS_READ All users are now pread or async versions. */ +/* Version 39 - Remove SMB_VFS_WRITE + All users are now pwrite or async versions. */ #define SMB_VFS_INTERFACE_VERSION 39 @@ -695,7 +697,6 @@ struct vfs_fn_pointers { void *data, size_t n, off_t offset); ssize_t (*pread_recv_fn)(struct tevent_req *req, struct vfs_aio_state *state); - ssize_t (*write_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, const void *data, size_t n); ssize_t (*pwrite_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, const void *data, size_t n, off_t offset); struct tevent_req *(*pwrite_send_fn)(struct vfs_handle_struct *handle, TALLOC_CTX *mem_ctx, @@ -1182,9 +1183,6 @@ struct tevent_req *smb_vfs_call_pread_send(struct vfs_handle_struct *handle, size_t n, off_t offset); ssize_t SMB_VFS_PREAD_RECV(struct tevent_req *req, struct vfs_aio_state *state); -ssize_t smb_vfs_call_write(struct vfs_handle_struct *handle, - struct files_struct *fsp, const void *data, - size_t n); ssize_t smb_vfs_call_pwrite(struct vfs_handle_struct *handle, struct files_struct *fsp, const void *data, size_t n, off_t offset); diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h index 5e30f0b484a..d4836134697 100644 --- a/source3/include/vfs_macros.h +++ b/source3/include/vfs_macros.h @@ -158,11 +158,6 @@ smb_vfs_call_pread_send((handle)->next, (mem_ctx), (ev), (fsp), \ (data), (n), (off)) -#define SMB_VFS_WRITE(fsp, data, n) \ - smb_vfs_call_write((fsp)->conn->vfs_handles, (fsp), (data), (n)) -#define SMB_VFS_NEXT_WRITE(handle, fsp, data, n) \ - smb_vfs_call_write((handle)->next, (fsp), (data), (n)) - #define SMB_VFS_PWRITE(fsp, data, n, off) \ smb_vfs_call_pwrite((fsp)->conn->vfs_handles, (fsp), (data), (n), (off)) #define SMB_VFS_NEXT_PWRITE(handle, fsp, data, n, off) \ diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index cfb887d4e3c..e49e7a6be00 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -471,22 +471,6 @@ static ssize_t cephwrap_pread(struct vfs_handle_struct *handle, files_struct *fs } -static ssize_t cephwrap_write(struct vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n) -{ - ssize_t result; - - DBG_DEBUG("[CEPH] write(%p, %p, %p, %llu)\n", handle, fsp, data, llu(n)); - - result = ceph_write(handle->data, fsp->fh->fd, data, n, -1); - - DBG_DEBUG("[CEPH] write(...) = %llu\n", llu(result)); - if (result < 0) { - WRAP_RETURN(result); - } - fsp->fh->pos += result; - return result; -} - static ssize_t cephwrap_pwrite(struct vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n, off_t offset) { @@ -1458,7 +1442,6 @@ static struct vfs_fn_pointers ceph_fns = { .open_fn = cephwrap_open, .close_fn = cephwrap_close, .pread_fn = cephwrap_pread, - .write_fn = cephwrap_write, .pwrite_fn = cephwrap_pwrite, .lseek_fn = cephwrap_lseek, .sendfile_fn = cephwrap_sendfile, diff --git a/source3/modules/vfs_commit.c b/source3/modules/vfs_commit.c index aa9c87db74d..a11f9e2f131 100644 --- a/source3/modules/vfs_commit.c +++ b/source3/modules/vfs_commit.c @@ -248,24 +248,6 @@ static int commit_open( return fd; } -static ssize_t commit_write( - vfs_handle_struct * handle, - files_struct * fsp, - const void * data, - size_t count) -{ - ssize_t ret; - ret = SMB_VFS_NEXT_WRITE(handle, fsp, data, count); - - if (ret > 0) { - if (commit(handle, fsp, fsp->fh->pos, ret) == -1) { - return -1; - } - } - - return ret; -} - static ssize_t commit_pwrite( vfs_handle_struct * handle, files_struct * fsp, @@ -395,7 +377,6 @@ static int commit_ftruncate( static struct vfs_fn_pointers vfs_commit_fns = { .open_fn = commit_open, .close_fn = commit_close, - .write_fn = commit_write, .pwrite_fn = commit_pwrite, .pwrite_send_fn = commit_pwrite_send, .pwrite_recv_fn = commit_pwrite_recv, diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 0fa9b78b46e..e335e270650 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -638,16 +638,6 @@ static ssize_t vfswrap_pread(vfs_handle_struct *handle, files_struct *fsp, void return result; } -static ssize_t vfswrap_write(vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n) -{ - ssize_t result; - - START_PROFILE_BYTES(syscall_write, n); - result = sys_write(fsp->fh->fd, data, n); - END_PROFILE_BYTES(syscall_write); - return result; -} - static ssize_t vfswrap_pwrite(vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n, off_t offset) { @@ -2967,7 +2957,6 @@ static struct vfs_fn_pointers vfs_default_fns = { .pread_fn = vfswrap_pread, .pread_send_fn = vfswrap_pread_send, .pread_recv_fn = vfswrap_pread_recv, - .write_fn = vfswrap_write, .pwrite_fn = vfswrap_pwrite, .pwrite_send_fn = vfswrap_pwrite_send, .pwrite_recv_fn = vfswrap_pwrite_recv, diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index 6e28a246652..ee8dbbcff2c 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -1116,19 +1116,6 @@ static ssize_t smb_full_audit_pread_recv(struct tevent_req *req, return state->ret; } -static ssize_t smb_full_audit_write(vfs_handle_struct *handle, files_struct *fsp, - const void *data, size_t n) -{ - ssize_t result; - - result = SMB_VFS_NEXT_WRITE(handle, fsp, data, n); - - do_log(SMB_VFS_OP_WRITE, (result >= 0), handle, "%s", - fsp_str_do_log(fsp)); - - return result; -} - static ssize_t smb_full_audit_pwrite(vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n, off_t offset) @@ -2497,7 +2484,6 @@ static struct vfs_fn_pointers vfs_full_audit_fns = { .pread_fn = smb_full_audit_pread, .pread_send_fn = smb_full_audit_pread_send, .pread_recv_fn = smb_full_audit_pread_recv, - .write_fn = smb_full_audit_write, .pwrite_fn = smb_full_audit_pwrite, .pwrite_send_fn = smb_full_audit_pwrite_send, .pwrite_recv_fn = smb_full_audit_pwrite_recv, diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c index 6555fd42545..b022e9869ff 100644 --- a/source3/modules/vfs_glusterfs.c +++ b/source3/modules/vfs_glusterfs.c @@ -881,12 +881,6 @@ static ssize_t vfs_gluster_recv(struct tevent_req *req, return ret; } -static ssize_t vfs_gluster_write(struct vfs_handle_struct *handle, - files_struct *fsp, const void *data, size_t n) -{ - return glfs_write(*(glfs_fd_t **)VFS_FETCH_FSP_EXTENSION(handle, fsp), data, n, 0); -} - static ssize_t vfs_gluster_pwrite(struct vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n, off_t offset) @@ -1450,7 +1444,6 @@ static struct vfs_fn_pointers glusterfs_fns = { .pread_fn = vfs_gluster_pread, .pread_send_fn = vfs_gluster_pread_send, .pread_recv_fn = vfs_gluster_recv, - .write_fn = vfs_gluster_write, .pwrite_fn = vfs_gluster_pwrite, .pwrite_send_fn = vfs_gluster_pwrite_send, .pwrite_recv_fn = vfs_gluster_recv, diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c index faa913180fe..084c209510d 100644 --- a/source3/modules/vfs_time_audit.c +++ b/source3/modules/vfs_time_audit.c @@ -732,26 +732,6 @@ static ssize_t smb_time_audit_pread_recv(struct tevent_req *req, return state->ret; } -static ssize_t smb_time_audit_write(vfs_handle_struct *handle, - files_struct *fsp, - const void *data, size_t n) -{ - ssize_t result; - struct timespec ts1,ts2; - double timediff; - - clock_gettime_mono(&ts1); - result = SMB_VFS_NEXT_WRITE(handle, fsp, data, n); - clock_gettime_mono(&ts2); - timediff = nsec_time_diff(&ts2,&ts1)*1.0e-9; - - if (timediff > audit_timeout) { - smb_time_audit_log_fsp("write", timediff, fsp); - } - - return result; -} - static ssize_t smb_time_audit_pwrite(vfs_handle_struct *handle, files_struct *fsp, const void *data, size_t n, @@ -2661,7 +2641,6 @@ static struct vfs_fn_pointers vfs_time_audit_fns = { .pread_fn = smb_time_audit_pread, .pread_send_fn = smb_time_audit_pread_send, .pread_recv_fn = smb_time_audit_pread_recv, - .write_fn = smb_time_audit_write, .pwrite_fn = smb_time_audit_pwrite, .pwrite_send_fn = smb_time_audit_pwrite_send, .pwrite_recv_fn = smb_time_audit_pwrite_recv, diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c index aa01b1b07f0..386e955243f 100644 --- a/source3/smbd/vfs.c +++ b/source3/smbd/vfs.c @@ -1729,14 +1729,6 @@ ssize_t SMB_VFS_PREAD_RECV(struct tevent_req *req, return state->retval; } -ssize_t smb_vfs_call_write(struct vfs_handle_struct *handle, - struct files_struct *fsp, const void *data, - size_t n) -{ - VFS_FIND(write); - return handle->fns->write_fn(handle, fsp, data, n); -} - ssize_t smb_vfs_call_pwrite(struct vfs_handle_struct *handle, struct files_struct *fsp, const void *data, size_t n, off_t offset)