summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/hfs/inode.c3
-rw-r--r--fs/hfs/mdb.c3
-rw-r--r--fs/hfs/super.c3
3 files changed, 5 insertions, 4 deletions
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c
index f2deefdb4066..90c1ccbff8e4 100644
--- a/fs/hfs/inode.c
+++ b/fs/hfs/inode.c
@@ -646,8 +646,7 @@ static int hfs_file_fsync(struct file *filp, loff_t start, loff_t end,
sb = inode->i_sb;
if (sb->s_dirt) {
sb->s_dirt = 0;
- if (!(sb->s_flags & MS_RDONLY))
- hfs_mdb_commit(sb);
+ hfs_mdb_commit(sb);
}
/* .. finally sync the buffers to disk */
err = sync_blockdev(sb->s_bdev);
diff --git a/fs/hfs/mdb.c b/fs/hfs/mdb.c
index 7a3224049f30..5fd51a5833ff 100644
--- a/fs/hfs/mdb.c
+++ b/fs/hfs/mdb.c
@@ -260,6 +260,9 @@ void hfs_mdb_commit(struct super_block *sb)
{
struct hfs_mdb *mdb = HFS_SB(sb)->mdb;
+ if (sb->s_flags & MS_RDONLY)
+ return;
+
lock_buffer(HFS_SB(sb)->mdb_bh);
if (test_and_clear_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags)) {
/* These parameters may have been modified, so write them back */
diff --git a/fs/hfs/super.c b/fs/hfs/super.c
index 47e4119a0650..0730135b771e 100644
--- a/fs/hfs/super.c
+++ b/fs/hfs/super.c
@@ -53,8 +53,7 @@ static void hfs_write_super(struct super_block *sb)
sb->s_dirt = 0;
/* sync everything to the buffers */
- if (!(sb->s_flags & MS_RDONLY))
- hfs_mdb_commit(sb);
+ hfs_mdb_commit(sb);
}
static int hfs_sync_fs(struct super_block *sb, int wait)