Whamcloud - gitweb
LU-3321 clio: remove stackable cl_page completely
[fs/lustre-release.git] / lustre / llite / rw26.c
index e68d1c4..9365c74 100644 (file)
@@ -176,28 +176,6 @@ static int ll_releasepage(struct page *vmpage, RELEASEPAGE_ARG_TYPE gfp_mask)
        return result;
 }
 
-static int ll_set_page_dirty(struct page *vmpage)
-{
-#if 0
-        struct cl_page    *page = vvp_vmpage_page_transient(vmpage);
-        struct vvp_object *obj  = cl_inode2vvp(vmpage->mapping->host);
-        struct vvp_page   *cpg;
-
-        /*
-         * XXX should page method be called here?
-         */
-        LASSERT(&obj->co_cl == page->cp_obj);
-        cpg = cl2vvp_page(cl_page_at(page, &vvp_device_type));
-        /*
-         * XXX cannot do much here, because page is possibly not locked:
-         * sys_munmap()->...
-         *     ->unmap_page_range()->zap_pte_range()->set_page_dirty().
-         */
-        vvp_write_pending(obj, cpg);
-#endif
-        RETURN(__set_page_dirty_nobuffers(vmpage));
-}
-
 #define MAX_DIRECTIO_SIZE 2*1024*1024*1024UL
 
 static inline int ll_get_user_pages(int rw, unsigned long user_addr,
@@ -291,7 +269,7 @@ ssize_t ll_direct_rw_pages(const struct lu_env *env, struct cl_io *io,
                 /* check the page type: if the page is a host page, then do
                  * write directly */
                 if (clp->cp_type == CPT_CACHEABLE) {
-                       struct page *vmpage = cl_page_vmpage(env, clp);
+                       struct page *vmpage = cl_page_vmpage(clp);
                        struct page *src_page;
                        struct page *dst_page;
                         void       *src;
@@ -512,19 +490,16 @@ out:
 static int ll_prepare_partial_page(const struct lu_env *env, struct cl_io *io,
                                   struct cl_page *pg)
 {
-       struct cl_object *obj  = io->ci_obj;
        struct cl_attr *attr   = ccc_env_thread_attr(env);
-       loff_t          offset = cl_offset(obj, pg->cp_index);
+       struct cl_object *obj  = io->ci_obj;
+       struct ccc_page *cp    = cl_object_page_slice(obj, pg);
+       loff_t          offset = cl_offset(obj, ccc_index(cp));
        int             result;
 
        cl_object_attr_lock(obj);
        result = cl_object_attr_get(env, obj, attr);
        cl_object_attr_unlock(obj);
        if (result == 0) {
-               struct ccc_page *cp;
-
-               cp = cl2ccc_page(cl_page_at(pg, &vvp_device_type));
-
                /*
                 * If are writing to a new page, no need to read old data.
                 * The extent locking will have updated the KMS, and for our
@@ -719,7 +694,7 @@ struct address_space_operations ll_aops = {
         .direct_IO      = ll_direct_IO_26,
         .writepage      = ll_writepage,
        .writepages     = ll_writepages,
-        .set_page_dirty = ll_set_page_dirty,
+        .set_page_dirty = __set_page_dirty_nobuffers,
         .write_begin    = ll_write_begin,
         .write_end      = ll_write_end,
         .invalidatepage = ll_invalidatepage,
@@ -735,7 +710,7 @@ struct address_space_operations_ext ll_aops = {
        .orig_aops.direct_IO            = ll_direct_IO_26,
        .orig_aops.writepage            = ll_writepage,
        .orig_aops.writepages           = ll_writepages,
-       .orig_aops.set_page_dirty       = ll_set_page_dirty,
+       .orig_aops.set_page_dirty       = __set_page_dirty_nobuffers,
        .orig_aops.invalidatepage       = ll_invalidatepage,
        .orig_aops.releasepage          = ll_releasepage,
 #ifdef CONFIG_MIGRATION