UBIFS: fix integer overflow warning
authorAdrian Hunter <adrian.hunter@nokia.com>
Mon, 22 Jun 2009 14:31:09 +0000 (17:31 +0300)
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Sun, 5 Jul 2009 15:45:15 +0000 (18:45 +0300)
Fix the following warning:

fs/ubifs/io.c: In function 'ubifs_wbuf_init':
fs/ubifs/io.c:860: warning: integer overflow in expression

And limit maximum hrtimer delta to ULONG_MAX because the
argument is 'unsigned long'.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
fs/ubifs/io.c

index bc5857199ec2a021c1f9f9838b11329461704b4f..2d41ae1d6607386920b8ea920406b96e7bf99fe3 100644 (file)
@@ -857,7 +857,9 @@ int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf)
         * and hard limits.
         */
        hardlimit = ktime_set(DEFAULT_WBUF_TIMEOUT_SECS, 0);
-       wbuf->delta = (DEFAULT_WBUF_TIMEOUT_SECS * NSEC_PER_SEC) * 2 / 10;
+       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);