Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3084b72d authored by Matthias Kaehlcke's avatar Matthias Kaehlcke Committed by Linus Torvalds
Browse files

hfs: convert bitmap_lock in a mutex



Apple Macintosh file system: The semaphore bitmap_lock is used as a mutex.
Convert it to the mutex API

Signed-off-by: default avatarMatthias Kaehlcke <matthias@kaehlcke.net>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent de0ca06a
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -145,7 +145,7 @@ u32 hfs_vbm_search_free(struct super_block *sb, u32 goal, u32 *num_bits)
	if (!*num_bits)
		return 0;

	down(&HFS_SB(sb)->bitmap_lock);
	mutex_lock(&HFS_SB(sb)->bitmap_lock);
	bitmap = HFS_SB(sb)->bitmap;

	pos = hfs_find_set_zero_bits(bitmap, HFS_SB(sb)->fs_ablocks, goal, num_bits);
@@ -162,7 +162,7 @@ u32 hfs_vbm_search_free(struct super_block *sb, u32 goal, u32 *num_bits)
	HFS_SB(sb)->free_ablocks -= *num_bits;
	hfs_bitmap_dirty(sb);
out:
	up(&HFS_SB(sb)->bitmap_lock);
	mutex_unlock(&HFS_SB(sb)->bitmap_lock);
	return pos;
}

@@ -205,7 +205,7 @@ int hfs_clear_vbm_bits(struct super_block *sb, u16 start, u16 count)
	if ((start + count) > HFS_SB(sb)->fs_ablocks)
		return -2;

	down(&HFS_SB(sb)->bitmap_lock);
	mutex_lock(&HFS_SB(sb)->bitmap_lock);
	/* bitmap is always on a 32-bit boundary */
	curr = HFS_SB(sb)->bitmap + (start / 32);
	len = count;
@@ -236,7 +236,7 @@ int hfs_clear_vbm_bits(struct super_block *sb, u16 start, u16 count)
	}
out:
	HFS_SB(sb)->free_ablocks += len;
	up(&HFS_SB(sb)->bitmap_lock);
	mutex_unlock(&HFS_SB(sb)->bitmap_lock);
	hfs_bitmap_dirty(sb);

	return 0;
+2 −1
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@

#include <linux/slab.h>
#include <linux/types.h>
#include <linux/mutex.h>
#include <linux/buffer_head.h>
#include <linux/fs.h>

@@ -139,7 +140,7 @@ struct hfs_sb_info {

	struct nls_table *nls_io, *nls_disk;

	struct semaphore bitmap_lock;
	struct mutex bitmap_lock;

	unsigned long flags;

+1 −1
Original line number Diff line number Diff line
@@ -372,7 +372,7 @@ static int hfs_fill_super(struct super_block *sb, void *data, int silent)

	sb->s_op = &hfs_super_operations;
	sb->s_flags |= MS_NODIRATIME;
	init_MUTEX(&sbi->bitmap_lock);
	mutex_init(&sbi->bitmap_lock);

	res = hfs_mdb_get(sb);
	if (res) {