diff options
Diffstat (limited to 'fs/hfs/inode.c')
-rw-r--r-- | fs/hfs/inode.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c index 761ec06354b4..ee1bc55677f1 100644 --- a/fs/hfs/inode.c +++ b/fs/hfs/inode.c | |||
@@ -220,7 +220,7 @@ struct inode *hfs_new_inode(struct inode *dir, struct qstr *name, umode_t mode) | |||
220 | insert_inode_hash(inode); | 220 | insert_inode_hash(inode); |
221 | mark_inode_dirty(inode); | 221 | mark_inode_dirty(inode); |
222 | set_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags); | 222 | set_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags); |
223 | sb->s_dirt = 1; | 223 | hfs_mark_mdb_dirty(sb); |
224 | 224 | ||
225 | return inode; | 225 | return inode; |
226 | } | 226 | } |
@@ -235,7 +235,7 @@ void hfs_delete_inode(struct inode *inode) | |||
235 | if (HFS_I(inode)->cat_key.ParID == cpu_to_be32(HFS_ROOT_CNID)) | 235 | if (HFS_I(inode)->cat_key.ParID == cpu_to_be32(HFS_ROOT_CNID)) |
236 | HFS_SB(sb)->root_dirs--; | 236 | HFS_SB(sb)->root_dirs--; |
237 | set_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags); | 237 | set_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags); |
238 | sb->s_dirt = 1; | 238 | hfs_mark_mdb_dirty(sb); |
239 | return; | 239 | return; |
240 | } | 240 | } |
241 | HFS_SB(sb)->file_count--; | 241 | HFS_SB(sb)->file_count--; |
@@ -248,7 +248,7 @@ void hfs_delete_inode(struct inode *inode) | |||
248 | } | 248 | } |
249 | } | 249 | } |
250 | set_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags); | 250 | set_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags); |
251 | sb->s_dirt = 1; | 251 | hfs_mark_mdb_dirty(sb); |
252 | } | 252 | } |
253 | 253 | ||
254 | void hfs_inode_read_fork(struct inode *inode, struct hfs_extent *ext, | 254 | void hfs_inode_read_fork(struct inode *inode, struct hfs_extent *ext, |
@@ -489,7 +489,7 @@ out: | |||
489 | } | 489 | } |
490 | 490 | ||
491 | static struct dentry *hfs_file_lookup(struct inode *dir, struct dentry *dentry, | 491 | static struct dentry *hfs_file_lookup(struct inode *dir, struct dentry *dentry, |
492 | struct nameidata *nd) | 492 | unsigned int flags) |
493 | { | 493 | { |
494 | struct inode *inode = NULL; | 494 | struct inode *inode = NULL; |
495 | hfs_cat_rec rec; | 495 | hfs_cat_rec rec; |
@@ -644,13 +644,7 @@ static int hfs_file_fsync(struct file *filp, loff_t start, loff_t end, | |||
644 | 644 | ||
645 | /* sync the superblock to buffers */ | 645 | /* sync the superblock to buffers */ |
646 | sb = inode->i_sb; | 646 | sb = inode->i_sb; |
647 | if (sb->s_dirt) { | 647 | flush_delayed_work_sync(&HFS_SB(sb)->mdb_work); |
648 | lock_super(sb); | ||
649 | sb->s_dirt = 0; | ||
650 | if (!(sb->s_flags & MS_RDONLY)) | ||
651 | hfs_mdb_commit(sb); | ||
652 | unlock_super(sb); | ||
653 | } | ||
654 | /* .. finally sync the buffers to disk */ | 648 | /* .. finally sync the buffers to disk */ |
655 | err = sync_blockdev(sb->s_bdev); | 649 | err = sync_blockdev(sb->s_bdev); |
656 | if (!ret) | 650 | if (!ret) |