diff mbox

[Bug,12829] kernel complains on ENOSPC

Message ID 20090310163824.6C767108042@picon.linux-foundation.org
State Rejected, archived
Headers show

Commit Message

bugme-daemon@bugzilla.kernel.org March 10, 2009, 4:38 p.m. UTC
http://bugzilla.kernel.org/show_bug.cgi?id=12829





------- Comment #4 from aneesh.kumar@linux.vnet.ibm.com  2009-03-10 09:38 -------
This patch will not fix the problem. But i guess we need this change

-aneesh

Comments

Theodore Ts'o April 6, 2009, 6:58 p.m. UTC | #1
Aneesh,

What's the status of this patch; do you think we still need it?  If
so, can you add a proper commit log and signed-off-by, tell me that
you've tested it, etc.?

Thanks!!

	    	    	  	 - Ted


On Tue, Mar 10, 2009 at 09:38:24AM -0700, bugme-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=12829
> 
> 
> 
> 
> 
> ------- Comment #4 from aneesh.kumar@linux.vnet.ibm.com  2009-03-10 09:38 -------
> This patch will not fix the problem. But i guess we need this change
> 
> -aneesh
> 
> diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
> index 4415bee..671f215 100644
> --- a/fs/ext4/mballoc.c
> +++ b/fs/ext4/mballoc.c
> @@ -4652,11 +4652,11 @@ out1:
>         if (ar->len < inquota)
>                 DQUOT_FREE_BLOCK(ar->inode, inquota - ar->len);
>  out3:
> -       if (!ar->len) {
> +       if (ar->len < reserv_blks) {
>                 if (!EXT4_I(ar->inode)->i_delalloc_reserved_flag)
>                         /* release all the reserved blocks if non delalloc */
>                         percpu_counter_sub(&sbi->s_dirtyblocks_counter,
> -                                               reserv_blks);
> +                                               reserv_blks - ar->len);
>         }
> 
>         trace_mark(ext4_allocate_blocks,
> 
> 
> -- 
> Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are the assignee for the bug, or are watching the assignee.
> --
> 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
--
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
Aneesh Kumar K.V April 7, 2009, 2:31 p.m. UTC | #2
Hi Ted,

No we don't need the patch. The patch is wrong. We are actually taking
into account the allocated blocks in mballoc.c 

3033          */
3034         if (!(ac->ac_flags & EXT4_MB_DELALLOC_RESERVED))
3035                 /* release all the reserved blocks if non delalloc */
3036                 percpu_counter_sub(&sbi->s_dirtyblocks_counter, reserv_blks);
3037         else {
3038                 percpu_counter_sub(&sbi->s_dirtyblocks_counter,
3039							 ac->ac_b_ex.fe_len); 

-aneesh

On Mon, Apr 06, 2009 at 02:58:23PM -0400, Theodore Tso wrote:
> Aneesh,
> 
> What's the status of this patch; do you think we still need it?  If
> so, can you add a proper commit log and signed-off-by, tell me that
> you've tested it, etc.?
> 
> Thanks!!
> 
> 	    	    	  	 - Ted
> 
> 
> On Tue, Mar 10, 2009 at 09:38:24AM -0700, bugme-daemon@bugzilla.kernel.org wrote:
> > http://bugzilla.kernel.org/show_bug.cgi?id=12829
> > 
> > 
> > 
> > 
> > 
> > ------- Comment #4 from aneesh.kumar@linux.vnet.ibm.com  2009-03-10 09:38 -------
> > This patch will not fix the problem. But i guess we need this change
> > 
> > -aneesh
> > 
> > diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
> > index 4415bee..671f215 100644
> > --- a/fs/ext4/mballoc.c
> > +++ b/fs/ext4/mballoc.c
> > @@ -4652,11 +4652,11 @@ out1:
> >         if (ar->len < inquota)
> >                 DQUOT_FREE_BLOCK(ar->inode, inquota - ar->len);
> >  out3:
> > -       if (!ar->len) {
> > +       if (ar->len < reserv_blks) {
> >                 if (!EXT4_I(ar->inode)->i_delalloc_reserved_flag)
> >                         /* release all the reserved blocks if non delalloc */
> >                         percpu_counter_sub(&sbi->s_dirtyblocks_counter,
> > -                                               reserv_blks);
> > +                                               reserv_blks - ar->len);
> >         }
> > 
> >         trace_mark(ext4_allocate_blocks,
> > 
> > 
> > -- 
> > Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
> > ------- You are receiving this mail because: -------
> > You are the assignee for the bug, or are watching the assignee.
> > --
> > 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
--
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
Theodore Ts'o April 7, 2009, 4:15 p.m. UTC | #3
On Tue, Apr 07, 2009 at 08:01:46PM +0530, Aneesh Kumar K.V wrote:
> Hi Ted,
> 
> No we don't need the patch. The patch is wrong. We are actually taking
> into account the allocated blocks in mballoc.c 

Ok, thanks.  I'll marked the patch as "Rejected" in the ext4 patchwork
list.  (Patchwork is really great for making sure I don't drop a
patch, and I was going through it, and I noticed this patch had been
outstanding for the last month.)

						- Ted
--
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
diff mbox

Patch

diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 4415bee..671f215 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4652,11 +4652,11 @@  out1:
        if (ar->len < inquota)
                DQUOT_FREE_BLOCK(ar->inode, inquota - ar->len);
 out3:
-       if (!ar->len) {
+       if (ar->len < reserv_blks) {
                if (!EXT4_I(ar->inode)->i_delalloc_reserved_flag)
                        /* release all the reserved blocks if non delalloc */
                        percpu_counter_sub(&sbi->s_dirtyblocks_counter,
-                                               reserv_blks);
+                                               reserv_blks - ar->len);
        }

        trace_mark(ext4_allocate_blocks,