LINUX: consolidate duplicate code in canonical_dentry
[openafs.git] / src / afs / LINUX / osi_vnodeops.c
index b7e4734..d8dfd93 100644 (file)
@@ -890,11 +890,7 @@ canonical_dentry(struct inode *ip)
 
     d_prune_aliases(ip);
 
-# ifdef HAVE_DCACHE_LOCK
-    spin_lock(&dcache_lock);
-# else
-    spin_lock(&ip->i_lock);
-# endif
+    afs_d_alias_lock(ip);
 
 #if defined(D_ALIAS_IS_HLIST)
 # if defined(HLIST_ITERATOR_NO_NODE)
@@ -921,17 +917,10 @@ canonical_dentry(struct inode *ip)
 
     vcp->target_link = ret;
 
-# ifdef HAVE_DCACHE_LOCK
-    if (ret) {
-       dget_locked(ret);
-    }
-    spin_unlock(&dcache_lock);
-# else
     if (ret) {
-       dget(ret);
+       afs_linux_dget(ret);
     }
-    spin_unlock(&ip->i_lock);
-# endif
+    afs_d_alias_unlock(ip);
 
     return ret;
 }
@@ -2077,7 +2066,7 @@ afs_linux_read_cache(struct file *cachefp, struct page *page,
         cachepage = find_get_page(cachemapping, pageindex);
        if (!cachepage) {
            if (!newpage)
-               newpage = page_cache_alloc_cold(cachemapping);
+               newpage = page_cache_alloc(cachemapping);
            if (!newpage) {
                code = -ENOMEM;
                goto out;
@@ -2235,7 +2224,11 @@ afs_linux_readpage_fastpath(struct file *fp, struct page *pp, int *codep)
        AFS_GLOCK();
        goto out;
     }
+#if defined(PAGEVEC_INIT_COLD_ARG)
     pagevec_init(&lrupv, 0);
+#else
+    pagevec_init(&lrupv);
+#endif
 
     code = afs_linux_read_cache(cacheFp, pp, tdc->f.chunk, &lrupv, NULL);
 
@@ -2395,7 +2388,11 @@ afs_linux_bypass_readpages(struct file *fp, struct address_space *mapping,
     ancr->offset = auio->uio_offset;
     ancr->length = auio->uio_resid;
 
+#if defined(PAGEVEC_INIT_COLD_ARG)
     pagevec_init(&lrupv, 0);
+#else
+    pagevec_init(&lrupv);
+#endif
 
     for(page_ix = 0; page_ix < num_pages; ++page_ix) {
 
@@ -2616,7 +2613,11 @@ afs_linux_readpages(struct file *fp, struct address_space *mapping,
     task = afs_pagecopy_init_task();
 
     tdc = NULL;
+#if defined(PAGEVEC_INIT_COLD_ARG)
     pagevec_init(&lrupv, 0);
+#else
+    pagevec_init(&lrupv);
+#endif
     for (page_idx = 0; page_idx < num_pages; page_idx++) {
        struct page *page = list_entry(page_list->prev, struct page, lru);
        list_del(&page->lru);