#define BULK_BUFFER_SIZE 16384 * 4//4096
/* flush after every 4 meg of writes to avoid excessive block level caching */
-#define MAX_UNFLUSHED_BYTES (512 * 1024)// (4 * 1024 * 1024) //original value is 4MB,Modifyed by xbw at 2011-08-18
+//#define MAX_UNFLUSHED_BYTES (512 * 1024)// (4 * 1024 * 1024) //original value is 4MB,Modifyed by xbw at 2011-08-18
+#define MAX_UNFLUSHED_PACKETS 16
/*-------------------------------------------------------------------------*/
struct file *filp;
loff_t file_length;
loff_t num_sectors;
- unsigned int unflushed_bytes;
+ unsigned int unflushed_packet;
unsigned int ro : 1;
unsigned int prevent_medium_removal : 1;
fsg->residue -= nwritten;
#ifdef MAX_UNFLUSHED_BYTES
- curlun->unflushed_bytes += nwritten;
- if (curlun->unflushed_bytes >= MAX_UNFLUSHED_BYTES) {
+ curlun->unflushed_packet ++;
+ if (curlun->unflushed_packet >= MAX_UNFLUSHED_PACKETS) {
fsync_sub(curlun);
- curlun->unflushed_bytes = 0;
+ curlun->unflushed_packet = 0;
}
#endif
/* If an error occurred, report it and its position */
curlun->ro = ro;
curlun->filp = filp;
curlun->file_length = size;
- curlun->unflushed_bytes = 0;
+ curlun->unflushed_packet = 0;
curlun->num_sectors = num_sectors;
LDBG(curlun, "open backing file: %s size: %lld num_sectors: %lld\n",
filename, size, num_sectors);