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-9223: Server on Linux 4.4: XATTR_NAME_POSIX_ACL_ACCESS
[fs/lustre-release.git]
/
lustre
/
quota
/
qmt_dev.c
diff --git
a/lustre/quota/qmt_dev.c
b/lustre/quota/qmt_dev.c
index
8401030
..
32b8ec4
100644
(file)
--- a/
lustre/quota/qmt_dev.c
+++ b/
lustre/quota/qmt_dev.c
@@
-21,7
+21,7
@@
* GPL HEADER END
*/
/*
* GPL HEADER END
*/
/*
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012,
2014,
Intel Corporation.
* Use is subject to license terms.
*
* Author: Johann Lombardi <johann.lombardi@intel.com>
* Use is subject to license terms.
*
* Author: Johann Lombardi <johann.lombardi@intel.com>
@@
-202,12
+202,17
@@
static int qmt_device_init0(const struct lu_env *env, struct qmt_device *qmt,
struct lu_device *ld = qmt2lu_dev(qmt);
struct obd_device *obd, *mdt_obd;
struct obd_type *type;
struct lu_device *ld = qmt2lu_dev(qmt);
struct obd_device *obd, *mdt_obd;
struct obd_type *type;
+ char *svname = lustre_cfg_string(cfg, 0);
int rc;
ENTRY;
int rc;
ENTRY;
+ if (svname == NULL)
+ RETURN(-EINVAL);
+
/* record who i am, it might be useful ... */
/* record who i am, it might be useful ... */
- strncpy(qmt->qmt_svname, lustre_cfg_string(cfg, 0),
- sizeof(qmt->qmt_svname) - 1);
+ rc = strlcpy(qmt->qmt_svname, svname, sizeof(qmt->qmt_svname));
+ if (rc >= sizeof(qmt->qmt_svname))
+ RETURN(-E2BIG);
/* look-up the obd_device associated with the qmt */
obd = class_name2obd(qmt->qmt_svname);
/* look-up the obd_device associated with the qmt */
obd = class_name2obd(qmt->qmt_svname);
@@
-236,14
+241,16
@@
static int qmt_device_init0(const struct lu_env *env, struct qmt_device *qmt,
/* set up and start rebalance thread */
thread_set_flags(&qmt->qmt_reba_thread, SVC_STOPPED);
/* set up and start rebalance thread */
thread_set_flags(&qmt->qmt_reba_thread, SVC_STOPPED);
-
cfs_waitq_init
(&qmt->qmt_reba_thread.t_ctl_waitq);
-
CFS_
INIT_LIST_HEAD(&qmt->qmt_reba_list);
+
init_waitqueue_head
(&qmt->qmt_reba_thread.t_ctl_waitq);
+ INIT_LIST_HEAD(&qmt->qmt_reba_list);
spin_lock_init(&qmt->qmt_reba_lock);
spin_lock_init(&qmt->qmt_reba_lock);
- rc = qmt_start_reba_thread(qmt);
- if (rc) {
- CERROR("%s: failed to start rebalance thread (%d)\n",
- qmt->qmt_svname, rc);
- GOTO(out, rc);
+ if (!qmt->qmt_child->dd_rdonly) {
+ rc = qmt_start_reba_thread(qmt);
+ if (rc) {
+ CERROR("%s: failed to start rebalance thread (%d)\n",
+ qmt->qmt_svname, rc);
+ GOTO(out, rc);
+ }
}
/* at the moment there is no linkage between lu_type and obd_type, so
}
/* at the moment there is no linkage between lu_type and obd_type, so
@@
-447,7
+454,7
@@
static int qmt_device_prepare(const struct lu_env *env,
/* initialize on-disk indexes associated with each pool */
rc = qmt_pool_prepare(env, qmt, qmt_root);
/* initialize on-disk indexes associated with each pool */
rc = qmt_pool_prepare(env, qmt, qmt_root);
-
lu_object_put(env, &qmt_root->do_lu
);
+
dt_object_put(env, qmt_root
);
RETURN(rc);
}
RETURN(rc);
}
@@
-466,8
+473,8
@@
int qmt_glb_init(void)
int rc;
ENTRY;
int rc;
ENTRY;
- rc = class_register_type(&qmt_obd_ops, NULL,
NULL, LUSTRE_QMT_NAME
,
- &qmt_device_type);
+ rc = class_register_type(&qmt_obd_ops, NULL,
true, NULL
,
+
LUSTRE_QMT_NAME,
&qmt_device_type);
RETURN(rc);
}
RETURN(rc);
}