libafs: dont handle outstatus on write error
authorDerrick Brashear <shadow@dementix.org>
Wed, 15 Feb 2012 02:58:09 +0000 (21:58 -0500)
committerDerrick Brashear <shadow@dementix.org>
Wed, 11 Apr 2012 16:04:43 +0000 (09:04 -0700)
if a write errored, we can't trust the OutStatus we got. don't.

Change-Id: I74934c32426c6f25aace06f6ee59c1c1b547af90
Reviewed-on: http://gerrit.openafs.org/6714
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Alistair Ferguson <alistair.ferguson@mac.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

src/afs/afs_fetchstore.c

index 16c0550..9fb766f 100644 (file)
@@ -543,6 +543,7 @@ afs_CacheStoreDCaches(struct vcache *avc, struct dcache **dclist,
 
     if (!code) {
        code = (*ops->close)(rock, OutStatus, doProcessFS);
+       /* if this succeeds, dv has been bumped. */
        if (*doProcessFS) {
            hadd32(*anewDV, 1);
        }
@@ -550,6 +551,11 @@ afs_CacheStoreDCaches(struct vcache *avc, struct dcache **dclist,
     }
     if (ops)
        code = (*ops->destroy)(&rock, code);
+
+    /* if we errored, can't trust this. */
+    if (code)
+       *doProcessFS = 0;
+
     return code;
 }