From 9681d4bfaf5beb95995f656fd655668929c0e2e7 Mon Sep 17 00:00:00 2001 From: adilger Date: Fri, 9 Sep 2005 16:15:48 +0000 Subject: [PATCH] Branch b1_4 Description: Tuning the MDC DLM LRU size to zero triggers client LASSERT Details : llu_lookup_finish_locks() tries to set lock data on a lock after it has been released, only do this for referenced locks. Tested by bogl. b=7201 (b=7350) r=green --- lustre/ChangeLog | 7 +++++++ lustre/liblustre/namei.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index fec480a..6a4d9c4 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -43,6 +43,13 @@ Description: liblustre could not open files whose last component is a symlink Details : sysio_path_walk() would incorrectly pass the open intent to intermediate path components. +Severity : minor +Frequency : rare (liblustre only with non-standard tuning) +Bugzilla : 7201 (7350) +Description: Tuning the MDC DLM LRU size to zero triggers client LASSERT +Details : llu_lookup_finish_locks() tries to set lock data on a lock + after it has been released, only do this for referenced locks + ------------------------------------------------------------------------------ 08-26-2005 Cluster File Systems, Inc. diff --git a/lustre/liblustre/namei.c b/lustre/liblustre/namei.c index ffcf873..e173996 100644 --- a/lustre/liblustre/namei.c +++ b/lustre/liblustre/namei.c @@ -104,11 +104,12 @@ void unhook_stale_inode(struct pnode *pno) void llu_lookup_finish_locks(struct lookup_intent *it, struct pnode *pnode) { + struct inode *inode; LASSERT(it); LASSERT(pnode); - if (it && pnode->p_base->pb_ino != NULL) { - struct inode *inode = pnode->p_base->pb_ino; + inode = pnode->p_base->pb_ino; + if (it->d.lustre.it_lock_mode && inode != NULL) { CDEBUG(D_DLMTRACE, "setting l_data to inode %p (%llu/%lu)\n", inode, (long long)llu_i2stat(inode)->st_ino, llu_i2info(inode)->lli_st_generation); -- 1.8.3.1