提交 08280f11 编写于 作者: M Mark Fasheh

ocfs2: Remove unused dlmglue functions

The meta data unblocking code no longer needs ocfs2_do_unblock_meta() or
ocfs2_can_downconvert_meta_lock(), so remove them.
Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
上级 810d5aeb
......@@ -268,9 +268,6 @@ static int ocfs2_meta_lock_update(struct inode *inode,
struct buffer_head **bh);
static void ocfs2_drop_osb_locks(struct ocfs2_super *osb);
static inline int ocfs2_highest_compat_lock_level(int level);
static inline int ocfs2_can_downconvert_meta_lock(struct inode *inode,
struct ocfs2_lock_res *lockres,
int new_level);
static void ocfs2_build_lock_name(enum ocfs2_lock_type type,
u64 blkno,
......@@ -2538,106 +2535,6 @@ static int ocfs2_cancel_convert(struct ocfs2_super *osb,
return ret;
}
static inline int ocfs2_can_downconvert_meta_lock(struct inode *inode,
struct ocfs2_lock_res *lockres,
int new_level)
{
int ret;
mlog_entry_void();
BUG_ON(new_level != LKM_NLMODE && new_level != LKM_PRMODE);
if (lockres->l_flags & OCFS2_LOCK_REFRESHING) {
ret = 0;
mlog(0, "lockres %s currently being refreshed -- backing "
"off!\n", lockres->l_name);
} else if (new_level == LKM_PRMODE)
ret = !lockres->l_ex_holders &&
ocfs2_inode_fully_checkpointed(inode);
else /* Must be NLMODE we're converting to. */
ret = !lockres->l_ro_holders && !lockres->l_ex_holders &&
ocfs2_inode_fully_checkpointed(inode);
mlog_exit(ret);
return ret;
}
static int ocfs2_do_unblock_meta(struct inode *inode,
int *requeue)
{
int new_level;
int set_lvb = 0;
int ret = 0;
struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
unsigned long flags;
struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
mlog_entry_void();
spin_lock_irqsave(&lockres->l_lock, flags);
BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BLOCKED));
mlog(0, "l_level=%d, l_blocking=%d\n", lockres->l_level,
lockres->l_blocking);
BUG_ON(lockres->l_level != LKM_EXMODE &&
lockres->l_level != LKM_PRMODE);
if (lockres->l_flags & OCFS2_LOCK_BUSY) {
*requeue = 1;
ret = ocfs2_prepare_cancel_convert(osb, lockres);
spin_unlock_irqrestore(&lockres->l_lock, flags);
if (ret) {
ret = ocfs2_cancel_convert(osb, lockres);
if (ret < 0)
mlog_errno(ret);
}
goto leave;
}
new_level = ocfs2_highest_compat_lock_level(lockres->l_blocking);
mlog(0, "l_level=%d, l_blocking=%d, new_level=%d\n",
lockres->l_level, lockres->l_blocking, new_level);
if (ocfs2_can_downconvert_meta_lock(inode, lockres, new_level)) {
if (lockres->l_level == LKM_EXMODE)
set_lvb = 1;
/* If the lock hasn't been refreshed yet (rare), then
* our memory inode values are old and we skip
* stuffing the lvb. There's no need to actually clear
* out the lvb here as it's value is still valid. */
if (!(lockres->l_flags & OCFS2_LOCK_NEEDS_REFRESH)) {
if (set_lvb)
__ocfs2_stuff_meta_lvb(inode);
} else
mlog(0, "lockres %s: downconverting stale lock!\n",
lockres->l_name);
mlog(0, "calling ocfs2_downconvert_lock with l_level=%d, "
"l_blocking=%d, new_level=%d\n",
lockres->l_level, lockres->l_blocking, new_level);
ocfs2_prepare_downconvert(lockres, new_level);
spin_unlock_irqrestore(&lockres->l_lock, flags);
ret = ocfs2_downconvert_lock(osb, lockres, new_level, set_lvb);
goto leave;
}
if (!ocfs2_inode_fully_checkpointed(inode))
ocfs2_start_checkpoint(osb);
*requeue = 1;
spin_unlock_irqrestore(&lockres->l_lock, flags);
ret = 0;
leave:
mlog_exit(ret);
return ret;
}
static int ocfs2_generic_unblock_lock(struct ocfs2_super *osb,
struct ocfs2_lock_res *lockres,
struct ocfs2_unblock_ctl *ctl,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册