mirror of
https://git.openafs.org/openafs.git
synced 2025-01-21 00:10:15 +00:00
fs: Report default storebehind when errors exist
After 904c9fbe
, we no longer print out the default store asynchrony
when any of the supplied paths results in a pioctl error. However, if
just one (or a few) of the paths supplied results in an error (such
as, the path does not exist), this does not prevent us from reporting
the default value.
Instead, keep track of whether or not we have a valid value, and try
to determine the default if we haven't already by the end of
StoreBehindCmd, and print it out.
Change-Id: I16a5faed15141d0bb00ea9b6f991c0a8e404d4d5
Reviewed-on: http://gerrit.openafs.org/7376
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
This commit is contained in:
parent
e9e14b5519
commit
427f53eea7
@ -3347,6 +3347,7 @@ StoreBehindCmd(struct cmd_syndesc *as, void *arock)
|
||||
afs_int32 allfiles;
|
||||
char *t;
|
||||
int error = 0;
|
||||
int async_default = -1;
|
||||
|
||||
tsb.sb_thisfile = -1;
|
||||
ti = as->parms[0].items; /* -kbytes */
|
||||
@ -3407,14 +3408,18 @@ StoreBehindCmd(struct cmd_syndesc *as, void *arock)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (verbose && (blob.out_size == sizeof(tsb2))) {
|
||||
if (tsb2.sb_thisfile == -1) {
|
||||
fprintf(stdout, "Will store %s according to default.\n",
|
||||
ti->data);
|
||||
if (blob.out_size == sizeof(tsb2)) {
|
||||
async_default = tsb2.sb_default;
|
||||
|
||||
if (verbose) {
|
||||
if (tsb2.sb_thisfile == -1) {
|
||||
fprintf(stdout, "Will store %s according to default.\n",
|
||||
ti->data);
|
||||
} else {
|
||||
fprintf(stdout,
|
||||
"Will store up to %d kbytes of %s asynchronously.\n",
|
||||
(tsb2.sb_thisfile / 1024), ti->data);
|
||||
fprintf(stdout,
|
||||
"Will store up to %d kbytes of %s asynchronously.\n",
|
||||
(tsb2.sb_thisfile / 1024), ti->data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3422,7 +3427,7 @@ StoreBehindCmd(struct cmd_syndesc *as, void *arock)
|
||||
/* If no files - make at least one pioctl call, or
|
||||
* set the allfiles default if we need to.
|
||||
*/
|
||||
if (!as->parms[1].items || (allfiles != -1)) {
|
||||
if (async_default < 0 || (allfiles != -1)) {
|
||||
tsb.sb_default = allfiles;
|
||||
memset(&tsb2, 0, sizeof(tsb2));
|
||||
blob.out = (char *)&tsb2;
|
||||
@ -3431,13 +3436,16 @@ StoreBehindCmd(struct cmd_syndesc *as, void *arock)
|
||||
if (code) {
|
||||
Die(errno, ((allfiles == -1) ? 0 : "-allfiles"));
|
||||
error = 1;
|
||||
|
||||
} else if (blob.out_size == sizeof(tsb2)) {
|
||||
async_default = tsb2.sb_default;
|
||||
}
|
||||
}
|
||||
|
||||
/* Having no arguments also reports the default store asynchrony */
|
||||
if (!error && verbose && (blob.out_size == sizeof(tsb2))) {
|
||||
if (async_default >= 0 && verbose) {
|
||||
fprintf(stdout, "Default store asynchrony is %d kbytes.\n",
|
||||
(tsb2.sb_default / 1024));
|
||||
(async_default / 1024));
|
||||
}
|
||||
|
||||
return error;
|
||||
|
Loading…
Reference in New Issue
Block a user