vserver 2.0 rc7
[linux-2.6.git] / fs / hfsplus / inode.c
index d260dd3..d564270 100644 (file)
@@ -40,7 +40,7 @@ static sector_t hfsplus_bmap(struct address_space *mapping, sector_t block)
        return generic_block_bmap(mapping, block, hfsplus_get_block);
 }
 
-int hfsplus_releasepage(struct page *page, int mask)
+static int hfsplus_releasepage(struct page *page, int mask)
 {
        struct inode *inode = page->mapping->host;
        struct super_block *sb = inode->i_sb;
@@ -71,12 +71,6 @@ int hfsplus_releasepage(struct page *page, int mask)
                        ;
                else if (atomic_read(&node->refcnt))
                        res = 0;
-               else for (i = 0; i < tree->pages_per_bnode; i++) {
-                       if (PageActive(node->page[i])) {
-                               res = 0;
-                               break;
-                       }
-               }
                if (res && node) {
                        hfs_bnode_unhash(node);
                        hfs_bnode_free(node);
@@ -100,7 +94,7 @@ int hfsplus_releasepage(struct page *page, int mask)
                spin_unlock(&tree->hash_lock);
        }
        //printk("releasepage: %lu,%x = %d\n", page->index, mask, res);
-       return res;
+       return res ? try_to_free_buffers(page) : 0;
 }
 
 static int hfsplus_get_blocks(struct inode *inode, sector_t iblock, unsigned long max_blocks,
@@ -297,7 +291,7 @@ static int hfsplus_file_release(struct inode *inode, struct file *file)
 extern struct inode_operations hfsplus_dir_inode_operations;
 extern struct file_operations hfsplus_dir_operations;
 
-struct inode_operations hfsplus_file_inode_operations = {
+static struct inode_operations hfsplus_file_inode_operations = {
        .lookup         = hfsplus_file_lookup,
        .truncate       = hfsplus_file_truncate,
        .permission     = hfsplus_permission,
@@ -306,7 +300,7 @@ struct inode_operations hfsplus_file_inode_operations = {
        .listxattr      = hfsplus_listxattr,
 };
 
-struct file_operations hfsplus_file_operations = {
+static struct file_operations hfsplus_file_operations = {
        .llseek         = generic_file_llseek,
        .read           = generic_file_read,
        .write          = generic_file_write,