* [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes
@ 2008-05-11 17:43 matthias
2008-05-11 17:43 ` [patch 1/2] HFS: Convert bitmap_lock in a mutex matthias
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: matthias @ 2008-05-11 17:43 UTC (permalink / raw)
To: zippel; +Cc: linux-kernel, akpm
Apple Macintosh file system: The semaphores bitmap_lock and extents_lock are used as mutexes. Convert them to the mutex API
--
Matthias Kaehlcke
Embedded Linux Engineer
Barcelona
We build too many walls and not enough bridges
(Isaac Newton)
.''`.
using free software / Debian GNU/Linux | http://debian.org : :' :
`. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-
^ permalink raw reply [flat|nested] 6+ messages in thread* [patch 1/2] HFS: Convert bitmap_lock in a mutex 2008-05-11 17:43 [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes matthias @ 2008-05-11 17:43 ` matthias 2008-05-11 18:15 ` Matthias Kaehlcke 2008-05-11 17:43 ` [patch 2/2] HFS: Convert extents_lock " matthias 2008-05-11 18:06 ` [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes Matthias Kaehlcke 2 siblings, 1 reply; 6+ messages in thread From: matthias @ 2008-05-11 17:43 UTC (permalink / raw) To: zippel; +Cc: linux-kernel, akpm, Matthias Kaehlcke [-- Attachment #1: fs-hfs-bitmap_lock-to-mutex.diff --] [-- Type: text/plain, Size: 2568 bytes --] 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> Index: hfs/bitmap.c =================================================================== --- hfs.orig/bitmap.c 2008-05-11 19:10:19.000000000 +0200 +++ hfs/bitmap.c 2008-05-11 19:11:17.000000000 +0200 @@ -145,7 +145,7 @@ 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 @@ 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 @@ 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 @@ } 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; Index: hfs/hfs_fs.h =================================================================== --- hfs.orig/hfs_fs.h 2008-05-11 19:10:40.000000000 +0200 +++ hfs/hfs_fs.h 2008-05-11 19:11:58.000000000 +0200 @@ -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 nls_table *nls_io, *nls_disk; - struct semaphore bitmap_lock; + struct mutex bitmap_lock; unsigned long flags; Index: hfs/super.c =================================================================== --- hfs.orig/super.c 2008-05-11 19:10:34.000000000 +0200 +++ hfs/super.c 2008-05-11 19:12:13.000000000 +0200 @@ -372,7 +372,7 @@ 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) { -- Matthias Kaehlcke Embedded Linux Engineer Barcelona We build too many walls and not enough bridges (Isaac Newton) .''`. using free software / Debian GNU/Linux | http://debian.org : :' : `. `'` gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `- ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 1/2] HFS: Convert bitmap_lock in a mutex 2008-05-11 17:43 ` [patch 1/2] HFS: Convert bitmap_lock in a mutex matthias @ 2008-05-11 18:15 ` Matthias Kaehlcke 0 siblings, 0 replies; 6+ messages in thread From: Matthias Kaehlcke @ 2008-05-11 18:15 UTC (permalink / raw) To: zippel; +Cc: linux-kernel, akpm 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> -- Index: linux-2.6/fs/hfs/bitmap.c =================================================================== --- linux-2.6.orig/fs/hfs/bitmap.c 2008-05-11 20:10:11.000000000 +0200 +++ linux-2.6/fs/hfs/bitmap.c 2008-05-11 20:10:18.000000000 +0200 @@ -145,7 +145,7 @@ 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 @@ 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 @@ 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 @@ } 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; Index: linux-2.6/fs/hfs/hfs_fs.h =================================================================== --- linux-2.6.orig/fs/hfs/hfs_fs.h 2008-05-11 20:10:11.000000000 +0200 +++ linux-2.6/fs/hfs/hfs_fs.h 2008-05-11 20:14:08.000000000 +0200 @@ -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 nls_table *nls_io, *nls_disk; - struct semaphore bitmap_lock; + struct mutex bitmap_lock; unsigned long flags; Index: linux-2.6/fs/hfs/super.c =================================================================== --- linux-2.6.orig/fs/hfs/super.c 2008-05-11 20:10:11.000000000 +0200 +++ linux-2.6/fs/hfs/super.c 2008-05-11 20:10:18.000000000 +0200 @@ -372,7 +372,7 @@ 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) { -- Matthias Kaehlcke Embedded Linux Engineer Barcelona La posibilidad de realizar un suenyo es lo que hace que la vida sea interesante .''`. using free software / Debian GNU/Linux | http://debian.org : :' : `. `'` gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `- ^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch 2/2] HFS: Convert extents_lock in a mutex 2008-05-11 17:43 [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes matthias 2008-05-11 17:43 ` [patch 1/2] HFS: Convert bitmap_lock in a mutex matthias @ 2008-05-11 17:43 ` matthias 2008-05-11 18:16 ` Matthias Kaehlcke 2008-05-11 18:06 ` [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes Matthias Kaehlcke 2 siblings, 1 reply; 6+ messages in thread From: matthias @ 2008-05-11 17:43 UTC (permalink / raw) To: zippel; +Cc: linux-kernel, akpm, Matthias Kaehlcke [-- Attachment #1: fs-hfs-extents_lock-to-mutex.diff --] [-- Type: text/plain, Size: 3922 bytes --] Apple Macintosh file system: The semaphore extens_lock is used as a mutex. Convert it to the mutex API Signed-off-by: Matthias Kaehlcke <matthias@kaehlcke.net> Index: hfs/btree.c =================================================================== --- hfs.orig/btree.c 2008-05-11 19:28:16.000000000 +0200 +++ hfs/btree.c 2008-05-11 19:28:46.000000000 +0200 @@ -40,7 +40,7 @@ { struct hfs_mdb *mdb = HFS_SB(sb)->mdb; HFS_I(tree->inode)->flags = 0; - init_MUTEX(&HFS_I(tree->inode)->extents_lock); + mutex_init(&HFS_I(tree->inode)->extents_lock); switch (id) { case HFS_EXT_CNID: hfs_inode_read_fork(tree->inode, mdb->drXTExtRec, mdb->drXTFlSize, Index: hfs/extent.c =================================================================== --- hfs.orig/extent.c 2008-05-11 19:28:16.000000000 +0200 +++ hfs/extent.c 2008-05-11 19:29:43.000000000 +0200 @@ -343,16 +343,16 @@ goto done; } - down(&HFS_I(inode)->extents_lock); + mutex_lock(&HFS_I(inode)->extents_lock); res = hfs_ext_read_extent(inode, ablock); if (!res) dblock = hfs_ext_find_block(HFS_I(inode)->cached_extents, ablock - HFS_I(inode)->cached_start); else { - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); return -EIO; } - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); done: map_bh(bh_result, sb, HFS_SB(sb)->fs_start + @@ -375,7 +375,7 @@ u32 start, len, goal; int res; - down(&HFS_I(inode)->extents_lock); + mutex_lock(&HFS_I(inode)->extents_lock); if (HFS_I(inode)->alloc_blocks == HFS_I(inode)->first_blocks) goal = hfs_ext_lastblock(HFS_I(inode)->first_extents); else { @@ -425,7 +425,7 @@ goto insert_extent; } out: - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); if (!res) { HFS_I(inode)->alloc_blocks += len; mark_inode_dirty(inode); @@ -487,7 +487,7 @@ if (blk_cnt == alloc_cnt) goto out; - down(&HFS_I(inode)->extents_lock); + mutex_lock(&HFS_I(inode)->extents_lock); hfs_find_init(HFS_SB(sb)->ext_tree, &fd); while (1) { if (alloc_cnt == HFS_I(inode)->first_blocks) { @@ -514,7 +514,7 @@ hfs_brec_remove(&fd); } hfs_find_exit(&fd); - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); HFS_I(inode)->alloc_blocks = blk_cnt; out: Index: hfs/hfs_fs.h =================================================================== --- hfs.orig/hfs_fs.h 2008-05-11 19:28:17.000000000 +0200 +++ hfs/hfs_fs.h 2008-05-11 19:30:11.000000000 +0200 @@ -54,7 +54,7 @@ struct list_head open_dir_list; struct inode *rsrc_inode; - struct semaphore extents_lock; + struct mutex extents_lock; u16 alloc_blocks, clump_blocks; sector_t fs_blocks; Index: hfs/inode.c =================================================================== --- hfs.orig/inode.c 2008-05-11 19:28:17.000000000 +0200 +++ hfs/inode.c 2008-05-11 19:30:44.000000000 +0200 @@ -150,7 +150,7 @@ if (!inode) return NULL; - init_MUTEX(&HFS_I(inode)->extents_lock); + mutex_init(&HFS_I(inode)->extents_lock); INIT_LIST_HEAD(&HFS_I(inode)->open_dir_list); hfs_cat_build_key(sb, (btree_key *)&HFS_I(inode)->cat_key, dir->i_ino, name); inode->i_ino = HFS_SB(sb)->next_id++; @@ -281,7 +281,7 @@ HFS_I(inode)->flags = 0; HFS_I(inode)->rsrc_inode = NULL; - init_MUTEX(&HFS_I(inode)->extents_lock); + mutex_init(&HFS_I(inode)->extents_lock); INIT_LIST_HEAD(&HFS_I(inode)->open_dir_list); /* Initialize the inode */ -- Matthias Kaehlcke Embedded Linux Engineer Barcelona We build too many walls and not enough bridges (Isaac Newton) .''`. using free software / Debian GNU/Linux | http://debian.org : :' : `. `'` gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `- ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 2/2] HFS: Convert extents_lock in a mutex 2008-05-11 17:43 ` [patch 2/2] HFS: Convert extents_lock " matthias @ 2008-05-11 18:16 ` Matthias Kaehlcke 0 siblings, 0 replies; 6+ messages in thread From: Matthias Kaehlcke @ 2008-05-11 18:16 UTC (permalink / raw) To: zippel; +Cc: linux-kernel, akpm Apple Macintosh file system: The semaphore extens_lock is used as a mutex. Convert it to the mutex API Signed-off-by: Matthias Kaehlcke <matthias@kaehlcke.net> -- Index: linux-2.6/fs/hfs/btree.c =================================================================== --- linux-2.6.orig/fs/hfs/btree.c 2008-05-11 20:11:54.000000000 +0200 +++ linux-2.6/fs/hfs/btree.c 2008-05-11 20:11:59.000000000 +0200 @@ -40,7 +40,7 @@ { struct hfs_mdb *mdb = HFS_SB(sb)->mdb; HFS_I(tree->inode)->flags = 0; - init_MUTEX(&HFS_I(tree->inode)->extents_lock); + mutex_init(&HFS_I(tree->inode)->extents_lock); switch (id) { case HFS_EXT_CNID: hfs_inode_read_fork(tree->inode, mdb->drXTExtRec, mdb->drXTFlSize, Index: linux-2.6/fs/hfs/extent.c =================================================================== --- linux-2.6.orig/fs/hfs/extent.c 2008-05-11 20:11:54.000000000 +0200 +++ linux-2.6/fs/hfs/extent.c 2008-05-11 20:11:59.000000000 +0200 @@ -343,16 +343,16 @@ goto done; } - down(&HFS_I(inode)->extents_lock); + mutex_lock(&HFS_I(inode)->extents_lock); res = hfs_ext_read_extent(inode, ablock); if (!res) dblock = hfs_ext_find_block(HFS_I(inode)->cached_extents, ablock - HFS_I(inode)->cached_start); else { - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); return -EIO; } - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); done: map_bh(bh_result, sb, HFS_SB(sb)->fs_start + @@ -375,7 +375,7 @@ u32 start, len, goal; int res; - down(&HFS_I(inode)->extents_lock); + mutex_lock(&HFS_I(inode)->extents_lock); if (HFS_I(inode)->alloc_blocks == HFS_I(inode)->first_blocks) goal = hfs_ext_lastblock(HFS_I(inode)->first_extents); else { @@ -425,7 +425,7 @@ goto insert_extent; } out: - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); if (!res) { HFS_I(inode)->alloc_blocks += len; mark_inode_dirty(inode); @@ -487,7 +487,7 @@ if (blk_cnt == alloc_cnt) goto out; - down(&HFS_I(inode)->extents_lock); + mutex_lock(&HFS_I(inode)->extents_lock); hfs_find_init(HFS_SB(sb)->ext_tree, &fd); while (1) { if (alloc_cnt == HFS_I(inode)->first_blocks) { @@ -514,7 +514,7 @@ hfs_brec_remove(&fd); } hfs_find_exit(&fd); - up(&HFS_I(inode)->extents_lock); + mutex_unlock(&HFS_I(inode)->extents_lock); HFS_I(inode)->alloc_blocks = blk_cnt; out: Index: linux-2.6/fs/hfs/hfs_fs.h =================================================================== --- linux-2.6.orig/fs/hfs/hfs_fs.h 2008-05-11 20:11:54.000000000 +0200 +++ linux-2.6/fs/hfs/hfs_fs.h 2008-05-11 20:11:59.000000000 +0200 @@ -54,7 +54,7 @@ struct list_head open_dir_list; struct inode *rsrc_inode; - struct semaphore extents_lock; + struct mutex extents_lock; u16 alloc_blocks, clump_blocks; sector_t fs_blocks; Index: linux-2.6/fs/hfs/inode.c =================================================================== --- linux-2.6.orig/fs/hfs/inode.c 2008-05-11 20:11:54.000000000 +0200 +++ linux-2.6/fs/hfs/inode.c 2008-05-11 20:11:59.000000000 +0200 @@ -150,7 +150,7 @@ if (!inode) return NULL; - init_MUTEX(&HFS_I(inode)->extents_lock); + mutex_init(&HFS_I(inode)->extents_lock); INIT_LIST_HEAD(&HFS_I(inode)->open_dir_list); hfs_cat_build_key(sb, (btree_key *)&HFS_I(inode)->cat_key, dir->i_ino, name); inode->i_ino = HFS_SB(sb)->next_id++; @@ -281,7 +281,7 @@ HFS_I(inode)->flags = 0; HFS_I(inode)->rsrc_inode = NULL; - init_MUTEX(&HFS_I(inode)->extents_lock); + mutex_init(&HFS_I(inode)->extents_lock); INIT_LIST_HEAD(&HFS_I(inode)->open_dir_list); /* Initialize the inode */ -- Matthias Kaehlcke Embedded Linux Engineer Barcelona Don't walk behind me, I may not lead Don't walk in front of me, I may not follow Just walk beside me and be my friend (Albert Camus) .''`. using free software / Debian GNU/Linux | http://debian.org : :' : `. `'` gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `- ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes 2008-05-11 17:43 [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes matthias 2008-05-11 17:43 ` [patch 1/2] HFS: Convert bitmap_lock in a mutex matthias 2008-05-11 17:43 ` [patch 2/2] HFS: Convert extents_lock " matthias @ 2008-05-11 18:06 ` Matthias Kaehlcke 2 siblings, 0 replies; 6+ messages in thread From: Matthias Kaehlcke @ 2008-05-11 18:06 UTC (permalink / raw) To: zippel; +Cc: linux-kernel, akpm El Sun, May 11, 2008 at 07:43:31PM +0200 matthias@kaehlcke.net ha dit: > Apple Macintosh file system: The semaphores bitmap_lock and extents_lock are used as mutexes. Convert them to the mutex API sorry, i just realized that the patches use relative paths. i'm going to submit a fix -- Matthias Kaehlcke Embedded Linux Engineer Barcelona Usually when people are sad, they don't do anything. They just cry over their condition. But when they get angry, they bring about a change (Malcolm X) .''`. using free software / Debian GNU/Linux | http://debian.org : :' : `. `'` gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `- ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-05-11 18:16 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-05-11 17:43 [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes matthias 2008-05-11 17:43 ` [patch 1/2] HFS: Convert bitmap_lock in a mutex matthias 2008-05-11 18:15 ` Matthias Kaehlcke 2008-05-11 17:43 ` [patch 2/2] HFS: Convert extents_lock " matthias 2008-05-11 18:16 ` Matthias Kaehlcke 2008-05-11 18:06 ` [patch 0/2] HFS: Convert bitmap_lock and extents_lock in mutexes Matthias Kaehlcke
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.