From: Derrick Brashear Date: Sun, 27 Nov 2011 15:42:59 +0000 (-0500) Subject: namei: force-close fd on read or write error X-Git-Tag: upstream/1.6.6_pre2^2~115 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=2a0f2de71841ddff402390457b80443bb9ac30ca;p=packages%2Fo%2Fopenafs.git namei: force-close fd on read or write error if we errored, just reallyclose so we'll get a new fd Reviewed-on: http://gerrit.openafs.org/6126 Reviewed-by: Jeffrey Altman Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 730832073a1e87654f28bfff054e24d4170c01dc) Change-Id: I019b38b6670d3a45b774740d324d5d49e23f94d1 Reviewed-on: http://gerrit.openafs.org/9436 Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear Reviewed-by: Michael Meffie Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: BuildBot --- diff --git a/src/vol/namei_ops.c b/src/vol/namei_ops.c index 3c7469814..c3e79afc7 100644 --- a/src/vol/namei_ops.c +++ b/src/vol/namei_ops.c @@ -135,7 +135,10 @@ namei_iread(IHandle_t * h, afs_foff_t offset, char *buf, afs_fsize_t size) return -1; nBytes = FDH_PREAD(fdP, buf, size, offset); - FDH_CLOSE(fdP); + if (nBytes < 0) + FDH_REALLYCLOSE(fdP); + else + FDH_CLOSE(fdP); return nBytes; } @@ -150,7 +153,10 @@ namei_iwrite(IHandle_t * h, afs_foff_t offset, char *buf, afs_fsize_t size) return -1; nBytes = FDH_PWRITE(fdP, buf, size, offset); - FDH_CLOSE(fdP); + if (nBytes < 0) + FDH_REALLYCLOSE(fdP); + else + FDH_CLOSE(fdP); return nBytes; }