Re: [PATCH 2/3] fd/locks: allow get the lock owner by F_OFD_GETLK
From: stsp
Date: Tue Jun 20 2023 - 09:39:53 EST
20.06.2023 18:19, Jeff Layton пишет:
The bottom line is that these locks are specifically not owned by a
process, so returning the l_pid field is unreliable (at best). There is
no guarantee that the pid returned will still represent the task that
set the lock.
Though it will, for sure, represent the
task that _owns_ the lock.
You may want to review this article. They're called "File-private" locks
here, but the name was later changed to "Open file description" (OFD)
locks:
https://lwn.net/Articles/586904/
The rationale for why -1 is reported is noted there.
Well, they point to fork() and SCM_RIGHTS.
Yes, these 2 beasts can make the same lock
owned by more than one process.
Yet l_pid returned, is going to be always valid:
it will still represent one of the valid owners.
So my call is to be brave and just re-consider
the conclusion of that article, made 10 years
ago! :)
Of course if returning just 1 of possibly multiple
owners is a problem, then oh well, I'll drop
this patch.