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: Mark Fasheh <mark.fasheh@oracle.com>
This commit is contained in:
Родитель
810d5aeba1
Коммит
08280f11de
|
@ -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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче