X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fosc%2Fosc_internal.h;h=7af9757e14a504e948e0ec577f5caf73f249a339;hp=7293627f6e889413e99e4793708497dd16ba3d6a;hb=1f12a4c87114106ff7e8eff06b3883146f8664ba;hpb=364c4cdb58ed75996017d35dcbbc7e7acc6d076e diff --git a/lustre/osc/osc_internal.h b/lustre/osc/osc_internal.h index 7293627..7af9757 100644 --- a/lustre/osc/osc_internal.h +++ b/lustre/osc/osc_internal.h @@ -27,7 +27,7 @@ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2011, 2012, Whamcloud, Inc. + * Copyright (c) 2011, 2012, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -57,7 +57,6 @@ struct osc_async_page { unsigned short oap_interrupted:1; cfs_list_t oap_pending_item; - cfs_list_t oap_urgent_item; cfs_list_t oap_rpc_item; obd_off oap_obj_off; @@ -70,8 +69,8 @@ struct osc_async_page { struct client_obd *oap_cli; struct osc_object *oap_obj; - struct ldlm_lock *oap_ldlm_lock; - cfs_spinlock_t oap_lock; + struct ldlm_lock *oap_ldlm_lock; + spinlock_t oap_lock; }; #define oap_page oap_brw_page.pg @@ -82,30 +81,17 @@ struct osc_cache_waiter { cfs_list_t ocw_entry; cfs_waitq_t ocw_waitq; struct osc_async_page *ocw_oap; + int ocw_grant; int ocw_rc; }; -#define OSCC_FLAG_RECOVERING 0x01 -#define OSCC_FLAG_CREATING 0x02 -#define OSCC_FLAG_NOSPC 0x04 /* can't create more objects on OST */ -#define OSCC_FLAG_SYNC_IN_PROGRESS 0x08 /* only allow one thread to sync */ -#define OSCC_FLAG_LOW 0x10 -#define OSCC_FLAG_EXITING 0x20 -#define OSCC_FLAG_DEGRADED 0x40 -#define OSCC_FLAG_RDONLY 0x80 -#define OSCC_FLAG_NOSPC_BLK 0x100 /* no more block space on OST */ - -int osc_precreate(struct obd_export *exp); int osc_create(const struct lu_env *env, struct obd_export *exp, struct obdo *oa, struct lov_stripe_md **ea, struct obd_trans_info *oti); -int osc_create_async(struct obd_export *exp, struct obd_info *oinfo, - struct lov_stripe_md **ea, struct obd_trans_info *oti); int osc_real_create(struct obd_export *exp, struct obdo *oa, struct lov_stripe_md **ea, struct obd_trans_info *oti); -void oscc_init(struct obd_device *obd); void osc_wake_cache_waiters(struct client_obd *cli); -int osc_shrink_grant_to_target(struct client_obd *cli, long target); +int osc_shrink_grant_to_target(struct client_obd *cli, __u64 target_bytes); void osc_update_next_shrink(struct client_obd *cli); /* @@ -116,7 +102,7 @@ void osc_update_next_shrink(struct client_obd *cli); extern struct ptlrpc_request_set *PTLRPCD_SET; int osc_enqueue_base(struct obd_export *exp, struct ldlm_res_id *res_id, - int *flags, ldlm_policy_data_t *policy, + __u64 *flags, ldlm_policy_data_t *policy, struct ost_lvb *lvb, int kms_valid, obd_enqueue_update_f upcall, void *cookie, struct ldlm_enqueue_info *einfo, @@ -136,14 +122,16 @@ int osc_setattr_async_base(struct obd_export *exp, struct obd_info *oinfo, int osc_punch_base(struct obd_export *exp, struct obd_info *oinfo, obd_enqueue_update_f upcall, void *cookie, struct ptlrpc_request_set *rqset); +int osc_sync_base(struct obd_export *exp, struct obd_info *oinfo, + obd_enqueue_update_f upcall, void *cookie, + struct ptlrpc_request_set *rqset); 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, - cfs_list_t *rpc_list, int page_count, int cmd, - pdl_policy_t p); + cfs_list_t *ext_list, int cmd, pdl_policy_t p); +int osc_lru_shrink(struct client_obd *cli, int target); -struct cl_page *osc_oap2cl_page(struct osc_async_page *oap); -extern cfs_spinlock_t osc_ast_guard; +extern spinlock_t osc_ast_guard; int osc_cleanup(struct obd_device *obd); int osc_setup(struct obd_device *obd, struct lustre_cfg *lcfg); @@ -200,8 +188,13 @@ static inline struct osc_device *obd2osc_dev(const struct obd_device *d) int osc_dlm_lock_pageref(struct ldlm_lock *dlm); -int osc_quota_init(void); -int osc_quota_exit(void); +extern cfs_mem_cache_t *osc_quota_kmem; +struct osc_quota_info { + /** linkage for quota hash table */ + cfs_hlist_node_t oqi_hash; + obd_uid oqi_id; +}; +int osc_quota_setup(struct obd_device *obd); int osc_quota_cleanup(struct obd_device *obd); int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[], obd_flag valid, obd_flag flags); @@ -211,8 +204,4 @@ int osc_quotactl(struct obd_device *unused, struct obd_export *exp, int osc_quotacheck(struct obd_device *unused, struct obd_export *exp, struct obd_quotactl *oqctl); int osc_quota_poll_check(struct obd_export *exp, struct if_quotacheck *qchk); -int osc_quota_adjust_qunit(struct obd_export *exp, - struct quota_adjust_qunit *oqaq, - struct lustre_quota_ctxt *qctxt, - struct ptlrpc_request_set *rqset); #endif /* OSC_INTERNAL_H */