build: fix build warnings and notify_others() bug

This patch addresses the following build warnings:

fsx.c: In function 'do_punch_hole':
fsx.c:940:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   if (!quiet && testcalls > simulatedopcount)
   ^~
fsx.c:942:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
log4(OP_PUNCH_HOLE, offset, length, FL_SKIPPED);
^~~~
fsx.c:947:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   if (!quiet && testcalls > simulatedopcount)
   ^~
fsx.c:949:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
log4(OP_PUNCH_HOLE, offset, length, FL_SKIPPED);
^~~~
fsx.c: In function 'do_zero_range':
fsx.c:995:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   if (!quiet && testcalls > simulatedopcount)
   ^~
fsx.c:997:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
log4(OP_ZERO_RANGE, offset, length, FL_SKIPPED |
^~~~
[CC]    growfiles
growfiles.c: In function 'notify_others':
growfiles.c:1458:6: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  if ( Forker_pids[ind] != Pid )
  ^~
growfiles.c:1462:10: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
  kill(Forker_pids[ind], SIGUSR2);
  ^~~~

The warnings in fsx.c were just spacing issues of the form:

	if (length == 0) {
		if (!quiet && testcalls > simulatedopcount)
			prt("skipping zero length punch hole\n");
			log4(OP_PUNCH_HOLE, offset, length, FL_SKIPPED);
		return;
	}

Where the log4() call just needs to be unindented.  log4() calls
elsewhere in that same file are not protected with any sort of
'quiet' check, and commonly follow prt() calls which are.  See
doread(), domapread(), etc.

The warning from growfiles.c was actually a bug.  notify_others() is
looping through the Forker_pids[] array and sending SIGUSR2 to all
other processes.  However, with the current logic it only *logs* the
kill for other processes, and kills all other processes plus the
Forker_pids[] entry that matches 'Pid'.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Lukas Czerner <lczerner@redhat.com>
Cc: Allison Henderson <achender@vnet.ibm.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Nathan Scott <nathans@sgi.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Ross Zwisler
2016-12-06 21:04:01 -07:00
committed by Eryu Guan
parent 8c96cfbfe5
commit 490baac380
2 changed files with 6 additions and 5 deletions
+4 -4
View File
@@ -939,14 +939,14 @@ do_punch_hole(unsigned offset, unsigned length)
if (length == 0) { if (length == 0) {
if (!quiet && testcalls > simulatedopcount) if (!quiet && testcalls > simulatedopcount)
prt("skipping zero length punch hole\n"); prt("skipping zero length punch hole\n");
log4(OP_PUNCH_HOLE, offset, length, FL_SKIPPED); log4(OP_PUNCH_HOLE, offset, length, FL_SKIPPED);
return; return;
} }
if (file_size <= (loff_t)offset) { if (file_size <= (loff_t)offset) {
if (!quiet && testcalls > simulatedopcount) if (!quiet && testcalls > simulatedopcount)
prt("skipping hole punch off the end of the file\n"); prt("skipping hole punch off the end of the file\n");
log4(OP_PUNCH_HOLE, offset, length, FL_SKIPPED); log4(OP_PUNCH_HOLE, offset, length, FL_SKIPPED);
return; return;
} }
@@ -994,8 +994,8 @@ do_zero_range(unsigned offset, unsigned length, int keep_size)
if (length == 0) { if (length == 0) {
if (!quiet && testcalls > simulatedopcount) if (!quiet && testcalls > simulatedopcount)
prt("skipping zero length zero range\n"); prt("skipping zero length zero range\n");
log4(OP_ZERO_RANGE, offset, length, FL_SKIPPED | log4(OP_ZERO_RANGE, offset, length, FL_SKIPPED |
(keep_size ? FL_KEEP_SIZE : FL_NONE)); (keep_size ? FL_KEEP_SIZE : FL_NONE));
return; return;
} }
+2 -1
View File
@@ -1455,11 +1455,12 @@ notify_others()
send_signals=1; /* only send signals once */ send_signals=1; /* only send signals once */
for (ind=0; ind< Forker_npids; ind++) { for (ind=0; ind< Forker_npids; ind++) {
if ( Forker_pids[ind] != Pid ) if ( Forker_pids[ind] != Pid ) {
if ( Debug > 1 ) if ( Debug > 1 )
printf("%s%s: %d DEBUG2 %s/%d: Sending SIGUSR2 to pid %d\n", printf("%s%s: %d DEBUG2 %s/%d: Sending SIGUSR2 to pid %d\n",
Progname, TagName, Pid, __FILE__, __LINE__, Forker_pids[ind]); Progname, TagName, Pid, __FILE__, __LINE__, Forker_pids[ind]);
kill(Forker_pids[ind], SIGUSR2); kill(Forker_pids[ind], SIGUSR2);
}
} }
} }