From: Alex Elder <aelder@sgi.com>
To: ltp-list@lists.sourceforge.net
Subject: [LTP] [PATCH 1/3, v2] ltp: fix warnings in "growfiles.c"
Date: Mon, 11 Apr 2011 13:31:42 -0500 [thread overview]
Message-ID: <1302546702.2580.26.camel@doink> (raw)
In "testcases/kernel/fs/doio/growfiles.c" there are a number of
variables of type off_t which are formatted using a "%ld" conversion
specification. When I build on an i386 system I get warnings,
because evidently off_t is not defined as a long in this
environment.
Updated to address Garrett Cooper's concerns that variables named
"tmp" are used for a number of purposes in this file. In one case I
renamed the variable "off_tmp" (its type is off_t) (but did not
change corresponding printed text). The other cases the "tmp"
variable was more appropriately type int.
Signed-off-by: Alex Elder <aelder@sgi.com>
---
ltp/growfiles.c | 117
+++++++++++++++++++++++++++++++++-----------------------
1 file changed, 71 insertions(+), 46 deletions(-)
Index: b/ltp/growfiles.c
===================================================================
--- a/ltp/growfiles.c
+++ b/ltp/growfiles.c
@@ -372,7 +372,7 @@ int stop = 0; /* loop stopper
if set *
unsigned long curr_size = 0; /* BUG:14136 (keep track
of file size) */
const unsigned long ext2_limit = 2147483647; /* BUG:14136 (2GB ext2
filesize limit) */
-off_t tmp;
+int tmp;
char chr;
int ret;
int pre_alloc_space = 0;
@@ -1141,10 +1141,10 @@ no whole file checking will be performed
* get different intervals.
*/
tmp=unlink_inter;
- unlink_inter=random_range(tmp, unlink_inter_ran, 1, NULL);
+ unlink_inter = (int) random_range(tmp, unlink_inter_ran, 1,
NULL);
if (Debug > 2)
- printf("%s: %d DEBUG3 Unlink interval is %d (random %ld
- %d)\n",
+ printf("%s: %d DEBUG3 Unlink interval is %d (random %d -
%d)\n",
Progname, Pid, unlink_inter, tmp, unlink_inter_ran);
}
@@ -1853,7 +1853,7 @@ growfile(int fd, char *file, int grow_in
off_t fsize; /* current size of file */
int size_grew; /* size the file grew */
struct stat stbuf;
- off_t tmp = 0;
+ off_t off_tmp = 0;
/*
* Do a stat on the open file.
@@ -1909,8 +1909,8 @@ growfile(int fd, char *file, int grow_in
if (Mode & MODE_GROW_BY_LSEEK) {
Woffset=fsize;
if (Debug > 2) {
- printf("%s: %d DEBUG3 %s/%d: Current size of file is
%ld\n", Progname,
- Pid, __FILE__, __LINE__, Woffset);
+ printf("%s: %d DEBUG3 %s/%d: Current size of file is
%ld\n",
+ Progname, Pid, __FILE__, __LINE__, (long)
Woffset);
printf("%s: %d DEBUG3 %s/%d: lseeking to %d byte
with SEEK_END\n", Progname,
Pid, __FILE__, __LINE__, grow_incr-1);
}
@@ -2006,14 +2006,17 @@ growfile(int fd, char *file, int grow_in
}
if ((Woffset=lseek(fd, noffset, SEEK_SET)) == -1) {
- fprintf(stderr, "%s%s: %d %s/%d: lseek(%d, %ld,
SEEK_SET) l2 failed: %s\n",
- Progname, TagName, Pid, __FILE__,
__LINE__, fd, noffset, strerror(errno));
+ fprintf(stderr, "%s%s: %d %s/%d: lseek(%d, %ld,
"
+ "SEEK_SET) l2 failed: %s\n",
+ Progname, TagName, Pid, __FILE__,
__LINE__,
+ fd, (long) noffset, strerror(errno));
return -1;
}
else if (Debug > 2)
- printf("%s: %d DEBUG3 %s/%d: lseeked to random
offset %ld (fsz:%d)\n",
- Progname, Pid, __FILE__, __LINE__, Woffset,
- (int)stbuf.st_size);
+ printf("%s: %d DEBUG3 %s/%d: lseeked to "
+ "random offset %ld (fsz:%d)\n",
+ Progname, Pid, __FILE__, __LINE__,
+ (long) Woffset, (int)stbuf.st_size);
}
@@ -2027,8 +2030,9 @@ growfile(int fd, char *file, int grow_in
return -1;
}
else if (Debug > 2)
- printf("%s: %d DEBUG3 %s/%d: lseeked to end of
file, offset %ld\n",
- Progname, Pid, __FILE__, __LINE__,
Woffset);
+ printf("%s: %d DEBUG3 %s/%d: lseeked to "
+ "end of file, offset %ld\n",
+ Progname, Pid, __FILE__, __LINE__, (long)
Woffset);
}
if (Pattern == PATTERN_OFFSET)
@@ -2061,7 +2065,7 @@ growfile(int fd, char *file, int grow_in
/*****
ret=write(fd, buf, grow_incr);
- tmp=tell(fd);
+ off_tmp = tell(fd);
lkfile(fd, LOCK_UN, LKLVL0);
@@ -2083,10 +2087,10 @@ growfile(int fd, char *file, int grow_in
/* If it is a fifo then just pretend the file
* offset is where we think it should be.
*/
- tmp = Woffset + grow_incr;
+ off_tmp = Woffset + grow_incr;
}
else{
- if ((tmp=lseek(fd,0,SEEK_CUR)) < 0) { /* get
offset after the write */
+ if ((off_tmp = lseek(fd,0,SEEK_CUR)) < 0) { /*
get offset after the write */
fprintf(stderr, "%s%s: %s/%d: tell(2)
failed: %d %s\n",
Progname, TagName, __FILE__,
__LINE__, errno, strerror(errno) );
return -1;
@@ -2100,18 +2104,18 @@ growfile(int fd, char *file, int grow_in
* tell() told us. Fudge it here.
*/
if ((io_type & LIO_IO_ASYNC_TYPES) || (io_type &
LIO_RANDOM)) {
- if (tmp != Woffset + grow_incr) {
+ if (off_tmp != Woffset + grow_incr) {
if (Debug > 5) {
printf("%s: %d DEBUG6 %
s/%d: posix fudge, forcing tmp (%"PRId64") to match Woffset+grow_incr
(%"PRId64")\n",
- Progname, Pid,
__FILE__, __LINE__, (int64_t)tmp, (int64_t)Woffset+grow_incr);
+ Progname, Pid,
__FILE__, __LINE__, (int64_t)off_tmp, (int64_t)Woffset+grow_incr);
}
- tmp = Woffset + grow_incr;
+ off_tmp = Woffset + grow_incr;
}
}
#endif /* sgi __linux__ */
#endif
}
- *curr_size_ptr=tmp; /* BUG:14136 */
+ *curr_size_ptr = off_tmp; /* BUG:14136 */
lkfile(fd, LOCK_UN, LKLVL0);
@@ -2129,7 +2133,7 @@ growfile(int fd, char *file, int grow_in
* Check for a condition where the file was truncated
just before
* the write.
*/
- if (tmp != Woffset + grow_incr) {
+ if (off_tmp != Woffset + grow_incr) {
/*
* The offset after the write was not as expected.
* This could be caused by the following:
@@ -2140,16 +2144,24 @@ growfile(int fd, char *file, int grow_in
* The pattern written to the file will be
considered corrupted.
*/
if (Debug > 0 && lockfile) {
- printf("%s%s: %d DEBUG1 %s/%d: offset after
write(%ld) not as exp(%ld+%d=%ld)\n",
- Progname, TagName, Pid, __FILE__, __LINE__,
tmp, Woffset, grow_incr, Woffset+grow_incr);
- printf("%s%s: %d DEBUG1 %s/%d: %d Assuming file
changed by another process, resetting offset:%ld (expect pattern
mismatch)\n",
- Progname, TagName, Pid, __FILE__,
__LINE__, Iter_cnt, tmp-grow_incr);
+ printf("%s%s: %d DEBUG1 %s/%d: offset after "
+ "write(%ld) not as exp(%ld+%d=%ld)\n",
+ Progname, TagName, Pid, __FILE__, __LINE__,
+ (long) off_tmp, (long) Woffset, grow_incr,
+ (long) (Woffset + grow_incr));
+ printf("%s%s: %d DEBUG1 %s/%d: %d Assuming file
"
+ "changed by another process, resetting "
+ "offset:%ld (expect pattern
mismatch)\n",
+ Progname, TagName, Pid, __FILE__,
__LINE__,
+ Iter_cnt, (long) (off_tmp - grow_incr));
}
if (Debug > 4) {
- printf("%s: %d DEBUG5 %s/%d: about to chop
Woffset. tmp=%ld, grow_incr=%d, Woffset was %ld\n",
- Progname, Pid, __FILE__, __LINE__, tmp,
grow_incr, Woffset);
+ printf("%s: %d DEBUG5 %s/%d: about to chop
Woffset. "
+ "tmp=%ld, grow_incr=%d, Woffset was %ld
\n",
+ Progname, Pid, __FILE__, __LINE__,
+ (long) off_tmp, grow_incr, (long)
Woffset);
}
- Woffset=tmp-grow_incr;
+ Woffset = off_tmp - grow_incr;
if (Woffset < 0)
Woffset = 0;
}
@@ -2169,11 +2181,15 @@ growfile(int fd, char *file, int grow_in
}
else if (size_grew > 0)
- printf("%s: %d DEBUG2 %s/%d: %d wrote %d bytes(off:%ld),
grew file by %d bytes\n",
- Progname, Pid, __FILE__, __LINE__, Iter_cnt,
Grow_incr, Woffset, size_grew);
+ printf("%s: %d DEBUG2 %s/%d: %d wrote %d bytes(off:%ld),
"
+ "grew file by %d bytes\n",
+ Progname, Pid, __FILE__, __LINE__, Iter_cnt,
+ Grow_incr, (long) Woffset, size_grew);
else
- printf("%s: %d DEBUG2 %s/%d: %d wrote %d bytes(off:%ld),
did not grow file\n",
- Progname, Pid, __FILE__, __LINE__, Iter_cnt,
Grow_incr, Woffset);
+ printf("%s: %d DEBUG2 %s/%d: %d wrote %d bytes(off:%ld),
"
+ "did not grow file\n",
+ Progname, Pid, __FILE__, __LINE__, Iter_cnt,
+ Grow_incr, (long) Woffset);
}
bytes_consumed += size_grew;
@@ -2333,8 +2349,9 @@ check_write(int fd, int cf_inter, char *
if (Grow_incr <= 0) {
if (Debug > 3)
- printf("%s: %d DEBUG4 %s/%d: No write validation, Grow_incr
= %d, offset = %ld\n",
- Progname, Pid, __FILE__, __LINE__, Grow_incr, Woffset);
+ printf("%s: %d DEBUG4 %s/%d: No write validation, "
+ "Grow_incr = %d, offset = %ld\n",
+ Progname, Pid, __FILE__, __LINE__, Grow_incr, (long)
Woffset);
return 0; /* no check */
}
@@ -2354,8 +2371,10 @@ check_write(int fd, int cf_inter, char *
* The contents of our last write is totally gone, no check.
*/
if (Debug > 1)
- printf("%s%s: %d DEBUG2 %s/%d: %d File size (%d) smaller
than where last wrote (%ld)- no write validation\n",
- Progname, TagName, Pid, __FILE__, __LINE__, Iter_cnt,
fsize, Woffset);
+ printf("%s%s: %d DEBUG2 %s/%d: %d File size (%d) smaller
than "
+ "where last wrote (%ld)- no write validation\n",
+ Progname, TagName, Pid, __FILE__, __LINE__,
+ Iter_cnt, fsize, (long) Woffset);
lkfile(fd, LOCK_UN, LKLVL0);
return 0; /* no validation, but not an error */
@@ -2371,25 +2390,29 @@ check_write(int fd, int cf_inter, char *
if (Debug > 1) {
- printf("%s%s: %d DEBUG2 %s/%d: %d fsz:%d, lost(%d)of
wrt(off:%ld, sz:%d), adj=%d\n",
- Progname, TagName, Pid, __FILE__, __LINE__, Iter_cnt, fsize,
tmp-Grow_incr, Woffset, tmp, Grow_incr);
+ printf("%s%s: %d DEBUG2 %s/%d: %d fsz:%d, lost(%d)of "
+ "wrt(off:%ld, sz:%d), adj=%d\n", Progname,
+ TagName, Pid, __FILE__, __LINE__, Iter_cnt, fsize,
+ tmp - Grow_incr, (long) Woffset, tmp, Grow_incr);
}
}
if (Debug > 2)
- printf("%s: %d DEBUG3 %s/%d: about to do write validation,
offset = %ld, size = %d\n",
- Progname, Pid, __FILE__, __LINE__, Woffset, Grow_incr);
+ printf("%s: %d DEBUG3 %s/%d: about to do write validation, "
+ "offset = %ld, size = %d\n",
+ Progname, Pid, __FILE__, __LINE__, (long) Woffset,
Grow_incr);
if (! (mode & MODE_FIFO)) {
if (lseek(fd, Woffset, 0) == -1) {
fprintf(stderr, "%s%s: %d %s/%d: lseek(fd, %ld, 0) failed:
%s\n",
- Progname, TagName, Pid, __FILE__, __LINE__, Woffset,
strerror(errno));
+ Progname, TagName, Pid, __FILE__, __LINE__,
+ (long) Woffset, strerror(errno));
}
if (Debug > 3)
printf("%s: %d DEBUG4 %s/%d: lseeked to offset:%ld\n",
- Progname, Pid, __FILE__, __LINE__, Woffset);
+ Progname, Pid, __FILE__, __LINE__, (long) Woffset);
}
/*
@@ -2476,9 +2499,10 @@ check_write(int fd, int cf_inter, char *
Progname, TagName, Pid, __FILE__, __LINE__, Iter_cnt,
errmsg, filename);
if (Debug > 0)
- printf("%s%s: %d DEBUG1 %s/%d: **fd:%d, lk:%d, offset:%ld,
sz:%d open flags:%#o %s\n",
+ printf("%s%s: %d DEBUG1 %s/%d: **fd:%d, lk:%d, "
+ "offset:%ld, sz:%d open flags:%#o %s\n",
Progname, TagName, Pid, __FILE__, __LINE__, fd,
lockfile,
- Woffset, Grow_incr, Fileinfo.openflags,
+ (long) Woffset, Grow_incr, Fileinfo.openflags,
openflags2symbols(Fileinfo.openflags, ",", 0));
fflush(stderr);
@@ -2486,8 +2510,9 @@ check_write(int fd, int cf_inter, char *
}
if (Debug > 6)
- printf("%s: %d DEBUG7 %s/%d: No corruption detected on write
validation , offset = %ld, size = %d\n",
- Progname, Pid, __FILE__, __LINE__, Woffset, Grow_incr);
+ printf("%s: %d DEBUG7 %s/%d: No corruption detected on "
+ "write validation , offset = %ld, size = %d\n",
+ Progname, Pid, __FILE__, __LINE__, (long) Woffset,
Grow_incr);
return 0; /* all is well */
}
------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next reply other threads:[~2011-04-11 18:32 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-11 18:31 Alex Elder [this message]
2011-04-12 6:34 ` [LTP] [PATCH 1/3, v2] ltp: fix warnings in "growfiles.c" Garrett Cooper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1302546702.2580.26.camel@doink \
--to=aelder@sgi.com \
--cc=ltp-list@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.