|
@@ -18,8 +18,6 @@
|
|
|
#include "hfsplus_fs.h"
|
|
|
#include "hfsplus_raw.h"
|
|
|
|
|
|
-#define REF_PAGES 0
|
|
|
-
|
|
|
/* Copy a specified range of bytes from the raw data of a node */
|
|
|
void hfs_bnode_read(struct hfs_bnode *node, void *buf, int off, int len)
|
|
|
{
|
|
@@ -450,9 +448,7 @@ static struct hfs_bnode *__hfs_bnode_create(struct hfs_btree *tree, u32 cnid)
|
|
|
page_cache_release(page);
|
|
|
goto fail;
|
|
|
}
|
|
|
-#if !REF_PAGES
|
|
|
page_cache_release(page);
|
|
|
-#endif
|
|
|
node->page[i] = page;
|
|
|
}
|
|
|
|
|
@@ -612,13 +608,6 @@ void hfs_bnode_get(struct hfs_bnode *node)
|
|
|
{
|
|
|
if (node) {
|
|
|
atomic_inc(&node->refcnt);
|
|
|
-#if REF_PAGES
|
|
|
- {
|
|
|
- int i;
|
|
|
- for (i = 0; i < node->tree->pages_per_bnode; i++)
|
|
|
- get_page(node->page[i]);
|
|
|
- }
|
|
|
-#endif
|
|
|
dprint(DBG_BNODE_REFS, "get_node(%d:%d): %d\n",
|
|
|
node->tree->cnid, node->this, atomic_read(&node->refcnt));
|
|
|
}
|
|
@@ -635,20 +624,12 @@ void hfs_bnode_put(struct hfs_bnode *node)
|
|
|
node->tree->cnid, node->this, atomic_read(&node->refcnt));
|
|
|
if (!atomic_read(&node->refcnt))
|
|
|
BUG();
|
|
|
- if (!atomic_dec_and_lock(&node->refcnt, &tree->hash_lock)) {
|
|
|
-#if REF_PAGES
|
|
|
- for (i = 0; i < tree->pages_per_bnode; i++)
|
|
|
- put_page(node->page[i]);
|
|
|
-#endif
|
|
|
+ if (!atomic_dec_and_lock(&node->refcnt, &tree->hash_lock))
|
|
|
return;
|
|
|
- }
|
|
|
for (i = 0; i < tree->pages_per_bnode; i++) {
|
|
|
if (!node->page[i])
|
|
|
continue;
|
|
|
mark_page_accessed(node->page[i]);
|
|
|
-#if REF_PAGES
|
|
|
- put_page(node->page[i]);
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
if (test_bit(HFS_BNODE_DELETED, &node->flags)) {
|