Lines Matching refs:file
12 static bool check_pipe(struct perf_data_file *file) in check_pipe() argument
16 int fd = perf_data_file__is_read(file) ? in check_pipe()
19 if (!file->path) { in check_pipe()
23 if (!strcmp(file->path, "-")) in check_pipe()
28 file->fd = fd; in check_pipe()
30 return file->is_pipe = is_pipe; in check_pipe()
33 static int check_backup(struct perf_data_file *file) in check_backup() argument
37 if (!stat(file->path, &st) && st.st_size) { in check_backup()
41 file->path); in check_backup()
43 rename(file->path, oldname); in check_backup()
49 static int open_file_read(struct perf_data_file *file) in open_file_read() argument
55 fd = open(file->path, O_RDONLY); in open_file_read()
59 pr_err("failed to open %s: %s", file->path, in open_file_read()
61 if (err == ENOENT && !strcmp(file->path, "perf.data")) in open_file_read()
70 if (!file->force && st.st_uid && (st.st_uid != geteuid())) { in open_file_read()
72 file->path); in open_file_read()
78 file->path); in open_file_read()
82 file->size = st.st_size; in open_file_read()
90 static int open_file_write(struct perf_data_file *file) in open_file_write() argument
95 if (check_backup(file)) in open_file_write()
98 fd = open(file->path, O_CREAT|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR); in open_file_write()
101 pr_err("failed to open %s : %s\n", file->path, in open_file_write()
107 static int open_file(struct perf_data_file *file) in open_file() argument
111 fd = perf_data_file__is_read(file) ? in open_file()
112 open_file_read(file) : open_file_write(file); in open_file()
114 file->fd = fd; in open_file()
118 int perf_data_file__open(struct perf_data_file *file) in perf_data_file__open() argument
120 if (check_pipe(file)) in perf_data_file__open()
123 if (!file->path) in perf_data_file__open()
124 file->path = "perf.data"; in perf_data_file__open()
126 return open_file(file); in perf_data_file__open()
129 void perf_data_file__close(struct perf_data_file *file) in perf_data_file__close() argument
131 close(file->fd); in perf_data_file__close()
134 ssize_t perf_data_file__write(struct perf_data_file *file, in perf_data_file__write() argument
137 return writen(file->fd, buf, size); in perf_data_file__write()