diff options
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r-- | fs/ext4/ext4.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index ccb4dbf359c4..b491576e11c3 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -127,10 +127,11 @@ struct mpage_da_data { | |||
127 | int pages_written; | 127 | int pages_written; |
128 | int retval; | 128 | int retval; |
129 | }; | 129 | }; |
130 | 130 | #define DIO_AIO_UNWRITTEN 0x1 | |
131 | typedef struct ext4_io_end { | 131 | typedef struct ext4_io_end { |
132 | struct list_head list; /* per-file finished AIO list */ | ||
132 | struct inode *inode; /* file being written to */ | 133 | struct inode *inode; /* file being written to */ |
133 | unsigned int flag; /* sync IO or AIO */ | 134 | unsigned int flag; /* unwritten or not */ |
134 | int error; /* I/O error code */ | 135 | int error; /* I/O error code */ |
135 | ext4_lblk_t offset; /* offset in the file */ | 136 | ext4_lblk_t offset; /* offset in the file */ |
136 | size_t size; /* size of the extent */ | 137 | size_t size; /* size of the extent */ |
@@ -690,6 +691,11 @@ struct ext4_inode_info { | |||
690 | __u16 i_extra_isize; | 691 | __u16 i_extra_isize; |
691 | 692 | ||
692 | spinlock_t i_block_reservation_lock; | 693 | spinlock_t i_block_reservation_lock; |
694 | |||
695 | /* completed async DIOs that might need unwritten extents handling */ | ||
696 | struct list_head i_aio_dio_complete_list; | ||
697 | /* current io_end structure for async DIO write*/ | ||
698 | ext4_io_end_t *cur_aio_dio; | ||
693 | }; | 699 | }; |
694 | 700 | ||
695 | /* | 701 | /* |
@@ -1419,7 +1425,7 @@ extern int ext4_block_truncate_page(handle_t *handle, | |||
1419 | struct address_space *mapping, loff_t from); | 1425 | struct address_space *mapping, loff_t from); |
1420 | extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); | 1426 | extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); |
1421 | extern qsize_t ext4_get_reserved_space(struct inode *inode); | 1427 | extern qsize_t ext4_get_reserved_space(struct inode *inode); |
1422 | 1428 | extern int flush_aio_dio_completed_IO(struct inode *inode); | |
1423 | /* ioctl.c */ | 1429 | /* ioctl.c */ |
1424 | extern long ext4_ioctl(struct file *, unsigned int, unsigned long); | 1430 | extern long ext4_ioctl(struct file *, unsigned int, unsigned long); |
1425 | extern long ext4_compat_ioctl(struct file *, unsigned int, unsigned long); | 1431 | extern long ext4_compat_ioctl(struct file *, unsigned int, unsigned long); |