[Ocfs2-test-devel] [PATCH 1/1] Ocfs2-test: Deal with compiling error on opensuse for splice_test
Tristan Ye
tristan.ye at oracle.com
Mon Apr 13 00:47:27 PDT 2009
On openSuSE 11 the splice in bits/fcntl.h is:
/* Splice two files together. */
extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
__off64_t *__offout, size_t __len,
unsigned int __flags);
In our ocfs2-test/program/splice_test/splice_test.h, the splice_test is:
int splice(int fdin, loff_t *off_in, int fdout,
loff_t *off_out, size_t len, unsigned int flags)
Such different return value of two splice() cause a type conflicting error.
Here we explicitly use the splice() call from definition in splice_test.h by
force by changing its name as my_splice() from the one in fcntl.h, which also
prevent a compiling error from happening.
Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
---
programs/splice/splice_read.c | 6 +++---
programs/splice/splice_test.h | 2 +-
programs/splice/splice_write.c | 6 +++---
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/programs/splice/splice_read.c b/programs/splice/splice_read.c
index c25522e..7d7aa95 100644
--- a/programs/splice/splice_read.c
+++ b/programs/splice/splice_read.c
@@ -4,7 +4,7 @@
int main(int argc, char *argv[])
{
int fd;
- int slen;
+ ssize_t slen;
if (argc < 2) {
printf("Usage: ./splice_read out | cat\n");
@@ -16,11 +16,11 @@ int main(int argc, char *argv[])
printf("open file failed.\n");
exit(-1);
}
- slen = splice(fd, NULL, STDOUT_FILENO, NULL, 10000000, 0);
+ slen = my_splice(fd, NULL, STDOUT_FILENO, NULL, 10000000, 0);
if (slen < 0)
fprintf(stderr, "splice failed.\n");
else
- fprintf(stderr, "spliced length = %d\n",slen);
+ fprintf(stderr, "spliced length = %ld\n",slen);
close(fd);
if (slen <0)
exit(-1);
diff --git a/programs/splice/splice_test.h b/programs/splice/splice_test.h
index 5113bbb..899d388 100644
--- a/programs/splice/splice_test.h
+++ b/programs/splice/splice_test.h
@@ -31,7 +31,7 @@
#error unsupported arch
#endif
-int splice(int fdin, loff_t *off_in, int fdout,
+ssize_t my_splice(int fdin, loff_t *off_in, int fdout,
loff_t *off_out, size_t len, unsigned int flags)
{
return syscall(__NR_splice, fdin, off_in, fdout, off_out, len, flags);
diff --git a/programs/splice/splice_write.c b/programs/splice/splice_write.c
index a4d8c1a..ee9a281 100644
--- a/programs/splice/splice_write.c
+++ b/programs/splice/splice_write.c
@@ -4,7 +4,7 @@
int main(int argc, char *argv[])
{
int fd;
- int slen;
+ ssize_t slen;
if (argc < 2) {
printf("Usage: ls | ./splice_write out\n");
@@ -15,11 +15,11 @@ int main(int argc, char *argv[])
printf("open file failed.\n");
exit(-1);
}
- slen = splice(STDIN_FILENO, NULL, fd, NULL, 10000000, 0);
+ slen = my_splice(STDIN_FILENO, NULL, fd, NULL, 10000000, 0);
if (slen < 0)
fprintf(stderr, "splice failed.\n");
else
- fprintf(stderr, "spliced length = %d\n",slen);
+ fprintf(stderr, "spliced length = %ld\n",slen);
close(fd);
if (slen < 0)
exit(-1);
--
1.5.5
More information about the Ocfs2-test-devel
mailing list