perf header: Revamp do_write()
Now that writen takes a const buffer, use it in do_write instead of duplicating its functionality. Export do_write to use it consistently in header.c and build_id.c . Signed-off-by: David Carrillo-Cisneros <davidcc@google.com> Acked-by: David Ahern <dsahern@gmail.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: He Kuang <hekuang@huawei.com> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Turner <pjt@google.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Simon Que <sque@chromium.org> Cc: Stephane Eranian <eranian@google.com> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/r/20170718042549.145161-6-davidcc@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
7c72440506
Коммит
3b8f51a677
|
@ -304,7 +304,7 @@ static int write_buildid(const char *name, size_t name_len, u8 *build_id,
|
|||
b.header.misc = misc;
|
||||
b.header.size = sizeof(b) + len;
|
||||
|
||||
err = writen(fd, &b, sizeof(b));
|
||||
err = do_write(fd, &b, sizeof(b));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
|
|
|
@ -75,17 +75,13 @@ bool perf_header__has_feat(const struct perf_header *header, int feat)
|
|||
}
|
||||
|
||||
/* Return: 0 if succeded, -ERR if failed. */
|
||||
static int do_write(int fd, const void *buf, size_t size)
|
||||
int do_write(int fd, const void *buf, size_t size)
|
||||
{
|
||||
while (size) {
|
||||
int ret = write(fd, buf, size);
|
||||
ssize_t ret;
|
||||
|
||||
if (ret < 0)
|
||||
return -errno;
|
||||
|
||||
size -= ret;
|
||||
buf += ret;
|
||||
}
|
||||
ret = writen(fd, buf, size);
|
||||
if (ret != (ssize_t)size)
|
||||
return ret < 0 ? (int)ret : -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -144,6 +144,8 @@ bool is_perf_magic(u64 magic);
|
|||
|
||||
#define NAME_ALIGN 64
|
||||
|
||||
int do_write(int fd, const void *buf, size_t size);
|
||||
|
||||
int write_padded(int fd, const void *bf, size_t count, size_t count_aligned);
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче