Skip to content

Commit

Permalink
nfsd4: don't BUG in delegation break callback
Browse files Browse the repository at this point in the history
These conditions would indeed indicate bugs in the code, but if we want
to hear about them we're likely better off warning and returning than
immediately dying while holding file_lock_lock.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
  • Loading branch information
J. Bruce Fields committed Nov 8, 2012
1 parent 7032a3d commit 7fa10cd
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions fs/nfsd/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -2554,9 +2554,14 @@ static void nfsd_break_deleg_cb(struct file_lock *fl)
struct nfs4_file *fp = (struct nfs4_file *)fl->fl_owner;
struct nfs4_delegation *dp;

BUG_ON(!fp);
/* We assume break_lease is only called once per lease: */
BUG_ON(fp->fi_had_conflict);
if (!fp) {
WARN(1, "(%p)->fl_owner NULL\n", fl);
return;
}
if (fp->fi_had_conflict) {
WARN(1, "duplicate break on %p\n", fp);
return;
}
/*
* We don't want the locks code to timeout the lease for us;
* we'll remove it ourself if a delegation isn't returned
Expand Down

0 comments on commit 7fa10cd

Please sign in to comment.