diff options
-rw-r--r-- | fs/ufs/dir.c | 2 | ||||
-rw-r--r-- | fs/ufs/file.c | 23 | ||||
-rw-r--r-- | fs/ufs/ufs.h | 1 |
3 files changed, 2 insertions, 24 deletions
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c index 6321b797061b..6f671f1ac271 100644 --- a/fs/ufs/dir.c +++ b/fs/ufs/dir.c | |||
@@ -666,6 +666,6 @@ not_empty: | |||
666 | const struct file_operations ufs_dir_operations = { | 666 | const struct file_operations ufs_dir_operations = { |
667 | .read = generic_read_dir, | 667 | .read = generic_read_dir, |
668 | .readdir = ufs_readdir, | 668 | .readdir = ufs_readdir, |
669 | .fsync = ufs_sync_file, | 669 | .fsync = simple_fsync, |
670 | .llseek = generic_file_llseek, | 670 | .llseek = generic_file_llseek, |
671 | }; | 671 | }; |
diff --git a/fs/ufs/file.c b/fs/ufs/file.c index 2bd3a1615714..73655c61240a 100644 --- a/fs/ufs/file.c +++ b/fs/ufs/file.c | |||
@@ -24,31 +24,10 @@ | |||
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/fs.h> | 26 | #include <linux/fs.h> |
27 | #include <linux/buffer_head.h> /* for sync_mapping_buffers() */ | ||
28 | 27 | ||
29 | #include "ufs_fs.h" | 28 | #include "ufs_fs.h" |
30 | #include "ufs.h" | 29 | #include "ufs.h" |
31 | 30 | ||
32 | |||
33 | int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync) | ||
34 | { | ||
35 | struct inode *inode = dentry->d_inode; | ||
36 | int err; | ||
37 | int ret; | ||
38 | |||
39 | ret = sync_mapping_buffers(inode->i_mapping); | ||
40 | if (!(inode->i_state & I_DIRTY)) | ||
41 | return ret; | ||
42 | if (datasync && !(inode->i_state & I_DIRTY_DATASYNC)) | ||
43 | return ret; | ||
44 | |||
45 | err = ufs_sync_inode(inode); | ||
46 | if (ret == 0) | ||
47 | ret = err; | ||
48 | return ret; | ||
49 | } | ||
50 | |||
51 | |||
52 | /* | 31 | /* |
53 | * We have mostly NULL's here: the current defaults are ok for | 32 | * We have mostly NULL's here: the current defaults are ok for |
54 | * the ufs filesystem. | 33 | * the ufs filesystem. |
@@ -62,6 +41,6 @@ const struct file_operations ufs_file_operations = { | |||
62 | .aio_write = generic_file_aio_write, | 41 | .aio_write = generic_file_aio_write, |
63 | .mmap = generic_file_mmap, | 42 | .mmap = generic_file_mmap, |
64 | .open = generic_file_open, | 43 | .open = generic_file_open, |
65 | .fsync = ufs_sync_file, | 44 | .fsync = simple_fsync, |
66 | .splice_read = generic_file_splice_read, | 45 | .splice_read = generic_file_splice_read, |
67 | }; | 46 | }; |
diff --git a/fs/ufs/ufs.h b/fs/ufs/ufs.h index d0c4acd4f1f3..644e77e13599 100644 --- a/fs/ufs/ufs.h +++ b/fs/ufs/ufs.h | |||
@@ -99,7 +99,6 @@ extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de, | |||
99 | extern const struct inode_operations ufs_file_inode_operations; | 99 | extern const struct inode_operations ufs_file_inode_operations; |
100 | extern const struct file_operations ufs_file_operations; | 100 | extern const struct file_operations ufs_file_operations; |
101 | extern const struct address_space_operations ufs_aops; | 101 | extern const struct address_space_operations ufs_aops; |
102 | extern int ufs_sync_file(struct file *, struct dentry *, int); | ||
103 | 102 | ||
104 | /* ialloc.c */ | 103 | /* ialloc.c */ |
105 | extern void ufs_free_inode (struct inode *inode); | 104 | extern void ufs_free_inode (struct inode *inode); |