Commit e63eb937 authored by J. Bruce Fields's avatar J. Bruce Fields

nfsd4: eliminate lease delete callback

nfsd controls the lifetime of the lease, not the lock code, so there's
no need for this callback on lease destruction.
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent fdef7aa5
...@@ -327,14 +327,12 @@ fl_release_private: yes yes ...@@ -327,14 +327,12 @@ fl_release_private: yes yes
prototypes: prototypes:
int (*fl_compare_owner)(struct file_lock *, struct file_lock *); int (*fl_compare_owner)(struct file_lock *, struct file_lock *);
void (*fl_notify)(struct file_lock *); /* unblock callback */ void (*fl_notify)(struct file_lock *); /* unblock callback */
void (*fl_release_private)(struct file_lock *);
void (*fl_break)(struct file_lock *); /* break_lease callback */ void (*fl_break)(struct file_lock *); /* break_lease callback */
locking rules: locking rules:
BKL may block BKL may block
fl_compare_owner: yes no fl_compare_owner: yes no
fl_notify: yes no fl_notify: yes no
fl_release_private: yes yes
fl_break: yes no fl_break: yes no
Currently only NFSD and NLM provide instances of this class. None of the Currently only NFSD and NLM provide instances of this class. None of the
......
...@@ -2295,23 +2295,6 @@ void nfsd_break_deleg_cb(struct file_lock *fl) ...@@ -2295,23 +2295,6 @@ void nfsd_break_deleg_cb(struct file_lock *fl)
nfsd4_cb_recall(dp); nfsd4_cb_recall(dp);
} }
/*
* The file_lock is being reapd.
*
* Called by locks_free_lock() with lock_flocks() held.
*/
static
void nfsd_release_deleg_cb(struct file_lock *fl)
{
struct nfs4_delegation *dp = (struct nfs4_delegation *)fl->fl_owner;
dprintk("NFSD nfsd_release_deleg_cb: fl %p dp %p dl_count %d\n", fl,dp, atomic_read(&dp->dl_count));
if (!(fl->fl_flags & FL_LEASE) || !dp)
return;
dp->dl_flock = NULL;
}
/* /*
* Called from setlease() with lock_flocks() held * Called from setlease() with lock_flocks() held
*/ */
...@@ -2341,7 +2324,6 @@ int nfsd_change_deleg_cb(struct file_lock **onlist, int arg) ...@@ -2341,7 +2324,6 @@ int nfsd_change_deleg_cb(struct file_lock **onlist, int arg)
static const struct lock_manager_operations nfsd_lease_mng_ops = { static const struct lock_manager_operations nfsd_lease_mng_ops = {
.fl_break = nfsd_break_deleg_cb, .fl_break = nfsd_break_deleg_cb,
.fl_release_private = nfsd_release_deleg_cb,
.fl_mylease = nfsd_same_client_deleg_cb, .fl_mylease = nfsd_same_client_deleg_cb,
.fl_change = nfsd_change_deleg_cb, .fl_change = nfsd_change_deleg_cb,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment