[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d70b6831-3443-51d0-f64c-6f6996367a85@yandex.ru>
Date: Tue, 20 Jun 2023 17:34:00 +0500
From: stsp <stsp2@...dex.ru>
To: Jeff Layton <jlayton@...nel.org>, linux-kernel@...r.kernel.org
Cc: Chuck Lever <chuck.lever@...cle.com>,
Alexander Viro <viro@...iv.linux.org.uk>,
Christian Brauner <brauner@...nel.org>,
linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH 2/3] fd/locks: allow get the lock owner by F_OFD_GETLK
20.06.2023 17:02, Jeff Layton пишет:
> Suppose I start a process (call it pid 100), and then spawn a thread
> (101). I then have 101 open a file and set an OFD lock on it (such that
> the resulting fl_pid field in the file_lock is set to 101).
How come?
There are multiple places in locks.c
with this line:
fl->fl_pid = current->tgid;
And I've yet to see the line like:
fl->fl_pid = current->pid;
Its simply not there.
No, we put tgid into l_pid!
tgid will still be 100, no matter how
many threads you spawn or destroy.
Or what am I misseng?
> That's just one example, of course. The underlying problem is that OFD
> locks are not owned by processes in the same way that traditional POSIX
> locks are, so reporting a pid there is unreliable, at best.
But we report tgid.
It doesn't depend on threads.
I don't understand. :)
Powered by blists - more mailing lists