aboutsummaryrefslogtreecommitdiffstats
path: root/fs/hfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/hfs')
-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,
646 sb = inode->i_sb; 646 sb = inode->i_sb;
647 if (sb->s_dirt) { 647 if (sb->s_dirt) {
648 sb->s_dirt = 0; 648 sb->s_dirt = 0;
649 if (!(sb->s_flags & MS_RDONLY)) 649 hfs_mdb_commit(sb);
650 hfs_mdb_commit(sb);
651 } 650 }
652 /* .. finally sync the buffers to disk */ 651 /* .. finally sync the buffers to disk */
653 err = sync_blockdev(sb->s_bdev); 652 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)
260{ 260{
261 struct hfs_mdb *mdb = HFS_SB(sb)->mdb; 261 struct hfs_mdb *mdb = HFS_SB(sb)->mdb;
262 262
263 if (sb->s_flags & MS_RDONLY)
264 return;
265
263 lock_buffer(HFS_SB(sb)->mdb_bh); 266 lock_buffer(HFS_SB(sb)->mdb_bh);
264 if (test_and_clear_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags)) { 267 if (test_and_clear_bit(HFS_FLG_MDB_DIRTY, &HFS_SB(sb)->flags)) {
265 /* These parameters may have been modified, so write them back */ 268 /* 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)
53 sb->s_dirt = 0; 53 sb->s_dirt = 0;
54 54
55 /* sync everything to the buffers */ 55 /* sync everything to the buffers */
56 if (!(sb->s_flags & MS_RDONLY)) 56 hfs_mdb_commit(sb);
57 hfs_mdb_commit(sb);
58} 57}
59 58
60static int hfs_sync_fs(struct super_block *sb, int wait) 59static int hfs_sync_fs(struct super_block *sb, int wait)