diff options
Diffstat (limited to 'fs/sync.c')
-rw-r--r-- | fs/sync.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -85,14 +85,14 @@ static void sync_fs_one_sb(struct super_block *sb, void *arg) | |||
85 | sb->s_op->sync_fs(sb, *(int *)arg); | 85 | sb->s_op->sync_fs(sb, *(int *)arg); |
86 | } | 86 | } |
87 | 87 | ||
88 | static void flush_one_bdev(struct block_device *bdev, void *arg) | 88 | static void fdatawrite_one_bdev(struct block_device *bdev, void *arg) |
89 | { | 89 | { |
90 | __sync_blockdev(bdev, 0); | 90 | filemap_fdatawrite(bdev->bd_inode->i_mapping); |
91 | } | 91 | } |
92 | 92 | ||
93 | static void sync_one_bdev(struct block_device *bdev, void *arg) | 93 | static void fdatawait_one_bdev(struct block_device *bdev, void *arg) |
94 | { | 94 | { |
95 | sync_blockdev(bdev); | 95 | filemap_fdatawait(bdev->bd_inode->i_mapping); |
96 | } | 96 | } |
97 | 97 | ||
98 | /* | 98 | /* |
@@ -106,10 +106,10 @@ SYSCALL_DEFINE0(sync) | |||
106 | wakeup_flusher_threads(0, WB_REASON_SYNC); | 106 | wakeup_flusher_threads(0, WB_REASON_SYNC); |
107 | iterate_supers(writeback_inodes_one_sb, NULL); | 107 | iterate_supers(writeback_inodes_one_sb, NULL); |
108 | iterate_supers(sync_fs_one_sb, &nowait); | 108 | iterate_supers(sync_fs_one_sb, &nowait); |
109 | iterate_bdevs(flush_one_bdev, NULL); | ||
110 | iterate_supers(sync_inodes_one_sb, NULL); | 109 | iterate_supers(sync_inodes_one_sb, NULL); |
111 | iterate_supers(sync_fs_one_sb, &wait); | 110 | iterate_supers(sync_fs_one_sb, &wait); |
112 | iterate_bdevs(sync_one_bdev, NULL); | 111 | iterate_bdevs(fdatawrite_one_bdev, NULL); |
112 | iterate_bdevs(fdatawait_one_bdev, NULL); | ||
113 | if (unlikely(laptop_mode)) | 113 | if (unlikely(laptop_mode)) |
114 | laptop_sync_completion(); | 114 | laptop_sync_completion(); |
115 | return 0; | 115 | return 0; |
@@ -125,10 +125,10 @@ static void do_sync_work(struct work_struct *work) | |||
125 | */ | 125 | */ |
126 | iterate_supers(sync_inodes_one_sb, &nowait); | 126 | iterate_supers(sync_inodes_one_sb, &nowait); |
127 | iterate_supers(sync_fs_one_sb, &nowait); | 127 | iterate_supers(sync_fs_one_sb, &nowait); |
128 | iterate_bdevs(flush_one_bdev, NULL); | 128 | iterate_bdevs(fdatawrite_one_bdev, NULL); |
129 | iterate_supers(sync_inodes_one_sb, &nowait); | 129 | iterate_supers(sync_inodes_one_sb, &nowait); |
130 | iterate_supers(sync_fs_one_sb, &nowait); | 130 | iterate_supers(sync_fs_one_sb, &nowait); |
131 | iterate_bdevs(flush_one_bdev, NULL); | 131 | iterate_bdevs(fdatawrite_one_bdev, NULL); |
132 | printk("Emergency Sync complete\n"); | 132 | printk("Emergency Sync complete\n"); |
133 | kfree(work); | 133 | kfree(work); |
134 | } | 134 | } |