]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
viced: Do error translation for InlineBulkStatus
authorSimon Wilkinson <sxw@your-file-system.com>
Sat, 31 Mar 2012 23:21:04 +0000 (19:21 -0400)
committerStephan Wiesand <stephan.wiesand@desy.de>
Fri, 30 Aug 2013 18:16:16 +0000 (11:16 -0700)
When a host has requested universal errors, error code conversion
is performed in the CallPostamble. However, the InlineBulkStatus
errorcodes are passed as part of the data set, not as RX errors,
so this translation is not performed.

Fix this so that we also translate error codes that are part of
the InlineBulkStatus response.

Reviewed-on: http://gerrit.openafs.org/6992
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 9498cebd11ac26ed7986b5496440159f7ef745f2)

Change-Id: Ia5b2d95e05bed0fb89aeb6132008d58de68c96a0
Reviewed-on: http://gerrit.openafs.org/9467
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/viced/afsfileprocs.c

index ac2ec899e98112050391b2b5d2352a6f7e252d0e..299864570a9a4adcc0d42427c4aa4b656df850ed 100644 (file)
@@ -2956,7 +2956,13 @@ SRXAFS_InlineBulkStatus(struct rx_call * acall, struct AFSCBFids * Fids,
                              &parentwhentargetnotdir, &client, READ_LOCK,
                              &rights, &anyrights))) {
            tstatus = &OutStats->AFSBulkStats_val[i];
-           tstatus->errorCode = errorCode;
+
+           if (thost->hostFlags & HERRORTRANS) {
+               tstatus->errorCode = sys_error_to_et(errorCode);
+           } else {
+               tstatus->errorCode = errorCode;
+           }
+
            PutVolumePackage(acall, parentwhentargetnotdir, targetptr,
                             (Vnode *) 0, volptr, &client);
            parentwhentargetnotdir = (Vnode *) 0;
@@ -2980,7 +2986,13 @@ SRXAFS_InlineBulkStatus(struct rx_call * acall, struct AFSCBFids * Fids,
                 Check_PermissionRights(targetptr, client, rights,
                                        CHK_FETCHSTATUS, 0))) {
                tstatus = &OutStats->AFSBulkStats_val[i];
-               tstatus->errorCode = errorCode;
+
+               if (thost->hostFlags & HERRORTRANS) {
+                   tstatus->errorCode = sys_error_to_et(errorCode);
+               } else {
+                   tstatus->errorCode = errorCode;
+               }
+
                (void)PutVolumePackage(acall, parentwhentargetnotdir,
                                       targetptr, (Vnode *) 0, volptr,
                                       &client);