[PATCH] fat_lock is used as a mutex, convert it to using the new mutex primitive
authorArjan van de Ven <arjan@infradead.org>
Thu, 23 Mar 2006 11:00:48 +0000 (03:00 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 23 Mar 2006 15:38:15 +0000 (07:38 -0800)
The fat code uses the fat_lock always in a mutex way (taking and releasing
the lock in the same function), the patch below converts it into the new
mutex primitive.  Please consider this patch for the code.

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/fat/fatent.c
include/linux/msdos_fs.h

index a1a9e04512175c02d21a10b1586a2bd387fd53d8..ab171ea8e869b2cc9da6369abad3a83c970d2a96 100644 (file)
@@ -267,19 +267,19 @@ static struct fatent_operations fat32_ops = {
 
 static inline void lock_fat(struct msdos_sb_info *sbi)
 {
-       down(&sbi->fat_lock);
+       mutex_lock(&sbi->fat_lock);
 }
 
 static inline void unlock_fat(struct msdos_sb_info *sbi)
 {
-       up(&sbi->fat_lock);
+       mutex_unlock(&sbi->fat_lock);
 }
 
 void fat_ent_access_init(struct super_block *sb)
 {
        struct msdos_sb_info *sbi = MSDOS_SB(sb);
 
-       init_MUTEX(&sbi->fat_lock);
+       mutex_init(&sbi->fat_lock);
 
        switch (sbi->fat_bits) {
        case 32:
index 8bcd9450d9261fdc087c0bbbf19b3ce13b2da29e..779e6a5744c77e5dbe8b1112af78026ba89a3cba 100644 (file)
@@ -184,6 +184,7 @@ struct fat_slot_info {
 #include <linux/string.h>
 #include <linux/nls.h>
 #include <linux/fs.h>
+#include <linux/mutex.h>
 
 struct fat_mount_options {
        uid_t fs_uid;
@@ -226,7 +227,7 @@ struct msdos_sb_info {
        unsigned long max_cluster;   /* maximum cluster number */
        unsigned long root_cluster;  /* first cluster of the root directory */
        unsigned long fsinfo_sector; /* sector number of FAT32 fsinfo */
-       struct semaphore fat_lock;
+       struct mutex fat_lock;
        unsigned int prev_free;      /* previously allocated cluster number */
        unsigned int free_clusters;  /* -1 if undefined */
        struct fat_mount_options options;