mirror of
https://github.com/samba-team/samba.git
synced 2024-12-31 17:18:04 +03:00
Use VFS operations for file I/O.
Pass files_struct and connection_struct to read_predict() and do_read_prediction() functions, respectively.
This commit is contained in:
parent
5051a21061
commit
6479abc5b9
@ -42,7 +42,7 @@ extern time_t smb_last_time;
|
||||
/****************************************************************************
|
||||
handle read prediction on a file
|
||||
****************************************************************************/
|
||||
ssize_t read_predict(int fd,SMB_OFF_T offset,char *buf,char **ptr,size_t num)
|
||||
ssize_t read_predict(files_struct *fsp, int fd,SMB_OFF_T offset,char *buf,char **ptr,size_t num)
|
||||
{
|
||||
ssize_t ret = 0;
|
||||
ssize_t possible = rp_length - (offset - rp_offset);
|
||||
@ -70,7 +70,7 @@ ssize_t read_predict(int fd,SMB_OFF_T offset,char *buf,char **ptr,size_t num)
|
||||
|
||||
/* Find the end of the file - ensure we don't
|
||||
read predict beyond it. */
|
||||
if(sys_fstat(fd,&rp_stat) < 0)
|
||||
if(fsp->conn->vfs_ops.fstat(fd,&rp_stat) < 0)
|
||||
{
|
||||
DEBUG(0,("read-prediction failed on fstat. Error was %s\n", strerror(errno)));
|
||||
predict_skip = True;
|
||||
@ -95,7 +95,7 @@ ssize_t read_predict(int fd,SMB_OFF_T offset,char *buf,char **ptr,size_t num)
|
||||
/****************************************************************************
|
||||
pre-read some data
|
||||
****************************************************************************/
|
||||
void do_read_prediction(void)
|
||||
void do_read_prediction(connection_struct *conn)
|
||||
{
|
||||
static size_t readsize = 0;
|
||||
|
||||
@ -134,13 +134,13 @@ void do_read_prediction(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (sys_lseek(rp_fd,rp_offset,SEEK_SET) != rp_offset) {
|
||||
if (conn->vfs_ops.lseek(rp_fd,rp_offset,SEEK_SET) != rp_offset) {
|
||||
rp_fd = -1;
|
||||
rp_predict_fd = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
rp_length = read(rp_fd,rp_buffer,rp_predict_length);
|
||||
rp_length = conn->vfs_ops.read(rp_fd,rp_buffer,rp_predict_length);
|
||||
rp_time = time(NULL);
|
||||
if (rp_length < 0)
|
||||
rp_length = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user