FreeBSD Bugzilla – Attachment 178896 Details for
Bug 216088
Get NFSv4.1 client's failure during recovery keep unrecovered opens
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Don't free unrecovered opens when recovery of them fails
recoveropen2.patch (text/plain), 1.77 KB, created by
Rick Macklem
on 2017-01-14 23:07:44 UTC
(
hide
)
Description:
Don't free unrecovered opens when recovery of them fails
Filename:
MIME Type:
Creator:
Rick Macklem
Created:
2017-01-14 23:07:44 UTC
Size:
1.77 KB
patch
obsolete
>--- fs/nfsclient/nfs_clstate.c.sav 2017-01-08 19:10:34.512599000 -0500 >+++ fs/nfsclient/nfs_clstate.c 2017-01-08 21:02:13.102636000 -0500 >@@ -1971,7 +1971,7 @@ nfscl_recover(struct nfsclclient *clp, s > op = LIST_FIRST(&owp->nfsow_open); > while (op != NULL) { > nop = LIST_NEXT(op, nfso_list); >- if (error != NFSERR_NOGRACE) { >+ if (error != NFSERR_NOGRACE && error != NFSERR_BADSESSION) { > /* Search for a delegation to reclaim with the open */ > TAILQ_FOREACH(dp, &clp->nfsc_deleg, nfsdl_list) { > if (!(dp->nfsdl_flags & NFSCLDL_NEEDRECLAIM)) >@@ -2040,11 +2040,10 @@ nfscl_recover(struct nfsclclient *clp, s > len = NFS64BITSSET; > else > len = lop->nfslo_end - lop->nfslo_first; >- if (error != NFSERR_NOGRACE) >- error = nfscl_trylock(nmp, NULL, >- op->nfso_fh, op->nfso_fhlen, lp, >- firstlock, 1, lop->nfslo_first, len, >- lop->nfslo_type, tcred, p); >+ error = nfscl_trylock(nmp, NULL, >+ op->nfso_fh, op->nfso_fhlen, lp, >+ firstlock, 1, lop->nfslo_first, len, >+ lop->nfslo_type, tcred, p); > if (error != 0) > nfscl_freelock(lop, 0); > else >@@ -2056,10 +2055,10 @@ nfscl_recover(struct nfsclclient *clp, s > nfscl_freelockowner(lp, 0); > lp = nlp; > } >- } else { >- nfscl_freeopen(op, 0); > } > } >+ if (error != 0 && error != NFSERR_BADSESSION) >+ nfscl_freeopen(op, 0); > op = nop; > } > owp = nowp; >@@ -2090,7 +2089,7 @@ nfscl_recover(struct nfsclclient *clp, s > nfscl_lockinit(&nowp->nfsow_rwlock); > } > nop = NULL; >- if (error != NFSERR_NOGRACE) { >+ if (error != NFSERR_NOGRACE && error != NFSERR_BADSESSION) { > MALLOC(nop, struct nfsclopen *, sizeof (struct nfsclopen) + > dp->nfsdl_fhlen - 1, M_NFSCLOPEN, M_WAITOK); > nop->nfso_own = nowp;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 216088
: 178896