From ef54e641c366d3558945137ef7f6246ac15e8c50 Mon Sep 17 00:00:00 2001 From: nikita Date: Sun, 2 Jul 2006 21:13:12 +0000 Subject: [PATCH] fld: remove excessive locking: ->dio_*() operations are doing locking internally --- lustre/fld/fld_index.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/lustre/fld/fld_index.c b/lustre/fld/fld_index.c index c4580b1..c3985bd 100644 --- a/lustre/fld/fld_index.c +++ b/lustre/fld/fld_index.c @@ -50,6 +50,7 @@ #include #include "fld_internal.h" +const char fld_index_name[] = "fld"; static const struct dt_index_features fld_index_features = { .dif_flags = DT_IND_UPDATE, @@ -64,8 +65,8 @@ static const struct dt_index_features fld_index_features = { * ... something. Stub for now. */ enum { - FLD_TXN_INDEX_INSERT_CREDITS = 10, - FLD_TXN_INDEX_DELETE_CREDITS = 10 + FLD_TXN_INDEX_INSERT_CREDITS = 20, + FLD_TXN_INDEX_DELETE_CREDITS = 20 }; struct fld_thread_info { @@ -143,12 +144,9 @@ int fld_index_create(struct lu_server_fld *fld, th = dt->dd_ops->dt_trans_start(ctx, dt, &txn); - dt_obj->do_ops->do_object_lock(ctx, dt_obj, DT_WRITE_LOCK); rc = dt_obj->do_index_ops->dio_insert(ctx, dt_obj, fld_rec(ctx, mds), fld_key(ctx, seq), th); - dt_obj->do_ops->do_object_unlock(ctx, dt_obj, DT_WRITE_LOCK); - dt->dd_ops->dt_trans_stop(ctx, th); RETURN(rc); @@ -168,11 +166,8 @@ int fld_index_delete(struct lu_server_fld *fld, txn.tp_credits = FLD_TXN_INDEX_DELETE_CREDITS; th = dt->dd_ops->dt_trans_start(ctx, dt, &txn); - dt_obj->do_ops->do_object_lock(ctx, dt_obj, DT_WRITE_LOCK); rc = dt_obj->do_index_ops->dio_delete(ctx, dt_obj, fld_key(ctx, seq), th); - dt_obj->do_ops->do_object_unlock(ctx, dt_obj, DT_WRITE_LOCK); - dt->dd_ops->dt_trans_stop(ctx, th); RETURN(rc); @@ -187,11 +182,8 @@ int fld_index_lookup(struct lu_server_fld *fld, int rc; ENTRY; - dt_obj->do_ops->do_object_lock(ctx, dt_obj, DT_READ_LOCK); rc = dt_obj->do_index_ops->dio_lookup(ctx, dt_obj, rec, fld_key(ctx, seq)); - dt_obj->do_ops->do_object_unlock(ctx, dt_obj, DT_READ_LOCK); - if (rc == 0) *mds = be64_to_cpu(*(__u64 *)rec); RETURN(rc); @@ -218,7 +210,7 @@ int fld_index_init(struct lu_server_fld *fld, */ LASSERT(fld->fld_service == NULL); - dt_obj = dt_store_open(ctx, dt, "fld", &fld->fld_fid); + dt_obj = dt_store_open(ctx, dt, fld_index_name, &fld->fld_fid); if (!IS_ERR(dt_obj)) { fld->fld_obj = dt_obj; rc = dt_obj->do_ops->do_object_index_try(ctx, dt_obj, @@ -226,10 +218,10 @@ int fld_index_init(struct lu_server_fld *fld, if (rc == 0) LASSERT(dt_obj->do_index_ops != NULL); else - CERROR("\"fld\" is not an index!\n"); + CERROR("\"%s\" is not an index!\n", fld_index_name); } else { - CERROR("cannot find \"fld\" obj %d\n", - (int)PTR_ERR(dt_obj)); + CERROR("cannot find \"%s\" obj %d\n", + fld_index_name, (int)PTR_ERR(dt_obj)); rc = PTR_ERR(dt_obj); } -- 1.8.3.1