Whamcloud - gitweb
LU-17705 ptlrpc: replace synchronize_rcu() with rcu_barrier()
[fs/lustre-release.git] / lustre / osc / osc_internal.h
index 8dbd593..ee68cf4 100644 (file)
@@ -27,7 +27,6 @@
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
  */
 
 #ifndef OSC_INTERNAL_H
@@ -42,19 +41,16 @@ extern atomic_t osc_pool_req_count;
 extern unsigned int osc_reqpool_maxreqcount;
 extern struct ptlrpc_request_pool *osc_rq_pool;
 
-void osc_wake_cache_waiters(struct client_obd *cli);
 int osc_shrink_grant_to_target(struct client_obd *cli, __u64 target_bytes);
 void osc_schedule_grant_work(void);
 void osc_update_next_shrink(struct client_obd *cli);
 int lru_queue_work(const struct lu_env *env, void *data);
 int osc_extent_finish(const struct lu_env *env, struct osc_extent *ext,
                      int sent, int rc);
-int osc_extent_release(const struct lu_env *env, struct osc_extent *ext);
+void osc_extent_release(const struct lu_env *env, struct osc_extent *ext);
 int osc_lock_discard_pages(const struct lu_env *env, struct osc_object *osc,
                           pgoff_t start, pgoff_t end, bool discard);
 
-extern struct ptlrpc_request_set *PTLRPCD_SET;
-
 void osc_lock_lvb_update(const struct lu_env *env,
                         struct osc_object *osc,
                         struct ldlm_lock *dlmlock,
@@ -71,11 +67,14 @@ int osc_match_base(const struct lu_env *env, struct obd_export *exp,
                   struct ldlm_res_id *res_id, enum ldlm_type type,
                   union ldlm_policy_data *policy, enum ldlm_mode mode,
                   __u64 *flags, struct osc_object *obj,
-                  struct lustre_handle *lockh, int unref);
+                  struct lustre_handle *lockh, enum ldlm_match_flags match_flags);
 
 int osc_setattr_async(struct obd_export *exp, struct obdo *oa,
                      obd_enqueue_update_f upcall, void *cookie,
                      struct ptlrpc_request_set *rqset);
+int osc_fallocate_base(struct obd_export *exp, struct obdo *oa,
+                      obd_enqueue_update_f upcall, void *cookie,
+                      int mode);
 int osc_sync_base(struct osc_object *obj, struct obdo *oa,
                  obd_enqueue_update_f upcall, void *cookie,
                  struct ptlrpc_request_set *rqset);
@@ -86,6 +85,7 @@ int osc_ladvise_base(struct obd_export *exp, struct obdo *oa,
 int osc_process_config_base(struct obd_device *obd, struct lustre_cfg *cfg);
 int osc_build_rpc(const struct lu_env *env, struct client_obd *cli,
                  struct list_head *ext_list, int cmd);
+void osc_send_empty_rpc(struct osc_object *osc, pgoff_t start);
 unsigned long osc_lru_reserve(struct client_obd *cli, unsigned long npages);
 void osc_lru_unreserve(struct client_obd *cli, unsigned long npages);
 
@@ -93,7 +93,6 @@ extern struct lu_kmem_descr osc_caches[];
 
 unsigned long osc_ldlm_weigh_ast(struct ldlm_lock *dlmlock);
 
-int osc_cleanup(struct obd_device *obd);
 int osc_setup(struct obd_device *obd, struct lustre_cfg *lcfg);
 
 int osc_tunables_init(struct obd_device *obd);
@@ -142,17 +141,17 @@ static inline char *cli_name(struct client_obd *cli)
        return cli->cl_import->imp_obd->obd_name;
 }
 
-#ifndef min_t
-#define min_t(type,x,y) \
-        ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
-#endif
+static inline char list_empty_marker(struct list_head *list)
+{
+       return list_empty(list) ? '-' : '+';
+}
 
 struct osc_async_args {
        struct obd_info *aa_oi;
 };
 
 int osc_quota_setup(struct obd_device *obd);
-int osc_quota_cleanup(struct obd_device *obd);
+void osc_quota_cleanup(struct obd_device *obd);
 int osc_quota_setdq(struct client_obd *cli, __u64 xid, const unsigned int qid[],
                    u64 valid, u32 flags);
 int osc_quota_chkdq(struct client_obd *cli, const unsigned int qid[]);
@@ -175,6 +174,9 @@ int osc_object_invalidate(const struct lu_env *env, struct osc_object *osc);
 extern struct list_head osc_shrink_list;
 /** spin lock to protect osc_shrink_list */
 extern spinlock_t osc_shrink_lock;
+/** Whether enable page cache shrinker */
+extern bool osc_page_cache_shrink_enabled;
+
 extern unsigned long osc_cache_shrink_count(struct shrinker *sk,
                                            struct shrink_control *sc);
 extern unsigned long osc_cache_shrink_scan(struct shrinker *sk,
@@ -219,4 +221,5 @@ static inline void osc_set_io_portal(struct ptlrpc_request *req)
        else
                req->rq_request_portal = OST_IO_PORTAL;
 }
+
 #endif /* OSC_INTERNAL_H */