Commit a9fdbf8c authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

hfsplus: use alloc_mutex in hfsplus_sync_fs



Use alloc_mutex to protect hfsplus_sync_fs against itself and concurrent
allocations, which allows to get rid of lock_super in hfsplus.

Note that most fields in the superblock still aren't protected against
concurrent allocations, that will follow later.

Signed-off-by: default avatarChristoph Hellwig <hch@tuxera.com>
parent 40bf48af
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -162,7 +162,7 @@ int hfsplus_sync_fs(struct super_block *sb, int wait)

	dprint(DBG_SUPER, "hfsplus_write_super\n");

	lock_super(sb);
	mutex_lock(&HFSPLUS_SB(sb).alloc_mutex);
	sb->s_dirt = 0;

	vhdr->free_blocks = cpu_to_be32(HFSPLUS_SB(sb).free_blocks);
@@ -195,7 +195,7 @@ int hfsplus_sync_fs(struct super_block *sb, int wait)
		}
		HFSPLUS_SB(sb).flags &= ~HFSPLUS_SB_WRITEBACKUP;
	}
	unlock_super(sb);
	mutex_unlock(&HFSPLUS_SB(sb).alloc_mutex);
	return 0;
}