X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fllite%2Fvvp_internal.h;h=3062208b4072f0aedc85e75d503e08cb1ce809ad;hb=da63a46c51e86953dc62db76b8fa4d1a0f1aef4d;hp=077ec849cba225729072dd742c13cdd8915cf03b;hpb=f168371f40e1ebcbf380e655888530476e431421;p=fs%2Flustre-release.git diff --git a/lustre/llite/vvp_internal.h b/lustre/llite/vvp_internal.h index 077ec84..3062208 100644 --- a/lustre/llite/vvp_internal.h +++ b/lustre/llite/vvp_internal.h @@ -23,7 +23,7 @@ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2013, 2016, Intel Corporation. + * Copyright (c) 2013, 2017, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -60,16 +60,17 @@ struct vvp_io { /** super class */ struct cl_io_slice vui_cl; struct cl_io_lock_link vui_link; - /** Total size for the left IO. */ + /** + * I/O vector information to or from which read/write is going. + */ + struct iov_iter *vui_iter; + /** + * Total size for the left IO. + */ size_t vui_tot_count; union { struct vvp_fault_io { - /** - * Inode modification time that is checked across DLM - * lock request. - */ - time64_t ft_mtime; struct vm_area_struct *ft_vma; /** * locked page returned from vvp_io @@ -87,6 +88,7 @@ struct vvp_io { * check that flags are from filemap_fault */ bool ft_flags_valid; + struct cl_page_list ft_queue; } fault; struct { struct pipe_inode_info *vui_pipe; @@ -110,12 +112,13 @@ struct vvp_io { * File descriptor against which IO is done. */ struct ll_file_data *vui_fd; + struct kiocb *vui_iocb; /* Readahead state. */ - pgoff_t vui_ra_start; - pgoff_t vui_ra_count; + pgoff_t vui_ra_start_idx; + pgoff_t vui_ra_pages; /* Set when vui_ra_{start,count} have been initialized. */ - bool vui_ra_valid; + bool vui_ra_valid; }; extern struct lu_device_type vvp_device_type; @@ -316,6 +319,11 @@ struct lu_object *vvp_object_alloc(const struct lu_env *env, int vvp_global_init(void); void vvp_global_fini(void); +#ifndef HAVE_ACCOUNT_PAGE_DIRTIED_EXPORT +extern unsigned int (*vvp_account_page_dirtied)(struct page *page, + struct address_space *mapping); +#endif + extern const struct file_operations vvp_dump_pgcache_file_ops; #endif /* VVP_INTERNAL_H */