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_LSEEK().
Michael
(This used to be commit df929796f2
)
This commit is contained in:
parent
a56b417809
commit
6f657c873e
@ -150,9 +150,9 @@ ssize_t skel_pwrite(vfs_handle_struct *handle, struct files_struct *fsp, const v
|
||||
return vfswrap_pwrite(NULL, fsp, data, n, offset);
|
||||
}
|
||||
|
||||
static SMB_OFF_T skel_lseek(vfs_handle_struct *handle, files_struct *fsp, int filedes, SMB_OFF_T offset, int whence)
|
||||
static SMB_OFF_T skel_lseek(vfs_handle_struct *handle, files_struct *fsp, SMB_OFF_T offset, int whence)
|
||||
{
|
||||
return vfswrap_lseek(NULL, fsp, filedes, offset, whence);
|
||||
return vfswrap_lseek(NULL, fsp, offset, whence);
|
||||
}
|
||||
|
||||
static ssize_t skel_sendfile(vfs_handle_struct *handle, int tofd, files_struct *fsp, int fromfd, const DATA_BLOB *hdr,
|
||||
|
@ -144,9 +144,9 @@ static ssize_t skel_pwrite(vfs_handle_struct *handle, files_struct *fsp, const v
|
||||
return SMB_VFS_NEXT_PWRITE(handle, fsp, data, n, offset);
|
||||
}
|
||||
|
||||
static SMB_OFF_T skel_lseek(vfs_handle_struct *handle, files_struct *fsp, int filedes, SMB_OFF_T offset, int whence)
|
||||
static SMB_OFF_T skel_lseek(vfs_handle_struct *handle, files_struct *fsp, SMB_OFF_T offset, int whence)
|
||||
{
|
||||
return SMB_VFS_NEXT_LSEEK(handle, fsp, filedes, offset, whence);
|
||||
return SMB_VFS_NEXT_LSEEK(handle, fsp, offset, whence);
|
||||
}
|
||||
|
||||
static ssize_t skel_sendfile(vfs_handle_struct *handle, int tofd, files_struct *fsp, int fromfd, const DATA_BLOB *hdr, SMB_OFF_T offset, size_t n)
|
||||
|
@ -81,6 +81,7 @@
|
||||
/* Leave at 22 - not yet released. Remove parameter fd from gset_nt_acl. - obnox */
|
||||
/* Leave at 22 - not yet released. Remove parameter fd from pread. - obnox */
|
||||
/* Leave at 22 - not yet released. Remove parameter fd from pwrite. - obnox */
|
||||
/* Leave at 22 - not yet released. Remove parameter fd from lseek. - obnox */
|
||||
|
||||
#define SMB_VFS_INTERFACE_VERSION 22
|
||||
|
||||
@ -274,7 +275,7 @@ struct vfs_ops {
|
||||
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, int fd, const void *data, size_t n);
|
||||
ssize_t (*pwrite)(struct vfs_handle_struct *handle, struct files_struct *fsp, const void *data, size_t n, SMB_OFF_T offset);
|
||||
SMB_OFF_T (*lseek)(struct vfs_handle_struct *handle, struct files_struct *fsp, int fd, SMB_OFF_T offset, int whence);
|
||||
SMB_OFF_T (*lseek)(struct vfs_handle_struct *handle, struct files_struct *fsp, SMB_OFF_T offset, int whence);
|
||||
ssize_t (*sendfile)(struct vfs_handle_struct *handle, int tofd, files_struct *fsp, int fromfd, const DATA_BLOB *header, SMB_OFF_T offset, size_t count);
|
||||
ssize_t (*recvfile)(struct vfs_handle_struct *handle, int fromfd, files_struct *fsp, int tofd, SMB_OFF_T offset, size_t count);
|
||||
int (*rename)(struct vfs_handle_struct *handle, const char *oldname, const char *newname);
|
||||
|
@ -52,7 +52,7 @@
|
||||
#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, fd, data, n) ((fsp)->conn->vfs.ops.write((fsp)->conn->vfs.handles.write, (fsp), (fd), (data), (n)))
|
||||
#define SMB_VFS_PWRITE(fsp, data, n, off) ((fsp)->conn->vfs.ops.pwrite((fsp)->conn->vfs.handles.pwrite, (fsp), (data), (n), (off)))
|
||||
#define SMB_VFS_LSEEK(fsp, fd, offset, whence) ((fsp)->conn->vfs.ops.lseek((fsp)->conn->vfs.handles.lseek, (fsp), (fd), (offset), (whence)))
|
||||
#define SMB_VFS_LSEEK(fsp, offset, whence) ((fsp)->conn->vfs.ops.lseek((fsp)->conn->vfs.handles.lseek, (fsp), (offset), (whence)))
|
||||
#define SMB_VFS_SENDFILE(tofd, fsp, fromfd, header, offset, count) ((fsp)->conn->vfs.ops.sendfile((fsp)->conn->vfs.handles.sendfile, (tofd), (fsp), (fromfd), (header), (offset), (count)))
|
||||
#define SMB_VFS_RECVFILE(fromfd, fsp, tofd, offset, count) ((fsp)->conn->vfs.ops.recvfile((fsp)->conn->vfs.handles.recvfile, (fromfd), (fsp), (tofd), (offset), (count)))
|
||||
#define SMB_VFS_RENAME(conn, old, new) ((conn)->vfs.ops.rename((conn)->vfs.handles.rename, (old), (new)))
|
||||
@ -171,7 +171,7 @@
|
||||
#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, fd, data, n) ((fsp)->conn->vfs_opaque.ops.write((fsp)->conn->vfs_opaque.handles.write, (fsp), (fd), (data), (n)))
|
||||
#define SMB_VFS_OPAQUE_PWRITE(fsp, data, n, off) ((fsp)->conn->vfs_opaque.ops.pwrite((fsp)->conn->vfs_opaque.handles.pwrite, (fsp), (data), (n), (off)))
|
||||
#define SMB_VFS_OPAQUE_LSEEK(fsp, fd, offset, whence) ((fsp)->conn->vfs_opaque.ops.lseek((fsp)->conn->vfs_opaque.handles.lseek, (fsp), (fd), (offset), (whence)))
|
||||
#define SMB_VFS_OPAQUE_LSEEK(fsp, offset, whence) ((fsp)->conn->vfs_opaque.ops.lseek((fsp)->conn->vfs_opaque.handles.lseek, (fsp), (offset), (whence)))
|
||||
#define SMB_VFS_OPAQUE_SENDFILE(tofd, fsp, fromfd, header, offset, count) ((fsp)->conn->vfs_opaque.ops.sendfile((fsp)->conn->vfs_opaque.handles.sendfile, (tofd), (fsp), (fromfd), (header), (offset), (count)))
|
||||
#define SMB_VFS_OPAQUE_RECVFILE(fromfd, fsp, tofd, offset, count) ((fsp)->conn->vfs_opaque.ops.recvfile((fsp)->conn->vfs_opaque.handles.recvfile, (fromfd), (fsp), (tofd), (offset), (count)))
|
||||
#define SMB_VFS_OPAQUE_RENAME(conn, old, new) ((conn)->vfs_opaque.ops.rename((conn)->vfs_opaque.handles.rename, (old), (new)))
|
||||
@ -291,7 +291,7 @@
|
||||
#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, fd, data, n) ((handle)->vfs_next.ops.write((handle)->vfs_next.handles.write, (fsp), (fd), (data), (n)))
|
||||
#define SMB_VFS_NEXT_PWRITE(handle, fsp, data, n, off) ((handle)->vfs_next.ops.pwrite((handle)->vfs_next.handles.pwrite, (fsp), (data), (n), (off)))
|
||||
#define SMB_VFS_NEXT_LSEEK(handle, fsp, fd, offset, whence) ((handle)->vfs_next.ops.lseek((handle)->vfs_next.handles.lseek, (fsp), (fd), (offset), (whence)))
|
||||
#define SMB_VFS_NEXT_LSEEK(handle, fsp, offset, whence) ((handle)->vfs_next.ops.lseek((handle)->vfs_next.handles.lseek, (fsp), (offset), (whence)))
|
||||
#define SMB_VFS_NEXT_SENDFILE(handle, tofd, fsp, fromfd, header, offset, count) ((handle)->vfs_next.ops.sendfile((handle)->vfs_next.handles.sendfile, (tofd), (fsp), (fromfd), (header), (offset), (count)))
|
||||
#define SMB_VFS_NEXT_RECVFILE(handle, fromfd, fsp, tofd, offset, count) ((handle)->vfs_next.ops.recvfile((handle)->vfs_next.handles.recvfile, (fromfd), (fsp), (tofd), (offset), (count)))
|
||||
#define SMB_VFS_NEXT_RENAME(handle, old, new) ((handle)->vfs_next.ops.rename((handle)->vfs_next.handles.rename, (old), (new)))
|
||||
|
@ -238,7 +238,7 @@ static ssize_t vfswrap_pread(vfs_handle_struct *handle, files_struct *fsp, void
|
||||
SMB_OFF_T curr;
|
||||
int lerrno;
|
||||
|
||||
curr = SMB_VFS_LSEEK(fsp, fsp->fh->fd, 0, SEEK_CUR);
|
||||
curr = SMB_VFS_LSEEK(fsp, 0, SEEK_CUR);
|
||||
if (curr == -1 && errno == ESPIPE) {
|
||||
/* Maintain the fiction that pipes can be seeked (sought?) on. */
|
||||
result = SMB_VFS_READ(fsp, fsp->fh->fd, data, n);
|
||||
@ -246,7 +246,7 @@ static ssize_t vfswrap_pread(vfs_handle_struct *handle, files_struct *fsp, void
|
||||
return result;
|
||||
}
|
||||
|
||||
if (SMB_VFS_LSEEK(fsp, fsp->fh->fd, offset, SEEK_SET) == -1) {
|
||||
if (SMB_VFS_LSEEK(fsp, offset, SEEK_SET) == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -254,7 +254,7 @@ static ssize_t vfswrap_pread(vfs_handle_struct *handle, files_struct *fsp, void
|
||||
result = SMB_VFS_READ(fsp, fsp->fh->fd, data, n);
|
||||
lerrno = errno;
|
||||
|
||||
SMB_VFS_LSEEK(fsp, fsp->fh->fd, curr, SEEK_SET);
|
||||
SMB_VFS_LSEEK(fsp, curr, SEEK_SET);
|
||||
errno = lerrno;
|
||||
|
||||
#endif /* HAVE_PREAD */
|
||||
@ -291,19 +291,19 @@ static ssize_t vfswrap_pwrite(vfs_handle_struct *handle, files_struct *fsp, cons
|
||||
SMB_OFF_T curr;
|
||||
int lerrno;
|
||||
|
||||
curr = SMB_VFS_LSEEK(fsp, fsp->fh->fd, 0, SEEK_CUR);
|
||||
curr = SMB_VFS_LSEEK(fsp, 0, SEEK_CUR);
|
||||
if (curr == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (SMB_VFS_LSEEK(fsp, fsp->fh->fd, offset, SEEK_SET) == -1) {
|
||||
if (SMB_VFS_LSEEK(fsp, offset, SEEK_SET) == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
result = SMB_VFS_WRITE(fsp, fsp->fh->fd, data, n);
|
||||
lerrno = errno;
|
||||
|
||||
SMB_VFS_LSEEK(fsp, fsp->fh->fd, curr, SEEK_SET);
|
||||
SMB_VFS_LSEEK(fsp, curr, SEEK_SET);
|
||||
errno = lerrno;
|
||||
|
||||
#endif /* HAVE_PWRITE */
|
||||
@ -311,15 +311,15 @@ static ssize_t vfswrap_pwrite(vfs_handle_struct *handle, files_struct *fsp, cons
|
||||
return result;
|
||||
}
|
||||
|
||||
static SMB_OFF_T vfswrap_lseek(vfs_handle_struct *handle, files_struct *fsp, int filedes, SMB_OFF_T offset, int whence)
|
||||
static SMB_OFF_T vfswrap_lseek(vfs_handle_struct *handle, files_struct *fsp, SMB_OFF_T offset, int whence)
|
||||
{
|
||||
SMB_OFF_T result = 0;
|
||||
|
||||
START_PROFILE(syscall_lseek);
|
||||
|
||||
/* Cope with 'stat' file opens. */
|
||||
if (filedes != -1)
|
||||
result = sys_lseek(filedes, offset, whence);
|
||||
if (fsp->fh->fd != -1)
|
||||
result = sys_lseek(fsp->fh->fd, offset, whence);
|
||||
|
||||
/*
|
||||
* We want to maintain the fiction that we can seek
|
||||
@ -677,7 +677,7 @@ static int vfswrap_ntimes(vfs_handle_struct *handle, const char *path, const str
|
||||
static int strict_allocate_ftruncate(vfs_handle_struct *handle, files_struct *fsp, int fd, SMB_OFF_T len)
|
||||
{
|
||||
SMB_STRUCT_STAT st;
|
||||
SMB_OFF_T currpos = SMB_VFS_LSEEK(fsp, fd, 0, SEEK_CUR);
|
||||
SMB_OFF_T currpos = SMB_VFS_LSEEK(fsp, 0, SEEK_CUR);
|
||||
unsigned char zero_space[4096];
|
||||
SMB_OFF_T space_to_write;
|
||||
|
||||
@ -702,7 +702,7 @@ static int strict_allocate_ftruncate(vfs_handle_struct *handle, files_struct *fs
|
||||
return sys_ftruncate(fd, len);
|
||||
|
||||
/* Write out the real space on disk. */
|
||||
if (SMB_VFS_LSEEK(fsp, fd, st.st_size, SEEK_SET) != st.st_size)
|
||||
if (SMB_VFS_LSEEK(fsp, st.st_size, SEEK_SET) != st.st_size)
|
||||
return -1;
|
||||
|
||||
space_to_write = len - st.st_size;
|
||||
@ -720,7 +720,7 @@ static int strict_allocate_ftruncate(vfs_handle_struct *handle, files_struct *fs
|
||||
}
|
||||
|
||||
/* Seek to where we were */
|
||||
if (SMB_VFS_LSEEK(fsp, fd, currpos, SEEK_SET) != currpos)
|
||||
if (SMB_VFS_LSEEK(fsp, currpos, SEEK_SET) != currpos)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
@ -754,7 +754,7 @@ static int vfswrap_ftruncate(vfs_handle_struct *handle, files_struct *fsp, int f
|
||||
/* According to W. R. Stevens advanced UNIX prog. Pure 4.3 BSD cannot
|
||||
extend a file with ftruncate. Provide alternate implementation
|
||||
for this */
|
||||
currpos = SMB_VFS_LSEEK(fsp, fd, 0, SEEK_CUR);
|
||||
currpos = SMB_VFS_LSEEK(fsp, 0, SEEK_CUR);
|
||||
if (currpos == -1) {
|
||||
goto done;
|
||||
}
|
||||
@ -784,14 +784,14 @@ static int vfswrap_ftruncate(vfs_handle_struct *handle, files_struct *fsp, int f
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (SMB_VFS_LSEEK(fsp, fd, len-1, SEEK_SET) != len -1)
|
||||
if (SMB_VFS_LSEEK(fsp, len-1, SEEK_SET) != len -1)
|
||||
goto done;
|
||||
|
||||
if (SMB_VFS_WRITE(fsp, fd, &c, 1)!=1)
|
||||
goto done;
|
||||
|
||||
/* Seek to where we were */
|
||||
if (SMB_VFS_LSEEK(fsp, fd, currpos, SEEK_SET) != currpos)
|
||||
if (SMB_VFS_LSEEK(fsp, currpos, SEEK_SET) != currpos)
|
||||
goto done;
|
||||
result = 0;
|
||||
|
||||
|
@ -122,7 +122,7 @@ static ssize_t smb_full_audit_pwrite(vfs_handle_struct *handle, files_struct *fs
|
||||
const void *data, size_t n,
|
||||
SMB_OFF_T offset);
|
||||
static SMB_OFF_T smb_full_audit_lseek(vfs_handle_struct *handle, files_struct *fsp,
|
||||
int filedes, SMB_OFF_T offset, int whence);
|
||||
SMB_OFF_T offset, int whence);
|
||||
static ssize_t smb_full_audit_sendfile(vfs_handle_struct *handle, int tofd,
|
||||
files_struct *fsp, int fromfd,
|
||||
const DATA_BLOB *hdr, SMB_OFF_T offset,
|
||||
@ -1137,11 +1137,11 @@ static ssize_t smb_full_audit_pwrite(vfs_handle_struct *handle, files_struct *fs
|
||||
}
|
||||
|
||||
static SMB_OFF_T smb_full_audit_lseek(vfs_handle_struct *handle, files_struct *fsp,
|
||||
int filedes, SMB_OFF_T offset, int whence)
|
||||
SMB_OFF_T offset, int whence)
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
result = SMB_VFS_NEXT_LSEEK(handle, fsp, filedes, offset, whence);
|
||||
result = SMB_VFS_NEXT_LSEEK(handle, fsp, offset, whence);
|
||||
|
||||
do_log(SMB_VFS_OP_LSEEK, (result != (ssize_t)-1), handle,
|
||||
"%s", fsp->fsp_name);
|
||||
|
@ -1097,7 +1097,7 @@ static int get_file_version(files_struct *fsp, char *fname,uint32 *major, uint32
|
||||
}
|
||||
|
||||
/* Skip OEM header (if any) and the DOS stub to start of Windows header */
|
||||
if (SMB_VFS_LSEEK(fsp, fsp->fh->fd, SVAL(buf,DOS_HEADER_LFANEW_OFFSET), SEEK_SET) == (SMB_OFF_T)-1) {
|
||||
if (SMB_VFS_LSEEK(fsp, SVAL(buf,DOS_HEADER_LFANEW_OFFSET), SEEK_SET) == (SMB_OFF_T)-1) {
|
||||
DEBUG(3,("get_file_version: File [%s] too short, errno = %d\n",
|
||||
fname, errno));
|
||||
/* Assume this isn't an error... the file just looks sort of like a PE/NE file */
|
||||
@ -1118,7 +1118,7 @@ static int get_file_version(files_struct *fsp, char *fname,uint32 *major, uint32
|
||||
unsigned int section_table_bytes;
|
||||
|
||||
/* Just skip over optional header to get to section table */
|
||||
if (SMB_VFS_LSEEK(fsp, fsp->fh->fd,
|
||||
if (SMB_VFS_LSEEK(fsp,
|
||||
SVAL(buf,PE_HEADER_OPTIONAL_HEADER_SIZE)-(NE_HEADER_SIZE-PE_HEADER_SIZE),
|
||||
SEEK_CUR) == (SMB_OFF_T)-1) {
|
||||
DEBUG(3,("get_file_version: File [%s] Windows optional header too short, errno = %d\n",
|
||||
@ -1164,7 +1164,7 @@ static int get_file_version(files_struct *fsp, char *fname,uint32 *major, uint32
|
||||
}
|
||||
|
||||
/* Seek to the start of the .rsrc section info */
|
||||
if (SMB_VFS_LSEEK(fsp, fsp->fh->fd, section_pos, SEEK_SET) == (SMB_OFF_T)-1) {
|
||||
if (SMB_VFS_LSEEK(fsp, section_pos, SEEK_SET) == (SMB_OFF_T)-1) {
|
||||
DEBUG(3,("get_file_version: PE file [%s] too short for section info, errno = %d\n",
|
||||
fname, errno));
|
||||
goto error_exit;
|
||||
@ -1260,7 +1260,7 @@ static int get_file_version(files_struct *fsp, char *fname,uint32 *major, uint32
|
||||
* twice, as it is simpler to read the code. */
|
||||
if (strcmp(&buf[i], VS_SIGNATURE) == 0) {
|
||||
/* Compute skip alignment to next long address */
|
||||
int skip = -(SMB_VFS_LSEEK(fsp, fsp->fh->fd, 0, SEEK_CUR) - (byte_count - i) +
|
||||
int skip = -(SMB_VFS_LSEEK(fsp, 0, SEEK_CUR) - (byte_count - i) +
|
||||
sizeof(VS_SIGNATURE)) & 3;
|
||||
if (IVAL(buf,i+sizeof(VS_SIGNATURE)+skip) != 0xfeef04bd) continue;
|
||||
|
||||
|
@ -4091,7 +4091,7 @@ void reply_lseek(struct smb_request *req)
|
||||
}
|
||||
|
||||
if (umode == SEEK_END) {
|
||||
if((res = SMB_VFS_LSEEK(fsp,fsp->fh->fd,startpos,umode)) == -1) {
|
||||
if((res = SMB_VFS_LSEEK(fsp,startpos,umode)) == -1) {
|
||||
if(errno == EINVAL) {
|
||||
SMB_OFF_T current_pos = startpos;
|
||||
SMB_STRUCT_STAT sbuf;
|
||||
@ -4105,7 +4105,7 @@ void reply_lseek(struct smb_request *req)
|
||||
|
||||
current_pos += sbuf.st_size;
|
||||
if(current_pos < 0)
|
||||
res = SMB_VFS_LSEEK(fsp,fsp->fh->fd,0,SEEK_SET);
|
||||
res = SMB_VFS_LSEEK(fsp,0,SEEK_SET);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6052,7 +6052,7 @@ NTSTATUS copy_file(TALLOC_CTX *ctx,
|
||||
}
|
||||
|
||||
if ((ofun&3) == 1) {
|
||||
if(SMB_VFS_LSEEK(fsp2,fsp2->fh->fd,0,SEEK_END) == -1) {
|
||||
if(SMB_VFS_LSEEK(fsp2,0,SEEK_END) == -1) {
|
||||
DEBUG(0,("copy_file: error - vfs lseek returned error %s\n", strerror(errno) ));
|
||||
/*
|
||||
* Stop the copy from occurring.
|
||||
|
@ -440,7 +440,7 @@ static NTSTATUS cmd_lseek(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc,
|
||||
default: whence = SEEK_END;
|
||||
}
|
||||
|
||||
pos = SMB_VFS_LSEEK(vfs->files[fd], fd, offset, whence);
|
||||
pos = SMB_VFS_LSEEK(vfs->files[fd], offset, whence);
|
||||
if (pos == (SMB_OFF_T)-1) {
|
||||
printf("lseek: error=%d (%s)\n", errno, strerror(errno));
|
||||
return NT_STATUS_UNSUCCESSFUL;
|
||||
|
Loading…
Reference in New Issue
Block a user