diff options
Diffstat (limited to 'fs/bfs')
-rw-r--r-- | fs/bfs/inode.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index d1d9d9088371..6f60336c6628 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c | |||
@@ -216,6 +216,26 @@ static void bfs_delete_inode(struct inode *inode) | |||
216 | clear_inode(inode); | 216 | clear_inode(inode); |
217 | } | 217 | } |
218 | 218 | ||
219 | static int bfs_sync_fs(struct super_block *sb, int wait) | ||
220 | { | ||
221 | struct bfs_sb_info *info = BFS_SB(sb); | ||
222 | |||
223 | mutex_lock(&info->bfs_lock); | ||
224 | mark_buffer_dirty(info->si_sbh); | ||
225 | sb->s_dirt = 0; | ||
226 | mutex_unlock(&info->bfs_lock); | ||
227 | |||
228 | return 0; | ||
229 | } | ||
230 | |||
231 | static void bfs_write_super(struct super_block *sb) | ||
232 | { | ||
233 | if (!(sb->s_flags & MS_RDONLY)) | ||
234 | bfs_sync_fs(sb, 1); | ||
235 | else | ||
236 | sb->s_dirt = 0; | ||
237 | } | ||
238 | |||
219 | static void bfs_put_super(struct super_block *s) | 239 | static void bfs_put_super(struct super_block *s) |
220 | { | 240 | { |
221 | struct bfs_sb_info *info = BFS_SB(s); | 241 | struct bfs_sb_info *info = BFS_SB(s); |
@@ -254,17 +274,6 @@ static int bfs_statfs(struct dentry *dentry, struct kstatfs *buf) | |||
254 | return 0; | 274 | return 0; |
255 | } | 275 | } |
256 | 276 | ||
257 | static void bfs_write_super(struct super_block *s) | ||
258 | { | ||
259 | struct bfs_sb_info *info = BFS_SB(s); | ||
260 | |||
261 | mutex_lock(&info->bfs_lock); | ||
262 | if (!(s->s_flags & MS_RDONLY)) | ||
263 | mark_buffer_dirty(info->si_sbh); | ||
264 | s->s_dirt = 0; | ||
265 | mutex_unlock(&info->bfs_lock); | ||
266 | } | ||
267 | |||
268 | static struct kmem_cache *bfs_inode_cachep; | 277 | static struct kmem_cache *bfs_inode_cachep; |
269 | 278 | ||
270 | static struct inode *bfs_alloc_inode(struct super_block *sb) | 279 | static struct inode *bfs_alloc_inode(struct super_block *sb) |
@@ -312,6 +321,7 @@ static const struct super_operations bfs_sops = { | |||
312 | .delete_inode = bfs_delete_inode, | 321 | .delete_inode = bfs_delete_inode, |
313 | .put_super = bfs_put_super, | 322 | .put_super = bfs_put_super, |
314 | .write_super = bfs_write_super, | 323 | .write_super = bfs_write_super, |
324 | .sync_fs = bfs_sync_fs, | ||
315 | .statfs = bfs_statfs, | 325 | .statfs = bfs_statfs, |
316 | }; | 326 | }; |
317 | 327 | ||