* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, Whamcloud, Inc.
+ * Copyright (c) 2011, 2013, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
LASSERT(cfs_list_empty(&res->lr_converting));
check_res_locked(res);
- if (!first_enq) {
- LASSERT(work_list != NULL);
+ /* (*flags & LDLM_FL_BLOCK_NOWAIT) is for layout lock right now. */
+ if (!first_enq || (*flags & LDLM_FL_BLOCK_NOWAIT)) {
+ *err = ELDLM_LOCK_ABORTED;
+ if (*flags & LDLM_FL_BLOCK_NOWAIT)
+ *err = ELDLM_LOCK_WOULDBLOCK;
+
rc = ldlm_inodebits_compat_queue(&res->lr_granted, lock, NULL);
if (!rc)
RETURN(LDLM_ITER_STOP);
ldlm_resource_unlink_lock(lock);
ldlm_grant_lock(lock, work_list);
+
+ *err = ELDLM_OK;
RETURN(LDLM_ITER_CONTINUE);
}