77 * Portions Copyright (c) 1994, Regents of the University of California
88 *
99 * IDENTIFICATION
10- * $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.61 2000/06/15 04 :10:00 momjian Exp $
10+ * $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.62 2000/07/05 21 :10:05 tgl Exp $
1111 *
1212 * NOTES:
1313 *
@@ -809,11 +809,13 @@ FileWrite(File file, char *buffer, int amount)
809809
810810FileAccess (file );
811811returnCode = write (VfdCache [file ].fd ,buffer ,amount );
812- if (returnCode > 0 ) {
812+ if (returnCode > 0 )
813+ {
813814VfdCache [file ].seekPos += returnCode ;
814- /* mark the file as needing fsync */
815- VfdCache [file ].fdstate |=FD_DIRTY ;
816- }else
815+ /* mark the file as needing fsync */
816+ VfdCache [file ].fdstate |=FD_DIRTY ;
817+ }
818+ else
817819VfdCache [file ].seekPos = FileUnknownPos ;
818820
819821return returnCode ;
@@ -832,6 +834,8 @@ FileSeek(File file, long offset, int whence)
832834switch (whence )
833835{
834836case SEEK_SET :
837+ if (offset < 0 )
838+ elog (ERROR ,"FileSeek: invalid offset: %ld" ,offset );
835839VfdCache [file ].seekPos = offset ;
836840break ;
837841case SEEK_CUR :
@@ -844,18 +848,21 @@ FileSeek(File file, long offset, int whence)
844848default :
845849elog (ERROR ,"FileSeek: invalid whence: %d" ,whence );
846850break ;
851+ }
847852}
848- }else
849- switch (whence ) {
853+ else
854+ {
855+ switch (whence )
856+ {
850857case SEEK_SET :
851858if (offset < 0 )
852859elog (ERROR ,"FileSeek: invalid offset: %ld" ,offset );
853860if (VfdCache [file ].seekPos != offset )
854861VfdCache [file ].seekPos = lseek (VfdCache [file ].fd ,offset ,whence );
855862break ;
856863case SEEK_CUR :
857- if (( offset != 0 ) || ( VfdCache [file ].seekPos == FileUnknownPos ));
858- VfdCache [file ].seekPos = lseek (VfdCache [file ].fd ,offset ,whence );
864+ if (offset != 0 || VfdCache [file ].seekPos == FileUnknownPos )
865+ VfdCache [file ].seekPos = lseek (VfdCache [file ].fd ,offset ,whence );
859866break ;
860867case SEEK_END :
861868VfdCache [file ].seekPos = lseek (VfdCache [file ].fd ,offset ,whence );
@@ -864,6 +871,7 @@ FileSeek(File file, long offset, int whence)
864871elog (ERROR ,"FileSeek: invalid whence: %d" ,whence );
865872break ;
866873}
874+ }
867875return VfdCache [file ].seekPos ;
868876}
869877