*/
/*
* This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
*
* Internal definitions for VVP layer.
*
struct obd_export;
struct page;
-enum vvp_io_subtype {
- /** normal IO */
- IO_NORMAL,
- /** io started from splice_{read|write} */
- IO_SPLICE,
-};
-
/**
* IO state private to VVP layer.
*/
struct cl_page_list ft_queue;
} fault;
struct {
- struct pipe_inode_info *vui_pipe;
- unsigned int vui_flags;
- } splice;
- struct {
struct cl_page_list vui_queue;
unsigned long vui_written;
unsigned long vui_read;
} readwrite; /* normal io */
} u;
- enum vvp_io_subtype vui_io_subtype;
-
/**
* Layout version when this IO is initialized
*/
struct inode *vob_inode;
/**
- * Number of transient pages. This is no longer protected by i_sem,
- * and needs to be atomic. This is not actually used for anything,
- * and can probably be removed.
- */
- atomic_t vob_transient_pages;
- /**
* Number of outstanding mmaps on this file.
*
* \see ll_vm_open(), ll_vm_close().
*/
struct vvp_page {
struct cl_page_slice vpg_cl;
- unsigned vpg_defer_uptodate:1,
- vpg_ra_updated:1,
- vpg_ra_used:1;
/** VM page */
struct page *vpg_page;
};
int vvp_global_init(void);
void vvp_global_fini(void);
-#ifndef HAVE_ACCOUNT_PAGE_DIRTIED_EXPORT
+#if !defined(HAVE_ACCOUNT_PAGE_DIRTIED_EXPORT) || \
+defined(HAVE_KALLSYMS_LOOKUP_NAME)
extern unsigned int (*vvp_account_page_dirtied)(struct page *page,
struct address_space *mapping);
#endif