summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_lock.c14
-rw-r--r--drivers/staging/lustre/lustre/llite/file.c5
2 files changed, 3 insertions, 16 deletions
diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
index bd39e1c78527..33b76a1e5dec 100644
--- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
+++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
@@ -861,20 +861,6 @@ void ldlm_lock_decref_internal(struct ldlm_lock *lock, __u32 mode)
ldlm_lock_decref_internal_nolock(lock, mode);
- /* release lvb data for layout lock */
- if (ns_is_client(ns) && !lock->l_readers && !lock->l_writers &&
- ldlm_has_layout(lock) && lock->l_flags & LDLM_FL_LVB_READY) {
- /* this is the last user of a layout lock and stripe has
- * been set up, lvb is no longer used.
- * This may be a large amount of memory, so we should free it
- * when possible. */
- if (lock->l_lvb_data != NULL) {
- OBD_FREE_LARGE(lock->l_lvb_data, lock->l_lvb_len);
- lock->l_lvb_data = NULL;
- lock->l_lvb_len = 0;
- }
- }
-
if (lock->l_flags & LDLM_FL_LOCAL &&
!lock->l_readers && !lock->l_writers) {
/* If this is a local lock on a server namespace and this was
diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index 8c2cf230dfca..5bb2367ecce7 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -3009,6 +3009,9 @@ static int ll_layout_lock_set(struct lustre_handle *lockh, ldlm_mode_t mode,
LDLM_DEBUG(lock, "File %p/"DFID" being reconfigured: %d.\n",
inode, PFID(&lli->lli_fid), reconf);
+ /* in case this is a caching lock and reinstate with new inode */
+ md_set_lock_data(sbi->ll_md_exp, &lockh->cookie, inode, NULL);
+
lock_res_and_lock(lock);
lvb_ready = !!(lock->l_flags & LDLM_FL_LVB_READY);
unlock_res_and_lock(lock);
@@ -3177,8 +3180,6 @@ again:
ll_finish_md_op_data(op_data);
- md_set_lock_data(sbi->ll_md_exp, &it.d.lustre.it_lock_handle, inode, NULL);
-
mode = it.d.lustre.it_lock_mode;
it.d.lustre.it_lock_mode = 0;
ll_intent_drop_lock(&it);