This patch will ignore dlm plock results with DLM_PLOCK_FL_CLOSE being set. When DLM_PLOCK_FL_CLOSE is set then no reply is expected and a plock op cannot being matched and the result cannot be delivered to the caller. In some user space software applications like dlm_controld (the common application and only knowing implementation using this UAPI) can send an error back even if an result is never being expected. This patch will ignore results if DLM_PLOCK_FL_CLOSE is being set, but requires that the user space application sents the result back with DLM_PLOCK_FL_CLOSE set which is the case for dlm_controld. Fixes: 901025d2f319 ("dlm: make plock operation killable") Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Alexander Aring <aahringo@xxxxxxxxxx> --- fs/dlm/plock.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c index 70a4752ed913..869595a995f7 100644 --- a/fs/dlm/plock.c +++ b/fs/dlm/plock.c @@ -433,6 +433,14 @@ static ssize_t dev_write(struct file *file, const char __user *u, size_t count, if (check_version(&info)) return -EINVAL; + /* Some dlm user space software will send replies back, + * even if DLM_PLOCK_FL_CLOSE is set e.g. if an error occur. + * We can't match them in recv_list because they were never + * be part of it. + */ + if (info.flags & DLM_PLOCK_FL_CLOSE) + return count; + /* * The results for waiting ops (SETLKW) can be returned in any * order, so match all fields to find the op. The results for -- 2.31.1