All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Leckie <pleckie@sgi.com>
To: xfs@oss.sgi.com, xfs-dev <xfs-dev@sgi.com>
Subject: [PATCH] don't use signed int to store xfs_dqid_t
Date: Wed, 24 Sep 2008 14:47:15 +1000	[thread overview]
Message-ID: <48D9C653.1030908@sgi.com> (raw)

When running xfsqa test 144 with quota's enabled it's possible to
trip the following ASSERT(curid >= 0); from xfs_qm_init_dquot_blk().
The reason this assert was tripped is the signed int currid was assigned
an id from the unsigned xfs_dqid_t this works as long as the MSB in 
xfs_dqid_t
is not set. However if it is this translates to a negative number causing
the assert to trip.

The fix for this is simply replacing the signed int with type xfs_dqid_t
and since xfs_dqid_t is unsigned there is no point checking if it's negative
so remove the assert.


Index: 2.6.x-xfs/fs/xfs/quota/xfs_dquot.c
===================================================================
--- 2.6.x-xfs.orig/fs/xfs/quota/xfs_dquot.c     2008-09-24 
12:02:41.000000000 +1000
+++ 2.6.x-xfs/fs/xfs/quota/xfs_dquot.c  2008-09-24 14:31:18.374406815 +1000
@@ -370,7 +370,8 @@ xfs_qm_init_dquot_blk(
        xfs_buf_t       *bp)
 {
        xfs_dqblk_t     *d;
-       int             curid, i;
+       xfs_dqid_t      curid;
+       int              i;

        ASSERT(tp);
        ASSERT(XFS_BUF_ISBUSY(bp));
@@ -382,7 +383,6 @@ xfs_qm_init_dquot_blk(
         * ID of the first dquot in the block - id's are zero based.
         */
        curid = id - (id % XFS_QM_DQPERBLK(mp));
-       ASSERT(curid >= 0);
        memset(d, 0, BBTOB(XFS_QI_DQCHUNKLEN(mp)));
        for (i = 0; i < XFS_QM_DQPERBLK(mp); i++, d++, curid++)
                xfs_qm_dqinit_core(curid, type, d);

             reply	other threads:[~2008-09-24  4:45 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-24  4:47 Peter Leckie [this message]
2008-09-24  6:07 ` [PATCH] don't use signed int to store xfs_dqid_t Dave Chinner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48D9C653.1030908@sgi.com \
    --to=pleckie@sgi.com \
    --cc=xfs-dev@sgi.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.