Patchwork [1/2,v2] ext4: move ext4_ind_migrate() into migrate.c

login
register
mail settings
Submitter Theodore Ts'o
Date April 11, 2013, 2:56 p.m.
Message ID <20130411145620.GC8609@thunk.org>
Download mbox | patch
Permalink /patch/235784/
State Accepted
Headers show

Comments

Theodore Ts'o - April 11, 2013, 2:56 p.m.
On Thu, Apr 11, 2013 at 10:18:16AM +0200, Lukáš Czerner wrote:
> Thanks, but Dmitry is right, the check should be before the
> journal_start() call.

Whoops!  I'm not sure how I screwed that up.  Thanks for catching
that, Dmitry!

> I am not sure how much work will it be for you, but would it be
> possible to resend patch to the list when you change it ? Just to
> make sure we do not get unnecessary problems.

Yes, I'll try to do that in the future.  Here's the revised patch....

     	      	    	    	- Ted

commit 3b296c66fe6f9a6ed44b0b83f4f2ae87d8874af6
Author: Lukas Czerner <lczerner@redhat.com>
Date:   Thu Apr 11 10:54:46 2013 -0400

    ext4: do not convert to indirect with bigalloc enabled
    
    With bigalloc feature enabled we do not support indirect addressing at all
    so we have to prevent extent addressing to indirect addressing
    conversion in this case. The problem has been introduced with the commit
    "ext4: support simple conversion of extent-mapped inodes to use i_blocks"
    
    Signed-off-by: Lukas Czerner <lczerner@redhat.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

--
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
Lukas Czerner - April 11, 2013, 3:15 p.m.
On Thu, 11 Apr 2013, Theodore Ts'o wrote:

> Date: Thu, 11 Apr 2013 10:56:20 -0400
> From: Theodore Ts'o <tytso@mit.edu>
> To: Lukáš Czerner <lczerner@redhat.com>
> Cc: linux-ext4@vger.kernel.org, gnehzuil.liu@gmail.com
> Subject: Re: [PATCH 1/2 v2] ext4: move ext4_ind_migrate() into migrate.c
> 
> On Thu, Apr 11, 2013 at 10:18:16AM +0200, Lukáš Czerner wrote:
> > Thanks, but Dmitry is right, the check should be before the
> > journal_start() call.
> 
> Whoops!  I'm not sure how I screwed that up.  Thanks for catching
> that, Dmitry!
> 
> > I am not sure how much work will it be for you, but would it be
> > possible to resend patch to the list when you change it ? Just to
> > make sure we do not get unnecessary problems.
> 
> Yes, I'll try to do that in the future.  Here's the revised patch....
> 

Thanks! Now it looks ok.

-Lukas

>      	      	    	    	- Ted
> 
> commit 3b296c66fe6f9a6ed44b0b83f4f2ae87d8874af6
> Author: Lukas Czerner <lczerner@redhat.com>
> Date:   Thu Apr 11 10:54:46 2013 -0400
> 
>     ext4: do not convert to indirect with bigalloc enabled
>     
>     With bigalloc feature enabled we do not support indirect addressing at all
>     so we have to prevent extent addressing to indirect addressing
>     conversion in this case. The problem has been introduced with the commit
>     "ext4: support simple conversion of extent-mapped inodes to use i_blocks"
>     
>     Signed-off-by: Lukas Czerner <lczerner@redhat.com>
>     Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
> 
> diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
> index d129a4d..49e8bdf 100644
> --- a/fs/ext4/migrate.c
> +++ b/fs/ext4/migrate.c
> @@ -625,6 +625,10 @@ int ext4_ind_migrate(struct inode *inode)
>  	    (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)))
>  		return -EINVAL;
>  
> +	if (EXT4_HAS_RO_COMPAT_FEATURE(inode->i_sb,
> +				       EXT4_FEATURE_RO_COMPAT_BIGALLOC))
> +		return -EOPNOTSUPP;
> +
>  	handle = ext4_journal_start(inode, EXT4_HT_MIGRATE, 1);
>  	if (IS_ERR(handle))
>  		return PTR_ERR(handle);
>

Patch

diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
index d129a4d..49e8bdf 100644
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -625,6 +625,10 @@  int ext4_ind_migrate(struct inode *inode)
 	    (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)))
 		return -EINVAL;
 
+	if (EXT4_HAS_RO_COMPAT_FEATURE(inode->i_sb,
+				       EXT4_FEATURE_RO_COMPAT_BIGALLOC))
+		return -EOPNOTSUPP;
+
 	handle = ext4_journal_start(inode, EXT4_HT_MIGRATE, 1);
 	if (IS_ERR(handle))
 		return PTR_ERR(handle);