git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
fs
/
hfsplus
/
bitmap.c
diff --git
a/fs/hfsplus/bitmap.c
b/fs/hfsplus/bitmap.c
index
c7d3164
..
d128a25
100644
(file)
--- a/
fs/hfsplus/bitmap.c
+++ b/
fs/hfsplus/bitmap.c
@@
-29,10
+29,9
@@
int hfsplus_block_allocate(struct super_block *sb, u32 size, u32 offset, u32 *ma
return size;
dprint(DBG_BITMAP, "block_allocate: %u,%u,%u\n", size, offset, len);
return size;
dprint(DBG_BITMAP, "block_allocate: %u,%u,%u\n", size, offset, len);
-
down(&HFSPLUS_SB(sb).alloc_file->i_sem
);
+
mutex_lock(&HFSPLUS_SB(sb).alloc_file->i_mutex
);
mapping = HFSPLUS_SB(sb).alloc_file->i_mapping;
mapping = HFSPLUS_SB(sb).alloc_file->i_mapping;
- page = read_cache_page(mapping, offset / PAGE_CACHE_BITS,
- (filler_t *)mapping->a_ops->readpage, NULL);
+ page = read_mapping_page(mapping, offset / PAGE_CACHE_BITS, NULL);
pptr = kmap(page);
curr = pptr + (offset & (PAGE_CACHE_BITS - 1)) / 32;
i = offset % 32;
pptr = kmap(page);
curr = pptr + (offset & (PAGE_CACHE_BITS - 1)) / 32;
i = offset % 32;
@@
-72,8
+71,8
@@
int hfsplus_block_allocate(struct super_block *sb, u32 size, u32 offset, u32 *ma
offset += PAGE_CACHE_BITS;
if (offset >= size)
break;
offset += PAGE_CACHE_BITS;
if (offset >= size)
break;
- page = read_
cache
_page(mapping, offset / PAGE_CACHE_BITS,
-
(filler_t *)mapping->a_ops->readpage,
NULL);
+ page = read_
mapping
_page(mapping, offset / PAGE_CACHE_BITS,
+
NULL);
curr = pptr = kmap(page);
if ((size ^ offset) / PAGE_CACHE_BITS)
end = pptr + PAGE_CACHE_BITS / 32;
curr = pptr = kmap(page);
if ((size ^ offset) / PAGE_CACHE_BITS)
end = pptr + PAGE_CACHE_BITS / 32;
@@
-119,8
+118,8
@@
found:
set_page_dirty(page);
kunmap(page);
offset += PAGE_CACHE_BITS;
set_page_dirty(page);
kunmap(page);
offset += PAGE_CACHE_BITS;
- page = read_
cache
_page(mapping, offset / PAGE_CACHE_BITS,
-
(filler_t *)mapping->a_ops->readpage,
NULL);
+ page = read_
mapping
_page(mapping, offset / PAGE_CACHE_BITS,
+
NULL);
pptr = kmap(page);
curr = pptr;
end = pptr + PAGE_CACHE_BITS / 32;
pptr = kmap(page);
curr = pptr;
end = pptr + PAGE_CACHE_BITS / 32;
@@
-143,7
+142,7
@@
done:
sb->s_dirt = 1;
dprint(DBG_BITMAP, "-> %u,%u\n", start, *max);
out:
sb->s_dirt = 1;
dprint(DBG_BITMAP, "-> %u,%u\n", start, *max);
out:
-
up(&HFSPLUS_SB(sb).alloc_file->i_sem
);
+
mutex_unlock(&HFSPLUS_SB(sb).alloc_file->i_mutex
);
return start;
}
return start;
}
@@
-164,10
+163,10
@@
int hfsplus_block_free(struct super_block *sb, u32 offset, u32 count)
if ((offset + count) > HFSPLUS_SB(sb).total_blocks)
return -2;
if ((offset + count) > HFSPLUS_SB(sb).total_blocks)
return -2;
-
down(&HFSPLUS_SB(sb).alloc_file->i_sem
);
+
mutex_lock(&HFSPLUS_SB(sb).alloc_file->i_mutex
);
mapping = HFSPLUS_SB(sb).alloc_file->i_mapping;
pnr = offset / PAGE_CACHE_BITS;
mapping = HFSPLUS_SB(sb).alloc_file->i_mapping;
pnr = offset / PAGE_CACHE_BITS;
- page = read_
cache_page(mapping, pnr, (filler_t *)mapping->a_ops->readpage
, NULL);
+ page = read_
mapping_page(mapping, pnr
, NULL);
pptr = kmap(page);
curr = pptr + (offset & (PAGE_CACHE_BITS - 1)) / 32;
end = pptr + PAGE_CACHE_BITS / 32;
pptr = kmap(page);
curr = pptr + (offset & (PAGE_CACHE_BITS - 1)) / 32;
end = pptr + PAGE_CACHE_BITS / 32;
@@
-199,7
+198,7
@@
int hfsplus_block_free(struct super_block *sb, u32 offset, u32 count)
break;
set_page_dirty(page);
kunmap(page);
break;
set_page_dirty(page);
kunmap(page);
- page = read_
cache_page(mapping, ++pnr, (filler_t *)mapping->a_ops->readpage
, NULL);
+ page = read_
mapping_page(mapping, ++pnr
, NULL);
pptr = kmap(page);
curr = pptr;
end = pptr + PAGE_CACHE_BITS / 32;
pptr = kmap(page);
curr = pptr;
end = pptr + PAGE_CACHE_BITS / 32;
@@
-215,7
+214,7
@@
out:
kunmap(page);
HFSPLUS_SB(sb).free_blocks += len;
sb->s_dirt = 1;
kunmap(page);
HFSPLUS_SB(sb).free_blocks += len;
sb->s_dirt = 1;
-
up(&HFSPLUS_SB(sb).alloc_file->i_sem
);
+
mutex_unlock(&HFSPLUS_SB(sb).alloc_file->i_mutex
);
return 0;
}
return 0;
}