From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Thu, 01 May 2008 13:50:36 +0100 Subject: [Cluster-devel] [PATCH][GFS2] Fix cast from unsigned int to s64 In-Reply-To: <20080501105538.GA10840@silver.sucs.org> References: <20080501105538.GA10840@silver.sucs.org> Message-ID: <1209646236.3635.474.camel@quoit> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, Now in the GFS2 -nme git tree. Thanks, Steve. On Thu, 2008-05-01 at 11:55 +0100, Andrew Price wrote: > This fixes bz 444829 where allocating a new block caused gfs2 file systems to > report 0 bytes used in df. It was caused by a broken cast from an unsigned int > in gfs2_block_alloc() to a negative s64 in gfs2_statfs_change(). This patch > casts the unsigned int to an s64 before the unary minus is applied. > > Signed-off-by: Andrew Price > --- > fs/gfs2/rgrp.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c > index 7e8f0b1..6387523 100644 > --- a/fs/gfs2/rgrp.c > +++ b/fs/gfs2/rgrp.c > @@ -1495,7 +1495,7 @@ u64 gfs2_alloc_block(struct gfs2_inode *ip, unsigned int *n) > > al->al_alloced += *n; > > - gfs2_statfs_change(sdp, 0, -*n, 0); > + gfs2_statfs_change(sdp, 0, -(s64)*n, 0); > gfs2_quota_change(ip, *n, ip->i_inode.i_uid, ip->i_inode.i_gid); > > spin_lock(&sdp->sd_rindex_spin);