locks: require that flock->l_pid be set to 0 for file-private locks
authorJeff Layton <jlayton@redhat.com>
Tue, 4 Mar 2014 15:30:23 +0000 (10:30 -0500)
committerJeff Layton <jlayton@redhat.com>
Mon, 31 Mar 2014 12:24:43 +0000 (08:24 -0400)
commit90478939dce096ed5b239cad16237dca0a59d66f
tree743b3d825bc56bd1c0ab4d9487abba7b6883af86
parent5d50ffd7c31dab47c6b828841ca1ec70a1b40169
locks: require that flock->l_pid be set to 0 for file-private locks

Neil Brown suggested potentially overloading the l_pid value as a "lock
context" field for file-private locks. While I don't think we will
probably want to do that here, it's probably a good idea to ensure that
in the future we could extend this API without breaking existing
callers.

Typically the l_pid value is ignored for incoming struct flock
arguments, serving mainly as a place to return the pid of the owner if
there is a conflicting lock. For file-private locks, require that it
currently be set to 0 and return EINVAL if it isn't. If we eventually
want to make a non-zero l_pid mean something, then this will help ensure
that we don't break legacy programs that are using file-private locks.

Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
fs/locks.c