Patchwork [3/5] ext4: Remove bogus wait for unwritten extents in ext4_ind_direct_IO

login
register
mail settings
Submitter Jan Kara
Date Jan. 2, 2013, 5:45 p.m.
Message ID <1357148744-4895-4-git-send-email-jack@suse.cz>
Download mbox | patch
Permalink /patch/209123/
State Superseded
Headers show

Comments

Jan Kara - Jan. 2, 2013, 5:45 p.m.
When using indirect blocks there is no possibility to have any unwritten
extents. So wait for them in ext4_ind_direct_IO() is just bogus.

Signed-off-by: Jan Kara <jack@suse.cz>
---
 fs/ext4/indirect.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)
Zheng Liu - Jan. 4, 2013, 7:24 a.m.
On Wed, Jan 02, 2013 at 06:45:42PM +0100, Jan Kara wrote:
> When using indirect blocks there is no possibility to have any unwritten
> extents. So wait for them in ext4_ind_direct_IO() is just bogus.
> 
> Signed-off-by: Jan Kara <jack@suse.cz>

Hi Jan,

Just for the note, this patch conflicts with my patch set of extent
status tree.  I guess your patch series will be applied before my patch
set.  So I will rebase my patch set against the latest kernel. :-)

Otherwise, the patch looks good to me.  You can add:
Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>

Regards,
                                                - Zheng

> ---
>  fs/ext4/indirect.c |    5 -----
>  1 files changed, 0 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/ext4/indirect.c b/fs/ext4/indirect.c
> index 20862f9..993247c 100644
> --- a/fs/ext4/indirect.c
> +++ b/fs/ext4/indirect.c
> @@ -807,11 +807,6 @@ ssize_t ext4_ind_direct_IO(int rw, struct kiocb *iocb,
>  
>  retry:
>  	if (rw == READ && ext4_should_dioread_nolock(inode)) {
> -		if (unlikely(atomic_read(&EXT4_I(inode)->i_unwritten))) {
> -			mutex_lock(&inode->i_mutex);
> -			ext4_flush_unwritten_io(inode);
> -			mutex_unlock(&inode->i_mutex);
> -		}
>  		/*
>  		 * Nolock dioread optimization may be dynamically disabled
>  		 * via ext4_inode_block_unlocked_dio(). Check inode's state
> -- 
> 1.7.1
> 
> --
> 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 - Jan. 17, 2013, 9:58 p.m.
On Fri, Jan 04, 2013 at 03:24:37PM +0800, Zheng Liu wrote:
> On Wed, Jan 02, 2013 at 06:45:42PM +0100, Jan Kara wrote:
> > When using indirect blocks there is no possibility to have any unwritten
> > extents. So wait for them in ext4_ind_direct_IO() is just bogus.
> > 
> > Signed-off-by: Jan Kara <jack@suse.cz>
> 
> Hi Jan,
> 
> Just for the note, this patch conflicts with my patch set of extent
> status tree.  I guess your patch series will be applied before my patch
> set.  So I will rebase my patch set against the latest kernel. :-)

Actually, the extent status tree patches are already in my tree,
although I'm still testing and reviewing them. so they haven't been
finalized yet (which is why I haven't sent an e-mail ack).  If the
conflict is minor, I'll take care of it.  If it's non-trivial, I'll
yell for help.  :-)

					- 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
Jan Kara - Jan. 17, 2013, 11:02 p.m.
On Thu 17-01-13 16:58:14, Ted Tso wrote:
> On Fri, Jan 04, 2013 at 03:24:37PM +0800, Zheng Liu wrote:
> > On Wed, Jan 02, 2013 at 06:45:42PM +0100, Jan Kara wrote:
> > > When using indirect blocks there is no possibility to have any unwritten
> > > extents. So wait for them in ext4_ind_direct_IO() is just bogus.
> > > 
> > > Signed-off-by: Jan Kara <jack@suse.cz>
> > 
> > Hi Jan,
> > 
> > Just for the note, this patch conflicts with my patch set of extent
> > status tree.  I guess your patch series will be applied before my patch
> > set.  So I will rebase my patch set against the latest kernel. :-)
> 
> Actually, the extent status tree patches are already in my tree,
> although I'm still testing and reviewing them. so they haven't been
> finalized yet (which is why I haven't sent an e-mail ack).  If the
> conflict is minor, I'll take care of it.  If it's non-trivial, I'll
> yell for help.  :-)
  This patch actually isn't in Zheng's latest submission so there shouldn't
be any conflict.

								Honza
Zheng Liu - Jan. 18, 2013, 2:15 a.m.
On Fri, Jan 18, 2013 at 12:02:39AM +0100, Jan Kara wrote:
> On Thu 17-01-13 16:58:14, Ted Tso wrote:
> > On Fri, Jan 04, 2013 at 03:24:37PM +0800, Zheng Liu wrote:
> > > On Wed, Jan 02, 2013 at 06:45:42PM +0100, Jan Kara wrote:
> > > > When using indirect blocks there is no possibility to have any unwritten
> > > > extents. So wait for them in ext4_ind_direct_IO() is just bogus.
> > > > 
> > > > Signed-off-by: Jan Kara <jack@suse.cz>
> > > 
> > > Hi Jan,
> > > 
> > > Just for the note, this patch conflicts with my patch set of extent
> > > status tree.  I guess your patch series will be applied before my patch
> > > set.  So I will rebase my patch set against the latest kernel. :-)
> > 
> > Actually, the extent status tree patches are already in my tree,
> > although I'm still testing and reviewing them. so they haven't been
> > finalized yet (which is why I haven't sent an e-mail ack).  If the
> > conflict is minor, I'll take care of it.  If it's non-trivial, I'll
> > yell for help.  :-)
>   This patch actually isn't in Zheng's latest submission so there shouldn't
> be any conflict.

Hi Ted,

Sorry for the delay reply because of travelling.  As Jan said above, I
have dropped the patch of unwritten extent conversion from the patch set
of extent status tree.  So there isn't any conflict.

Thanks,
                                                - 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

Patch

diff --git a/fs/ext4/indirect.c b/fs/ext4/indirect.c
index 20862f9..993247c 100644
--- a/fs/ext4/indirect.c
+++ b/fs/ext4/indirect.c
@@ -807,11 +807,6 @@  ssize_t ext4_ind_direct_IO(int rw, struct kiocb *iocb,
 
 retry:
 	if (rw == READ && ext4_should_dioread_nolock(inode)) {
-		if (unlikely(atomic_read(&EXT4_I(inode)->i_unwritten))) {
-			mutex_lock(&inode->i_mutex);
-			ext4_flush_unwritten_io(inode);
-			mutex_unlock(&inode->i_mutex);
-		}
 		/*
 		 * Nolock dioread optimization may be dynamically disabled
 		 * via ext4_inode_block_unlocked_dio(). Check inode's state