|
@@ -361,6 +361,19 @@ do { \
|
|
|
} \
|
|
|
} while (0)
|
|
|
|
|
|
+static inline int obd_check_dev_active(struct obd_device *obd)
|
|
|
+{
|
|
|
+ int rc;
|
|
|
+
|
|
|
+ rc = obd_check_dev(obd);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
+ if (!obd->obd_set_up || obd->obd_stopping) {
|
|
|
+ CERROR("Device %d not setup\n", obd->obd_minor);
|
|
|
+ return -ENODEV;
|
|
|
+ }
|
|
|
+ return rc;
|
|
|
+}
|
|
|
|
|
|
#if defined (CONFIG_PROC_FS)
|
|
|
#define OBD_COUNTER_OFFSET(op) \
|
|
@@ -901,7 +914,9 @@ static inline int obd_add_conn(struct obd_import *imp, struct obd_uuid *uuid,
|
|
|
struct obd_device *obd = imp->imp_obd;
|
|
|
int rc;
|
|
|
|
|
|
- OBD_CHECK_DEV_ACTIVE(obd);
|
|
|
+ rc = obd_check_dev_active(obd);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
OBD_CHECK_DT_OP(obd, add_conn, -EOPNOTSUPP);
|
|
|
OBD_COUNTER_INCREMENT(obd, add_conn);
|
|
|
|
|
@@ -914,7 +929,9 @@ static inline int obd_del_conn(struct obd_import *imp, struct obd_uuid *uuid)
|
|
|
struct obd_device *obd = imp->imp_obd;
|
|
|
int rc;
|
|
|
|
|
|
- OBD_CHECK_DEV_ACTIVE(obd);
|
|
|
+ rc = obd_check_dev_active(obd);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
OBD_CHECK_DT_OP(obd, del_conn, -EOPNOTSUPP);
|
|
|
OBD_COUNTER_INCREMENT(obd, del_conn);
|
|
|
|
|
@@ -948,7 +965,9 @@ static inline int obd_connect(const struct lu_env *env,
|
|
|
__u64 ocf = data ? data->ocd_connect_flags : 0; /* for post-condition
|
|
|
* check */
|
|
|
|
|
|
- OBD_CHECK_DEV_ACTIVE(obd);
|
|
|
+ rc = obd_check_dev_active(obd);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
OBD_CHECK_DT_OP(obd, connect, -EOPNOTSUPP);
|
|
|
OBD_COUNTER_INCREMENT(obd, connect);
|
|
|
|
|
@@ -970,7 +989,9 @@ static inline int obd_reconnect(const struct lu_env *env,
|
|
|
__u64 ocf = d ? d->ocd_connect_flags : 0; /* for post-condition
|
|
|
* check */
|
|
|
|
|
|
- OBD_CHECK_DEV_ACTIVE(obd);
|
|
|
+ rc = obd_check_dev_active(obd);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
OBD_CHECK_DT_OP(obd, reconnect, 0);
|
|
|
OBD_COUNTER_INCREMENT(obd, reconnect);
|
|
|
|