On Mon 24-09-12 15:44:12, Dmitry Monakhov wrote: > AIO/DIO prefix is wrong because it account unwritten extents which > also may be scheduled from buffered write endio Correct. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > > Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> > --- > fs/ext4/ext4.h | 4 ++-- > fs/ext4/file.c | 6 +++--- > fs/ext4/page-io.c | 2 +- > fs/ext4/super.c | 2 +- > 4 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > index e59fbc5..47f0778 100644 > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -912,7 +912,7 @@ struct ext4_inode_info { > struct list_head i_completed_io_list; > spinlock_t i_completed_io_lock; > atomic_t i_ioend_count; /* Number of outstanding io_end structs */ > - atomic_t i_aiodio_unwritten; /* Nr. of inflight conversions pending */ > + atomic_t i_unwritten; /* Nr. of inflight conversions pending */ > > spinlock_t i_block_reservation_lock; > > @@ -1335,7 +1335,7 @@ static inline void ext4_set_io_unwritten_flag(struct inode *inode, > { > if (!(io_end->flag & EXT4_IO_END_UNWRITTEN)) { > io_end->flag |= EXT4_IO_END_UNWRITTEN; > - atomic_inc(&EXT4_I(inode)->i_aiodio_unwritten); > + atomic_inc(&EXT4_I(inode)->i_unwritten); > } > } > > diff --git a/fs/ext4/file.c b/fs/ext4/file.c > index 3b0e3bd..39335bd 100644 > --- a/fs/ext4/file.c > +++ b/fs/ext4/file.c > @@ -55,11 +55,11 @@ static int ext4_release_file(struct inode *inode, struct file *filp) > return 0; > } > > -static void ext4_aiodio_wait(struct inode *inode) > +static void ext4_unwritten_wait(struct inode *inode) > { > wait_queue_head_t *wq = ext4_ioend_wq(inode); > > - wait_event(*wq, (atomic_read(&EXT4_I(inode)->i_aiodio_unwritten) == 0)); > + wait_event(*wq, (atomic_read(&EXT4_I(inode)->i_unwritten) == 0)); > } > > /* > @@ -116,7 +116,7 @@ ext4_file_dio_write(struct kiocb *iocb, const struct iovec *iov, > "performance will be poor.", > inode->i_ino, current->comm); > mutex_lock(ext4_aio_mutex(inode)); > - ext4_aiodio_wait(inode); > + ext4_unwritten_wait(inode); > } > > BUG_ON(iocb->ki_pos != pos); > diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c > index dcdeef1..de77e31 100644 > --- a/fs/ext4/page-io.c > +++ b/fs/ext4/page-io.c > @@ -113,7 +113,7 @@ int ext4_end_io_nolock(ext4_io_end_t *io) > if (io->flag & EXT4_IO_END_DIRECT) > inode_dio_done(inode); > /* Wake up anyone waiting on unwritten extent conversion */ > - if (atomic_dec_and_test(&EXT4_I(inode)->i_aiodio_unwritten)) > + if (atomic_dec_and_test(&EXT4_I(inode)->i_unwritten)) > wake_up_all(ext4_ioend_wq(io->inode)); > return ret; > } > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index 64acf55..0a37c75 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -968,7 +968,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb) > ei->i_sync_tid = 0; > ei->i_datasync_tid = 0; > atomic_set(&ei->i_ioend_count, 0); > - atomic_set(&ei->i_aiodio_unwritten, 0); > + atomic_set(&ei->i_unwritten, 0); > > return &ei->vfs_inode; > } > -- > 1.7.7.6 > -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html