Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
LU-6825 ofd: statfs needs NOT check layout LFSCK status
[fs/lustre-release.git]
/
lustre
/
ofd
/
ofd_obd.c
diff --git
a/lustre/ofd/ofd_obd.c
b/lustre/ofd/ofd_obd.c
index
8a29649
..
cb7a2e9
100644
(file)
--- a/
lustre/ofd/ofd_obd.c
+++ b/
lustre/ofd/ofd_obd.c
@@
-70,9
+70,7
@@
static int ofd_export_stats_init(struct ofd_device *ofd,
{
struct obd_device *obd = ofd_obd(ofd);
struct nid_stat *stats;
- int num_stats;
- int rc, newnid = 0;
-
+ int rc;
ENTRY;
LASSERT(obd->obd_uses_nid_stats);
@@
-81,44
+79,34
@@
static int ofd_export_stats_init(struct ofd_device *ofd,
/* Self-export gets no proc entry */
RETURN(0);
- rc = lprocfs_exp_setup(exp, client_nid, &newnid);
- if (rc) {
- /* Mask error for already created
- * /proc entries */
- if (rc == -EALREADY)
- rc = 0;
- RETURN(rc);
- }
-
- if (newnid == 0)
- RETURN(0);
+ rc = lprocfs_exp_setup(exp, client_nid);
+ if (rc != 0)
+ /* Mask error for already created /proc entries */
+ RETURN(rc == -EALREADY ? 0 : rc);
stats = exp->exp_nid_stats;
- LASSERT(stats != NULL);
-
- num_stats = NUM_OBD_STATS + LPROC_OFD_STATS_LAST;
-
- stats->nid_stats = lprocfs_alloc_stats(num_stats,
- LPROCFS_STATS_FLAG_NOPERCPU);
+ stats->nid_stats = lprocfs_alloc_stats(NUM_OBD_STATS +
+ LPROC_OFD_STATS_LAST,
+ LPROCFS_STATS_FLAG_NOPERCPU);
if (stats->nid_stats == NULL)
-
return -ENOMEM
;
+
RETURN(-ENOMEM)
;
lprocfs_init_ops_stats(LPROC_OFD_STATS_LAST, stats->nid_stats);
+
ofd_stats_counter_init(stats->nid_stats);
- rc = lprocfs_register_stats(stats->nid_proc, "stats",
- stats->nid_stats);
- if (rc)
- GOTO(clean, rc);
- rc = lprocfs_
nid_ldlm_stats_init(
stats);
- if (rc) {
+ rc = lprocfs_
register_stats(stats->nid_proc, "stats", stats->nid_
stats);
+ if (rc
!= 0
) {
lprocfs_free_stats(&stats->nid_stats);
- GOTO(
clean
, rc);
+ GOTO(
out
, rc);
}
- RETURN(0);
-clean:
- return rc;
+ rc = lprocfs_nid_ldlm_stats_init(stats);
+ if (rc != 0)
+ GOTO(out, rc);
+
+out:
+ RETURN(rc);
}
/**
@@
-640,19
+628,17
@@
static int ofd_set_info_async(const struct lu_env *env, struct obd_export *exp,
* \param[in] key key name
* \param[out] vallen length of key value
* \param[out] val the key value to return
- * \param[in] lsm not used in OFD
*
* \retval 0 if successful
* \retval negative value on error
*/
static int ofd_get_info(const struct lu_env *env, struct obd_export *exp,
- __u32 keylen, void *key, __u32 *vallen, void *val,
- struct lov_stripe_md *lsm)
+ __u32 keylen, void *key, __u32 *vallen, void *val)
{
struct ofd_thread_info *info;
struct ofd_device *ofd;
struct ll_fiemap_info_key *fm_key = key;
- struct
ll_user_fiemap
*fiemap = val;
+ struct
fiemap
*fiemap = val;
int rc = 0;
ENTRY;
@@
-667,7
+653,7
@@
static int ofd_get_info(const struct lu_env *env, struct obd_export *exp,
if (KEY_IS(KEY_FIEMAP)) {
info = ofd_info_init(env, exp);
- rc = ostid_to_fid(&info->fti_fid, &fm_key->oa.o_oi,
+ rc = ostid_to_fid(&info->fti_fid, &fm_key->
lfik_
oa.o_oi,
ofd->ofd_lut.lut_lsd.lsd_osd_index);
if (rc != 0)
RETURN(rc);
@@
-702,13
+688,6
@@
int ofd_statfs_internal(const struct lu_env *env, struct ofd_device *ofd,
int rc = 0;
ENTRY;
- down_read(&ofd->ofd_lastid_rwsem);
- /* Currently, for safe, we do not distinguish which LAST_ID is broken,
- * we may do that in the future.
- * Return -ENOSPC until the LAST_ID rebuilt. */
- if (unlikely(ofd->ofd_lastid_rebuilding))
- GOTO(out, rc = -ENOSPC);
-
spin_lock(&ofd->ofd_osfs_lock);
if (cfs_time_before_64(ofd->ofd_osfs_age, max_age) || max_age == 0) {
u64 unstable;
@@
-781,12
+760,9
@@
int ofd_statfs_internal(const struct lu_env *env, struct ofd_device *ofd,
if (from_cache)
*from_cache = 1;
}
-
GOTO(out, rc);
out:
- up_read(&ofd->ofd_lastid_rwsem);
-
return rc;
}
@@
-891,21
+867,19
@@
out:
* \param[in] env execution environment
* \param[in] exp OBD export of OFD device
- * \param[in] oinfo obd_info with setattr parameters
- * \param[in] oti not used in OFD
+ * \param[in] oa setattr parameters
*
* \retval 0 if successful
* \retval negative value on error
*/
static int ofd_echo_setattr(const struct lu_env *env, struct obd_export *exp,
- struct obd
_info *oinfo, struct obd_trans_info *oti
)
+ struct obd
o *oa
)
{
struct ofd_thread_info *info;
struct ofd_device *ofd = ofd_exp(exp);
struct ldlm_namespace *ns = ofd->ofd_namespace;
struct ldlm_resource *res;
struct ofd_object *fo;
- struct obdo *oa = oinfo->oi_oa;
struct lu_fid *fid = &oa->o_oi.oi_fid;
struct filter_fid *ff = NULL;
int rc = 0;
@@
-918,8
+892,7
@@
static int ofd_echo_setattr(const struct lu_env *env, struct obd_export *exp,
/* This would be very bad - accidentally truncating a file when
* changing the time or similar - bug 12203. */
- if (oa->o_valid & OBD_MD_FLSIZE &&
- oinfo->oi_policy.l_extent.end != OBD_OBJECT_EOF) {
+ if (oa->o_valid & OBD_MD_FLSIZE) {
static char mdsinum[48];
if (oa->o_valid & OBD_MD_FLFID)
@@
-1039,7
+1012,6
@@
int ofd_destroy_by_fid(const struct lu_env *env, struct ofd_device *ofd,
* \param[in] env execution environment
* \param[in] exp OBD export of OFD device
* \param[in] oa obdo structure with FID
- * \param[in] oti not used in OFD
*
* Note: this is OBD API method which is common API for server OBDs and
* client OBDs. Thus some parameters used in client OBDs may not be used
@@
-1049,7
+1021,7
@@
int ofd_destroy_by_fid(const struct lu_env *env, struct ofd_device *ofd,
* \retval negative value on error
*/
static int ofd_echo_destroy(const struct lu_env *env, struct obd_export *exp,
- struct obdo *oa
, struct obd_trans_info *oti
)
+ struct obdo *oa)
{
struct ofd_device *ofd = ofd_exp(exp);
struct lu_fid *fid = &oa->o_oi.oi_fid;
@@
-1086,8
+1058,6
@@
out:
* \param[in] env execution environment
* \param[in] exp OBD export of OFD device
* \param[in] oa obdo structure with FID sequence to use
- * \param[out] ea contains object ID/SEQ to return
- * \param[in] oti not used in OFD
*
* Note: this is OBD API method which is common API for server OBDs and
* client OBDs. Thus some parameters used in client OBDs may not be used
@@
-1097,7
+1067,7
@@
out:
* \retval negative value on error
*/
static int ofd_echo_create(const struct lu_env *env, struct obd_export *exp,
- struct obdo *oa
, struct obd_trans_info *oti
)
+ struct obdo *oa)
{
struct ofd_device *ofd = ofd_exp(exp);
struct ofd_thread_info *info;
@@
-1171,18
+1141,18
@@
out_sem:
*
* \param[in] env execution environment
* \param[in] exp OBD export of OFD device
- * \param[in,out] o
info
contains FID of object to get attributes from and
+ * \param[in,out] o
a
contains FID of object to get attributes from and
* is used to return attributes back
*
* \retval 0 if successful
* \retval negative value on error
*/
static int ofd_echo_getattr(const struct lu_env *env, struct obd_export *exp,
- struct obd
_info *oinfo
)
+ struct obd
o *oa
)
{
struct ofd_device *ofd = ofd_exp(exp);
struct ofd_thread_info *info;
- struct lu_fid *fid = &o
info->oi_o
a->o_oi.oi_fid;
+ struct lu_fid *fid = &oa->o_oi.oi_fid;
struct ofd_object *fo;
int rc = 0;
@@
-1196,18
+1166,18
@@
static int ofd_echo_getattr(const struct lu_env *env, struct obd_export *exp,
LASSERT(fo != NULL);
rc = ofd_attr_get(env, fo, &info->fti_attr);
- o
info->oi_o
a->o_valid = OBD_MD_FLID;
+ oa->o_valid = OBD_MD_FLID;
if (rc == 0) {
__u64 curr_version;
- obdo_from_la(o
info->oi_o
a, &info->fti_attr,
+ obdo_from_la(oa, &info->fti_attr,
OFD_VALID_FLAGS | LA_UID | LA_GID);
/* Store object version in reply */
curr_version = dt_version_get(env, ofd_object_child(fo));
if ((__s64)curr_version != -EOPNOTSUPP) {
- o
info->oi_o
a->o_valid |= OBD_MD_FLDATAVERSION;
- o
info->oi_o
a->o_data_version = curr_version;
+ oa->o_valid |= OBD_MD_FLDATAVERSION;
+ oa->o_data_version = curr_version;
}
}
@@
-1320,6
+1290,7
@@
static int ofd_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
switch (cmd) {
case OBD_IOC_ABORT_RECOVERY:
CERROR("%s: aborting recovery\n", obd->obd_name);
+ obd->obd_force_abort_recovery = 1;
target_stop_recovery_thread(obd);
break;
case OBD_IOC_SYNC: