From 2a0f2de71841ddff402390457b80443bb9ac30ca Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Sun, 27 Nov 2011 10:42:59 -0500 Subject: [PATCH] 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 --- src/vol/namei_ops.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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; } -- 2.39.5