----- Original Message ----- > One-line fix to cast quota value to s64 before comparison. > By default the quantity is treated as u64. > > Signed-off-by: Abhi Das <[email protected]> > --- > fs/gfs2/quota.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c > index dcd598a..c2607a2 100644 > --- a/fs/gfs2/quota.c > +++ b/fs/gfs2/quota.c > @@ -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) { > -- > 1.8.1.4
Hi, Ack. Thanks. This patch has now been pushed to the for-next branch of the linux-gfs2 tree: https://git.kernel.org/cgit/linux/kernel/git/gfs2/linux-gfs2.git/commit/fs/gfs2?h=for-next&id=1bdf45352e1897ab02632a4ed3648db8cc183f71 Regards, Bob Peterson Red Hat File Systems
