*/
 #ifndef MDB_FDATASYNC
 # define MDB_FDATASYNC fdatasync
-# ifndef MDB_SAFE_FDATASYNC
-/** Linux ext3fs and ext4fs don't implement fdatasync correctly
- *     on older kernels. xfs is known to be safe. https://lkml.org/lkml/2012/9/3/83
- */
-#  define      MDB_BROKEN_FDATASYNC
-# endif
 #endif
 
 #ifndef MDB_MSYNC
        MDB_txn         *me_txn;                /**< current write transaction */
        MDB_txn         *me_txn0;               /**< prealloc'd write transaction */
        size_t          me_mapsize;             /**< size of the data memory map */
-       size_t          me_size;                /**< current file size */
+       off_t           me_size;                /**< current file size */
        pgno_t          me_maxpg;               /**< me_mapsize / me_psize */
        MDB_dbx         *me_dbxs;               /**< array of static DB info */
        uint16_t        *me_dbflags;    /**< array of flags from MDB_db.md_flags */
        return rc;
 }
 
-#ifdef MDB_BROKEN_FDATASYNC
-static int ESECT mdb_fsize(HANDLE fd, size_t *size);
-#endif
-
 int
 mdb_env_sync(MDB_env *env, int force)
 {
                                rc = ErrCode();
 #endif
                } else {
-#ifdef MDB_BROKEN_FDATASYNC
-                       size_t sz = 0;
-                       if (mdb_fsize(env->me_fd, &sz) != MDB_SUCCESS || sz != env->me_size) {
-                               if (fsync(env->me_fd))
-                                       rc = ErrCode();
-                               else if (sz)
-                                       env->me_size = sz;
-                       } else
-#endif
                        if (MDB_FDATASYNC(env->me_fd))
                                rc = ErrCode();
                }