diff options
author | Marc Eshel <eshel@almaden.ibm.com> | 2006-06-09 09:40:20 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-06-09 09:40:20 -0400 |
commit | 3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa (patch) | |
tree | fb72cf27eb4ede283503f7b615437288c62b858d | |
parent | 81039f1f204a0fd2952112a240284e114f1a25e6 (diff) |
locks.c: add the fl_owner to nlm_compare_locks
Add the fl_owner to NLM compare locks. Since two different client can
present the same pid to the server it is not enough to distinguish locks
from different clients. The fl_owner field is a pointer to the struct
nlm_host which is unique for each client.
Signed-off-by: Marc Eshel <eshel@almaden.ibm.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r-- | include/linux/lockd/lockd.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index 995f89dc8c04..112936fcda80 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h | |||
@@ -220,6 +220,7 @@ static __inline__ int | |||
220 | nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2) | 220 | nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2) |
221 | { | 221 | { |
222 | return fl1->fl_pid == fl2->fl_pid | 222 | return fl1->fl_pid == fl2->fl_pid |
223 | && fl1->fl_owner == fl2->fl_owner | ||
223 | && fl1->fl_start == fl2->fl_start | 224 | && fl1->fl_start == fl2->fl_start |
224 | && fl1->fl_end == fl2->fl_end | 225 | && fl1->fl_end == fl2->fl_end |
225 | &&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK); | 226 | &&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK); |