#include "qsd_internal.h"
typedef int (enqi_bl_cb_t)(struct ldlm_lock *lock,
#include "qsd_internal.h"
typedef int (enqi_bl_cb_t)(struct ldlm_lock *lock,
static enqi_bl_cb_t qsd_glb_blocking_ast, qsd_id_blocking_ast;
typedef int (enqi_gl_cb_t)(struct ldlm_lock *lock, void *data);
static enqi_bl_cb_t qsd_glb_blocking_ast, qsd_id_blocking_ast;
typedef int (enqi_gl_cb_t)(struct ldlm_lock *lock, void *data);
* \param reset - whether lock->l_ast_data should be cleared
*/
static struct qsd_qtype_info *qsd_glb_ast_data_get(struct ldlm_lock *lock,
* \param reset - whether lock->l_ast_data should be cleared
*/
static struct qsd_qtype_info *qsd_glb_ast_data_get(struct ldlm_lock *lock,
/* it is not safe to call lu_ref_add() under spinlock */
lu_ref_add(&qqi->qqi_reference, "ast_data_get", lock);
/* it is not safe to call lu_ref_add() under spinlock */
lu_ref_add(&qqi->qqi_reference, "ast_data_get", lock);
/* release qqi reference hold for the lock */
lu_ref_del(&qqi->qqi_reference, "glb_lock", lock);
qqi_putref(qqi);
/* release qqi reference hold for the lock */
lu_ref_del(&qqi->qqi_reference, "glb_lock", lock);
qqi_putref(qqi);
* \param reset - whether lock->l_ast_data should be cleared
*/
static struct lquota_entry *qsd_id_ast_data_get(struct ldlm_lock *lock,
* \param reset - whether lock->l_ast_data should be cleared
*/
static struct lquota_entry *qsd_id_ast_data_get(struct ldlm_lock *lock,
/* extract glimpse descriptor */
*desc = req_capsule_client_get(&req->rq_pill, &RMF_DLM_GL_DESC);
/* extract glimpse descriptor */
*desc = req_capsule_client_get(&req->rq_pill, &RMF_DLM_GL_DESC);
LDLM_DEBUG(lock, "canceling global quota lock");
qqi = qsd_glb_ast_data_get(lock, true);
LDLM_DEBUG(lock, "canceling global quota lock");
qqi = qsd_glb_ast_data_get(lock, true);
- /* we are losing the global index lock, so let's mark the
- * global & slave indexes as not up-to-date any more */
+ /*
+ * we are losing the global index lock, so let's mark the
+ * global & slave indexes as not up-to-date any more
+ */
write_lock(&qqi->qqi_qsd->qsd_lock);
qqi->qqi_glb_uptodate = false;
qqi->qqi_slv_uptodate = false;
write_lock(&qqi->qqi_qsd->qsd_lock);
qqi->qqi_glb_uptodate = false;
qqi->qqi_slv_uptodate = false;
CDEBUG(D_QUOTA, "%s: losing global index lock for %s type\n",
qqi->qqi_qsd->qsd_svname, qtype_name((qqi->qqi_qtype)));
CDEBUG(D_QUOTA, "%s: losing global index lock for %s type\n",
qqi->qqi_qsd->qsd_svname, qtype_name((qqi->qqi_qtype)));
static int qsd_entry_def_iter_cb(struct cfs_hash *hs, struct cfs_hash_bd *bd,
struct hlist_node *hnode, void *data)
{
static int qsd_entry_def_iter_cb(struct cfs_hash *hs, struct cfs_hash_bd *bd,
struct hlist_node *hnode, void *data)
{
lqe = hlist_entry(hnode, struct lquota_entry, lqe_hash);
LASSERT(atomic_read(&lqe->lqe_ref) > 0);
lqe = hlist_entry(hnode, struct lquota_entry, lqe_hash);
LASSERT(atomic_read(&lqe->lqe_ref) > 0);
- struct ptlrpc_request *req = data;
- struct qsd_qtype_info *qqi;
- struct ldlm_gl_lquota_desc *desc;
- struct lquota_lvb *lvb;
- struct lquota_glb_rec rec;
- int rc;
+ struct ptlrpc_request *req = data;
+ struct qsd_qtype_info *qqi;
+ struct ldlm_gl_lquota_desc *desc;
+ struct lquota_lvb *lvb;
+ struct lquota_glb_rec rec;
+ int rc;
+
- CDEBUG(D_QUOTA, "%s: glimpse on glb quota locks, id:%llu ver:%llu"
- " hard:" "%llu soft:%llu\n", qqi->qqi_qsd->qsd_svname,
+ CDEBUG(D_QUOTA,
+ "%s: glimpse on glb quota locks, id:%llu ver:%llu hard:%llu soft:%llu\n",
+ qqi->qqi_qsd->qsd_svname,
desc->gl_id.qid_uid, desc->gl_ver, desc->gl_hardlimit,
desc->gl_softlimit);
desc->gl_id.qid_uid, desc->gl_ver, desc->gl_hardlimit,
desc->gl_softlimit);
qsd_update_default_quota(qqi, desc->gl_hardlimit,
desc->gl_softlimit, desc->gl_time);
qsd_update_default_quota(qqi, desc->gl_hardlimit,
desc->gl_softlimit, desc->gl_time);
- /* We can't afford disk io in the context of glimpse callback handling
- * thread, so the on-disk global limits update has to be deferred. */
+ /*
+ * We can't afford disk io in the context of glimpse callback handling
+ * thread, so the on-disk global limits update has to be deferred.
+ */
qsd_upd_schedule(qqi, NULL, &desc->gl_id, (union lquota_rec *)&rec,
desc->gl_ver, true);
EXIT;
qsd_upd_schedule(qqi, NULL, &desc->gl_id, (union lquota_rec *)&rec,
desc->gl_ver, true);
EXIT;
* \param flag - LDLM_CB_BLOCKING or LDLM_CB_CANCELING. Used to distinguish
* cancellation and blocking ast's.
*/
* \param flag - LDLM_CB_BLOCKING or LDLM_CB_CANCELING. Used to distinguish
* cancellation and blocking ast's.
*/
-static int qsd_id_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc,
+static int qsd_id_blocking_ast(struct ldlm_lock *lock,
+ struct ldlm_lock_desc *desc,
LDLM_DEBUG(lock, "canceling ID quota lock");
lqe = qsd_id_ast_data_get(lock, true);
LDLM_DEBUG(lock, "canceling ID quota lock");
lqe = qsd_id_ast_data_get(lock, true);
* at this time, and triggered on dqacq completion later,
* which means there could be a short window that slave is
* at this time, and triggered on dqacq completion later,
* which means there could be a short window that slave is
- struct ptlrpc_request *req = data;
- struct lquota_entry *lqe;
- struct ldlm_gl_lquota_desc *desc;
- struct lquota_lvb *lvb;
- int rc;
- bool wakeup = false;
+ struct ptlrpc_request *req = data;
+ struct lquota_entry *lqe;
+ struct ldlm_gl_lquota_desc *desc;
+ struct lquota_lvb *lvb;
+ int rc;
+ bool wakeup = false;
+
- LQUOTA_DEBUG(lqe, "request in flight, postpone "
- "release of %lld", space);
+ LQUOTA_DEBUG(lqe,
+ "request in flight, postpone release of %lld",
+ space);
- qsd_upd_schedule(lqe2qqi(lqe), lqe, &lqe->lqe_id,
- (union lquota_rec *)&lqe->lqe_granted,
- 0, false);
+ qsd_upd_schedule(lqe2qqi(lqe), lqe,
+ &lqe->lqe_id,
+ (union lquota_rec *)
+ &lqe->lqe_granted, 0, false);
LASSERT(lustre_handle_is_used(lockh));
ldlm_lock_dump_handle(D_QUOTA, lockh);
LASSERT(lustre_handle_is_used(lockh));
ldlm_lock_dump_handle(D_QUOTA, lockh);
- /* look up lock associated with local handle and extract remote handle
- * to be packed in quota request */
+ /*
+ * look up lock associated with local handle and extract remote handle
+ * to be packed in quota request
+ */
lock = ldlm_handle2lock(lockh);
LASSERT(lock != NULL);
lustre_handle_copy(rlockh, &lock->l_remote_handle);
lock = ldlm_handle2lock(lockh);
LASSERT(lock != NULL);
lustre_handle_copy(rlockh, &lock->l_remote_handle);