Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e27f41e1 authored by Dmitry Monakhov's avatar Dmitry Monakhov Committed by Theodore Ts'o
Browse files

ext4: give i_aiodio_unwritten a more appropriate name



AIO/DIO prefix is wrong because it account unwritten extents which
also may be scheduled from buffered write endio

Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent f45ee3a1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;

@@ -1332,7 +1332,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);
	}
}

+3 −3
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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;
}
+1 −1
Original line number Diff line number Diff line
@@ -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;
}