mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 07:04:10 +08:00
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: Christoph Hellwig <hch@tuxera.com>
This commit is contained in:
parent
40bf48afe9
commit
a9fdbf8c60
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user