* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2012, 2014, Intel Corporation.
+ * Copyright (c) 2012, 2015, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
* State maintained by osc layer for each IO context.
*/
struct osc_io {
- /** super class */
- struct cl_io_slice oi_cl;
- /** true if this io is lockless. */
- int oi_lockless;
+ /** super class */
+ struct cl_io_slice oi_cl;
+ /** true if this io is lockless. */
+ int oi_lockless:1,
+ /** true if this io is counted as active IO */
+ oi_is_active:1;
/** how many LRU pages are reserved for this IO */
unsigned long oi_lru_reserved;
pgoff_t oti_fn_index; /* first non-overlapped index */
struct cl_sync_io oti_anchor;
struct cl_req_attr oti_req_attr;
+ struct lu_buf oti_ladvise_buf;
};
struct osc_object {
/**
* Radix tree for caching pages
*/
- struct radix_tree_root oo_tree;
spinlock_t oo_tree_lock;
+ struct radix_tree_root oo_tree;
unsigned long oo_npages;
/* Protect osc_lock this osc_object has */
- spinlock_t oo_ol_spin;
struct list_head oo_ol_list;
+ spinlock_t oo_ol_spin;
/** number of active IOs of this object */
atomic_t oo_nr_ios;
oe_rw:1,
/** sync extent, queued by osc_queue_sync_pages() */
oe_sync:1,
+ /** set if this extent has partial, sync pages.
+ * Extents with partial page(s) can't merge with others in RPC */
+ oe_no_merge:1,
oe_srvlock:1,
oe_memalloc:1,
/** an ACTIVE extent is going to be truncated, so when this extent