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: | |||
| 828 | int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf) | 828 | int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf) |
| 829 | { | 829 | { |
| 830 | size_t size; | 830 | size_t size; |
| 831 | ktime_t hardlimit; | ||
| 832 | 831 | ||
| 833 | wbuf->buf = kmalloc(c->min_io_size, GFP_KERNEL); | 832 | wbuf->buf = kmalloc(c->min_io_size, GFP_KERNEL); |
| 834 | if (!wbuf->buf) | 833 | if (!wbuf->buf) |
| @@ -854,18 +853,10 @@ int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf) | |||
| 854 | 853 | ||
| 855 | hrtimer_init(&wbuf->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); | 854 | hrtimer_init(&wbuf->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
| 856 | wbuf->timer.function = wbuf_timer_callback_nolock; | 855 | wbuf->timer.function = wbuf_timer_callback_nolock; |
| 857 | /* | 856 | wbuf->softlimit = ktime_set(WBUF_TIMEOUT_SOFTLIMIT, 0); |
| 858 | * Make write-buffer soft limit to be 20% of the hard limit. The | 857 | wbuf->delta = WBUF_TIMEOUT_HARDLIMIT - WBUF_TIMEOUT_SOFTLIMIT; |
| 859 | * write-buffer timer is allowed to expire any time between the soft | 858 | wbuf->delta *= 1000000000ULL; |
| 860 | * and hard limits. | 859 | ubifs_assert(wbuf->delta <= ULONG_MAX); |
| 861 | */ | ||
| 862 | hardlimit = ktime_set(DEFAULT_WBUF_TIMEOUT_SECS, 0); | ||
| 863 | wbuf->delta = DEFAULT_WBUF_TIMEOUT_SECS * 1000000000ULL * 2 / 10; | ||
| 864 | if (wbuf->delta > ULONG_MAX) | ||
| 865 | wbuf->delta = ULONG_MAX; | ||
| 866 | wbuf->softlimit = ktime_sub_ns(hardlimit, wbuf->delta); | ||
| 867 | hrtimer_set_expires_range_ns(&wbuf->timer, wbuf->softlimit, | ||
| 868 | wbuf->delta); | ||
| 869 | return 0; | 860 | return 0; |
| 870 | } | 861 | } |
| 871 | 862 | ||
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 @@ | |||
| 95 | */ | 95 | */ |
| 96 | #define BGT_NAME_PATTERN "ubifs_bgt%d_%d" | 96 | #define BGT_NAME_PATTERN "ubifs_bgt%d_%d" |
| 97 | 97 | ||
| 98 | /* Default write-buffer synchronization timeout in seconds */ | 98 | /* Write-buffer synchronization timeout interval in seconds */ |
| 99 | #define DEFAULT_WBUF_TIMEOUT_SECS 5 | 99 | #define WBUF_TIMEOUT_SOFTLIMIT 3 |
| 100 | #define WBUF_TIMEOUT_HARDLIMIT 5 | ||
| 100 | 101 | ||
| 101 | /* Maximum possible inode number (only 32-bit inodes are supported now) */ | 102 | /* Maximum possible inode number (only 32-bit inodes are supported now) */ |
| 102 | #define MAX_INUM 0xFFFFFFFF | 103 | #define MAX_INUM 0xFFFFFFFF |
