Whamcloud - gitweb
LU-3259 clio: cl_lock simplification
[fs/lustre-release.git] / lustre / llite / lcommon_misc.c
index fa76dd0..d25abde 100644 (file)
@@ -153,9 +153,10 @@ int cl_get_grouplock(struct cl_object *obj, unsigned long gid, int nonblock,
                if (rc > 0)
                        rc = -ENOTSUPP;
                return rc;
-        }
+       }
 
-        descr = &ccc_env_info(env)->cti_descr;
+       lock = ccc_env_lock(env);
+       descr = &lock->cll_descr;
         descr->cld_obj = obj;
         descr->cld_start = 0;
         descr->cld_end = CL_PAGE_EOF;
@@ -165,8 +166,8 @@ int cl_get_grouplock(struct cl_object *obj, unsigned long gid, int nonblock,
        enqflags = CEF_MUST | (nonblock ? CEF_NONBLOCK : 0);
        descr->cld_enq_flags = enqflags;
 
-       lock = cl_lock_request(env, io, descr, GROUPLOCK_SCOPE, current);
-       if (IS_ERR(lock)) {
+       rc = cl_lock_request(env, io, lock);
+       if (rc < 0) {
                cl_io_fini(env, io);
                cl_env_put(env, &refcheck);
                return PTR_ERR(lock);
@@ -195,8 +196,7 @@ void cl_put_grouplock(struct ccc_grouplock *cg)
        cl_env_implant(env, &refcheck);
        cl_env_put(env, &refcheck);
 
-       cl_unuse(env, lock);
-       cl_lock_release(env, lock, GROUPLOCK_SCOPE, current);
+       cl_lock_release(env, lock);
        cl_io_fini(env, io);
        cl_env_put(env, NULL);
 }