Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4cd038a authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NLM: Fix nlmclnt_test to not copy private part of locks



The struct file_lock does not carry a properly initialised lock,
so don't copy it as if it were.

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 3a649b88
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -434,7 +434,9 @@ nlmclnt_test(struct nlm_rqst *req, struct file_lock *fl)
		/*
		/*
		 * Report the conflicting lock back to the application.
		 * Report the conflicting lock back to the application.
		 */
		 */
		locks_copy_lock(fl, &req->a_res.lock.fl);
		fl->fl_start = req->a_res.lock.fl.fl_start;
		fl->fl_end = req->a_res.lock.fl.fl_start;
		fl->fl_type = req->a_res.lock.fl.fl_type;
		fl->fl_pid = 0;
		fl->fl_pid = 0;
	} else {
	} else {
		return nlm_stat_to_errno(req->a_res.status);
		return nlm_stat_to_errno(req->a_res.status);
+4 −1
Original line number Original line Diff line number Diff line
@@ -399,7 +399,10 @@ static int do_getlk(struct file *filp, int cmd, struct file_lock *fl)
	lock_kernel();
	lock_kernel();
	/* Try local locking first */
	/* Try local locking first */
	if (posix_test_lock(filp, fl, &cfl)) {
	if (posix_test_lock(filp, fl, &cfl)) {
		locks_copy_lock(fl, &cfl);
		fl->fl_start = cfl.fl_start;
		fl->fl_end = cfl.fl_end;
		fl->fl_type = cfl.fl_type;
		fl->fl_pid = cfl.fl_pid;
		goto out;
		goto out;
	}
	}