Merge branch 'gfs2-iopen' into for-next
This commit is contained in:
@@ -612,11 +612,17 @@ static void iopen_go_callback(struct gfs2_glock *gl, bool remote)
|
||||
if (gl->gl_demote_state == LM_ST_UNLOCKED &&
|
||||
gl->gl_state == LM_ST_SHARED && ip) {
|
||||
gl->gl_lockref.count++;
|
||||
if (queue_work(gfs2_delete_workqueue, &gl->gl_delete) == 0)
|
||||
if (!queue_delayed_work(gfs2_delete_workqueue,
|
||||
&gl->gl_delete, 0))
|
||||
gl->gl_lockref.count--;
|
||||
}
|
||||
}
|
||||
|
||||
static int iopen_go_demote_ok(const struct gfs2_glock *gl)
|
||||
{
|
||||
return !gfs2_delete_work_queued(gl);
|
||||
}
|
||||
|
||||
/**
|
||||
* inode_go_free - wake up anyone waiting for dlm's unlock ast to free it
|
||||
* @gl: glock being freed
|
||||
@@ -696,7 +702,7 @@ const struct gfs2_glock_operations gfs2_inode_glops = {
|
||||
.go_lock = inode_go_lock,
|
||||
.go_dump = inode_go_dump,
|
||||
.go_type = LM_TYPE_INODE,
|
||||
.go_flags = GLOF_ASPACE | GLOF_LRU,
|
||||
.go_flags = GLOF_ASPACE | GLOF_LRU | GLOF_LVB,
|
||||
.go_free = inode_go_free,
|
||||
};
|
||||
|
||||
@@ -720,6 +726,7 @@ const struct gfs2_glock_operations gfs2_freeze_glops = {
|
||||
const struct gfs2_glock_operations gfs2_iopen_glops = {
|
||||
.go_type = LM_TYPE_IOPEN,
|
||||
.go_callback = iopen_go_callback,
|
||||
.go_demote_ok = iopen_go_demote_ok,
|
||||
.go_flags = GLOF_LRU | GLOF_NONDISK,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user