diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-05 11:50:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-05 11:50:26 -0400 |
commit | 45d9a2220f6004b47c362cc7fc7cf9a73cb6353a (patch) | |
tree | 4e2217464c5cd71674a6ffff1f3dddaeb52556b7 /fs/ext4/ext4.h | |
parent | 2386a3b0fbb0c2dcf29694c7df9a72cb268458f0 (diff) | |
parent | 02afc27faec94c9e068517a22acf55400976c698 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs pile 1 from Al Viro:
"Unfortunately, this merge window it'll have a be a lot of small piles -
my fault, actually, for not keeping #for-next in anything that would
resemble a sane shape ;-/
This pile: assorted fixes (the first 3 are -stable fodder, IMO) and
cleanups + %pd/%pD formats (dentry/file pathname, up to 4 last
components) + several long-standing patches from various folks.
There definitely will be a lot more (starting with Miklos'
check_submount_and_drop() series)"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (26 commits)
direct-io: Handle O_(D)SYNC AIO
direct-io: Implement generic deferred AIO completions
add formats for dentry/file pathnames
kvm eventfd: switch to fdget
powerpc kvm: use fdget
switch fchmod() to fdget
switch epoll_ctl() to fdget
switch copy_module_from_fd() to fdget
git simplify nilfs check for busy subtree
ibmasmfs: don't bother passing superblock when not needed
don't pass superblock to hypfs_{mkdir,create*}
don't pass superblock to hypfs_diag_create_files
don't pass superblock to hypfs_vm_create_files()
oprofile: get rid of pointless forward declarations of struct super_block
oprofilefs_create_...() do not need superblock argument
oprofilefs_mkdir() doesn't need superblock argument
don't bother with passing superblock to oprofile_create_stats_files()
oprofile: don't bother with passing superblock to ->create_files()
don't bother passing sb to oprofile_create_files()
coh901318: don't open-code simple_read_from_buffer()
...
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r-- | fs/ext4/ext4.h | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 06b488dca666..af815ea9d7cc 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -180,7 +180,6 @@ struct ext4_map_blocks { | |||
180 | * Flags for ext4_io_end->flags | 180 | * Flags for ext4_io_end->flags |
181 | */ | 181 | */ |
182 | #define EXT4_IO_END_UNWRITTEN 0x0001 | 182 | #define EXT4_IO_END_UNWRITTEN 0x0001 |
183 | #define EXT4_IO_END_DIRECT 0x0002 | ||
184 | 183 | ||
185 | /* | 184 | /* |
186 | * For converting uninitialized extents on a work queue. 'handle' is used for | 185 | * For converting uninitialized extents on a work queue. 'handle' is used for |
@@ -196,8 +195,6 @@ typedef struct ext4_io_end { | |||
196 | unsigned int flag; /* unwritten or not */ | 195 | unsigned int flag; /* unwritten or not */ |
197 | loff_t offset; /* offset in the file */ | 196 | loff_t offset; /* offset in the file */ |
198 | ssize_t size; /* size of the extent */ | 197 | ssize_t size; /* size of the extent */ |
199 | struct kiocb *iocb; /* iocb struct for AIO */ | ||
200 | int result; /* error value for AIO */ | ||
201 | atomic_t count; /* reference counter */ | 198 | atomic_t count; /* reference counter */ |
202 | } ext4_io_end_t; | 199 | } ext4_io_end_t; |
203 | 200 | ||
@@ -914,11 +911,9 @@ struct ext4_inode_info { | |||
914 | * Completed IOs that need unwritten extents handling and don't have | 911 | * Completed IOs that need unwritten extents handling and don't have |
915 | * transaction reserved | 912 | * transaction reserved |
916 | */ | 913 | */ |
917 | struct list_head i_unrsv_conversion_list; | ||
918 | atomic_t i_ioend_count; /* Number of outstanding io_end structs */ | 914 | atomic_t i_ioend_count; /* Number of outstanding io_end structs */ |
919 | atomic_t i_unwritten; /* Nr. of inflight conversions pending */ | 915 | atomic_t i_unwritten; /* Nr. of inflight conversions pending */ |
920 | struct work_struct i_rsv_conversion_work; | 916 | struct work_struct i_rsv_conversion_work; |
921 | struct work_struct i_unrsv_conversion_work; | ||
922 | 917 | ||
923 | spinlock_t i_block_reservation_lock; | 918 | spinlock_t i_block_reservation_lock; |
924 | 919 | ||
@@ -1290,8 +1285,6 @@ struct ext4_sb_info { | |||
1290 | struct flex_groups *s_flex_groups; | 1285 | struct flex_groups *s_flex_groups; |
1291 | ext4_group_t s_flex_groups_allocated; | 1286 | ext4_group_t s_flex_groups_allocated; |
1292 | 1287 | ||
1293 | /* workqueue for unreserved extent convertions (dio) */ | ||
1294 | struct workqueue_struct *unrsv_conversion_wq; | ||
1295 | /* workqueue for reserved extent conversions (buffered io) */ | 1288 | /* workqueue for reserved extent conversions (buffered io) */ |
1296 | struct workqueue_struct *rsv_conversion_wq; | 1289 | struct workqueue_struct *rsv_conversion_wq; |
1297 | 1290 | ||
@@ -1354,9 +1347,6 @@ static inline void ext4_set_io_unwritten_flag(struct inode *inode, | |||
1354 | struct ext4_io_end *io_end) | 1347 | struct ext4_io_end *io_end) |
1355 | { | 1348 | { |
1356 | if (!(io_end->flag & EXT4_IO_END_UNWRITTEN)) { | 1349 | if (!(io_end->flag & EXT4_IO_END_UNWRITTEN)) { |
1357 | /* Writeback has to have coversion transaction reserved */ | ||
1358 | WARN_ON(EXT4_SB(inode->i_sb)->s_journal && !io_end->handle && | ||
1359 | !(io_end->flag & EXT4_IO_END_DIRECT)); | ||
1360 | io_end->flag |= EXT4_IO_END_UNWRITTEN; | 1350 | io_end->flag |= EXT4_IO_END_UNWRITTEN; |
1361 | atomic_inc(&EXT4_I(inode)->i_unwritten); | 1351 | atomic_inc(&EXT4_I(inode)->i_unwritten); |
1362 | } | 1352 | } |
@@ -2760,7 +2750,6 @@ extern void ext4_put_io_end_defer(ext4_io_end_t *io_end); | |||
2760 | extern void ext4_io_submit_init(struct ext4_io_submit *io, | 2750 | extern void ext4_io_submit_init(struct ext4_io_submit *io, |
2761 | struct writeback_control *wbc); | 2751 | struct writeback_control *wbc); |
2762 | extern void ext4_end_io_rsv_work(struct work_struct *work); | 2752 | extern void ext4_end_io_rsv_work(struct work_struct *work); |
2763 | extern void ext4_end_io_unrsv_work(struct work_struct *work); | ||
2764 | extern void ext4_io_submit(struct ext4_io_submit *io); | 2753 | extern void ext4_io_submit(struct ext4_io_submit *io); |
2765 | extern int ext4_bio_write_page(struct ext4_io_submit *io, | 2754 | extern int ext4_bio_write_page(struct ext4_io_submit *io, |
2766 | struct page *page, | 2755 | struct page *page, |