diff options
-rw-r--r-- | fs/ext2/Makefile | 2 | ||||
-rw-r--r-- | fs/ext2/dir.c | 2 | ||||
-rw-r--r-- | fs/ext2/ext2.h | 3 | ||||
-rw-r--r-- | fs/ext2/file.c | 4 | ||||
-rw-r--r-- | fs/ext2/fsync.c | 50 | ||||
-rw-r--r-- | fs/ext2/inode.c | 11 |
6 files changed, 6 insertions, 66 deletions
diff --git a/fs/ext2/Makefile b/fs/ext2/Makefile index e0b2b43c1fdb..f42af45cfd88 100644 --- a/fs/ext2/Makefile +++ b/fs/ext2/Makefile | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | obj-$(CONFIG_EXT2_FS) += ext2.o | 5 | obj-$(CONFIG_EXT2_FS) += ext2.o |
6 | 6 | ||
7 | ext2-y := balloc.o dir.o file.o fsync.o ialloc.o inode.o \ | 7 | ext2-y := balloc.o dir.o file.o ialloc.o inode.o \ |
8 | ioctl.o namei.o super.o symlink.o | 8 | ioctl.o namei.o super.o symlink.o |
9 | 9 | ||
10 | ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o | 10 | ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o |
diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c index 2999d72153b7..003500498c22 100644 --- a/fs/ext2/dir.c +++ b/fs/ext2/dir.c | |||
@@ -720,5 +720,5 @@ const struct file_operations ext2_dir_operations = { | |||
720 | #ifdef CONFIG_COMPAT | 720 | #ifdef CONFIG_COMPAT |
721 | .compat_ioctl = ext2_compat_ioctl, | 721 | .compat_ioctl = ext2_compat_ioctl, |
722 | #endif | 722 | #endif |
723 | .fsync = ext2_sync_file, | 723 | .fsync = simple_fsync, |
724 | }; | 724 | }; |
diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index 3203042b36ef..b2bbf45039e0 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h | |||
@@ -113,9 +113,6 @@ extern int ext2_empty_dir (struct inode *); | |||
113 | extern struct ext2_dir_entry_2 * ext2_dotdot (struct inode *, struct page **); | 113 | extern struct ext2_dir_entry_2 * ext2_dotdot (struct inode *, struct page **); |
114 | extern void ext2_set_link(struct inode *, struct ext2_dir_entry_2 *, struct page *, struct inode *); | 114 | extern void ext2_set_link(struct inode *, struct ext2_dir_entry_2 *, struct page *, struct inode *); |
115 | 115 | ||
116 | /* fsync.c */ | ||
117 | extern int ext2_sync_file (struct file *, struct dentry *, int); | ||
118 | |||
119 | /* ialloc.c */ | 116 | /* ialloc.c */ |
120 | extern struct inode * ext2_new_inode (struct inode *, int); | 117 | extern struct inode * ext2_new_inode (struct inode *, int); |
121 | extern void ext2_free_inode (struct inode *); | 118 | extern void ext2_free_inode (struct inode *); |
diff --git a/fs/ext2/file.c b/fs/ext2/file.c index 45ed07122182..2b9e47dc9222 100644 --- a/fs/ext2/file.c +++ b/fs/ext2/file.c | |||
@@ -55,7 +55,7 @@ const struct file_operations ext2_file_operations = { | |||
55 | .mmap = generic_file_mmap, | 55 | .mmap = generic_file_mmap, |
56 | .open = generic_file_open, | 56 | .open = generic_file_open, |
57 | .release = ext2_release_file, | 57 | .release = ext2_release_file, |
58 | .fsync = ext2_sync_file, | 58 | .fsync = simple_fsync, |
59 | .splice_read = generic_file_splice_read, | 59 | .splice_read = generic_file_splice_read, |
60 | .splice_write = generic_file_splice_write, | 60 | .splice_write = generic_file_splice_write, |
61 | }; | 61 | }; |
@@ -72,7 +72,7 @@ const struct file_operations ext2_xip_file_operations = { | |||
72 | .mmap = xip_file_mmap, | 72 | .mmap = xip_file_mmap, |
73 | .open = generic_file_open, | 73 | .open = generic_file_open, |
74 | .release = ext2_release_file, | 74 | .release = ext2_release_file, |
75 | .fsync = ext2_sync_file, | 75 | .fsync = simple_fsync, |
76 | }; | 76 | }; |
77 | #endif | 77 | #endif |
78 | 78 | ||
diff --git a/fs/ext2/fsync.c b/fs/ext2/fsync.c deleted file mode 100644 index fc66c93fcb5c..000000000000 --- a/fs/ext2/fsync.c +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | /* | ||
2 | * linux/fs/ext2/fsync.c | ||
3 | * | ||
4 | * Copyright (C) 1993 Stephen Tweedie (sct@dcs.ed.ac.uk) | ||
5 | * from | ||
6 | * Copyright (C) 1992 Remy Card (card@masi.ibp.fr) | ||
7 | * Laboratoire MASI - Institut Blaise Pascal | ||
8 | * Universite Pierre et Marie Curie (Paris VI) | ||
9 | * from | ||
10 | * linux/fs/minix/truncate.c Copyright (C) 1991, 1992 Linus Torvalds | ||
11 | * | ||
12 | * ext2fs fsync primitive | ||
13 | * | ||
14 | * Big-endian to little-endian byte-swapping/bitmaps by | ||
15 | * David S. Miller (davem@caip.rutgers.edu), 1995 | ||
16 | * | ||
17 | * Removed unnecessary code duplication for little endian machines | ||
18 | * and excessive __inline__s. | ||
19 | * Andi Kleen, 1997 | ||
20 | * | ||
21 | * Major simplications and cleanup - we only need to do the metadata, because | ||
22 | * we can depend on generic_block_fdatasync() to sync the data blocks. | ||
23 | */ | ||
24 | |||
25 | #include "ext2.h" | ||
26 | #include <linux/buffer_head.h> /* for sync_mapping_buffers() */ | ||
27 | |||
28 | |||
29 | /* | ||
30 | * File may be NULL when we are called. Perhaps we shouldn't | ||
31 | * even pass file to fsync ? | ||
32 | */ | ||
33 | |||
34 | int ext2_sync_file(struct file *file, struct dentry *dentry, int datasync) | ||
35 | { | ||
36 | struct inode *inode = dentry->d_inode; | ||
37 | int err; | ||
38 | int ret; | ||
39 | |||
40 | ret = sync_mapping_buffers(inode->i_mapping); | ||
41 | if (!(inode->i_state & I_DIRTY)) | ||
42 | return ret; | ||
43 | if (datasync && !(inode->i_state & I_DIRTY_DATASYNC)) | ||
44 | return ret; | ||
45 | |||
46 | err = ext2_sync_inode(inode); | ||
47 | if (ret == 0) | ||
48 | ret = err; | ||
49 | return ret; | ||
50 | } | ||
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index acf678831103..29ed682061f6 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c | |||
@@ -41,8 +41,6 @@ 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_update_inode(struct inode * inode, int do_sync); | ||
45 | |||
46 | /* | 44 | /* |
47 | * Test whether an inode is a fast symlink. | 45 | * Test whether an inode is a fast symlink. |
48 | */ | 46 | */ |
@@ -66,7 +64,7 @@ void ext2_delete_inode (struct inode * inode) | |||
66 | goto no_delete; | 64 | goto no_delete; |
67 | EXT2_I(inode)->i_dtime = get_seconds(); | 65 | EXT2_I(inode)->i_dtime = get_seconds(); |
68 | mark_inode_dirty(inode); | 66 | mark_inode_dirty(inode); |
69 | ext2_update_inode(inode, inode_needs_sync(inode)); | 67 | ext2_write_inode(inode, inode_needs_sync(inode)); |
70 | 68 | ||
71 | inode->i_size = 0; | 69 | inode->i_size = 0; |
72 | if (inode->i_blocks) | 70 | if (inode->i_blocks) |
@@ -1337,7 +1335,7 @@ bad_inode: | |||
1337 | return ERR_PTR(ret); | 1335 | return ERR_PTR(ret); |
1338 | } | 1336 | } |
1339 | 1337 | ||
1340 | static int ext2_update_inode(struct inode * inode, int do_sync) | 1338 | int ext2_write_inode(struct inode *inode, int do_sync) |
1341 | { | 1339 | { |
1342 | struct ext2_inode_info *ei = EXT2_I(inode); | 1340 | struct ext2_inode_info *ei = EXT2_I(inode); |
1343 | struct super_block *sb = inode->i_sb; | 1341 | struct super_block *sb = inode->i_sb; |
@@ -1442,11 +1440,6 @@ static int ext2_update_inode(struct inode * inode, int do_sync) | |||
1442 | return err; | 1440 | return err; |
1443 | } | 1441 | } |
1444 | 1442 | ||
1445 | int ext2_write_inode(struct inode *inode, int wait) | ||
1446 | { | ||
1447 | return ext2_update_inode(inode, wait); | ||
1448 | } | ||
1449 | |||
1450 | int ext2_sync_inode(struct inode *inode) | 1443 | int ext2_sync_inode(struct inode *inode) |
1451 | { | 1444 | { |
1452 | struct writeback_control wbc = { | 1445 | struct writeback_control wbc = { |