summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Eshel <eshel@almaden.ibm.com>2006-06-09 09:40:20 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 09:40:20 -0400
commit3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa (patch)
treefb72cf27eb4ede283503f7b615437288c62b858d
parent81039f1f204a0fd2952112a240284e114f1a25e6 (diff)
downloadlwn-3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa.tar.gz
lwn-3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa.zip
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.h1
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
nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2)
{
return fl1->fl_pid == fl2->fl_pid
+ && fl1->fl_owner == fl2->fl_owner
&& fl1->fl_start == fl2->fl_start
&& fl1->fl_end == fl2->fl_end
&&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK);