On Wed, Mar 19, 2014 at 04:45:55PM -0400, Jeff Layton wrote: > FL_FILE_PVT locks are no longer tied to a particular pid, and are > instead inheritable by child processes. Report a l_pid of '-1' for > these sorts of locks since the pid is somewhat meaningless for them. > > This precedent comes from FreeBSD. There, POSIX and flock() locks can > conflict with one another. If fcntl(F_GETLK, ...) returns a lock set > with flock() then the l_pid member cannot be a process ID because the > lock is not held by a process as such. ACK.--b. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > --- > fs/locks.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/locks.c b/fs/locks.c > index f1b9b149dd39..5953b2cdef9c 100644 > --- a/fs/locks.c > +++ b/fs/locks.c > @@ -1864,7 +1864,7 @@ EXPORT_SYMBOL_GPL(vfs_test_lock); > > static int posix_lock_to_flock(struct flock *flock, struct file_lock *fl) > { > - flock->l_pid = fl->fl_pid; > + flock->l_pid = IS_FILE_PVT(fl) ? -1 : fl->fl_pid; > #if BITS_PER_LONG == 32 > /* > * Make sure we can represent the posix lock via > @@ -1886,7 +1886,7 @@ static int posix_lock_to_flock(struct flock *flock, struct file_lock *fl) > #if BITS_PER_LONG == 32 > static void posix_lock_to_flock64(struct flock64 *flock, struct file_lock *fl) > { > - flock->l_pid = fl->fl_pid; > + flock->l_pid = IS_FILE_PVT(fl) ? -1 : fl->fl_pid; > flock->l_start = fl->fl_start; > flock->l_len = fl->fl_end == OFFSET_MAX ? 0 : > fl->fl_end - fl->fl_start + 1; > -- > 1.8.5.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html