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-166 NOT assert wire data from client for getattr-by-fid
[fs/lustre-release.git]
/
lustre
/
mdt
/
mdt_capa.c
diff --git
a/lustre/mdt/mdt_capa.c
b/lustre/mdt/mdt_capa.c
index
4b7fb5a
..
bd10eda
100644
(file)
--- a/
lustre/mdt/mdt_capa.c
+++ b/
lustre/mdt/mdt_capa.c
@@
-16,8
+16,8
@@
* in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU General Public License
* in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU General Public License
- * version 2 along with this program; If not, see
[sun.com URL with a
- *
copy of GPLv2].
+ * version 2 along with this program; If not, see
+ *
http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
@@
-26,7
+26,7
@@
* GPL HEADER END
*/
/*
* GPL HEADER END
*/
/*
- * Copyright
2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright
(c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
* Use is subject to license terms.
*/
/*
@@
-49,25
+49,21
@@
static inline void set_capa_key_expiry(struct mdt_device *mdt)
{
static inline void set_capa_key_expiry(struct mdt_device *mdt)
{
- mdt->mdt_ck_expiry = jiffies + mdt->mdt_ck_timeout * HZ;
+ mdt->mdt_ck_expiry = jiffies + mdt->mdt_ck_timeout *
CFS_
HZ;
}
static void make_capa_key(struct lustre_capa_key *key,
mdsno_t mdsnum, int keyid)
{
}
static void make_capa_key(struct lustre_capa_key *key,
mdsno_t mdsnum, int keyid)
{
- key->lk_
mdsid
= mdsnum;
+ key->lk_
seq
= mdsnum;
key->lk_keyid = keyid + 1;
key->lk_keyid = keyid + 1;
-
ll
_get_random_bytes(key->lk_key, sizeof(key->lk_key));
+
cfs
_get_random_bytes(key->lk_key, sizeof(key->lk_key));
}
}
-enum {
- MDT_TXN_CAPA_KEYS_WRITE_CREDITS = 1
-};
-
static inline void lck_cpu_to_le(struct lustre_capa_key *tgt,
struct lustre_capa_key *src)
{
static inline void lck_cpu_to_le(struct lustre_capa_key *tgt,
struct lustre_capa_key *src)
{
- tgt->lk_
mdsid = cpu_to_le64(src->lk_mdsid
);
+ tgt->lk_
seq = cpu_to_le64(src->lk_seq
);
tgt->lk_keyid = cpu_to_le32(src->lk_keyid);
tgt->lk_padding = cpu_to_le32(src->lk_padding);
memcpy(tgt->lk_key, src->lk_key, sizeof(src->lk_key));
tgt->lk_keyid = cpu_to_le32(src->lk_keyid);
tgt->lk_padding = cpu_to_le32(src->lk_padding);
memcpy(tgt->lk_key, src->lk_key, sizeof(src->lk_key));
@@
-76,7
+72,7
@@
static inline void lck_cpu_to_le(struct lustre_capa_key *tgt,
static inline void lck_le_to_cpu(struct lustre_capa_key *tgt,
struct lustre_capa_key *src)
{
static inline void lck_le_to_cpu(struct lustre_capa_key *tgt,
struct lustre_capa_key *src)
{
- tgt->lk_
mdsid = le64_to_cpu(src->lk_mdsid
);
+ tgt->lk_
seq = le64_to_cpu(src->lk_seq
);
tgt->lk_keyid = le32_to_cpu(src->lk_keyid);
tgt->lk_padding = le32_to_cpu(src->lk_padding);
memcpy(tgt->lk_key, src->lk_key, sizeof(src->lk_key));
tgt->lk_keyid = le32_to_cpu(src->lk_keyid);
tgt->lk_padding = le32_to_cpu(src->lk_padding);
memcpy(tgt->lk_key, src->lk_key, sizeof(src->lk_key));
@@
-93,8
+89,8
@@
static int write_capa_keys(const struct lu_env *env,
int i, rc;
mti = lu_context_key_get(&env->le_ctx, &mdt_thread_key);
int i, rc;
mti = lu_context_key_get(&env->le_ctx, &mdt_thread_key);
-
- th = mdt_trans_start(env, mdt
, MDT_TXN_CAPA_KEYS_WRITE_CREDITS
);
+ mdt_trans_credit_init(env, mdt, MDT_TXN_CAPA_KEYS_WRITE_OP);
+ th = mdt_trans_start(env, mdt);
if (IS_ERR(th))
RETURN(PTR_ERR(th));
if (IS_ERR(th))
RETURN(PTR_ERR(th));
@@
-103,9
+99,9
@@
static int write_capa_keys(const struct lu_env *env,
for (i = 0; i < 2; i++) {
lck_cpu_to_le(tmp, &keys[i]);
for (i = 0; i < 2; i++) {
lck_cpu_to_le(tmp, &keys[i]);
- rc =
m
dt_record_write(env, mdt->mdt_ck_obj,
-
mdt_buf_const(env, tmp, sizeof(*tmp)),
-
&off, th);
+ rc = dt_record_write(env, mdt->mdt_ck_obj,
+ mdt_buf_const(env, tmp, sizeof(*tmp)),
+ &off, th);
if (rc)
break;
}
if (rc)
break;
}
@@
-129,8
+125,8
@@
static int read_capa_keys(const struct lu_env *env,
tmp = &mti->mti_capa_key;
for (i = 0; i < 2; i++) {
tmp = &mti->mti_capa_key;
for (i = 0; i < 2; i++) {
- rc =
m
dt_record_read(env, mdt->mdt_ck_obj,
-
mdt_buf(env, tmp, sizeof(*tmp)), &off);
+ rc = dt_record_read(env, mdt->mdt_ck_obj,
+ mdt_buf(env, tmp, sizeof(*tmp)), &off);
if (rc)
return rc;
if (rc)
return rc;
@@
-152,7
+148,7
@@
int mdt_capa_keys_init(const struct lu_env *env, struct mdt_device *mdt)
int rc;
ENTRY;
int rc;
ENTRY;
- mdsnum = mdt
->mdt_md_dev.md_lu_dev.ld_site->l
s_node_id;
+ mdsnum = mdt
_md_site(mdt)->m
s_node_id;
mti = lu_context_key_get(&env->le_ctx, &mdt_thread_key);
LASSERT(mti != NULL);
mti = lu_context_key_get(&env->le_ctx, &mdt_thread_key);
LASSERT(mti != NULL);
@@
-216,24
+212,25
@@
static int mdt_ck_thread_main(void *args)
int rc;
ENTRY;
int rc;
ENTRY;
-
ptlrpc_daemonize
("mdt_ck");
+
cfs_daemonize_ctxt
("mdt_ck");
cfs_block_allsigs();
thread->t_flags = SVC_RUNNING;
cfs_waitq_signal(&thread->t_ctl_waitq);
cfs_block_allsigs();
thread->t_flags = SVC_RUNNING;
cfs_waitq_signal(&thread->t_ctl_waitq);
- rc = lu_env_init(&env,
NULL, LCT_MD_THREAD
);
+ rc = lu_env_init(&env,
LCT_MD_THREAD|LCT_REMEMBER|LCT_NOREF
);
if (rc)
RETURN(rc);
thread->t_env = &env;
env.le_ctx.lc_thread = thread;
if (rc)
RETURN(rc);
thread->t_env = &env;
env.le_ctx.lc_thread = thread;
+ env.le_ctx.lc_cookie = 0x1;
info = lu_context_key_get(&env.le_ctx, &mdt_thread_key);
LASSERT(info != NULL);
tmp = &info->mti_capa_key;
info = lu_context_key_get(&env.le_ctx, &mdt_thread_key);
LASSERT(info != NULL);
tmp = &info->mti_capa_key;
- mdsnum = mdt
->mdt_md_dev.md_lu_dev.ld_site->l
s_node_id;
+ mdsnum = mdt
_md_site(mdt)->m
s_node_id;
while (1) {
l_wait_event(thread->t_ctl_waitq,
thread->t_flags & (SVC_STOPPING | SVC_EVENT),
while (1) {
l_wait_event(thread->t_ctl_waitq,
thread->t_flags & (SVC_STOPPING | SVC_EVENT),
@@
-252,17
+249,17
@@
static int mdt_ck_thread_main(void *args)
next = mdt->mdt_child;
rc = next->md_ops->mdo_update_capa_key(&env, next, tmp);
if (!rc) {
next = mdt->mdt_child;
rc = next->md_ops->mdo_update_capa_key(&env, next, tmp);
if (!rc) {
- spin_lock(&capa_lock);
+
cfs_
spin_lock(&capa_lock);
*bkey = *rkey;
*rkey = *tmp;
*bkey = *rkey;
*rkey = *tmp;
- spin_unlock(&capa_lock);
+
cfs_
spin_unlock(&capa_lock);
rc = write_capa_keys(&env, mdt, mdt->mdt_capa_keys);
if (rc) {
rc = write_capa_keys(&env, mdt, mdt->mdt_capa_keys);
if (rc) {
- spin_lock(&capa_lock);
+
cfs_
spin_lock(&capa_lock);
*rkey = *bkey;
memset(bkey, 0, sizeof(*bkey));
*rkey = *bkey;
memset(bkey, 0, sizeof(*bkey));
- spin_unlock(&capa_lock);
+
cfs_
spin_unlock(&capa_lock);
} else {
set_capa_key_expiry(mdt);
DEBUG_CAPA_KEY(D_SEC, rkey, "new");
} else {
set_capa_key_expiry(mdt);
DEBUG_CAPA_KEY(D_SEC, rkey, "new");
@@
-271,7
+268,7
@@
static int mdt_ck_thread_main(void *args)
if (rc) {
DEBUG_CAPA_KEY(D_ERROR, rkey, "update failed for");
/* next retry is in 300 sec */
if (rc) {
DEBUG_CAPA_KEY(D_ERROR, rkey, "update failed for");
/* next retry is in 300 sec */
- mdt->mdt_ck_expiry = jiffies + 300 * HZ;
+ mdt->mdt_ck_expiry = jiffies + 300 *
CFS_
HZ;
}
cfs_timer_arm(&mdt->mdt_ck_timer, mdt->mdt_ck_expiry);
}
cfs_timer_arm(&mdt->mdt_ck_timer, mdt->mdt_ck_expiry);
@@
-291,13
+288,13
@@
int mdt_ck_thread_start(struct mdt_device *mdt)
cfs_waitq_init(&thread->t_ctl_waitq);
rc = cfs_kernel_thread(mdt_ck_thread_main, mdt,
cfs_waitq_init(&thread->t_ctl_waitq);
rc = cfs_kernel_thread(mdt_ck_thread_main, mdt,
- (CLONE_VM | CLONE_FILES));
+
(CLONE_VM | CLONE_FILES));
if (rc < 0) {
CERROR("cannot start mdt_ck thread, rc = %d\n", rc);
return rc;
}
if (rc < 0) {
CERROR("cannot start mdt_ck thread, rc = %d\n", rc);
return rc;
}
-
cfs_wait_event
(thread->t_ctl_waitq, thread->t_flags & SVC_RUNNING);
+
l_wait_condition
(thread->t_ctl_waitq, thread->t_flags & SVC_RUNNING);
return 0;
}
return 0;
}
@@
-310,5
+307,5
@@
void mdt_ck_thread_stop(struct mdt_device *mdt)
thread->t_flags = SVC_STOPPING;
cfs_waitq_signal(&thread->t_ctl_waitq);
thread->t_flags = SVC_STOPPING;
cfs_waitq_signal(&thread->t_ctl_waitq);
-
cfs_wait_event
(thread->t_ctl_waitq, thread->t_flags & SVC_STOPPED);
+
l_wait_condition
(thread->t_ctl_waitq, thread->t_flags & SVC_STOPPED);
}
}