mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 17:23:55 +08:00
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: Jan Kara <jack@suse.cz> Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
f45ee3a1ea
commit
e27f41e1b7
@ -912,7 +912,7 @@ struct ext4_inode_info {
|
|||||||
struct list_head i_completed_io_list;
|
struct list_head i_completed_io_list;
|
||||||
spinlock_t i_completed_io_lock;
|
spinlock_t i_completed_io_lock;
|
||||||
atomic_t i_ioend_count; /* Number of outstanding io_end structs */
|
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;
|
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)) {
|
if (!(io_end->flag & EXT4_IO_END_UNWRITTEN)) {
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,11 +55,11 @@ static int ext4_release_file(struct inode *inode, struct file *filp)
|
|||||||
return 0;
|
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_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.",
|
"performance will be poor.",
|
||||||
inode->i_ino, current->comm);
|
inode->i_ino, current->comm);
|
||||||
mutex_lock(ext4_aio_mutex(inode));
|
mutex_lock(ext4_aio_mutex(inode));
|
||||||
ext4_aiodio_wait(inode);
|
ext4_unwritten_wait(inode);
|
||||||
}
|
}
|
||||||
|
|
||||||
BUG_ON(iocb->ki_pos != pos);
|
BUG_ON(iocb->ki_pos != pos);
|
||||||
|
@ -113,7 +113,7 @@ int ext4_end_io_nolock(ext4_io_end_t *io)
|
|||||||
if (io->flag & EXT4_IO_END_DIRECT)
|
if (io->flag & EXT4_IO_END_DIRECT)
|
||||||
inode_dio_done(inode);
|
inode_dio_done(inode);
|
||||||
/* Wake up anyone waiting on unwritten extent conversion */
|
/* 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));
|
wake_up_all(ext4_ioend_wq(io->inode));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -968,7 +968,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb)
|
|||||||
ei->i_sync_tid = 0;
|
ei->i_sync_tid = 0;
|
||||||
ei->i_datasync_tid = 0;
|
ei->i_datasync_tid = 0;
|
||||||
atomic_set(&ei->i_ioend_count, 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;
|
return &ei->vfs_inode;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user