Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bb3475b
)
Revert "b=21379 Fix orphans proceeding in osc_create"
author
Robert Read
<robert.read@oracle.com>
Mon, 26 Apr 2010 22:11:52 +0000
(15:11 -0700)
committer
Robert Read
<robert.read@oracle.com>
Mon, 26 Apr 2010 22:11:52 +0000
(15:11 -0700)
This reverts commit
2deb4f149f4601f9128fd39efd4705573520f277
.
12 files changed:
lustre/include/obd.h
patch
|
blob
|
history
lustre/lov/lov_obd.c
patch
|
blob
|
history
lustre/mdd/mdd_device.c
patch
|
blob
|
history
lustre/mdd/mdd_lov.c
patch
|
blob
|
history
lustre/mds/handler.c
patch
|
blob
|
history
lustre/mds/lproc_mds.c
patch
|
blob
|
history
lustre/mds/mds_log.c
patch
|
blob
|
history
lustre/mds/mds_lov.c
patch
|
blob
|
history
lustre/osc/osc_create.c
patch
|
blob
|
history
lustre/quota/lproc_quota.c
patch
|
blob
|
history
lustre/quota/quota_master.c
patch
|
blob
|
history
lustre/tests/replay-dual.sh
patch
|
blob
|
history
diff --git
a/lustre/include/obd.h
b/lustre/include/obd.h
index
03691da
..
e79f512
100644
(file)
--- a/
lustre/include/obd.h
+++ b/
lustre/include/obd.h
@@
-509,10
+509,10
@@
struct mds_obd {
cfs_dentry_t *mds_logs_dir;
cfs_dentry_t *mds_objects_dir;
struct llog_handle *mds_cfg_llh;
cfs_dentry_t *mds_logs_dir;
cfs_dentry_t *mds_objects_dir;
struct llog_handle *mds_cfg_llh;
- struct obd_device *mds_
lov_obd;
+ struct obd_device *mds_
osc_obd; /* XXX lov_obd */
struct obd_uuid mds_lov_uuid;
char *mds_profile;
struct obd_uuid mds_lov_uuid;
char *mds_profile;
- struct obd_export *mds_
lov_exp;
+ struct obd_export *mds_
osc_exp; /* XXX lov_exp */
struct lov_desc mds_lov_desc;
__u32 mds_id;
struct lov_desc mds_lov_desc;
__u32 mds_id;
@@
-1134,7
+1134,6
@@
enum obd_cleanup_stage {
#define KEY_SET_FS "set_fs"
/* KEY_SET_INFO in lustre_idl.h */
#define KEY_SPTLRPC_CONF "sptlrpc_conf"
#define KEY_SET_FS "set_fs"
/* KEY_SET_INFO in lustre_idl.h */
#define KEY_SPTLRPC_CONF "sptlrpc_conf"
-#define KEY_CONNECT_FLAG "connect_flags"
struct lu_context;
struct lu_context;
diff --git
a/lustre/lov/lov_obd.c
b/lustre/lov/lov_obd.c
index
11eaf01
..
92a0370
100644
(file)
--- a/
lustre/lov/lov_obd.c
+++ b/
lustre/lov/lov_obd.c
@@
-2578,19
+2578,6
@@
static int lov_get_info(struct obd_export *exp, __u32 keylen,
} else if (KEY_IS(KEY_FIEMAP)) {
rc = lov_fiemap(lov, keylen, key, vallen, val, lsm);
GOTO(out, rc);
} else if (KEY_IS(KEY_FIEMAP)) {
rc = lov_fiemap(lov, keylen, key, vallen, val, lsm);
GOTO(out, rc);
- } else if (KEY_IS(KEY_CONNECT_FLAG)) {
- struct lov_tgt_desc *tgt;
- __u64 ost_idx = *((__u64*)val);
-
- LASSERT(*vallen == sizeof(__u64));
- LASSERT(ost_idx < lov->desc.ld_tgt_count);
- tgt = lov->lov_tgts[ost_idx];
-
- if (!tgt || !tgt->ltd_exp)
- GOTO(out, rc = -ESRCH);
-
- *((__u64*)val) = tgt->ltd_exp->exp_connect_flags;
- GOTO(out, rc = 0);
}
rc = -EINVAL;
}
rc = -EINVAL;
diff --git
a/lustre/mdd/mdd_device.c
b/lustre/mdd/mdd_device.c
index
4db6275
..
388780e
100644
(file)
--- a/
lustre/mdd/mdd_device.c
+++ b/
lustre/mdd/mdd_device.c
@@
-1010,7
+1010,7
@@
static int mdd_lov_set_nextid(const struct lu_env *env,
ENTRY;
LASSERT(mds->mds_lov_objids != NULL);
ENTRY;
LASSERT(mds->mds_lov_objids != NULL);
- rc = obd_set_info_async(mds->mds_
lov
_exp, strlen(KEY_NEXT_ID),
+ rc = obd_set_info_async(mds->mds_
osc
_exp, strlen(KEY_NEXT_ID),
KEY_NEXT_ID, mds->mds_lov_desc.ld_tgt_count,
mds->mds_lov_objids, NULL);
KEY_NEXT_ID, mds->mds_lov_desc.ld_tgt_count,
mds->mds_lov_objids, NULL);
@@
-1054,7
+1054,7
@@
static int mdd_recovery_complete(const struct lu_env *env,
}
#endif
/* Call that with obd_recovering = 1 just to update objids */
}
#endif
/* Call that with obd_recovering = 1 just to update objids */
- obd_notify(obd->u.mds.mds_
lov
_obd, NULL, (obd->obd_async_recov ?
+ obd_notify(obd->u.mds.mds_
osc
_obd, NULL, (obd->obd_async_recov ?
OBD_NOTIFY_SYNC_NONBLOCK : OBD_NOTIFY_SYNC), NULL);
/* Drop obd_recovering to 0 and call o_postrecov to recover mds_lov */
OBD_NOTIFY_SYNC_NONBLOCK : OBD_NOTIFY_SYNC), NULL);
/* Drop obd_recovering to 0 and call o_postrecov to recover mds_lov */
@@
-1181,7
+1181,7
@@
static int mdd_update_capa_key(const struct lu_env *env,
{
struct mds_capa_info info = { .uuid = NULL, .capa = key };
struct mdd_device *mdd = lu2mdd_dev(&m->md_lu_dev);
{
struct mds_capa_info info = { .uuid = NULL, .capa = key };
struct mdd_device *mdd = lu2mdd_dev(&m->md_lu_dev);
- struct obd_export *lov_exp = mdd2obd_dev(mdd)->u.mds.mds_
lov
_exp;
+ struct obd_export *lov_exp = mdd2obd_dev(mdd)->u.mds.mds_
osc
_exp;
int rc;
ENTRY;
int rc;
ENTRY;
diff --git
a/lustre/mdd/mdd_lov.c
b/lustre/mdd/mdd_lov.c
index
1b0336a
..
0ea8b9a
100644
(file)
--- a/
lustre/mdd/mdd_lov.c
+++ b/
lustre/mdd/mdd_lov.c
@@
-239,7
+239,7
@@
static int mdd_lov_set_stripe_md(const struct lu_env *env,
{
struct mdd_device *mdd = mdo2mdd(&obj->mod_obj);
struct obd_device *obd = mdd2obd_dev(mdd);
{
struct mdd_device *mdd = mdo2mdd(&obj->mod_obj);
struct obd_device *obd = mdd2obd_dev(mdd);
- struct obd_export *lov_exp = obd->u.mds.mds_
lov
_exp;
+ struct obd_export *lov_exp = obd->u.mds.mds_
osc
_exp;
struct lov_stripe_md *lsm = NULL;
int rc;
ENTRY;
struct lov_stripe_md *lsm = NULL;
int rc;
ENTRY;
@@
-380,7
+380,7
@@
int mdd_lov_create(const struct lu_env *env, struct mdd_device *mdd,
const struct md_op_spec *spec, struct lu_attr *la)
{
struct obd_device *obd = mdd2obd_dev(mdd);
const struct md_op_spec *spec, struct lu_attr *la)
{
struct obd_device *obd = mdd2obd_dev(mdd);
- struct obd_export *lov_exp = obd->u.mds.mds_
lov
_exp;
+ struct obd_export *lov_exp = obd->u.mds.mds_
osc
_exp;
struct lu_site *site = mdd2lu_dev(mdd)->ld_site;
struct obdo *oa;
struct lov_stripe_md *lsm = NULL;
struct lu_site *site = mdd2lu_dev(mdd)->ld_site;
struct obdo *oa;
struct lov_stripe_md *lsm = NULL;
@@
-555,7
+555,7
@@
int mdd_lovobj_unlink(const struct lu_env *env, struct mdd_device *mdd,
int log_unlink)
{
struct obd_device *obd = mdd2obd_dev(mdd);
int log_unlink)
{
struct obd_device *obd = mdd2obd_dev(mdd);
- struct obd_export *lov_exp = obd->u.mds.mds_
lov
_exp;
+ struct obd_export *lov_exp = obd->u.mds.mds_
osc
_exp;
struct lov_stripe_md *lsm = NULL;
struct obd_trans_info *oti = &mdd_env_info(env)->mti_oti;
struct obdo *oa = &mdd_env_info(env)->mti_oa;
struct lov_stripe_md *lsm = NULL;
struct obd_trans_info *oti = &mdd_env_info(env)->mti_oti;
struct obdo *oa = &mdd_env_info(env)->mti_oa;
@@
-678,10
+678,10
@@
int mdd_log_op_setattr(struct obd_device *obd, __u32 uid, __u32 gid,
int rc;
ENTRY;
int rc;
ENTRY;
- if (IS_ERR(mds->mds_
lov
_obd))
- RETURN(PTR_ERR(mds->mds_
lov
_obd));
+ if (IS_ERR(mds->mds_
osc
_obd))
+ RETURN(PTR_ERR(mds->mds_
osc
_obd));
- rc = obd_unpackmd(mds->mds_
lov
_exp, &lsm, lmm, lmm_size);
+ rc = obd_unpackmd(mds->mds_
osc
_exp, &lsm, lmm, lmm_size);
if (rc < 0)
RETURN(rc);
if (rc < 0)
RETURN(rc);
@@
-704,7
+704,7
@@
int mdd_log_op_setattr(struct obd_device *obd, __u32 uid, __u32 gid,
OBD_FREE(lsr, sizeof(*lsr));
out:
OBD_FREE(lsr, sizeof(*lsr));
out:
- obd_free_memmd(mds->mds_
lov
_exp, &lsm);
+ obd_free_memmd(mds->mds_
osc
_exp, &lsm);
RETURN(rc);
}
RETURN(rc);
}
@@
-749,7
+749,7
@@
static int mdd_osc_setattr_async(struct obd_device *obd, __u32 uid, __u32 gid,
LASSERT(lmm);
LASSERT(lmm);
- rc = obd_unpackmd(mds->mds_
lov
_exp, &oinfo.oi_md, lmm, lmm_size);
+ rc = obd_unpackmd(mds->mds_
osc
_exp, &oinfo.oi_md, lmm, lmm_size);
if (rc < 0) {
CERROR("Error unpack md %p for obj "DFID"\n", lmm,
PFID(parent));
if (rc < 0) {
CERROR("Error unpack md %p for obj "DFID"\n", lmm,
PFID(parent));
@@
-772,13
+772,13
@@
static int mdd_osc_setattr_async(struct obd_device *obd, __u32 uid, __u32 gid,
oinfo.oi_capa = oc;
/* do async setattr from mds to ost not waiting for responses. */
oinfo.oi_capa = oc;
/* do async setattr from mds to ost not waiting for responses. */
- rc = obd_setattr_async(mds->mds_
lov
_exp, &oinfo, &oti, NULL);
+ rc = obd_setattr_async(mds->mds_
osc
_exp, &oinfo, &oti, NULL);
if (rc)
CDEBUG(D_INODE, "mds to ost setattr objid 0x"LPX64
" on ost error %d\n", oinfo.oi_md->lsm_object_id, rc);
out:
if (oinfo.oi_md)
if (rc)
CDEBUG(D_INODE, "mds to ost setattr objid 0x"LPX64
" on ost error %d\n", oinfo.oi_md->lsm_object_id, rc);
out:
if (oinfo.oi_md)
- obd_free_memmd(mds->mds_
lov
_exp, &oinfo.oi_md);
+ obd_free_memmd(mds->mds_
osc
_exp, &oinfo.oi_md);
OBDO_FREE(oinfo.oi_oa);
RETURN(rc);
}
OBDO_FREE(oinfo.oi_oa);
RETURN(rc);
}
diff --git
a/lustre/mds/handler.c
b/lustre/mds/handler.c
index
61c02ab
..
a0c4716
100644
(file)
--- a/
lustre/mds/handler.c
+++ b/
lustre/mds/handler.c
@@
-149,7
+149,7
@@
static int mds_lov_presetup (struct mds_obd *mds, struct lustre_cfg *lcfg)
static int mds_lov_clean(struct obd_device *obd)
{
struct mds_obd *mds = &obd->u.mds;
static int mds_lov_clean(struct obd_device *obd)
{
struct mds_obd *mds = &obd->u.mds;
- struct obd_device *osc = mds->mds_
lov
_obd;
+ struct obd_device *osc = mds->mds_
osc
_obd;
ENTRY;
if (mds->mds_profile) {
ENTRY;
if (mds->mds_profile) {
@@
-171,7
+171,7
@@
static int mds_lov_clean(struct obd_device *obd)
osc->obd_fail = obd->obd_fail;
/* Cleanup the lov */
osc->obd_fail = obd->obd_fail;
/* Cleanup the lov */
- obd_disconnect(mds->mds_
lov
_exp);
+ obd_disconnect(mds->mds_
osc
_exp);
class_manual_cleanup(osc);
RETURN(0);
class_manual_cleanup(osc);
RETURN(0);
@@
-247,7
+247,7
@@
int mds_postrecov(struct obd_device *obd)
/* Notify the LOV, which will in turn call mds_notify for each tgt */
/* This means that we have to hack obd_notify to think we're obd_set_up
during mds_lov_connect. */
/* Notify the LOV, which will in turn call mds_notify for each tgt */
/* This means that we have to hack obd_notify to think we're obd_set_up
during mds_lov_connect. */
- obd_notify(obd->u.mds.mds_
lov
_obd, NULL,
+ obd_notify(obd->u.mds.mds_
osc
_obd, NULL,
obd->obd_async_recov ? OBD_NOTIFY_SYNC_NONBLOCK :
OBD_NOTIFY_SYNC, NULL);
obd->obd_async_recov ? OBD_NOTIFY_SYNC_NONBLOCK :
OBD_NOTIFY_SYNC, NULL);
@@
-258,7
+258,7
@@
int mds_postrecov(struct obd_device *obd)
static int mds_lov_early_clean(struct obd_device *obd)
{
struct mds_obd *mds = &obd->u.mds;
static int mds_lov_early_clean(struct obd_device *obd)
{
struct mds_obd *mds = &obd->u.mds;
- struct obd_device *osc = mds->mds_
lov
_obd;
+ struct obd_device *osc = mds->mds_
osc
_obd;
if (!osc || (!obd->obd_force && !obd->obd_fail))
return(0);
if (!osc || (!obd->obd_force && !obd->obd_fail))
return(0);
@@
-289,7
+289,7
@@
static int mds_precleanup(struct obd_device *obd, enum obd_cleanup_stage stage)
if (ctxt)
llog_cleanup(ctxt);
rc = obd_llog_finish(obd, 0);
if (ctxt)
llog_cleanup(ctxt);
rc = obd_llog_finish(obd, 0);
- mds->mds_
lov
_exp = NULL;
+ mds->mds_
osc
_exp = NULL;
cfs_up_write(&mds->mds_notify_lock);
break;
}
cfs_up_write(&mds->mds_notify_lock);
break;
}
@@
-430,7
+430,7
@@
static int mds_cmd_cleanup(struct obd_device *obd)
int rc = 0;
ENTRY;
int rc = 0;
ENTRY;
- mds->mds_
lov
_exp = NULL;
+ mds->mds_
osc
_exp = NULL;
if (obd->obd_fail)
LCONSOLE_WARN("%s: shutting down for failover; client state "
if (obd->obd_fail)
LCONSOLE_WARN("%s: shutting down for failover; client state "
diff --git
a/lustre/mds/lproc_mds.c
b/lustre/mds/lproc_mds.c
index
d6c5b08
..
3b3aa3a
100644
(file)
--- a/
lustre/mds/lproc_mds.c
+++ b/
lustre/mds/lproc_mds.c
@@
-99,7
+99,7
@@
static int lprocfs_mds_wr_evict_client(struct file *file, const char *buffer,
return -ENOMEM;
if (obd->u.mds.mds_evict_ost_nids) {
return -ENOMEM;
if (obd->u.mds.mds_evict_ost_nids) {
- rc = obd_set_info_async(mds->mds_
lov
_exp,
+ rc = obd_set_info_async(mds->mds_
osc
_exp,
sizeof(KEY_EVICT_BY_NID),
KEY_EVICT_BY_NID, strlen(tmpbuf + 4) + 1,
tmpbuf + 4, set);
sizeof(KEY_EVICT_BY_NID),
KEY_EVICT_BY_NID, strlen(tmpbuf + 4) + 1,
tmpbuf + 4, set);
diff --git
a/lustre/mds/mds_log.c
b/lustre/mds/mds_log.c
index
d14fc08
..
582531e
100644
(file)
--- a/
lustre/mds/mds_log.c
+++ b/
lustre/mds/mds_log.c
@@
-60,7
+60,7
@@
static int mds_llog_origin_add(struct llog_ctxt *ctxt, struct llog_rec_hdr *rec,
struct llog_cookie *logcookies, int numcookies)
{
struct obd_device *obd = ctxt->loc_obd;
struct llog_cookie *logcookies, int numcookies)
{
struct obd_device *obd = ctxt->loc_obd;
- struct obd_device *lov_obd = obd->u.mds.mds_
lov
_obd;
+ struct obd_device *lov_obd = obd->u.mds.mds_
osc
_obd;
struct llog_ctxt *lctxt;
int rc;
ENTRY;
struct llog_ctxt *lctxt;
int rc;
ENTRY;
@@
-78,7
+78,7
@@
static int mds_llog_origin_connect(struct llog_ctxt *ctxt,
struct obd_uuid *uuid)
{
struct obd_device *obd = ctxt->loc_obd;
struct obd_uuid *uuid)
{
struct obd_device *obd = ctxt->loc_obd;
- struct obd_device *lov_obd = obd->u.mds.mds_
lov
_obd;
+ struct obd_device *lov_obd = obd->u.mds.mds_
osc
_obd;
struct llog_ctxt *lctxt;
int rc;
ENTRY;
struct llog_ctxt *lctxt;
int rc;
ENTRY;
@@
-98,7
+98,7
@@
static int mds_llog_repl_cancel(struct llog_ctxt *ctxt, struct lov_stripe_md *ls
int count, struct llog_cookie *cookies, int flags)
{
struct obd_device *obd = ctxt->loc_obd;
int count, struct llog_cookie *cookies, int flags)
{
struct obd_device *obd = ctxt->loc_obd;
- struct obd_device *lov_obd = obd->u.mds.mds_
lov
_obd;
+ struct obd_device *lov_obd = obd->u.mds.mds_
osc
_obd;
struct llog_ctxt *lctxt;
int rc;
ENTRY;
struct llog_ctxt *lctxt;
int rc;
ENTRY;
@@
-198,7
+198,7
@@
EXPORT_SYMBOL(mds_changelog_llog_init);
int mds_llog_init(struct obd_device *obd, struct obd_llog_group *olg,
struct obd_device *disk_obd, int *index)
{
int mds_llog_init(struct obd_device *obd, struct obd_llog_group *olg,
struct obd_device *disk_obd, int *index)
{
- struct obd_device *lov_obd = obd->u.mds.mds_
lov
_obd;
+ struct obd_device *lov_obd = obd->u.mds.mds_
osc
_obd;
struct llog_ctxt *ctxt;
int rc;
ENTRY;
struct llog_ctxt *ctxt;
int rc;
ENTRY;
@@
-296,15
+296,15
@@
int mds_log_op_unlink(struct obd_device *obd,
int rc;
ENTRY;
int rc;
ENTRY;
- if (IS_ERR(mds->mds_
lov
_obd))
- RETURN(PTR_ERR(mds->mds_
lov
_obd));
+ if (IS_ERR(mds->mds_
osc
_obd))
+ RETURN(PTR_ERR(mds->mds_
osc
_obd));
- rc = obd_unpackmd(mds->mds_
lov
_exp, &lsm, lmm, lmm_size);
+ rc = obd_unpackmd(mds->mds_
osc
_exp, &lsm, lmm, lmm_size);
if (rc < 0)
RETURN(rc);
rc = mds_llog_add_unlink(obd, lsm, 0, logcookies,
cookies_size / sizeof(struct llog_cookie));
if (rc < 0)
RETURN(rc);
rc = mds_llog_add_unlink(obd, lsm, 0, logcookies,
cookies_size / sizeof(struct llog_cookie));
- obd_free_memmd(mds->mds_
lov
_exp, &lsm);
+ obd_free_memmd(mds->mds_
osc
_exp, &lsm);
RETURN(rc);
}
EXPORT_SYMBOL(mds_log_op_unlink);
RETURN(rc);
}
EXPORT_SYMBOL(mds_log_op_unlink);
@@
-317,8
+317,8
@@
int mds_log_op_orphan(struct obd_device *obd, struct lov_stripe_md *lsm,
int rc;
ENTRY;
int rc;
ENTRY;
- if (IS_ERR(mds->mds_
lov
_obd))
- RETURN(PTR_ERR(mds->mds_
lov
_obd));
+ if (IS_ERR(mds->mds_
osc
_obd))
+ RETURN(PTR_ERR(mds->mds_
osc
_obd));
rc = mds_llog_add_unlink(obd, lsm, count - 1, &logcookie, 1);
RETURN(rc);
rc = mds_llog_add_unlink(obd, lsm, count - 1, &logcookie, 1);
RETURN(rc);
diff --git
a/lustre/mds/mds_lov.c
b/lustre/mds/mds_lov.c
index
8ea0686
..
4cefa7f
100644
(file)
--- a/
lustre/mds/mds_lov.c
+++ b/
lustre/mds/mds_lov.c
@@
-271,7
+271,7
@@
static int mds_log_lost_precreated(struct obd_device *obd,
ENTRY;
if (*lsmp == NULL) {
ENTRY;
if (*lsmp == NULL) {
- rc = obd_alloc_memmd(obd->u.mds.mds_
lov
_exp, &lsm);
+ rc = obd_alloc_memmd(obd->u.mds.mds_
osc
_exp, &lsm);
if (rc < 0)
RETURN(rc);
/* need only one stripe, save old value */
if (rc < 0)
RETURN(rc);
/* need only one stripe, save old value */
@@
-346,7
+346,7
@@
void mds_lov_update_objids(struct obd_device *obd, struct lov_mds_md *lmm)
if (lsm) {
/* restore stripes number */
lsm->lsm_stripe_count = stripes;
if (lsm) {
/* restore stripes number */
lsm->lsm_stripe_count = stripes;
- obd_free_memmd(mds->mds_
lov
_exp, &lsm);
+ obd_free_memmd(mds->mds_
osc
_exp, &lsm);
}
EXIT;
return;
}
EXIT;
return;
@@
-479,35
+479,24
@@
static int mds_lov_get_objid(struct obd_device * obd,
obd_id idx)
{
struct mds_obd *mds = &obd->u.mds;
obd_id idx)
{
struct mds_obd *mds = &obd->u.mds;
- struct obd_export *lov_exp = mds->mds_lov_exp;
unsigned int page;
unsigned int off;
obd_id *data;
unsigned int page;
unsigned int off;
obd_id *data;
- __u64 connect_flags;
- __u32 size;
int rc = 0;
ENTRY;
page = idx / OBJID_PER_PAGE();
off = idx % OBJID_PER_PAGE();
data = mds->mds_lov_page_array[page];
int rc = 0;
ENTRY;
page = idx / OBJID_PER_PAGE();
off = idx % OBJID_PER_PAGE();
data = mds->mds_lov_page_array[page];
-
- size = sizeof(__u64);
- connect_flags = idx;
- rc = obd_get_info(lov_exp, sizeof(KEY_CONNECT_FLAG), KEY_CONNECT_FLAG,
- &size, &connect_flags, NULL);
- if (rc)
- GOTO(out, rc);
-
- if (data[off] < 2 || connect_flags & OBD_CONNECT_SKIP_ORPHAN) {
+ if (data[off] < 2) {
/* We never read this lastid; ask the osc */
struct obd_id_info lastid;
/* We never read this lastid; ask the osc */
struct obd_id_info lastid;
+ __u32 size = sizeof(lastid);
- size = sizeof(lastid);
lastid.idx = idx;
lastid.data = &data[off];
lastid.idx = idx;
lastid.data = &data[off];
- rc = obd_get_info(
lov_exp, sizeof(KEY_LAST_ID), KEY_LAST_ID
,
- &size, &lastid, NULL);
+ rc = obd_get_info(
mds->mds_osc_exp, sizeof(KEY_LAST_ID)
,
+
KEY_LAST_ID,
&size, &lastid, NULL);
if (rc)
GOTO(out, rc);
if (rc)
GOTO(out, rc);
@@
-543,7
+532,7
@@
int mds_lov_clear_orphans(struct mds_obd *mds, struct obd_uuid *ost_uuid)
if (ost_uuid != NULL)
oti.oti_ost_uuid = ost_uuid;
if (ost_uuid != NULL)
oti.oti_ost_uuid = ost_uuid;
- rc = obd_create(mds->mds_
lov
_exp, &oa, &empty_ea, &oti);
+ rc = obd_create(mds->mds_
osc
_exp, &oa, &empty_ea, &oti);
RETURN(rc);
}
RETURN(rc);
}
@@
-560,7
+549,7
@@
static int mds_lov_set_one_nextid(struct obd_device *obd, __u32 idx, obd_id *id)
info.idx = idx;
info.data = id;
info.idx = idx;
info.data = id;
- rc = obd_set_info_async(mds->mds_
lov
_exp, sizeof(KEY_NEXT_ID),
+ rc = obd_set_info_async(mds->mds_
osc
_exp, sizeof(KEY_NEXT_ID),
KEY_NEXT_ID, sizeof(info), &info, NULL);
if (rc)
CERROR ("%s: mds_lov_set_nextid failed (%d)\n",
KEY_NEXT_ID, sizeof(info), &info, NULL);
if (rc)
CERROR ("%s: mds_lov_set_nextid failed (%d)\n",
@@
-583,7
+572,7
@@
static int mds_lov_update_desc(struct obd_device *obd, int idx,
if (!ld)
RETURN(-ENOMEM);
if (!ld)
RETURN(-ENOMEM);
- rc = obd_get_info(mds->mds_
lov
_exp, sizeof(KEY_LOVDESC), KEY_LOVDESC,
+ rc = obd_get_info(mds->mds_
osc
_exp, sizeof(KEY_LOVDESC), KEY_LOVDESC,
&valsize, ld, NULL);
if (rc)
GOTO(out, rc);
&valsize, ld, NULL);
if (rc)
GOTO(out, rc);
@@
-682,16
+671,16
@@
int mds_lov_connect(struct obd_device *obd, char * lov_name)
int rc;
ENTRY;
int rc;
ENTRY;
- if (IS_ERR(mds->mds_
lov
_obd))
- RETURN(PTR_ERR(mds->mds_
lov
_obd));
+ if (IS_ERR(mds->mds_
osc
_obd))
+ RETURN(PTR_ERR(mds->mds_
osc
_obd));
- if (mds->mds_
lov
_obd)
+ if (mds->mds_
osc
_obd)
RETURN(0);
RETURN(0);
- mds->mds_
lov
_obd = class_name2obd(lov_name);
- if (!mds->mds_
lov
_obd) {
+ mds->mds_
osc
_obd = class_name2obd(lov_name);
+ if (!mds->mds_
osc
_obd) {
CERROR("MDS cannot locate LOV %s\n", lov_name);
CERROR("MDS cannot locate LOV %s\n", lov_name);
- mds->mds_
lov
_obd = ERR_PTR(-ENOTCONN);
+ mds->mds_
osc
_obd = ERR_PTR(-ENOTCONN);
RETURN(-ENOTCONN);
}
RETURN(-ENOTCONN);
}
@@
-703,7
+692,7
@@
int mds_lov_connect(struct obd_device *obd, char * lov_name)
GOTO(err_exit, rc);
}
GOTO(err_exit, rc);
}
- rc = obd_register_observer(mds->mds_
lov
_obd, obd);
+ rc = obd_register_observer(mds->mds_
osc
_obd, obd);
if (rc) {
CERROR("MDS cannot register as observer of LOV %s (%d)\n",
lov_name, rc);
if (rc) {
CERROR("MDS cannot register as observer of LOV %s (%d)\n",
lov_name, rc);
@@
-715,7
+704,7
@@
int mds_lov_connect(struct obd_device *obd, char * lov_name)
if (rc)
GOTO(err_exit, rc);
if (rc)
GOTO(err_exit, rc);
- mds->mds_
lov
_obd->u.lov.lov_sp_me = LUSTRE_SP_MDT;
+ mds->mds_
osc
_obd->u.lov.lov_sp_me = LUSTRE_SP_MDT;
OBD_ALLOC(data, sizeof(*data));
if (data == NULL)
OBD_ALLOC(data, sizeof(*data));
if (data == NULL)
@@
-738,11
+727,11
@@
int mds_lov_connect(struct obd_device *obd, char * lov_name)
/* send the list of supported checksum types */
data->ocd_cksum_types = OBD_CKSUM_ALL;
/* NB: lov_connect() needs to fill in .ocd_index for each OST */
/* send the list of supported checksum types */
data->ocd_cksum_types = OBD_CKSUM_ALL;
/* NB: lov_connect() needs to fill in .ocd_index for each OST */
- rc = obd_connect(NULL, &mds->mds_
lov_exp, mds->mds_lov
_obd, &obd->obd_uuid, data, NULL);
+ rc = obd_connect(NULL, &mds->mds_
osc_exp, mds->mds_osc
_obd, &obd->obd_uuid, data, NULL);
OBD_FREE(data, sizeof(*data));
if (rc) {
CERROR("MDS cannot connect to LOV %s (%d)\n", lov_name, rc);
OBD_FREE(data, sizeof(*data));
if (rc) {
CERROR("MDS cannot connect to LOV %s (%d)\n", lov_name, rc);
- mds->mds_
lov
_obd = ERR_PTR(rc);
+ mds->mds_
osc
_obd = ERR_PTR(rc);
RETURN(rc);
}
RETURN(rc);
}
@@
-758,8
+747,8
@@
int mds_lov_connect(struct obd_device *obd, char * lov_name)
RETURN(rc);
err_exit:
RETURN(rc);
err_exit:
- mds->mds_
lov
_exp = NULL;
- mds->mds_
lov
_obd = ERR_PTR(rc);
+ mds->mds_
osc
_exp = NULL;
+ mds->mds_
osc
_obd = ERR_PTR(rc);
RETURN(rc);
}
RETURN(rc);
}
@@
-769,16
+758,16
@@
int mds_lov_disconnect(struct obd_device *obd)
int rc = 0;
ENTRY;
int rc = 0;
ENTRY;
- if (!IS_ERR(mds->mds_
lov_obd) && mds->mds_lov
_exp != NULL) {
- obd_register_observer(mds->mds_
lov
_obd, NULL);
+ if (!IS_ERR(mds->mds_
osc_obd) && mds->mds_osc
_exp != NULL) {
+ obd_register_observer(mds->mds_
osc
_obd, NULL);
/* The actual disconnect of the mds_lov will be called from
* class_disconnect_exports from mds_lov_clean. So we have to
* ensure that class_cleanup doesn't fail due to the extra ref
* we're holding now. The mechanism to do that already exists -
* the obd_force flag. We'll drop the final ref to the
/* The actual disconnect of the mds_lov will be called from
* class_disconnect_exports from mds_lov_clean. So we have to
* ensure that class_cleanup doesn't fail due to the extra ref
* we're holding now. The mechanism to do that already exists -
* the obd_force flag. We'll drop the final ref to the
- * mds_
lov
_exp in mds_cleanup. */
- mds->mds_
lov
_obd->obd_force = 1;
+ * mds_
osc
_exp in mds_cleanup. */
+ mds->mds_
osc
_obd->obd_force = 1;
}
RETURN(rc);
}
RETURN(rc);
@@
-808,7
+797,7
@@
static int mds_propagate_capa_keys(struct mds_obd *mds, struct obd_uuid *uuid)
DEBUG_CAPA_KEY(D_SEC, key, "propagate");
info.capa = key;
DEBUG_CAPA_KEY(D_SEC, key, "propagate");
info.capa = key;
- rc = obd_set_info_async(mds->mds_
lov
_exp, sizeof(KEY_CAPA_KEY),
+ rc = obd_set_info_async(mds->mds_
osc
_exp, sizeof(KEY_CAPA_KEY),
KEY_CAPA_KEY, sizeof(info), &info, NULL);
if (rc) {
DEBUG_CAPA_KEY(D_ERROR, key,
KEY_CAPA_KEY, sizeof(info), &info, NULL);
if (rc) {
DEBUG_CAPA_KEY(D_ERROR, key,
@@
-859,7
+848,7
@@
static int __mds_lov_synchronize(void *data)
mgi.group = mdt_to_obd_objseq(mds->mds_id);
mgi.uuid = uuid;
mgi.group = mdt_to_obd_objseq(mds->mds_id);
mgi.uuid = uuid;
- rc = obd_set_info_async(mds->mds_
lov
_exp, sizeof(KEY_MDS_CONN),
+ rc = obd_set_info_async(mds->mds_
osc
_exp, sizeof(KEY_MDS_CONN),
KEY_MDS_CONN, sizeof(mgi), &mgi, NULL);
if (rc != 0)
GOTO(out, rc);
KEY_MDS_CONN, sizeof(mgi), &mgi, NULL);
if (rc != 0)
GOTO(out, rc);
@@
-908,9
+897,9
@@
out:
/* Deactivate it for safety */
CERROR("%s sync failed %d, deactivating\n", obd_uuid2str(uuid),
rc);
/* Deactivate it for safety */
CERROR("%s sync failed %d, deactivating\n", obd_uuid2str(uuid),
rc);
- if (!obd->obd_stopping && mds->mds_
lov
_obd &&
- !mds->mds_
lov
_obd->obd_stopping && !watched->obd_stopping)
- obd_notify(mds->mds_
lov
_obd, watched,
+ if (!obd->obd_stopping && mds->mds_
osc
_obd &&
+ !mds->mds_
osc
_obd->obd_stopping && !watched->obd_stopping)
+ obd_notify(mds->mds_
osc
_obd, watched,
OBD_NOTIFY_INACTIVE, NULL);
}
OBD_NOTIFY_INACTIVE, NULL);
}
diff --git
a/lustre/osc/osc_create.c
b/lustre/osc/osc_create.c
index
f3e6722
..
6c555d5
100644
(file)
--- a/
lustre/osc/osc_create.c
+++ b/
lustre/osc/osc_create.c
@@
-596,7
+596,8
@@
int osc_create(struct obd_export *exp, struct obdo *oa,
cfs_waitq_signal(&oscc->oscc_waitq);
cfs_spin_unlock(&oscc->oscc_lock);
cfs_waitq_signal(&oscc->oscc_waitq);
cfs_spin_unlock(&oscc->oscc_lock);
- RETURN(rc);
+ if (rc < 0)
+ RETURN(rc);
}
lsm = *ea;
}
lsm = *ea;
diff --git
a/lustre/quota/lproc_quota.c
b/lustre/quota/lproc_quota.c
index
b42e25a
..
6f0114a
100644
(file)
--- a/
lustre/quota/lproc_quota.c
+++ b/
lustre/quota/lproc_quota.c
@@
-253,7
+253,7
@@
int generic_quota_on(struct obd_device *obd, struct obd_quotactl *oqctl, int glo
}
if (rc == 0 && global && is_master)
}
if (rc == 0 && global && is_master)
- rc = obd_quotactl(obd->u.mds.mds_
lov
_exp, oqctl);
+ rc = obd_quotactl(obd->u.mds.mds_
osc
_exp, oqctl);
}
if (is_master)
}
if (is_master)
diff --git
a/lustre/quota/quota_master.c
b/lustre/quota/quota_master.c
index
3563a78
..
c72e477
100644
(file)
--- a/
lustre/quota/quota_master.c
+++ b/
lustre/quota/quota_master.c
@@
-322,7
+322,7
@@
int dqacq_adjust_qunit_sz(struct obd_device *obd, qid_t id, int type,
/* only when block qunit is reduced, boardcast to osts */
if ((adjust_res & LQS_BLK_DECREASE) && QAQ_IS_ADJBLK(oqaq))
/* only when block qunit is reduced, boardcast to osts */
if ((adjust_res & LQS_BLK_DECREASE) && QAQ_IS_ADJBLK(oqaq))
- rc = obd_quota_adjust_qunit(mds->mds_
lov
_exp, oqaq, qctxt);
+ rc = obd_quota_adjust_qunit(mds->mds_
osc
_exp, oqaq, qctxt);
out:
lustre_dqput(dquot);
out:
lustre_dqput(dquot);
@@
-653,7
+653,7
@@
int mds_quota_finvalidate(struct obd_device *obd, struct obd_quotactl *oqctl)
oqctl->qc_cmd = Q_FINVALIDATE;
rc = fsfilt_quotactl(obd, obd->u.obt.obt_sb, oqctl);
if (!rc)
oqctl->qc_cmd = Q_FINVALIDATE;
rc = fsfilt_quotactl(obd, obd->u.obt.obt_sb, oqctl);
if (!rc)
- rc = obd_quotactl(mds->mds_
lov
_exp, oqctl);
+ rc = obd_quotactl(mds->mds_
osc
_exp, oqctl);
cfs_up(&mds->mds_qonoff_sem);
pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
cfs_up(&mds->mds_qonoff_sem);
pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
@@
-893,7
+893,7
@@
int do_mds_quota_off(struct obd_device *obd, struct obd_quotactl *oqctl)
GOTO(out, rc1);
}
GOTO(out, rc1);
}
- rc = obd_quotactl(mds->mds_
lov
_exp, oqctl);
+ rc = obd_quotactl(mds->mds_
osc
_exp, oqctl);
if (rc && rc != -EALREADY) {
CWARN("mds remote quota[%d] is failed to be off for %d\n",
oqctl->qc_type, rc);
if (rc && rc != -EALREADY) {
CWARN("mds remote quota[%d] is failed to be off for %d\n",
oqctl->qc_type, rc);
@@
-1221,7
+1221,7
@@
static int mds_init_slave_blimits(struct obd_device *obd,
id[GRPQUOTA] = oqctl->qc_id;
/* initialize all slave's limit */
id[GRPQUOTA] = oqctl->qc_id;
/* initialize all slave's limit */
- rc = obd_quotactl(mds->mds_
lov
_exp, ioqc);
+ rc = obd_quotactl(mds->mds_
osc
_exp, ioqc);
rc = qctxt_adjust_qunit(obd, &obd->u.obt.obt_qctxt, id, 1, 0, NULL);
if (rc == -EDQUOT || rc == -EBUSY) {
rc = qctxt_adjust_qunit(obd, &obd->u.obt.obt_qctxt, id, 1, 0, NULL);
if (rc == -EDQUOT || rc == -EBUSY) {
@@
-1252,7
+1252,7
@@
static void adjust_lqs(struct obd_device *obd, struct quota_adjust_qunit *qaq)
/* adjust remote lqs */
if (QAQ_IS_ADJBLK(qaq)) {
/* adjust remote lqs */
if (QAQ_IS_ADJBLK(qaq)) {
- rc = obd_quota_adjust_qunit(obd->u.mds.mds_
lov
_exp, qaq, qctxt);
+ rc = obd_quota_adjust_qunit(obd->u.mds.mds_
osc
_exp, qaq, qctxt);
if (rc < 0)
CERROR("adjust slaves' qunit size failed!(rc=%d)\n", rc);
if (rc < 0)
CERROR("adjust slaves' qunit size failed!(rc=%d)\n", rc);
@@
-1263,7
+1263,7
@@
int mds_set_dqblk(struct obd_device *obd, struct obd_quotactl *oqctl)
{
struct mds_obd *mds = &obd->u.mds;
struct lustre_quota_ctxt *qctxt = &mds->mds_obt.obt_qctxt;
{
struct mds_obd *mds = &obd->u.mds;
struct lustre_quota_ctxt *qctxt = &mds->mds_obt.obt_qctxt;
- struct obd_device *lov_obd = class_exp2obd(mds->mds_
lov
_exp);
+ struct obd_device *lov_obd = class_exp2obd(mds->mds_
osc
_exp);
struct lov_obd *lov = &lov_obd->u.lov;
struct quota_adjust_qunit *oqaq = NULL;
struct lustre_quota_info *qinfo = &mds->mds_quota_info;
struct lov_obd *lov = &lov_obd->u.lov;
struct quota_adjust_qunit *oqaq = NULL;
struct lustre_quota_info *qinfo = &mds->mds_quota_info;
@@
-1450,7
+1450,7
@@
static int mds_get_space(struct obd_device *obd, struct obd_quotactl *oqctl)
/* get block usage from OSS */
soqc->qc_dqblk.dqb_curspace = 0;
/* get block usage from OSS */
soqc->qc_dqblk.dqb_curspace = 0;
- rc = obd_quotactl(obd->u.mds.mds_
lov
_exp, soqc);
+ rc = obd_quotactl(obd->u.mds.mds_
osc
_exp, soqc);
if (!rc || rc == -EREMOTEIO) {
oqctl->qc_dqblk.dqb_curspace = soqc->qc_dqblk.dqb_curspace;
oqctl->qc_dqblk.dqb_valid |= QIF_SPACE;
if (!rc || rc == -EREMOTEIO) {
oqctl->qc_dqblk.dqb_curspace = soqc->qc_dqblk.dqb_curspace;
oqctl->qc_dqblk.dqb_valid |= QIF_SPACE;
@@
-1574,7
+1574,7
@@
dquot_recovery(struct obd_device *obd, unsigned int id, unsigned short type)
qctl->qc_type = type;
qctl->qc_id = id;
qctl->qc_stat = QUOTA_RECOVERING;
qctl->qc_type = type;
qctl->qc_id = id;
qctl->qc_stat = QUOTA_RECOVERING;
- rc = obd_quotactl(mds->mds_
lov
_exp, qctl);
+ rc = obd_quotactl(mds->mds_
osc
_exp, qctl);
if (rc)
GOTO(out, rc);
total_limits = qctl->qc_dqblk.dqb_bhardlimit;
if (rc)
GOTO(out, rc);
total_limits = qctl->qc_dqblk.dqb_bhardlimit;
@@
-1629,7
+1629,7
@@
static int qmaster_recovery_main(void *arg)
/* for mds */
class_incref(obd, "qmaster_recovd_mds", obd);
/* for lov */
/* for mds */
class_incref(obd, "qmaster_recovd_mds", obd);
/* for lov */
- class_incref(mds->mds_
lov_obd, "qmaster_recovd_lov", mds->mds_lov
_obd);
+ class_incref(mds->mds_
osc_obd, "qmaster_recovd_lov", mds->mds_osc
_obd);
cfs_complete(&data->comp);
cfs_complete(&data->comp);
@@
-1664,7
+1664,7
@@
free:
OBD_FREE_PTR(dqid);
}
}
OBD_FREE_PTR(dqid);
}
}
- class_decref(mds->mds_
lov_obd, "qmaster_recovd_lov", mds->mds_lov
_obd);
+ class_decref(mds->mds_
osc_obd, "qmaster_recovd_lov", mds->mds_osc
_obd);
class_decref(obd, "qmaster_recovd_mds", obd);
RETURN(rc);
}
class_decref(obd, "qmaster_recovd_mds", obd);
RETURN(rc);
}
diff --git
a/lustre/tests/replay-dual.sh
b/lustre/tests/replay-dual.sh
index
8f0cb52
..
e6fb1a1
100755
(executable)
--- a/
lustre/tests/replay-dual.sh
+++ b/
lustre/tests/replay-dual.sh
@@
-5,9
+5,6
@@
set -e
# bug number: 10124
ALWAYS_EXCEPT="15c $REPLAY_DUAL_EXCEPT"
# bug number: 10124
ALWAYS_EXCEPT="15c $REPLAY_DUAL_EXCEPT"
-LFS=${LFS:-lfs}
-SETSTRIPE=${SETSTRIPE:-"$LFS setstripe"}
-GETSTRIPE=${GETSTRIPE:-"$LFS getstripe"}
SAVE_PWD=$PWD
PTLDEBUG=${PTLDEBUG:--1}
LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
SAVE_PWD=$PWD
PTLDEBUG=${PTLDEBUG:--1}
LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
@@
-274,25
+271,20
@@
test_14a() {
run_test 14a "timeouts waiting for lost client during replay"
test_14b() {
run_test 14a "timeouts waiting for lost client during replay"
test_14b() {
- wait_mds_ost_sync
- wait_destroy_complete
BEFOREUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
mkdir -p $MOUNT1/$tdir
BEFOREUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
mkdir -p $MOUNT1/$tdir
- $SETSTRIPE -o 0 $MOUNT1/$tdir
replay_barrier $SINGLEMDS
replay_barrier $SINGLEMDS
- createmany -o $MOUNT1/$tdir/$tfile- 5
-
- $SETSTRIPE -o 0 $MOUNT2/f14b-3
- echo "data" > $MOUNT2/f14b-3
- createmany -o $MOUNT1/$tdir/$tfile-3- 5
+ createmany -o $MOUNT1/$tfile- 5
+ echo "data" > $MOUNT2/$tdir/$tfile-2
+ createmany -o $MOUNT1/$tfile-3- 5
umount $MOUNT2
fail $SINGLEMDS
wait_recovery_complete $SINGLEMDS || error "MDS recovery not done"
# first 25 files should have been replayed
umount $MOUNT2
fail $SINGLEMDS
wait_recovery_complete $SINGLEMDS || error "MDS recovery not done"
# first 25 files should have been replayed
- unlinkmany $MOUNT1/$t
dir/$t
file- 5 || return 2
- unlinkmany $MOUNT1/$t
dir/$t
file-3- 5 || return 3
+ unlinkmany $MOUNT1/$tfile- 5 || return 2
+ unlinkmany $MOUNT1/$tfile-3- 5 || return 3
zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"