diff options
| -rw-r--r-- | fs/ubifs/io.c | 17 | ||||
| -rw-r--r-- | fs/ubifs/ubifs.h | 5 | 
2 files changed, 7 insertions, 15 deletions
| diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c index 9fcf6c38c1bc..48d0af94b26a 100644 --- a/fs/ubifs/io.c +++ b/fs/ubifs/io.c @@ -828,7 +828,6 @@ out:  int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf)  {  	size_t size; -	ktime_t hardlimit;  	wbuf->buf = kmalloc(c->min_io_size, GFP_KERNEL);  	if (!wbuf->buf) @@ -854,18 +853,10 @@ int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf)  	hrtimer_init(&wbuf->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);  	wbuf->timer.function = wbuf_timer_callback_nolock; -	/* -	 * Make write-buffer soft limit to be 20% of the hard limit. The -	 * write-buffer timer is allowed to expire any time between the soft -	 * and hard limits. -	 */ -	hardlimit = ktime_set(DEFAULT_WBUF_TIMEOUT_SECS, 0); -	wbuf->delta = DEFAULT_WBUF_TIMEOUT_SECS * 1000000000ULL * 2 / 10; -	if (wbuf->delta > ULONG_MAX) -		wbuf->delta = ULONG_MAX; -	wbuf->softlimit = ktime_sub_ns(hardlimit, wbuf->delta); -	hrtimer_set_expires_range_ns(&wbuf->timer,  wbuf->softlimit, -				     wbuf->delta); +	wbuf->softlimit = ktime_set(WBUF_TIMEOUT_SOFTLIMIT, 0); +	wbuf->delta = WBUF_TIMEOUT_HARDLIMIT - WBUF_TIMEOUT_SOFTLIMIT; +	wbuf->delta *= 1000000000ULL; +	ubifs_assert(wbuf->delta <= ULONG_MAX);  	return 0;  } diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index 97bc9d09d54b..c3a707d458a1 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h @@ -95,8 +95,9 @@   */  #define BGT_NAME_PATTERN "ubifs_bgt%d_%d" -/* Default write-buffer synchronization timeout in seconds */ -#define DEFAULT_WBUF_TIMEOUT_SECS 5 +/* Write-buffer synchronization timeout interval in seconds */ +#define WBUF_TIMEOUT_SOFTLIMIT 3 +#define WBUF_TIMEOUT_HARDLIMIT 5  /* Maximum possible inode number (only 32-bit inodes are supported now) */  #define MAX_INUM 0xFFFFFFFF | 
