summaryrefslogtreecommitdiff
path: root/fs/ocfs2/refcounttree.c
diff options
context:
space:
mode:
authorSrinivas Eeda <srinivas.eeda@oracle.com>2010-07-20 03:04:12 +0400
committerJoel Becker <joel.becker@oracle.com>2010-08-07 21:44:40 +0400
commit7beaf243787f85a2ef9213ccf13ab4a243283fde (patch)
tree689e5a447ee2b7b83fcaccf2959ca8dd5b0fb359 /fs/ocfs2/refcounttree.c
parent6d98c3ccb52f692f1a60339dde7c700686a5568b (diff)
downloadlinux-7beaf243787f85a2ef9213ccf13ab4a243283fde.tar.xz
ocfs2 fix o2dlm dlm run purgelist (rev 3)
This patch fixes two problems in dlm_run_purgelist 1. If a lockres is found to be in use, dlm_run_purgelist keeps trying to purge the same lockres instead of trying the next lockres. 2. When a lockres is found unused, dlm_run_purgelist releases lockres spinlock before setting DLM_LOCK_RES_DROPPING_REF and calls dlm_purge_lockres. spinlock is reacquired but in this window lockres can get reused. This leads to BUG. This patch modifies dlm_run_purgelist to skip lockres if it's in use and purge next lockres. It also sets DLM_LOCK_RES_DROPPING_REF before releasing the lockres spinlock protecting it from getting reused. Signed-off-by: Srinivas Eeda <srinivas.eeda@oracle.com> Acked-by: Sunil Mushran <sunil.mushran@oracle.com> Cc: stable@kernel.org Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/refcounttree.c')
0 files changed, 0 insertions, 0 deletions