diff options
Diffstat (limited to 'fs/ext2')
-rw-r--r-- | fs/ext2/ext2.h | 2 | ||||
-rw-r--r-- | fs/ext2/inode.c | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index 061914add3cf..0b038e47ad2f 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h | |||
@@ -118,7 +118,7 @@ extern unsigned long ext2_count_free (struct buffer_head *, unsigned); | |||
118 | 118 | ||
119 | /* inode.c */ | 119 | /* inode.c */ |
120 | extern struct inode *ext2_iget (struct super_block *, unsigned long); | 120 | extern struct inode *ext2_iget (struct super_block *, unsigned long); |
121 | extern int ext2_write_inode (struct inode *, int); | 121 | extern int ext2_write_inode (struct inode *, struct writeback_control *); |
122 | extern void ext2_delete_inode (struct inode *); | 122 | extern void ext2_delete_inode (struct inode *); |
123 | extern int ext2_sync_inode (struct inode *); | 123 | extern int ext2_sync_inode (struct inode *); |
124 | extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int); | 124 | extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int); |
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index 71b032c65a02..36ae1cac767c 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c | |||
@@ -41,6 +41,8 @@ MODULE_AUTHOR("Remy Card and others"); | |||
41 | MODULE_DESCRIPTION("Second Extended Filesystem"); | 41 | MODULE_DESCRIPTION("Second Extended Filesystem"); |
42 | MODULE_LICENSE("GPL"); | 42 | MODULE_LICENSE("GPL"); |
43 | 43 | ||
44 | static int __ext2_write_inode(struct inode *inode, int do_sync); | ||
45 | |||
44 | /* | 46 | /* |
45 | * Test whether an inode is a fast symlink. | 47 | * Test whether an inode is a fast symlink. |
46 | */ | 48 | */ |
@@ -64,7 +66,7 @@ void ext2_delete_inode (struct inode * inode) | |||
64 | goto no_delete; | 66 | goto no_delete; |
65 | EXT2_I(inode)->i_dtime = get_seconds(); | 67 | EXT2_I(inode)->i_dtime = get_seconds(); |
66 | mark_inode_dirty(inode); | 68 | mark_inode_dirty(inode); |
67 | ext2_write_inode(inode, inode_needs_sync(inode)); | 69 | __ext2_write_inode(inode, inode_needs_sync(inode)); |
68 | 70 | ||
69 | inode->i_size = 0; | 71 | inode->i_size = 0; |
70 | if (inode->i_blocks) | 72 | if (inode->i_blocks) |
@@ -1335,7 +1337,7 @@ bad_inode: | |||
1335 | return ERR_PTR(ret); | 1337 | return ERR_PTR(ret); |
1336 | } | 1338 | } |
1337 | 1339 | ||
1338 | int ext2_write_inode(struct inode *inode, int do_sync) | 1340 | static int __ext2_write_inode(struct inode *inode, int do_sync) |
1339 | { | 1341 | { |
1340 | struct ext2_inode_info *ei = EXT2_I(inode); | 1342 | struct ext2_inode_info *ei = EXT2_I(inode); |
1341 | struct super_block *sb = inode->i_sb; | 1343 | struct super_block *sb = inode->i_sb; |
@@ -1440,6 +1442,11 @@ int ext2_write_inode(struct inode *inode, int do_sync) | |||
1440 | return err; | 1442 | return err; |
1441 | } | 1443 | } |
1442 | 1444 | ||
1445 | int ext2_write_inode(struct inode *inode, struct writeback_control *wbc) | ||
1446 | { | ||
1447 | return __ext2_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); | ||
1448 | } | ||
1449 | |||
1443 | int ext2_sync_inode(struct inode *inode) | 1450 | int ext2_sync_inode(struct inode *inode) |
1444 | { | 1451 | { |
1445 | struct writeback_control wbc = { | 1452 | struct writeback_control wbc = { |