mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
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: Matthias Kaehlcke <matthias@kaehlcke.net> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
de0ca06a99
commit
3084b72de7
3 changed files with 7 additions and 6 deletions
|
@ -145,7 +145,7 @@ u32 hfs_vbm_search_free(struct super_block *sb, u32 goal, u32 *num_bits)
|
||||||
if (!*num_bits)
|
if (!*num_bits)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
down(&HFS_SB(sb)->bitmap_lock);
|
mutex_lock(&HFS_SB(sb)->bitmap_lock);
|
||||||
bitmap = HFS_SB(sb)->bitmap;
|
bitmap = HFS_SB(sb)->bitmap;
|
||||||
|
|
||||||
pos = hfs_find_set_zero_bits(bitmap, HFS_SB(sb)->fs_ablocks, goal, num_bits);
|
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_SB(sb)->free_ablocks -= *num_bits;
|
||||||
hfs_bitmap_dirty(sb);
|
hfs_bitmap_dirty(sb);
|
||||||
out:
|
out:
|
||||||
up(&HFS_SB(sb)->bitmap_lock);
|
mutex_unlock(&HFS_SB(sb)->bitmap_lock);
|
||||||
return pos;
|
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)
|
if ((start + count) > HFS_SB(sb)->fs_ablocks)
|
||||||
return -2;
|
return -2;
|
||||||
|
|
||||||
down(&HFS_SB(sb)->bitmap_lock);
|
mutex_lock(&HFS_SB(sb)->bitmap_lock);
|
||||||
/* bitmap is always on a 32-bit boundary */
|
/* bitmap is always on a 32-bit boundary */
|
||||||
curr = HFS_SB(sb)->bitmap + (start / 32);
|
curr = HFS_SB(sb)->bitmap + (start / 32);
|
||||||
len = count;
|
len = count;
|
||||||
|
@ -236,7 +236,7 @@ int hfs_clear_vbm_bits(struct super_block *sb, u16 start, u16 count)
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
HFS_SB(sb)->free_ablocks += len;
|
HFS_SB(sb)->free_ablocks += len;
|
||||||
up(&HFS_SB(sb)->bitmap_lock);
|
mutex_unlock(&HFS_SB(sb)->bitmap_lock);
|
||||||
hfs_bitmap_dirty(sb);
|
hfs_bitmap_dirty(sb);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
|
#include <linux/mutex.h>
|
||||||
#include <linux/buffer_head.h>
|
#include <linux/buffer_head.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
|
|
||||||
|
@ -139,7 +140,7 @@ struct hfs_sb_info {
|
||||||
|
|
||||||
struct nls_table *nls_io, *nls_disk;
|
struct nls_table *nls_io, *nls_disk;
|
||||||
|
|
||||||
struct semaphore bitmap_lock;
|
struct mutex bitmap_lock;
|
||||||
|
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
|
|
@ -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_op = &hfs_super_operations;
|
||||||
sb->s_flags |= MS_NODIRATIME;
|
sb->s_flags |= MS_NODIRATIME;
|
||||||
init_MUTEX(&sbi->bitmap_lock);
|
mutex_init(&sbi->bitmap_lock);
|
||||||
|
|
||||||
res = hfs_mdb_get(sb);
|
res = hfs_mdb_get(sb);
|
||||||
if (res) {
|
if (res) {
|
||||||
|
|
Loading…
Reference in a new issue