diff --git a/buildheader/db.h_4_1 b/buildheader/db.h_4_1
index e90cc8eb91de9f91d2cd4422abe2833789922e75..a07571dc1ee16f29294b675fe6ada4e898bdd0be 100644
--- a/buildheader/db.h_4_1
+++ b/buildheader/db.h_4_1
@@ -360,6 +360,7 @@ struct __toku_db {
   int (*pre_acquire_table_lock)(DB*, DB_TXN*);
   void *app_private; /* 32-bit offset=16 size=4, 64=bit offset=32 size=8 */
   DB_ENV *dbenv; /* 32-bit offset=20 size=4, 64=bit offset=40 size=8 */
+  int (*pre_acquire_fileops_lock)(DB*, DB_TXN*);
   const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/;
   const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/;
   int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */;
@@ -369,7 +370,7 @@ struct __toku_db {
   int (*flatten)(DB*, DB_TXN*) /* Flatten a dictionary, similar to (but faster than) a table scan */;
   int (*optimize)(DB*) /* Run garbage collecion and promote all transactions older than oldest. Amortized (happens during flattening) */;
   int (*get_fragmentation)(DB*,TOKU_DB_FRAGMENTATION);
-  void* __toku_dummy0[20];
+  void* __toku_dummy0[19];
   char __toku_dummy1[96];
   void *api_internal; /* 32-bit offset=236 size=4, 64=bit offset=376 size=8 */
   void* __toku_dummy2[5];
diff --git a/buildheader/db.h_4_3 b/buildheader/db.h_4_3
index aa06d19be623d7550df2c8e2cc36fb46d2065ff0..2920779dbda0e8226dbe3a9ad74f9a0bfa7ca397 100644
--- a/buildheader/db.h_4_3
+++ b/buildheader/db.h_4_3
@@ -370,6 +370,7 @@ struct __toku_db {
   int (*pre_acquire_table_lock)(DB*, DB_TXN*);
   void *app_private; /* 32-bit offset=16 size=4, 64=bit offset=32 size=8 */
   DB_ENV *dbenv; /* 32-bit offset=20 size=4, 64=bit offset=40 size=8 */
+  int (*pre_acquire_fileops_lock)(DB*, DB_TXN*);
   const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/;
   const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/;
   int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */;
@@ -379,7 +380,7 @@ struct __toku_db {
   int (*flatten)(DB*, DB_TXN*) /* Flatten a dictionary, similar to (but faster than) a table scan */;
   int (*optimize)(DB*) /* Run garbage collecion and promote all transactions older than oldest. Amortized (happens during flattening) */;
   int (*get_fragmentation)(DB*,TOKU_DB_FRAGMENTATION);
-  void* __toku_dummy0[23];
+  void* __toku_dummy0[22];
   char __toku_dummy1[96];
   void *api_internal; /* 32-bit offset=248 size=4, 64=bit offset=400 size=8 */
   void* __toku_dummy2[5];
diff --git a/buildheader/db.h_4_4 b/buildheader/db.h_4_4
index bcda6cd47d4380a3326aa044da5f4bd3ec424cbf..f3b20ff7a8b00e0072577387e84d3d9d723a3b64 100644
--- a/buildheader/db.h_4_4
+++ b/buildheader/db.h_4_4
@@ -372,6 +372,7 @@ struct __toku_db {
   int (*pre_acquire_table_lock)(DB*, DB_TXN*);
   void *app_private; /* 32-bit offset=16 size=4, 64=bit offset=32 size=8 */
   DB_ENV *dbenv; /* 32-bit offset=20 size=4, 64=bit offset=40 size=8 */
+  int (*pre_acquire_fileops_lock)(DB*, DB_TXN*);
   const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/;
   const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/;
   int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */;
@@ -381,7 +382,7 @@ struct __toku_db {
   int (*flatten)(DB*, DB_TXN*) /* Flatten a dictionary, similar to (but faster than) a table scan */;
   int (*optimize)(DB*) /* Run garbage collecion and promote all transactions older than oldest. Amortized (happens during flattening) */;
   int (*get_fragmentation)(DB*,TOKU_DB_FRAGMENTATION);
-  void* __toku_dummy0[25];
+  void* __toku_dummy0[24];
   char __toku_dummy1[96];
   void *api_internal; /* 32-bit offset=256 size=4, 64=bit offset=416 size=8 */
   void* __toku_dummy2[5];
diff --git a/buildheader/db.h_4_5 b/buildheader/db.h_4_5
index fa72a290ca0d584236ef33c0a21dbf3d9128b4d5..efab0ad04bf4ad06d715553523a283fd68095acd 100644
--- a/buildheader/db.h_4_5
+++ b/buildheader/db.h_4_5
@@ -372,6 +372,7 @@ struct __toku_db {
   int (*pre_acquire_table_lock)(DB*, DB_TXN*);
   void *app_private; /* 32-bit offset=16 size=4, 64=bit offset=32 size=8 */
   DB_ENV *dbenv; /* 32-bit offset=20 size=4, 64=bit offset=40 size=8 */
+  int (*pre_acquire_fileops_lock)(DB*, DB_TXN*);
   const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/;
   const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/;
   int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */;
@@ -381,7 +382,7 @@ struct __toku_db {
   int (*flatten)(DB*, DB_TXN*) /* Flatten a dictionary, similar to (but faster than) a table scan */;
   int (*optimize)(DB*) /* Run garbage collecion and promote all transactions older than oldest. Amortized (happens during flattening) */;
   int (*get_fragmentation)(DB*,TOKU_DB_FRAGMENTATION);
-  void* __toku_dummy0[28];
+  void* __toku_dummy0[27];
   char __toku_dummy1[96];
   void *api_internal; /* 32-bit offset=268 size=4, 64=bit offset=440 size=8 */
   void* __toku_dummy2[5];
diff --git a/buildheader/db.h_4_6 b/buildheader/db.h_4_6
index 38086da459f6ead7b488834423e87debf69f967b..b3c41680ffe0399ed7576e0cbf18285646c01c52 100644
--- a/buildheader/db.h_4_6
+++ b/buildheader/db.h_4_6
@@ -375,6 +375,7 @@ struct __toku_db {
   void *app_private; /* 32-bit offset=20 size=4, 64=bit offset=32 size=8 */
   DB_ENV *dbenv; /* 32-bit offset=24 size=4, 64=bit offset=40 size=8 */
   int (*pre_acquire_table_lock)(DB*, DB_TXN*);
+  int (*pre_acquire_fileops_lock)(DB*, DB_TXN*);
   const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/;
   const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/;
   int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */;
@@ -384,7 +385,7 @@ struct __toku_db {
   int (*flatten)(DB*, DB_TXN*) /* Flatten a dictionary, similar to (but faster than) a table scan */;
   int (*optimize)(DB*) /* Run garbage collecion and promote all transactions older than oldest. Amortized (happens during flattening) */;
   int (*get_fragmentation)(DB*,TOKU_DB_FRAGMENTATION);
-  void* __toku_dummy1[32];
+  void* __toku_dummy1[31];
   char __toku_dummy2[80];
   void *api_internal; /* 32-bit offset=276 size=4, 64=bit offset=464 size=8 */
   void* __toku_dummy3[5];
diff --git a/buildheader/make_db_h.c b/buildheader/make_db_h.c
index ce5c5f37316cb126460c327bdc6af844826bc70a..302e404857dd74560d2d7f804eabea2b4b075367 100644
--- a/buildheader/make_db_h.c
+++ b/buildheader/make_db_h.c
@@ -617,6 +617,7 @@ int main (int argc __attribute__((__unused__)), char *const argv[] __attribute__
 	const char *extra[]={"int (*key_range64)(DB*, DB_TXN *, DBT *, u_int64_t *less, u_int64_t *equal, u_int64_t *greater, int *is_exact)",
 			     "int (*stat64)(DB *, DB_TXN *, DB_BTREE_STAT64 *)",
 			     "int (*pre_acquire_table_lock)(DB*, DB_TXN*)",
+			     "int (*pre_acquire_fileops_lock)(DB*, DB_TXN*)",
 			     "const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/",
 			     "const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/",
                              "int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */",
diff --git a/buildheader/tdb.h b/buildheader/tdb.h
index b51a225d92e069c527ef7e256c5481b3acb085ba..63d458c3c423ca761b6c1387c20ceaa6da42d8f4 100644
--- a/buildheader/tdb.h
+++ b/buildheader/tdb.h
@@ -344,6 +344,7 @@ struct __toku_db {
   void *app_private;
   DB_ENV *dbenv;
   int (*pre_acquire_table_lock)(DB*, DB_TXN*);
+  int (*pre_acquire_fileops_lock)(DB*, DB_TXN*);
   const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/;
   const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/;
   int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */;
diff --git a/include/db.h b/include/db.h
index b51a225d92e069c527ef7e256c5481b3acb085ba..63d458c3c423ca761b6c1387c20ceaa6da42d8f4 100644
--- a/include/db.h
+++ b/include/db.h
@@ -344,6 +344,7 @@ struct __toku_db {
   void *app_private;
   DB_ENV *dbenv;
   int (*pre_acquire_table_lock)(DB*, DB_TXN*);
+  int (*pre_acquire_fileops_lock)(DB*, DB_TXN*);
   const DBT* (*dbt_pos_infty)(void) /* Return the special DBT that refers to positive infinity in the lock table.*/;
   const DBT* (*dbt_neg_infty)(void)/* Return the special DBT that refers to negative infinity in the lock table.*/;
   int (*row_size_supported) (DB*, u_int32_t) /* Test whether a row size is supported. */;