gfs2: s64 cast for negative quota value
authorAbhi Das <adas@redhat.com>
Mon, 8 Jun 2015 16:20:50 +0000 (11:20 -0500)
committerBob Peterson <rpeterso@redhat.com>
Mon, 8 Jun 2015 16:20:50 +0000 (11:20 -0500)
One-line fix to cast quota value to s64 before comparison.
By default the quantity is treated as u64.

Signed-off-by: Abhi Das <adas@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Acked-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/quota.c

index dcd598aa269168c8c4eb83b85f1a463060fcea99..c2607a26be89133644a95f271e8c6ef9c08c017d 100644 (file)
@@ -798,7 +798,7 @@ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc,
        loc -= sizeof(q); /* gfs2_internal_read would've advanced the loc ptr */
        err = -EIO;
        be64_add_cpu(&q.qu_value, change);
-       if (be64_to_cpu(q.qu_value) < 0)
+       if (((s64)be64_to_cpu(q.qu_value)) < 0)
                q.qu_value = 0; /* Never go negative on quota usage */
        qd->qd_qb.qb_value = q.qu_value;
        if (fdq) {