aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/ext4.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-05 11:50:26 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-05 11:50:26 -0400
commit45d9a2220f6004b47c362cc7fc7cf9a73cb6353a (patch)
tree4e2217464c5cd71674a6ffff1f3dddaeb52556b7 /fs/ext4/ext4.h
parent2386a3b0fbb0c2dcf29694c7df9a72cb268458f0 (diff)
parent02afc27faec94c9e068517a22acf55400976c698 (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.h11
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);
2760extern void ext4_io_submit_init(struct ext4_io_submit *io, 2750extern void ext4_io_submit_init(struct ext4_io_submit *io,
2761 struct writeback_control *wbc); 2751 struct writeback_control *wbc);
2762extern void ext4_end_io_rsv_work(struct work_struct *work); 2752extern void ext4_end_io_rsv_work(struct work_struct *work);
2763extern void ext4_end_io_unrsv_work(struct work_struct *work);
2764extern void ext4_io_submit(struct ext4_io_submit *io); 2753extern void ext4_io_submit(struct ext4_io_submit *io);
2765extern int ext4_bio_write_page(struct ext4_io_submit *io, 2754extern int ext4_bio_write_page(struct ext4_io_submit *io,
2766 struct page *page, 2755 struct page *page,