aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2010-09-30 23:41:50 -0400
committerChristoph Hellwig <hch@lst.de>2010-09-30 23:41:50 -0400
commita9fdbf8c6070d49c482e209df7ee93d9ec41ea27 (patch)
treed8e2547819bc1e75f3ac29804e6c5b8b23f65c75
parent40bf48afe92fcea61e7e164f0b2599fba8b88124 (diff)
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>
-rw-r--r--fs/hfsplus/super.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
index 3dc62aa58728..4936642debaa 100644
--- a/fs/hfsplus/super.c
+++ b/fs/hfsplus/super.c
@@ -162,7 +162,7 @@ int hfsplus_sync_fs(struct super_block *sb, int wait)
162 162
163 dprint(DBG_SUPER, "hfsplus_write_super\n"); 163 dprint(DBG_SUPER, "hfsplus_write_super\n");
164 164
165 lock_super(sb); 165 mutex_lock(&HFSPLUS_SB(sb).alloc_mutex);
166 sb->s_dirt = 0; 166 sb->s_dirt = 0;
167 167
168 vhdr->free_blocks = cpu_to_be32(HFSPLUS_SB(sb).free_blocks); 168 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)
195 } 195 }
196 HFSPLUS_SB(sb).flags &= ~HFSPLUS_SB_WRITEBACKUP; 196 HFSPLUS_SB(sb).flags &= ~HFSPLUS_SB_WRITEBACKUP;
197 } 197 }
198 unlock_super(sb); 198 mutex_unlock(&HFSPLUS_SB(sb).alloc_mutex);
199 return 0; 199 return 0;
200} 200}
201 201