Whamcloud - gitweb
LU-10650 obd: add check to obd_statfs
[fs/lustre-release.git] / lustre / include / obd_class.h
index 028000b..748cc47 100644 (file)
@@ -138,6 +138,7 @@ struct cfg_interop_param {
 char *lustre_cfg_string(struct lustre_cfg *lcfg, u32 index);
 struct lustre_cfg *lustre_cfg_rename(struct lustre_cfg *cfg,
                                     const char *new_name);
+void print_lustre_cfg(struct lustre_cfg *lcfg);
 int class_process_config(struct lustre_cfg *lcfg);
 int class_process_proc_param(char *prefix, struct lprocfs_vars *lvars,
                             struct lustre_cfg *lcfg, void *data);
@@ -1078,7 +1079,7 @@ static inline int obd_destroy_export(struct obd_export *exp)
  * target.  Use a value of "cfs_time_current() + HZ" to guarantee freshness. */
 static inline int obd_statfs_async(struct obd_export *exp,
                                   struct obd_info *oinfo,
-                                  __u64 max_age,
+                                  time64_t max_age,
                                   struct ptlrpc_request_set *rqset)
 {
        int rc = 0;
@@ -1096,9 +1097,9 @@ static inline int obd_statfs_async(struct obd_export *exp,
        }
        OBD_COUNTER_INCREMENT(obd, statfs);
 
-       CDEBUG(D_SUPER, "%s: osfs %p age %llu, max_age %llu\n",
+       CDEBUG(D_SUPER, "%s: osfs %p age %lld, max_age %lld\n",
               obd->obd_name, &obd->obd_osfs, obd->obd_osfs_age, max_age);
-       if (cfs_time_before_64(obd->obd_osfs_age, max_age)) {
+       if (obd->obd_osfs_age < max_age) {
                rc = OBP(obd, statfs_async)(exp, oinfo, max_age, rqset);
        } else {
                CDEBUG(D_SUPER,
@@ -1121,7 +1122,7 @@ static inline int obd_statfs_async(struct obd_export *exp,
  * If the cache is older than @max_age we will get a new value from the
  * target.  Use a value of "cfs_time_current() + HZ" to guarantee freshness. */
 static inline int obd_statfs(const struct lu_env *env, struct obd_export *exp,
-                             struct obd_statfs *osfs, __u64 max_age,
+                            struct obd_statfs *osfs, time64_t max_age,
                              __u32 flags)
 {
         int rc = 0;
@@ -1131,20 +1132,22 @@ static inline int obd_statfs(const struct lu_env *env, struct obd_export *exp,
         if (obd == NULL)
                 RETURN(-EINVAL);
 
+       OBD_CHECK_DEV_ACTIVE(obd);
+
        if (!obd->obd_type || !obd->obd_type->typ_dt_ops->o_statfs) {
                CERROR("%s: no %s operation\n", obd->obd_name, __func__);
                RETURN(-EOPNOTSUPP);
        }
         OBD_COUNTER_INCREMENT(obd, statfs);
 
-       CDEBUG(D_SUPER, "osfs %llu, max_age %llu\n",
+       CDEBUG(D_SUPER, "osfs %lld, max_age %lld\n",
                obd->obd_osfs_age, max_age);
-        if (cfs_time_before_64(obd->obd_osfs_age, max_age)) {
+       if (obd->obd_osfs_age < max_age) {
                 rc = OBP(obd, statfs)(env, exp, osfs, max_age, flags);
                 if (rc == 0) {
                        spin_lock(&obd->obd_osfs_lock);
                        memcpy(&obd->obd_osfs, osfs, sizeof(obd->obd_osfs));
-                       obd->obd_osfs_age = cfs_time_current_64();
+                       obd->obd_osfs_age = ktime_get_seconds();
                        spin_unlock(&obd->obd_osfs_lock);
                }
        } else {