From 6a8deefc1c0669dc4a273324c61b0003ac2bb607 Mon Sep 17 00:00:00 2001 From: yangkai Date: Wed, 31 Aug 2011 10:24:26 +0800 Subject: [PATCH] change msc buffer flush depends on usb packets --- drivers/usb/gadget/f_mass_storage.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) mode change 100644 => 100755 drivers/usb/gadget/f_mass_storage.c diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c old mode 100644 new mode 100755 index 71798209bc83..32bf6fcc625e --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -84,7 +84,8 @@ #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 /*-------------------------------------------------------------------------*/ @@ -233,7 +234,7 @@ struct lun { 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; @@ -1079,10 +1080,10 @@ static int do_write(struct fsg_dev *fsg) 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 */ @@ -2754,7 +2755,7 @@ static int open_backing_file(struct fsg_dev *fsg, struct lun *curlun, 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); -- 2.34.1