1) Without the fix, perror() can indicate the actual error(ENODATA).
2) After calling perror() and redirecting the output of perror()
to a file, errno seems to be set to EINVAL unexpectedly.
See the following mail for detailed info:
https://www.spinics.net/lists/fstests/msg09675.html
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
#include <sys/stat.h>
#define die() do { perror(""); \
#include <sys/stat.h>
#define die() do { perror(""); \
-fprintf(stderr, "error=%d at line %d\n", errno, __LINE__); \
+fprintf(stderr, "error at line %d\n", __LINE__); \
exit(1); } while (0)
#define fail(...) do { \
exit(1); } while (0)
#define fail(...) do { \