Make sure the Btree mutex is held when setting the locking mode and the
secure delete flag when attaching a shared-cache database.

FossilOrigin-Name: 6bef7ede2bbf0a51729e1943b0b0c895cb57c718
diff --git a/manifest b/manifest
index 3dc59d5..022b156 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\sthe\scell\soverflow\spage\snumber\scache\sthread\srace\sfix\sfrom\strunk.
-D 2014-12-12T00:26:59.974
+C Make\ssure\sthe\sBtree\smutex\sis\sheld\swhen\ssetting\sthe\slocking\smode\sand\sthe\nsecure\sdelete\sflag\swhen\sattaching\sa\sshared-cache\sdatabase.
+D 2014-12-12T00:40:58.882
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 6c4f961fa91d0b4fa121946a19f9e5eac2f2f809
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -168,7 +168,7 @@
 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
 F src/alter.c ba266a779bc7ce10e52e59e7d3dc79fa342e8fdb
 F src/analyze.c 7a2986e6ea8247e5f21aca3d0b584598f58d84fe
-F src/attach.c f4e94df2d1826feda65eb0939f7f6f5f923a0ad9
+F src/attach.c 7f6b3fafa2290b407e4a94dcf1afda7ec0fe394b
 F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240
 F src/backup.c 7ddee9c7d505e07e959a575b18498f17c71e53ea
 F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
@@ -1229,7 +1229,7 @@
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P b7489f9451628c68f1dfc1d457fc161a0921c631 fc157dd7f18c94b7ae5f155e1b4a5d7714b7da8c
-R e0ac31855803c332d28311de41dcc42f
+P cefad47ec2ad58d7ecd58bab9a261e4d5816cd69
+R 43ea10bc03cfab6b8cae2a465b94aee2
 U drh
-Z 01b0e5c37f35211bc16bf2591a3974d7
+Z 01d198dabe70d93c23f2c971bf866fd9
diff --git a/manifest.uuid b/manifest.uuid
index b6c1d34..2d44076 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-cefad47ec2ad58d7ecd58bab9a261e4d5816cd69
\ No newline at end of file
+6bef7ede2bbf0a51729e1943b0b0c895cb57c718
\ No newline at end of file
diff --git a/src/attach.c b/src/attach.c
index cf52bb2..de87429 100644
--- a/src/attach.c
+++ b/src/attach.c
@@ -150,6 +150,7 @@
         "attached databases must use the same text encoding as main database");
       rc = SQLITE_ERROR;
     }
+    sqlite3BtreeEnter(aNew->pBt);
     pPager = sqlite3BtreePager(aNew->pBt);
     sqlite3PagerLockingMode(pPager, db->dfltLockMode);
     sqlite3BtreeSecureDelete(aNew->pBt,
@@ -157,6 +158,7 @@
 #ifndef SQLITE_OMIT_PAGER_PRAGMAS
     sqlite3BtreeSetPagerFlags(aNew->pBt, 3 | (db->flags & PAGER_FLAGS_MASK));
 #endif
+    sqlite3BtreeLeave(aNew->pBt);
   }
   aNew->safety_level = 3;
   aNew->zName = sqlite3DbStrDup(db, zName);