From ef0516ef9175025469a1e7bea10caabe882567ad Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sat, 16 Apr 2005 15:26:38 -0700 Subject: [PATCH] --- yaml --- r: 195 b: refs/heads/master c: c907132d534c10b4f34a60383c8384403cb424a4 h: refs/heads/master i: 193: c37fafb19dcc4cf9b8a6115126c6fdb99987eddd 191: 07f108b8f75355868206554ee391488401946f11 v: v3 --- [refs] | 2 +- trunk/fs/nfsd/nfs4state.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 4cc340351a1a..75b5ca9db2a2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f1ee4f22f21d74bc3ca63b95ca5b63d3a8620527 +refs/heads/master: c907132d534c10b4f34a60383c8384403cb424a4 diff --git a/trunk/fs/nfsd/nfs4state.c b/trunk/fs/nfsd/nfs4state.c index 579f7fea7968..75e8b137580c 100644 --- a/trunk/fs/nfsd/nfs4state.c +++ b/trunk/fs/nfsd/nfs4state.c @@ -190,7 +190,8 @@ nfs4_close_delegation(struct nfs4_delegation *dp) dp->dl_vfs_file = NULL; /* The following nfsd_close may not actually close the file, * but we want to remove the lease in any case. */ - setlease(filp, F_UNLCK, &dp->dl_flock); + if (dp->dl_flock) + setlease(filp, F_UNLCK, &dp->dl_flock); nfsd_close(filp); vfsclose++; } @@ -1673,10 +1674,7 @@ nfs4_open_delegation(struct svc_fh *fh, struct nfsd4_open *open, struct nfs4_sta if ((status = setlease(stp->st_vfs_file, flag == NFS4_OPEN_DELEGATE_READ? F_RDLCK: F_WRLCK, &flp))) { dprintk("NFSD: setlease failed [%d], no delegation\n", status); - list_del(&dp->dl_del_perfile); - list_del(&dp->dl_del_perclnt); - nfs4_put_delegation(dp); - free_delegation++; + unhash_delegation(dp); flag = NFS4_OPEN_DELEGATE_NONE; goto out; }