]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
namei: force-close fd on read or write error
authorDerrick Brashear <shadow@dementix.org>
Sun, 27 Nov 2011 15:42:59 +0000 (10:42 -0500)
committerStephan Wiesand <stephan.wiesand@desy.de>
Thu, 29 Aug 2013 11:13:03 +0000 (04:13 -0700)
if we errored, just reallyclose so we'll get a new fd

Reviewed-on: http://gerrit.openafs.org/6126
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 730832073a1e87654f28bfff054e24d4170c01dc)

Change-Id: I019b38b6670d3a45b774740d324d5d49e23f94d1
Reviewed-on: http://gerrit.openafs.org/9436
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/vol/namei_ops.c

index 3c7469814b2c3f9ed893d732bf9b1338738f61f1..c3e79afc7fd7befe68a7cc21fb78ba52ab7f4d3f 100644 (file)
@@ -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;
 }