All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mingming Cao <cmm@us.ibm.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: tytso@mit.edu, sandeen@redhat.com, linux-ext4@vger.kernel.org
Subject: Re: [PATCH -V3 08/11] ext4: Signed arithematic fix
Date: Thu, 28 Aug 2008 14:04:11 -0700	[thread overview]
Message-ID: <1219957451.6384.28.camel@mingming-laptop> (raw)
In-Reply-To: <1219850916-8986-8-git-send-email-aneesh.kumar@linux.vnet.ibm.com>


在 2008-08-27三的 20:58 +0530,Aneesh Kumar K.V写道:
> This patch converts some usage of ext4_fsblk_t to s64
> This is needed so that some of the sign conversion works
> as expected in if loops.
> 
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

Reviewed-by: Mingming Cao <cmm@us.ibm.com>
Added to patch queue
> ---
>  fs/ext4/balloc.c |   19 ++++++++++---------
>  fs/ext4/ext4.h   |    4 ++--
>  2 files changed, 12 insertions(+), 11 deletions(-)
> 
> diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
> index 53fdb05..7fdc236 100644
> --- a/fs/ext4/balloc.c
> +++ b/fs/ext4/balloc.c
> @@ -1603,10 +1603,10 @@ ext4_try_to_allocate_with_rsv(struct super_block *sb, handle_t *handle,
>  }
> 
>  int ext4_claim_free_blocks(struct ext4_sb_info *sbi,
> -						ext4_fsblk_t nblocks)
> +						s64 nblocks)
>  {
>  	s64 free_blocks, dirty_blocks;
> -	ext4_fsblk_t root_blocks = 0;
> +	s64 root_blocks = 0;
>  	struct percpu_counter *fbc = &sbi->s_freeblocks_counter;
>  	struct percpu_counter *dbc = &sbi->s_dirtyblocks_counter;
> 
> @@ -1631,7 +1631,7 @@ int ext4_claim_free_blocks(struct ext4_sb_info *sbi,
>  	/* Check whether we have space after
>  	 * accounting for current dirty blocks
>  	 */
> -	if (free_blocks < ((s64)(root_blocks + nblocks) + dirty_blocks))
> +	if (free_blocks < ((root_blocks + nblocks) + dirty_blocks))
>  		/* we don't have free space */
>  		return -ENOSPC;
> 
> @@ -1650,10 +1650,10 @@ int ext4_claim_free_blocks(struct ext4_sb_info *sbi,
>   * On success, return nblocks
>   */
>  ext4_fsblk_t ext4_has_free_blocks(struct ext4_sb_info *sbi,
> -						ext4_fsblk_t nblocks)
> +						s64 nblocks)
>  {
> -	ext4_fsblk_t free_blocks, dirty_blocks;
> -	ext4_fsblk_t root_blocks = 0;
> +	s64 free_blocks, dirty_blocks;
> +	s64 root_blocks = 0;
>  	struct percpu_counter *fbc = &sbi->s_freeblocks_counter;
>  	struct percpu_counter *dbc = &sbi->s_dirtyblocks_counter;
> 
> @@ -1667,14 +1667,15 @@ ext4_fsblk_t ext4_has_free_blocks(struct ext4_sb_info *sbi,
> 
>  	if (free_blocks - (nblocks + root_blocks + dirty_blocks) <
>  						EXT4_FREEBLOCKS_WATERMARK) {
> -		free_blocks  = percpu_counter_sum_positive(fbc);
> -		dirty_blocks = percpu_counter_sum_positive(dbc);
> +		free_blocks  = percpu_counter_sum(fbc);
> +		dirty_blocks = percpu_counter_sum(dbc);
>  	}
>  	if (free_blocks <= (root_blocks + dirty_blocks))
>  		/* we don't have free space */
>  		return 0;
> +
>  	if (free_blocks - (root_blocks + dirty_blocks) < nblocks)
> -		return free_blocks - root_blocks;
> +		return free_blocks - (root_blocks + dirty_blocks);
>  	return nblocks;
>  }
> 
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index 71a4fde..13c69ed 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -1048,9 +1048,9 @@ extern ext4_fsblk_t ext4_new_blocks(handle_t *handle, struct inode *inode,
>  extern ext4_fsblk_t ext4_old_new_blocks(handle_t *handle, struct inode *inode,
>  			ext4_fsblk_t goal, unsigned long *count, int *errp);
>  extern int ext4_claim_free_blocks(struct ext4_sb_info *sbi,
> -						ext4_fsblk_t nblocks);
> +						s64 nblocks);
>  extern ext4_fsblk_t ext4_has_free_blocks(struct ext4_sb_info *sbi,
> -						ext4_fsblk_t nblocks);
> +						s64  nblocks);
>  extern void ext4_free_blocks (handle_t *handle, struct inode *inode,
>  			ext4_fsblk_t block, unsigned long count, int metadata);
>  extern void ext4_free_blocks_sb (handle_t *handle, struct super_block *sb,

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2008-08-28 21:04 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-27 15:28 [PATCH -V3 01/11] percpu_counters: make fbc->count read atomic on 32 bit architecture Aneesh Kumar K.V
2008-08-27 15:28 ` [PATCH -V3 02/11] ext4: Make sure all the block allocation paths reserve blocks Aneesh Kumar K.V
2008-08-27 15:28   ` [PATCH -V3 03/11] ext4: Retry block reservation Aneesh Kumar K.V
2008-08-27 15:28     ` [PATCH -V3 04/11] ext4: Add percpu dirty block accounting Aneesh Kumar K.V
2008-08-27 15:28       ` [PATCH -V3 05/11] ext4: Switch to non delalloc mode when we are low on free blocks count Aneesh Kumar K.V
2008-08-27 15:28         ` [PATCH -V3 06/11] ext4: Update meta-data reservation with delalloc Aneesh Kumar K.V
2008-08-27 15:28           ` [PATCH -V3 07/11] ext4: request for blocks with ar.excepted_group = -1 Aneesh Kumar K.V
2008-08-27 15:28             ` [PATCH -V3 08/11] ext4: Signed arithematic fix Aneesh Kumar K.V
2008-08-27 15:28               ` [PATCH -V3 09/11] ext4: Fix ext4 nomballoc allocator for ENOSPC Aneesh Kumar K.V
2008-08-27 15:28                 ` [PATCH -V3 10/11] ext4: Add inode to journal handle after block allocation for ordered mode Aneesh Kumar K.V
2008-08-27 15:28                   ` [PATCH -V3 11/11] ext4: Retry block allocation if we have free blocks left Aneesh Kumar K.V
2008-08-28 21:57                 ` [PATCH -V3 09/11] ext4: Fix ext4 nomballoc allocator for ENOSPC Mingming Cao
2008-08-29  3:44                   ` Aneesh Kumar K.V
2008-08-29  4:14                     ` Aneesh Kumar K.V
2008-08-29  5:02                       ` Mingming Cao
2008-08-29  5:06                     ` Mingming Cao
2008-08-29  8:25                       ` Aneesh Kumar K.V
2008-08-28 21:04               ` Mingming Cao [this message]
2008-08-28 21:03             ` [PATCH -V3 07/11] ext4: request for blocks with ar.excepted_group = -1 Mingming Cao
2008-08-28 21:03           ` [PATCH -V3 06/11] ext4: Update meta-data reservation with delalloc Mingming Cao
2008-08-28 20:57         ` [PATCH -V3 05/11] ext4: Switch to non delalloc mode when we are low on free blocks count Mingming Cao
2008-08-28 20:56       ` [PATCH -V3 04/11] ext4: Add percpu dirty block accounting Mingming Cao
2008-10-09 20:44       ` Eric Sandeen
2008-10-10  4:52         ` Aneesh Kumar K.V
2008-10-10  4:58           ` Eric Sandeen
2008-10-11 21:10         ` Andreas Dilger
2008-08-28 20:42     ` [PATCH -V3 03/11] ext4: Retry block reservation Mingming Cao
2008-08-28 20:41   ` [PATCH -V3 02/11] ext4: Make sure all the block allocation paths reserve blocks Mingming Cao
2008-08-27 19:05 ` [PATCH -V3 01/11] percpu_counters: make fbc->count read atomic on 32 bit architecture Andrew Morton
2008-08-27 21:01   ` Peter Zijlstra
2008-08-27 21:22     ` Andrew Morton
2008-08-28  3:52       ` Aneesh Kumar K.V
2008-08-28  4:09         ` Andrew Morton
2008-08-28 22:59           ` Mingming Cao
2008-08-28 22:59             ` Mingming Cao
2008-08-28  7:57       ` Peter Zijlstra
2008-08-28  3:48   ` Aneesh Kumar K.V
2008-08-28  4:06     ` Andrew Morton
2008-08-28 14:19       ` Nick Piggin

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=1219957451.6384.28.camel@mingming-laptop \
    --to=cmm@us.ibm.com \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=sandeen@redhat.com \
    --cc=tytso@mit.edu \
    /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.