-C Add\san\sassert()\sto\sverify\sthat\sthe\sdirty-page\slist\sin\sthe\spager\sis\nvalid\sbefore\susing\sit.\s(CVS\s4810)
-D 2008-02-26T14:46:05
+C Add\scommentary\sto\sclarify\swhat\sis\shappening\swhen\san\sI/O\serror\soccurs\swhile\nwriting\sdirty\spages\sto\sthe\sdatabase\sfile.\s(CVS\s4811)
+D 2008-02-26T16:16:45
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in 6be8d7c60afa918807e77ec4459f8aff68c996d9
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
F src/os_win.c aa3f4bbee3b8c182d25a33fbc319f486857c12c1
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
-F src/pager.c 1d5d4167f80bc5d487c026aea5fe08753f9a5c78
+F src/pager.c ee55f9c201d1df44e684aa42b31f47c5a8ec8ff0
F src/pager.h 8174615ffd14ccc2cad2b081b919a398fa95e3f9
F src/parse.y 00f2698c8ae84f315be5e3f10b63c94f531fdd6d
F src/pragma.c e3f39f8576234887ecd0c1de43dc51af5855930c
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 427e7f8b4a54eb6136174af63a467324d6fb051e
-R 24a233a27b1c7d161b4f137b2e844c7b
+P 942daf94ef1f8ac678988e175ef968a2d3f801e9
+R 78628a049bcafa60db998c6268ba7168
U drh
-Z 2c7770a62aa3333221324adf20aa5a18
+Z 794fa50c5e327e7a323854fb5d8e9a99
-942daf94ef1f8ac678988e175ef968a2d3f801e9
\ No newline at end of file
+afe49d81f479715e13f18a97170d414a853a6cfe
\ No newline at end of file
** file simultaneously, or one process from reading the database while
** another is writing.
**
-** @(#) $Id: pager.c,v 1.410 2008/02/26 14:46:05 drh Exp $
+** @(#) $Id: pager.c,v 1.411 2008/02/26 16:16:45 drh Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h"
pPg = pager_get_all_dirty_pages(pPager);
rc = pager_write_pagelist(pPg);
if( rc!=SQLITE_OK ){
- while( pPg && !pPg->dirty ){ pPg = pPg->pDirty; }
- pPager->pDirty = pPg;
+ assert( rc!=SQLITE_IOERR_BLOCKED );
+ /* The error might have left the dirty list all fouled up here,
+ ** but that does not matter because if the if the dirty list did
+ ** get corrupted, then the transaction will roll back and
+ ** discard the dirty list. There is an assert in
+ ** pager_get_all_dirty_pages() that verifies that no attempt
+ ** is made to use an invalid dirty list.
+ */
goto sync_exit;
}
pPager->pDirty = 0;