svn commit: samba r9985 - in branches/SAMBA_3_0/source/smbd: .

jpeach at samba.org jpeach at samba.org
Sat Sep 3 07:19:29 GMT 2005


Author: jpeach
Date: 2005-09-03 07:19:28 +0000 (Sat, 03 Sep 2005)
New Revision: 9985

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9985

Log:
Move the all the strict sync logic into file_sync().

Modified:
   branches/SAMBA_3_0/source/smbd/aio.c
   branches/SAMBA_3_0/source/smbd/fileio.c
   branches/SAMBA_3_0/source/smbd/files.c
   branches/SAMBA_3_0/source/smbd/reply.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/aio.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/aio.c	2005-09-03 02:08:25 UTC (rev 9984)
+++ branches/SAMBA_3_0/source/smbd/aio.c	2005-09-03 07:19:28 UTC (rev 9985)
@@ -475,9 +475,7 @@
 		}
                                                                                                                                   
 		DEBUG(3,("handle_aio_write: fnum=%d num=%d wrote=%d\n", fsp->fnum, (int)numtowrite, (int)nwritten));
-		if (lp_syncalways(SNUM(fsp->conn)) || write_through) {
-			sync_file(fsp->conn,fsp);
-		}
+		sync_file(fsp->conn,fsp, write_through);
 	}
 
 	show_msg(outbuf);

Modified: branches/SAMBA_3_0/source/smbd/fileio.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/fileio.c	2005-09-03 02:08:25 UTC (rev 9984)
+++ branches/SAMBA_3_0/source/smbd/fileio.c	2005-09-03 07:19:28 UTC (rev 9985)
@@ -834,15 +834,18 @@
 sync a file
 ********************************************************************/
 
-void sync_file(connection_struct *conn, files_struct *fsp)
+void sync_file(connection_struct *conn, files_struct *fsp, BOOL write_through)
 {
-	if(lp_strict_sync(SNUM(conn)) && fsp->fh->fd != -1) {
+       	if (fsp->fh->fd == -1)
+		return;
+
+	if (lp_strict_sync(SNUM(conn)) &&
+	    (lp_syncalways(SNUM(conn)) || write_through)) {
 		flush_write_cache(fsp, SYNC_FLUSH);
 		SMB_VFS_FSYNC(fsp,fsp->fh->fd);
 	}
 }
 
-
 /************************************************************
  Perform a stat whether a valid fd or not.
 ************************************************************/

Modified: branches/SAMBA_3_0/source/smbd/files.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/files.c	2005-09-03 02:08:25 UTC (rev 9984)
+++ branches/SAMBA_3_0/source/smbd/files.c	2005-09-03 07:19:28 UTC (rev 9985)
@@ -427,7 +427,7 @@
 	for (fsp=Files;fsp;fsp=next) {
 		next=fsp->next;
 		if ((conn == fsp->conn) && (fsp->fh->fd != -1)) {
-			sync_file(conn,fsp);
+			sync_file(conn, fsp, True /* write through */);
 		}
 	}
 }

Modified: branches/SAMBA_3_0/source/smbd/reply.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/reply.c	2005-09-03 02:08:25 UTC (rev 9984)
+++ branches/SAMBA_3_0/source/smbd/reply.c	2005-09-03 07:19:28 UTC (rev 9985)
@@ -2786,8 +2786,7 @@
  
 	SSVAL(outbuf,smb_vwv0,total_written);
 
-	if ((lp_syncalways(SNUM(conn)) || write_through) && lp_strict_sync(SNUM(conn)))
-		sync_file(conn,fsp);
+	sync_file(conn, fsp, write_through);
 
 	DEBUG(3,("writebraw2 fnum=%d start=%.0f num=%d wrote=%d\n",
 		fsp->fnum, (double)startpos, (int)numtowrite,(int)total_written));
@@ -2852,8 +2851,7 @@
 		nwritten = write_file(fsp,data,startpos,numtowrite);
 	}
   
-	if (lp_syncalways(SNUM(conn)))
-		sync_file(conn,fsp);
+	sync_file(conn, fsp, False /* write through */);
 
 	if(((nwritten == 0) && (numtowrite != 0))||(nwritten < 0)) {
 		END_PROFILE(SMBwriteunlock);
@@ -2940,8 +2938,7 @@
 	} else
 		nwritten = write_file(fsp,data,startpos,numtowrite);
   
-	if (lp_syncalways(SNUM(conn)))
-		sync_file(conn,fsp);
+	sync_file(conn, fsp, False);
 
 	if(((nwritten == 0) && (numtowrite != 0))||(nwritten < 0)) {
 		END_PROFILE(SMBwrite);
@@ -3068,8 +3065,7 @@
 	DEBUG(3,("writeX fnum=%d num=%d wrote=%d\n",
 		fsp->fnum, (int)numtowrite, (int)nwritten));
 
-	if (lp_syncalways(SNUM(conn)) || write_through)
-		sync_file(conn,fsp);
+	sync_file(conn, fsp, write_through);
 
 	END_PROFILE(SMBwriteX);
 	return chain_reply(inbuf,outbuf,length,bufsize);
@@ -3166,7 +3162,7 @@
 	if (!fsp) {
 		file_sync_all(conn);
 	} else {
-		sync_file(conn,fsp);
+		sync_file(conn,fsp, True);
 	}
 	
 	DEBUG(3,("flush\n"));
@@ -5433,8 +5429,7 @@
 
 	nwritten = write_file(fsp,data,startpos,numtowrite);
 
-	if(lp_syncalways(SNUM(conn)) || write_through)
-		sync_file(conn,fsp);
+	sync_file(conn, fsp, write_through);
   
 	if(nwritten < (ssize_t)numtowrite) {
 		END_PROFILE(SMBwriteBmpx);
@@ -5546,8 +5541,7 @@
 
 	nwritten = write_file(fsp,data,startpos,numtowrite);
 
-	if(lp_syncalways(SNUM(conn)) || write_through)
-		sync_file(conn,fsp);
+	sync_file(conn, fsp, write_through);
   
 	if (nwritten < (ssize_t)numtowrite) {
 		if(write_through) {



More information about the samba-cvs mailing list