libxfs: don't pass negative errnos to strerror()
PATCH 1/1 libxfs: don't pass negative errnos to strerror()
The error negation work in 12b5319 tripped up a little bit when we're reporting errors via strerror(). By negating the error before passing it to strerror, we get i.e.
mkfs.xfs: pwrite64 failed: Unknown error -22
Keep the error positive, but return -error, just as we do in the else clauses in these functions.
---
libxfs/rdwr.c +4 -4
@@ -913,12 +913,12 @@ __read_buf(int fd, void *buf, int len, off64_t offset, int flags) sts =pread64 (fd, buf, len, offset);if (sts <0 ) { -int error = -errno; +int error = errno;fprintf (stderr,_ ("%s: read failed: %s\n" ), progname,strerror (error));if (flags &LIBXFS_EXIT_ON_FAILURE )exit (1 ); -return error; +return -error; }else if (sts != len) {fprintf (stderr,_ ("%s: error - read only %d of %d bytes\n" ), progname, sts, len);
@@ -1081,12 +1081,12 @@ __write_buf(int fd, void *buf, int len, off64_t offset, int flags) sts =pwrite64 (fd, buf, len, offset);if (sts <0 ) { -int error = -errno; +int error = errno;fprintf (stderr,_ ("%s: pwrite64 failed: %s\n" ), progname,strerror (error));if (flags &LIBXFS_B_EXIT )exit (1 ); -return error; +return -error; }else if (sts != len) {fprintf (stderr,_ ("%s: error - pwrite64 only %d of %d bytes\n" ), progname, sts, len);
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
This looks good to me, and simple enough.
consider it
Quoted 51 lines · Eric Sandeen
The error negation work in 12b5319 tripped up a little bit when we're reporting errors via
strerror(). By negating the error before passing it to strerror, we get i.e.mkfs.xfs: pwrite64 failed: Unknown error -22
Keep the error positive, but return -error, just as we do in the else clauses in these functions.
Signed-off-by Eric Sandeen <[email protected]>---
libxfs/rdwr.c +4
-4@@ -913,12 +913,12 @@ __read_buf(int fd, void *buf, int len, off64_t offset, int flags) sts =pread64 (fd, buf, len, offset);if (sts <0 ) { -int error = -errno; +int error = errno;fprintf (stderr,_ ("%s: read failed: %s\n" ), progname,strerror (error));if (flags &LIBXFS_EXIT_ON_FAILURE )exit (1 ); -return error; +return -error; }else if (sts != len) {fprintf (stderr,_ ("%s: error - read only %d of %d bytes\n" ), progname, sts, len);@@ -1081,12 +1081,12 @@ __write_buf(int fd, void *buf, int len, off64_t offset, int flags) sts =pwrite64 (fd, buf, len, offset);if (sts <0 ) { -int error = -errno; +int error = errno;fprintf (stderr,_ ("%s: pwrite64 failed: %s\n" ), progname,strerror (error));if (flags &LIBXFS_B_EXIT )exit (1 ); -return error; +return -error; }else if (sts != len) {fprintf (stderr,_ ("%s: error - pwrite64 only %d of %d bytes\n" ), progname, sts, len);_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Signature · 6 lines
Carlos _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs