mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Remove redundant parameter fd from SMB_VFS_CLOSE().
Now all those redundant fd's have vanished from the VFS API. Michael
This commit is contained in:
parent
74ed53a115
commit
1429453551
@ -125,9 +125,9 @@ static int skel_open(vfs_handle_struct *handle, const char *fname, files_struct
|
||||
return vfswrap_open(NULL, fname, flags, mode);
|
||||
}
|
||||
|
||||
static int skel_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
|
||||
static int skel_close(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
return vfswrap_close(NULL, fsp, fd);
|
||||
return vfswrap_close(NULL, fsp);
|
||||
}
|
||||
|
||||
static ssize_t skel_read(vfs_handle_struct *handle, files_struct *fsp, void *data, size_t n)
|
||||
|
@ -119,9 +119,9 @@ static int skel_open(vfs_handle_struct *handle, const char *fname, files_struct
|
||||
return SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
|
||||
}
|
||||
|
||||
static int skel_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
|
||||
static int skel_close(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
return SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
|
||||
return SMB_VFS_NEXT_CLOSE(handle, fsp);
|
||||
}
|
||||
|
||||
static ssize_t skel_read(vfs_handle_struct *handle, files_struct *fsp, void *data, size_t n)
|
||||
|
@ -105,6 +105,7 @@
|
||||
/* Leave at 22 - not yet released. Remove parameter fromfd from recvfile. - obnox */
|
||||
/* Leave at 22 - not yet released. Additional change: add operations for offline files -- ab */
|
||||
/* Leave at 22 - not yet released. Add the streaminfo call. -- jpeach, vl */
|
||||
/* Leave at 22 - not yet released. Remove parameter fd from close_fn. - obnox */
|
||||
|
||||
#define SMB_VFS_INTERFACE_VERSION 22
|
||||
|
||||
@ -301,7 +302,7 @@ struct vfs_ops {
|
||||
/* File operations */
|
||||
|
||||
int (*open)(struct vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
|
||||
int (*close_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, int fd);
|
||||
int (*close_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp);
|
||||
ssize_t (*read)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n);
|
||||
ssize_t (*pread)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n, SMB_OFF_T offset);
|
||||
ssize_t (*write)(struct vfs_handle_struct *handle, struct files_struct *fsp, const void *data, size_t n);
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
/* File operations */
|
||||
#define SMB_VFS_OPEN(conn, fname, fsp, flags, mode) (((conn)->vfs.ops.open)((conn)->vfs.handles.open, (fname), (fsp), (flags), (mode)))
|
||||
#define SMB_VFS_CLOSE(fsp, fd) ((fsp)->conn->vfs.ops.close_fn((fsp)->conn->vfs.handles.close_hnd, (fsp), (fd)))
|
||||
#define SMB_VFS_CLOSE(fsp) ((fsp)->conn->vfs.ops.close_fn((fsp)->conn->vfs.handles.close_hnd, (fsp)))
|
||||
#define SMB_VFS_READ(fsp, data, n) ((fsp)->conn->vfs.ops.read((fsp)->conn->vfs.handles.read, (fsp), (data), (n)))
|
||||
#define SMB_VFS_PREAD(fsp, data, n, off) ((fsp)->conn->vfs.ops.pread((fsp)->conn->vfs.handles.pread, (fsp), (data), (n), (off)))
|
||||
#define SMB_VFS_WRITE(fsp, data, n) ((fsp)->conn->vfs.ops.write((fsp)->conn->vfs.handles.write, (fsp), (data), (n)))
|
||||
@ -174,7 +174,7 @@
|
||||
|
||||
/* File operations */
|
||||
#define SMB_VFS_OPAQUE_OPEN(conn, fname, fsp, flags, mode) (((conn)->vfs_opaque.ops.open)((conn)->vfs_opaque.handles.open, (fname), (fsp), (flags), (mode)))
|
||||
#define SMB_VFS_OPAQUE_CLOSE(fsp, fd) ((fsp)->conn->vfs_opaque.ops.close_fn((fsp)->conn->vfs_opaque.handles.close_hnd, (fsp), (fd)))
|
||||
#define SMB_VFS_OPAQUE_CLOSE(fsp) ((fsp)->conn->vfs_opaque.ops.close_fn((fsp)->conn->vfs_opaque.handles.close_hnd, (fsp)))
|
||||
#define SMB_VFS_OPAQUE_READ(fsp, data, n) ((fsp)->conn->vfs_opaque.ops.read((fsp)->conn->vfs_opaque.handles.read, (fsp), (data), (n)))
|
||||
#define SMB_VFS_OPAQUE_PREAD(fsp, data, n, off) ((fsp)->conn->vfs_opaque.ops.pread((fsp)->conn->vfs_opaque.handles.pread, (fsp), (data), (n), (off)))
|
||||
#define SMB_VFS_OPAQUE_WRITE(fsp, data, n) ((fsp)->conn->vfs_opaque.ops.write((fsp)->conn->vfs_opaque.handles.write, (fsp), (data), (n)))
|
||||
@ -301,7 +301,7 @@
|
||||
|
||||
/* File operations */
|
||||
#define SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode) (((handle)->vfs_next.ops.open)((handle)->vfs_next.handles.open, (fname), (fsp), (flags), (mode)))
|
||||
#define SMB_VFS_NEXT_CLOSE(handle, fsp, fd) ((handle)->vfs_next.ops.close_fn((handle)->vfs_next.handles.close_hnd, (fsp), (fd)))
|
||||
#define SMB_VFS_NEXT_CLOSE(handle, fsp) ((handle)->vfs_next.ops.close_fn((handle)->vfs_next.handles.close_hnd, (fsp)))
|
||||
#define SMB_VFS_NEXT_READ(handle, fsp, data, n) ((handle)->vfs_next.ops.read((handle)->vfs_next.handles.read, (fsp), (data), (n)))
|
||||
#define SMB_VFS_NEXT_PREAD(handle, fsp, data, n, off) ((handle)->vfs_next.ops.pread((handle)->vfs_next.handles.pread, (fsp), (data), (n), (off)))
|
||||
#define SMB_VFS_NEXT_WRITE(handle, fsp, data, n) ((handle)->vfs_next.ops.write((handle)->vfs_next.handles.write, (fsp), (data), (n)))
|
||||
|
@ -34,7 +34,7 @@ static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, const char *fnam
|
||||
static int audit_mkdir(vfs_handle_struct *handle, const char *path, mode_t mode);
|
||||
static int audit_rmdir(vfs_handle_struct *handle, const char *path);
|
||||
static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp, int fd);
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp);
|
||||
static int audit_rename(vfs_handle_struct *handle, const char *oldname, const char *newname);
|
||||
static int audit_unlink(vfs_handle_struct *handle, const char *path);
|
||||
static int audit_chmod(vfs_handle_struct *handle, const char *path, mode_t mode);
|
||||
@ -202,14 +202,14 @@ static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct
|
||||
return result;
|
||||
}
|
||||
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
int result;
|
||||
|
||||
result = SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
|
||||
result = SMB_VFS_NEXT_CLOSE(handle, fsp);
|
||||
|
||||
syslog(audit_syslog_priority(handle), "close fd %d %s%s\n",
|
||||
fd,
|
||||
fsp->fh->fd,
|
||||
(result < 0) ? "failed: " : "",
|
||||
(result < 0) ? strerror(errno) : "");
|
||||
|
||||
|
@ -265,12 +265,11 @@ static ssize_t commit_pwrite(
|
||||
|
||||
static int commit_close(
|
||||
vfs_handle_struct * handle,
|
||||
files_struct * fsp,
|
||||
int fd)
|
||||
files_struct * fsp)
|
||||
{
|
||||
/* Commit errors not checked, close() will find them again */
|
||||
commit_all(handle, fsp);
|
||||
return SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
|
||||
return SMB_VFS_NEXT_CLOSE(handle, fsp);
|
||||
}
|
||||
|
||||
static int commit_ftruncate(
|
||||
|
@ -208,7 +208,7 @@ static int vfswrap_open(vfs_handle_struct *handle, const char *fname,
|
||||
return result;
|
||||
}
|
||||
|
||||
static int vfswrap_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
|
||||
static int vfswrap_close(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
int result;
|
||||
|
||||
|
@ -37,7 +37,7 @@ static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, const char *fnam
|
||||
static int audit_mkdir(vfs_handle_struct *handle, const char *path, mode_t mode);
|
||||
static int audit_rmdir(vfs_handle_struct *handle, const char *path);
|
||||
static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp, int fd);
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp);
|
||||
static int audit_rename(vfs_handle_struct *handle, const char *oldname, const char *newname);
|
||||
static int audit_unlink(vfs_handle_struct *handle, const char *path);
|
||||
static int audit_chmod(vfs_handle_struct *handle, const char *path, mode_t mode);
|
||||
@ -224,18 +224,18 @@ static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct
|
||||
return result;
|
||||
}
|
||||
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
|
||||
static int audit_close(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
int result;
|
||||
|
||||
result = SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
|
||||
result = SMB_VFS_NEXT_CLOSE(handle, fsp);
|
||||
|
||||
syslog(audit_syslog_priority(handle), "close fd %d %s%s\n",
|
||||
fd,
|
||||
fsp->fh->fd,
|
||||
(result < 0) ? "failed: " : "",
|
||||
(result < 0) ? strerror(errno) : "");
|
||||
DEBUG(2, ("vfs_extd_audit: close fd %d %s %s\n",
|
||||
fd,
|
||||
fsp->fh->fd,
|
||||
(result < 0) ? "failed: " : "",
|
||||
(result < 0) ? strerror(errno) : ""));
|
||||
|
||||
|
@ -111,7 +111,7 @@ static int smb_full_audit_closedir(vfs_handle_struct *handle,
|
||||
SMB_STRUCT_DIR *dirp);
|
||||
static int smb_full_audit_open(vfs_handle_struct *handle,
|
||||
const char *fname, files_struct *fsp, int flags, mode_t mode);
|
||||
static int smb_full_audit_close(vfs_handle_struct *handle, files_struct *fsp, int fd);
|
||||
static int smb_full_audit_close(vfs_handle_struct *handle, files_struct *fsp);
|
||||
static ssize_t smb_full_audit_read(vfs_handle_struct *handle, files_struct *fsp,
|
||||
void *data, size_t n);
|
||||
static ssize_t smb_full_audit_pread(vfs_handle_struct *handle, files_struct *fsp,
|
||||
@ -1083,11 +1083,11 @@ static int smb_full_audit_open(vfs_handle_struct *handle,
|
||||
return result;
|
||||
}
|
||||
|
||||
static int smb_full_audit_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
|
||||
static int smb_full_audit_close(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
int result;
|
||||
|
||||
result = SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
|
||||
result = SMB_VFS_NEXT_CLOSE(handle, fsp);
|
||||
|
||||
do_log(SMB_VFS_OP_CLOSE, (result >= 0), handle, "%s", fsp->fsp_name);
|
||||
|
||||
|
@ -345,7 +345,7 @@ static int streams_xattr_open(vfs_handle_struct *handle, const char *fname,
|
||||
* BUGBUGBUG -- we would need to call fd_close_posix here, but
|
||||
* we don't have a full fsp yet
|
||||
*/
|
||||
SMB_VFS_CLOSE(fsp, hostfd);
|
||||
SMB_VFS_CLOSE(fsp);
|
||||
}
|
||||
|
||||
TALLOC_FREE(frame);
|
||||
|
@ -165,14 +165,14 @@ static int syncops_rmdir(vfs_handle_struct *handle, const char *fname)
|
||||
}
|
||||
|
||||
/* close needs to be handled specially */
|
||||
static int syncops_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
|
||||
static int syncops_close(vfs_handle_struct *handle, files_struct *fsp)
|
||||
{
|
||||
if (fsp->can_write && sync_onclose) {
|
||||
/* ideally we'd only do this if we have written some
|
||||
data, but there is no flag for that in fsp yet. */
|
||||
fsync(fd);
|
||||
fsync(fsp->fh->fd);
|
||||
}
|
||||
return SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
|
||||
return SMB_VFS_NEXT_CLOSE(handle, fsp);
|
||||
}
|
||||
|
||||
|
||||
|
@ -81,7 +81,7 @@ NTSTATUS fd_close(files_struct *fsp)
|
||||
return NT_STATUS_OK; /* Shared handle. Only close last reference. */
|
||||
}
|
||||
|
||||
ret = SMB_VFS_CLOSE(fsp, fsp->fh->fd);
|
||||
ret = SMB_VFS_CLOSE(fsp);
|
||||
fsp->fh->fd = -1;
|
||||
if (ret == -1) {
|
||||
return map_nt_error_from_unix(errno);
|
||||
|
@ -355,7 +355,7 @@ static NTSTATUS cmd_close(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc,
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
ret = SMB_VFS_CLOSE(vfs->files[fd], fd);
|
||||
ret = SMB_VFS_CLOSE(vfs->files[fd]);
|
||||
if (ret == -1 )
|
||||
printf("close: error=%d (%s)\n", errno, strerror(errno));
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user