spin_lock(&lock->l_lock);
if (rc != ELDLM_OK) {
+ LDLM_DEBUG(lock, "client-side enqueue END (%s)",
+ rc == ELDLM_LOCK_ABORTED ? "ABORTED" : "FAILED");
spin_lock(&lock->l_resource->lr_lock);
ldlm_resource_put(lock->l_resource);
spin_unlock(&lock->l_resource->lr_lock);
ldlm_lock_free(lock);
- if (rc == ELDLM_LOCK_ABORTED)
- rc = 0;
GOTO(out, rc);
}
* This code is issued under the GNU General Public License.
* See the file COPYING in this distribution
*
- * Copyright (C) 2001, Cluster File Systems, Inc.
- *
+ * Copyright (C) 2001, 2002 Cluster File Systems, Inc.
+ *
*/
#include <linux/fs.h>
if (de->d_it->it_lock_mode) {
handle = (struct lustre_handle *)de->d_it->it_lock_handle;
lock = lustre_handle2object(handle);
- CDEBUG(D_INFO, "calling ldlm_lock_decref(%p, %d)\n", lock,
- de->d_it->it_lock_mode);
+ LDLM_DEBUG(lock, "calling ldlm_lock_decref(%d)",
+ de->d_it->it_lock_mode);
ldlm_lock_decref(lock, de->d_it->it_lock_mode);
}
de->d_it = NULL;
int ll_revalidate2(struct dentry *de, int flags, struct lookup_intent *it)
{
ENTRY;
-
+
RETURN(0);
}
-
-struct dentry_operations ll_d_ops = {
+struct dentry_operations ll_d_ops = {
d_revalidate2: ll_revalidate2,
d_intent_release: ll_intent_release
};
if (rc == -ENOENT) {
lock_mode = 0;
memset(lockh, 0, sizeof(*lockh));
+ it->it_lock_mode = lock_mode;
+ } else if (rc == ELDLM_LOCK_ABORTED) {
+ it->it_lock_mode = 0;
} else if (rc != 0) {
CERROR("ldlm_cli_enqueue: %d\n", rc);
RETURN(rc);
dlm_rep = lustre_msg_buf(req->rq_repmsg, 0);
it->it_disposition = (int) dlm_rep->lock_policy_res1;
it->it_status = (int) dlm_rep->lock_policy_res2;
- it->it_lock_mode = lock_mode;
it->it_data = req;
RETURN(0);