diff options
author | J. Bruce Fields <bfields@redhat.com> | 2011-02-01 01:20:39 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-02-14 16:35:19 +0100 |
commit | acfdf5c383b38f7f4dddae41b97c97f1ae058f49 (patch) | |
tree | f04f5f069191fa984a394154efdf766898bffcaf /arch/sh | |
parent | nfsd4: modify fi_delegations under recall_lock (diff) | |
download | linux-acfdf5c383b38f7f4dddae41b97c97f1ae058f49.tar.xz linux-acfdf5c383b38f7f4dddae41b97c97f1ae058f49.zip |
nfsd4: acquire only one lease per file
Instead of acquiring one lease each time another client opens a file,
nfsd can acquire just one lease to represent all of them, and reference
count it to determine when to release it.
This fixes a regression introduced by
c45821d263a8a5109d69a9e8942b8d65bcd5f31a "locks: eliminate fl_mylease
callback": after that patch, only the struct file * is used to determine
who owns a given lease. But since we recently converted the server to
share a single struct file per open, if we acquire multiple leases on
the same file from nfsd, it then becomes impossible on unlocking a lease
to determine which of those leases (all of whom share the same struct
file *) we meant to remove.
Thanks to Takashi Iwai <tiwai@suse.de> for catching a bug in a previous
version of this patch.
Tested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'arch/sh')
0 files changed, 0 insertions, 0 deletions