From 53d96b537be0d99fcdd6f3ec6e88972f0245c0cf Mon Sep 17 00:00:00 2001 From: jxiong Date: Fri, 11 Sep 2009 02:16:14 +0000 Subject: [PATCH] b=18881 r=robert the last patch to cleanup diagnose code. --- lustre/include/linux/obd.h | 35 +++++++++++++++++++++++++++-------- lustre/llite/vvp_page.c | 32 +------------------------------- 2 files changed, 28 insertions(+), 39 deletions(-) diff --git a/lustre/include/linux/obd.h b/lustre/include/linux/obd.h index eb0ab9c..fccfd1d 100644 --- a/lustre/include/linux/obd.h +++ b/lustre/include/linux/obd.h @@ -58,20 +58,17 @@ typedef struct { spinlock_t lock; + +#ifdef CLIENT_OBD_LIST_LOCK_DEBUG unsigned long time; struct task_struct *task; const char *func; int line; -} client_obd_lock_t; - -static inline void client_obd_list_lock_init(client_obd_lock_t *lock) -{ - spin_lock_init(&lock->lock); -} +#endif -static inline void client_obd_list_lock_done(client_obd_lock_t *lock) -{} +} client_obd_lock_t; +#ifdef CLIENT_OBD_LIST_LOCK_DEBUG static inline void __client_obd_list_lock(client_obd_lock_t *lock, const char *func, int line) @@ -117,6 +114,28 @@ static inline void client_obd_list_unlock(client_obd_lock_t *lock) spin_unlock(&lock->lock); } +#else /* ifdef CLIEBT_OBD_LIST_LOCK_DEBUG */ +static inline void client_obd_list_lock(client_obd_lock_t *lock) +{ + spin_lock(&lock->lock); +} + +static inline void client_obd_list_unlock(client_obd_lock_t *lock) +{ + spin_unlock(&lock->lock); +} + +#endif /* ifdef CLIEBT_OBD_LIST_LOCK_DEBUG */ + +static inline void client_obd_list_lock_init(client_obd_lock_t *lock) +{ + spin_lock_init(&lock->lock); +} + +static inline void client_obd_list_lock_done(client_obd_lock_t *lock) +{} + + static inline int client_obd_list_is_locked(client_obd_lock_t *lock) { return spin_is_locked(&lock->lock); diff --git a/lustre/llite/vvp_page.c b/lustre/llite/vvp_page.c index 18d7fa5..125d02a 100644 --- a/lustre/llite/vvp_page.c +++ b/lustre/llite/vvp_page.c @@ -84,16 +84,13 @@ static int vvp_page_own(const struct lu_env *env, { struct ccc_page *vpg = cl2ccc_page(slice); cfs_page_t *vmpage = vpg->cpg_page; - int count = 0; LASSERT(vmpage != NULL); - if (nonblock) { if (TestSetPageLocked(vmpage)) return -EAGAIN; if (unlikely(PageWriteback(vmpage))) { - /* Something gets wrong? */ unlock_page(vmpage); return -EAGAIN; } @@ -101,34 +98,7 @@ static int vvp_page_own(const struct lu_env *env, return 0; } - /* DEBUG CODE FOR #18881 */ - while (TestSetPageLocked(vmpage)) { - cfs_schedule_timeout(CFS_TASK_INTERRUPTIBLE, - cfs_time_seconds(1)/10); - if (++count > 1200) { - CL_PAGE_DEBUG(D_ERROR, env, - cl_page_top(slice->cpl_page), - "XXX page %p blocked on acquiring the" - " lock. process %s/%p, flags %lx,io %p\n", - vmpage, current->comm, current, - vmpage->flags, io); - libcfs_debug_dumpstack(NULL); - if (slice->cpl_page->cp_task) { - cfs_task_t *tsk = slice->cpl_page->cp_task; - LCONSOLE_WARN("The page was owned by %s\n", - tsk->comm); - libcfs_debug_dumpstack(tsk); - } - LCONSOLE_WARN("Reproduced bug #18881,please contact:" - "jay , thanks\n"); - - lock_page(vmpage); - break; - } - } - /* DEBUG CODE END */ - - /* lock_page(vmpage); */ + lock_page(vmpage); wait_on_page_writeback(vmpage); return 0; } -- 1.8.3.1