Whamcloud - gitweb
LU-11185 mgc: config lock leak
[fs/lustre-release.git] / lustre / include / obd_class.h
index dd83ca6..964baf1 100644 (file)
@@ -129,10 +129,8 @@ __u16 obd_get_max_mod_rpcs_in_flight(struct client_obd *cli);
 int obd_set_max_mod_rpcs_in_flight(struct client_obd *cli, __u16 max);
 int obd_mod_rpc_stats_seq_show(struct client_obd *cli, struct seq_file *seq);
 
-__u16 obd_get_mod_rpc_slot(struct client_obd *cli, __u32 opc,
-                          struct lookup_intent *it);
-void obd_put_mod_rpc_slot(struct client_obd *cli, __u32 opc,
-                         struct lookup_intent *it, __u16 tag);
+__u16 obd_get_mod_rpc_slot(struct client_obd *cli, __u32 opc);
+void obd_put_mod_rpc_slot(struct client_obd *cli, __u32 opc, __u16 tag);
 
 struct llog_handle;
 struct llog_rec_hdr;
@@ -158,8 +156,6 @@ int class_process_config(struct lustre_cfg *lcfg);
 ssize_t class_set_global(const char *param);
 ssize_t class_modify_config(struct lustre_cfg *lcfg, const char *prefix,
                            struct kobject *kobj);
-int class_process_proc_param(char *prefix, struct lprocfs_vars *lvars,
-                            struct lustre_cfg *lcfg, void *data);
 int class_attach(struct lustre_cfg *lcfg);
 int class_setup(struct obd_device *obd, struct lustre_cfg *lcfg);
 int class_cleanup(struct obd_device *obd, struct lustre_cfg *lcfg);
@@ -251,6 +247,7 @@ static inline bool logname_is_barrier(const char *logname)
 /* list of active configuration logs  */
 struct config_llog_data {
        struct ldlm_res_id          cld_resid;
+       struct lustre_handle        cld_lockh;
        struct config_llog_instance cld_cfg;
        struct list_head            cld_list_chain;/* on config_llog_list */
        atomic_t                    cld_refcount;
@@ -361,8 +358,10 @@ void class_import_put(struct obd_import *);
 struct obd_import *class_new_import(struct obd_device *obd);
 void class_destroy_import(struct obd_import *exp);
 
+#ifdef HAVE_SERVER_SUPPORT
 struct obd_type *class_search_type(const char *name);
 struct obd_type *class_get_type(const char *name);
+#endif
 void class_put_type(struct obd_type *type);
 int class_connect(struct lustre_handle *conn, struct obd_device *obd,
                   struct obd_uuid *cluuid);
@@ -1783,6 +1782,18 @@ static inline int md_unpackmd(struct obd_export *exp,
        return MDP(exp->exp_obd, unpackmd)(exp, plsm, lmm, lmm_size);
 }
 
+static inline int md_rmfid(struct obd_export *exp, struct fid_array *fa,
+                          int *rcs, struct ptlrpc_request_set *set)
+{
+       int rc;
+
+       rc = exp_check_ops(exp);
+       if (rc)
+               return rc;
+
+       return MDP(exp->exp_obd, rmfid)(exp, fa, rcs, set);
+}
+
 /* OBD Metadata Support */
 
 extern int obd_init_caches(void);
@@ -1833,12 +1844,11 @@ void statfs_pack(struct obd_statfs *osfs, struct kstatfs *sfs);
 void statfs_unpack(struct kstatfs *sfs, struct obd_statfs *osfs);
 
 /* root squash info */
-struct rw_semaphore;
 struct root_squash_info {
        uid_t                   rsi_uid;
        gid_t                   rsi_gid;
        struct list_head        rsi_nosquash_nids;
-       struct rw_semaphore     rsi_sem;
+       spinlock_t              rsi_lock;
 };
 
 int server_name2index(const char *svname, __u32 *idx, const char **endptr);