tool api fs: Correctly encode errno for read/write open failures
authorIan Rogers <irogers@google.com>
Mon, 18 Nov 2024 22:53:40 +0000 (14:53 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 9 Dec 2024 20:52:42 +0000 (17:52 -0300)
Switch from returning -1 to -errno so that callers can determine types
of failure.

Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: Ben Gainey <ben.gainey@arm.com>
Cc: Colin Ian King <colin.i.king@gmail.com>
Cc: Dominique Martinet <asmadeus@codewreck.org>
Cc: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@linaro.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: Paran Lee <p4ranlee@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steinar H. Gunderson <sesse@google.com>
Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Thomas Falcon <thomas.falcon@intel.com>
Cc: Weilin Wang <weilin.wang@intel.com>
Cc: Yang Jihong <yangjihong@bytedance.com>
Cc: Yang Li <yang.lee@linux.alibaba.com>
Cc: Ze Gao <zegao2021@gmail.com>
Cc: Zixian Cai <fzczx123@gmail.com>
Cc: zhaimingbing <zhaimingbing@cmss.chinamobile.com>
Link: https://lore.kernel.org/r/20241118225345.889810-3-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/lib/api/fs/fs.c

index 337fde770e45fe031c8fbb399529bb385d15ac76..edec23406dbc619f03ceb333c40dc1bcc72cfedb 100644 (file)
@@ -296,7 +296,7 @@ int filename__read_int(const char *filename, int *value)
        int fd = open(filename, O_RDONLY), err = -1;
 
        if (fd < 0)
-               return -1;
+               return -errno;
 
        if (read(fd, line, sizeof(line)) > 0) {
                *value = atoi(line);
@@ -314,7 +314,7 @@ static int filename__read_ull_base(const char *filename,
        int fd = open(filename, O_RDONLY), err = -1;
 
        if (fd < 0)
-               return -1;
+               return -errno;
 
        if (read(fd, line, sizeof(line)) > 0) {
                *value = strtoull(line, NULL, base);
@@ -372,7 +372,7 @@ int filename__write_int(const char *filename, int value)
        char buf[64];
 
        if (fd < 0)
-               return err;
+               return -errno;
 
        sprintf(buf, "%d", value);
        if (write(fd, buf, sizeof(buf)) == sizeof(buf))