upgrade to fedora-2.6.12-1.1398.FC4 + vserver 2.0.rc7
[linux-2.6.git] / fs / hugetlbfs / inode.c
index 864759c..2af3338 100644 (file)
@@ -40,7 +40,7 @@ static struct inode_operations hugetlbfs_inode_operations;
 
 static struct backing_dev_info hugetlbfs_backing_dev_info = {
        .ra_pages       = 0,    /* No readahead */
-       .memory_backed  = 1,    /* Does not contribute to dirty memory */
+       .capabilities   = BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_WRITEBACK,
 };
 
 int sysctl_hugetlb_shm_group;
@@ -168,7 +168,7 @@ static int hugetlbfs_commit_write(struct file *file,
        return -EINVAL;
 }
 
-void huge_pagevec_release(struct pagevec *pvec)
+static void huge_pagevec_release(struct pagevec *pvec)
 {
        int i;
 
@@ -178,7 +178,7 @@ void huge_pagevec_release(struct pagevec *pvec)
        pagevec_reinit(pvec);
 }
 
-void truncate_huge_page(struct page *page)
+static void truncate_huge_page(struct page *page)
 {
        clear_page_dirty(page);
        ClearPageUptodate(page);
@@ -186,7 +186,7 @@ void truncate_huge_page(struct page *page)
        put_page(page);
 }
 
-void truncate_hugepages(struct address_space *mapping, loff_t lstart)
+static void truncate_hugepages(struct address_space *mapping, loff_t lstart)
 {
        const pgoff_t start = lstart >> HPAGE_SHIFT;
        struct pagevec pvec;
@@ -225,6 +225,7 @@ static void hugetlbfs_delete_inode(struct inode *inode)
 
        hlist_del_init(&inode->i_hash);
        list_del_init(&inode->i_list);
+       list_del_init(&inode->i_sb_list);
        inode->i_state |= I_FREEING;
        inodes_stat.nr_inodes--;
        spin_unlock(&inode_lock);
@@ -267,6 +268,7 @@ static void hugetlbfs_forget_inode(struct inode *inode)
        hlist_del_init(&inode->i_hash);
 out_truncate:
        list_del_init(&inode->i_list);
+       list_del_init(&inode->i_sb_list);
        inode->i_state |= I_FREEING;
        inodes_stat.nr_inodes--;
        spin_unlock(&inode_lock);
@@ -493,7 +495,7 @@ static int hugetlbfs_symlink(struct inode *dir,
 /*
  * For direct-IO reads into hugetlb pages
  */
-int hugetlbfs_set_page_dirty(struct page *page)
+static int hugetlbfs_set_page_dirty(struct page *page)
 {
        return 0;
 }
@@ -670,6 +672,7 @@ hugetlbfs_fill_super(struct super_block *sb, void *data, int silent)
        sb->s_blocksize_bits = HPAGE_SHIFT;
        sb->s_magic = HUGETLBFS_MAGIC;
        sb->s_op = &hugetlbfs_ops;
+       sb->s_time_gran = 1;
        inode = hugetlbfs_get_inode(sb, config.uid, config.gid,
                                        S_IFDIR | config.mode, 0);
        if (!inode)
@@ -734,7 +737,7 @@ static struct vfsmount *hugetlbfs_vfsmount;
  */
 static unsigned long hugetlbfs_counter(void)
 {
-       static spinlock_t lock = SPIN_LOCK_UNLOCKED;
+       static DEFINE_SPINLOCK(lock);
        static unsigned long counter;
        unsigned long ret;