summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>1999-04-04 07:05:03 +0000
committerTim Potter <tpot@samba.org>1999-04-04 07:05:03 +0000
commit5cf21e60c8e406d390ee271b9e5945a9c229695e (patch)
tree3e175aeba97b59e8970967c20748dd934499451d /source3
parent6001bd4c46b5b5bda423c314de0bb68a4b55ab1d (diff)
downloadsamba-5cf21e60c8e406d390ee271b9e5945a9c229695e.tar.gz
samba-5cf21e60c8e406d390ee271b9e5945a9c229695e.tar.bz2
samba-5cf21e60c8e406d390ee271b9e5945a9c229695e.zip
Use VFS operations for file I/O.
Modified args to read_predict to pass in fsp. Renamed sync_file() function to sys_sync_file(). (This used to be commit 7ced7fd3958c76303e4b6019b5d54eda666d7b33)
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/fileio.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/source3/smbd/fileio.c b/source3/smbd/fileio.c
index c7ffb6412d..7ab13f33f4 100644
--- a/source3/smbd/fileio.c
+++ b/source3/smbd/fileio.c
@@ -36,7 +36,7 @@ SMB_OFF_T seek_file(files_struct *fsp,SMB_OFF_T pos)
if (fsp->print_file && lp_postscript(fsp->conn->service))
offset = 3;
- seek_ret = sys_lseek(fsp->fd_ptr->fd,pos+offset,SEEK_SET);
+ seek_ret = fsp->conn->vfs_ops.lseek(fsp->fd_ptr->fd,pos+offset,SEEK_SET);
if((seek_ret == -1) || (seek_ret != pos+offset)) {
DEBUG(0,("seek_file: sys_lseek failed. Error was %s\n", strerror(errno) ));
@@ -62,7 +62,7 @@ ssize_t read_file(files_struct *fsp,char *data,SMB_OFF_T pos,size_t n)
#if USE_READ_PREDICTION
if (!fsp->can_write) {
- ret = read_predict(fsp->fd_ptr->fd,pos,data,NULL,n);
+ ret = read_predict(fsp, fsp->fd_ptr->fd,pos,data,NULL,n);
data += ret;
n -= ret;
@@ -88,9 +88,9 @@ ssize_t read_file(files_struct *fsp,char *data,SMB_OFF_T pos,size_t n)
DEBUG(3,("read_file: Failed to seek to %.0f\n",(double)pos));
return(ret);
}
-
+
if (n > 0) {
- readret = read(fsp->fd_ptr->fd,data,n);
+ readret = fsp->conn->vfs_ops.read(fsp->fd_ptr->fd,data,n);
if (readret > 0) ret += readret;
}
@@ -104,7 +104,6 @@ write to a file
ssize_t write_file(files_struct *fsp,char *data,size_t n)
{
-
if (!fsp->can_write) {
errno = EPERM;
return(0);
@@ -113,7 +112,7 @@ ssize_t write_file(files_struct *fsp,char *data,size_t n)
if (!fsp->modified) {
SMB_STRUCT_STAT st;
fsp->modified = True;
- if (sys_fstat(fsp->fd_ptr->fd,&st) == 0) {
+ if (fsp->conn->vfs_ops.fstat(fsp->fd_ptr->fd,&st) == 0) {
int dosmode = dos_mode(fsp->conn,fsp->fsp_name,&st);
if (MAP_ARCHIVE(fsp->conn) && !IS_DOS_ARCHIVE(dosmode)) {
file_chmod(fsp->conn,fsp->fsp_name,dosmode | aARCH,&st);
@@ -121,7 +120,7 @@ ssize_t write_file(files_struct *fsp,char *data,size_t n)
}
}
- return(write_data(fsp->fd_ptr->fd,data,n));
+ return(vfs_write_data(fsp,data,n));
}
@@ -129,7 +128,7 @@ ssize_t write_file(files_struct *fsp,char *data,size_t n)
sync a file
********************************************************************/
-void sync_file(connection_struct *conn, files_struct *fsp)
+void sys_sync_file(struct connection_struct *conn, files_struct *fsp)
{
#ifdef HAVE_FSYNC
if(lp_strict_sync(SNUM(conn)))