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 45ff49f0a4b5..fc13cc119aad 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 | */ |
@@ -66,7 +68,7 @@ void ext2_delete_inode (struct inode * inode) | |||
66 | goto no_delete; | 68 | goto no_delete; |
67 | EXT2_I(inode)->i_dtime = get_seconds(); | 69 | EXT2_I(inode)->i_dtime = get_seconds(); |
68 | mark_inode_dirty(inode); | 70 | mark_inode_dirty(inode); |
69 | ext2_write_inode(inode, inode_needs_sync(inode)); | 71 | __ext2_write_inode(inode, inode_needs_sync(inode)); |
70 | 72 | ||
71 | inode->i_size = 0; | 73 | inode->i_size = 0; |
72 | if (inode->i_blocks) | 74 | if (inode->i_blocks) |
@@ -1337,7 +1339,7 @@ bad_inode: | |||
1337 | return ERR_PTR(ret); | 1339 | return ERR_PTR(ret); |
1338 | } | 1340 | } |
1339 | 1341 | ||
1340 | int ext2_write_inode(struct inode *inode, int do_sync) | 1342 | static int __ext2_write_inode(struct inode *inode, int do_sync) |
1341 | { | 1343 | { |
1342 | struct ext2_inode_info *ei = EXT2_I(inode); | 1344 | struct ext2_inode_info *ei = EXT2_I(inode); |
1343 | struct super_block *sb = inode->i_sb; | 1345 | struct super_block *sb = inode->i_sb; |
@@ -1442,6 +1444,11 @@ int ext2_write_inode(struct inode *inode, int do_sync) | |||
1442 | return err; | 1444 | return err; |
1443 | } | 1445 | } |
1444 | 1446 | ||
1447 | int ext2_write_inode(struct inode *inode, struct writeback_control *wbc) | ||
1448 | { | ||
1449 | return __ext2_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); | ||
1450 | } | ||
1451 | |||
1445 | int ext2_sync_inode(struct inode *inode) | 1452 | int ext2_sync_inode(struct inode *inode) |
1446 | { | 1453 | { |
1447 | struct writeback_control wbc = { | 1454 | struct writeback_control wbc = { |