Skip to contentSkip to conversation

gfs2: s64 cast for negative quota value

PATCH New Abhi Das 3 participants 3 messages Jun 8, 2015 GFS2 file system

lore
Share & tools
lore

Abhi Das

author
#0 lore raw

PATCH 1/1 gfs2: s64 cast for negative quota value

One-line fix to cast quota value to s64 before comparison. By default the quantity is treated as u64.

---
 fs/gfs2/quota.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
fs/gfs2/quota.c +1 -1
index dcd598a..c2607a2 100644
@@ -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) {
Signature · 1 line
1.8.1.4
#1 lore raw

PATCH 1/1 gfs2: s64 cast for negative quota value

Hi,

Looks good to me:

Steve.

Quoted 21 lines · Abhi Das

One-line fix to cast quota value to s64 before comparison. By default the quantity is treated as u64.

---
  fs/gfs2/quota.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
fs/gfs2/quota.c +1 -1
index dcd598a..c2607a2 100644
@@ -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) {
#2 lore raw

PATCH 1/1 gfs2: s64 cast for negative quota value

In reply to Abhi Das

----- Original Message -----

Quoted 21 lines

One-line fix to cast quota value to s64 before comparison. By default the quantity is treated as u64.

---
 fs/gfs2/quota.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
fs/gfs2/quota.c +1 -1
index dcd598a..c2607a2 100644
@@ -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;
Quoted 3 lines

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