Message ID | 1365070685-5088-1-git-send-email-lczerner@redhat.com |
---|---|
State | Accepted, archived |
Headers | show |
On Thu, Apr 04, 2013 at 12:18:05PM +0200, Lukas Czerner wrote: > 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> Looks good to me. Reviewed-by: Zheng Liu <wenqing.lz@taobao.com> Regards, - Zheng > --- > fs/ext4/extents.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 6c5a70a..ddb6628 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -4735,6 +4735,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; > + > down_write(&EXT4_I(inode)->i_data_sem); > ret = ext4_ext_check_inode(inode); > if (ret) > -- > 1.7.7.6 > > -- > 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
On Thu, Apr 04, 2013 at 12:18:05PM +0200, Lukas Czerner wrote: > 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> > --- > fs/ext4/extents.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 6c5a70a..ddb6628 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -4735,6 +4735,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; > + > down_write(&EXT4_I(inode)->i_data_sem); > ret = ext4_ext_check_inode(inode); > if (ret) I am wandering whether ext4_ind_migrate needs to be moved into fs/ext4/migrate.c file. Maybe it is better. Regards, - Zheng -- 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
On Mon, 8 Apr 2013, Zheng Liu wrote: > Date: Mon, 8 Apr 2013 14:10:11 +0800 > From: Zheng Liu <gnehzuil.liu@gmail.com> > To: Lukas Czerner <lczerner@redhat.com> > Cc: linux-ext4@vger.kernel.org, tytso@mit.edu > Subject: Re: [PATCH] ext4: Do not convert to indirect with bigalloc enabled > > On Thu, Apr 04, 2013 at 12:18:05PM +0200, Lukas Czerner wrote: > > 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> > > --- > > fs/ext4/extents.c | 4 ++++ > > 1 files changed, 4 insertions(+), 0 deletions(-) > > > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > > index 6c5a70a..ddb6628 100644 > > --- a/fs/ext4/extents.c > > +++ b/fs/ext4/extents.c > > @@ -4735,6 +4735,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; > > + > > down_write(&EXT4_I(inode)->i_data_sem); > > ret = ext4_ext_check_inode(inode); > > if (ret) > > I am wandering whether ext4_ind_migrate needs to be moved into > fs/ext4/migrate.c file. Maybe it is better. You're right, it make much more sense. I'll prepare a patch. Thanks! -Lukas > > Regards, > - Zheng > -- 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
Thanks, applied. - 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
On Tue, 9 Apr 2013, Theodore Ts'o wrote: > Date: Tue, 9 Apr 2013 09:23:13 -0400 > From: Theodore Ts'o <tytso@mit.edu> > To: Lukas Czerner <lczerner@redhat.com>, linux-ext4@vger.kernel.org > Subject: Re: [PATCH] ext4: Do not convert to indirect with bigalloc enabled > > Thanks, applied. Ted you probably want to apply the series I sent earlier today containing this patches. [PATCH 1/2 v2] ext4: move ext4_ind_migrate() into migrate.c [PATCH 2/2 v2] ext4: Do not convert to indirect with bigalloc enabled Thanks! -Lukas > > - 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 --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 6c5a70a..ddb6628 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4735,6 +4735,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; + down_write(&EXT4_I(inode)->i_data_sem); ret = ext4_ext_check_inode(inode); if (ret)
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> --- fs/ext4/extents.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)