struct header_print_data hd;
        struct perf_header *header = &session->header;
        int fd = perf_data_file__fd(session->file);
+       struct stat st;
+       int ret;
+
        hd.fp = fp;
        hd.full = full;
 
+       ret = fstat(fd, &st);
+       if (ret == -1)
+               return -1;
+
+       fprintf(fp, "# captured on: %s", ctime(&st.st_ctime));
+
        perf_header__process_sections(header, fd, &hd,
                                      perf_file_section__fprintf_info);
        return 0;
 
 void perf_session__fprintf_info(struct perf_session *session, FILE *fp,
                                bool full)
 {
-       struct stat st;
-       int fd, ret;
-
        if (session == NULL || fp == NULL)
                return;
 
-       fd = perf_data_file__fd(session->file);
-
-       ret = fstat(fd, &st);
-       if (ret == -1)
-               return;
-
        fprintf(fp, "# ========\n");
-       fprintf(fp, "# captured on: %s", ctime(&st.st_ctime));
        perf_header__fprintf_info(session, fp, full);
        fprintf(fp, "# ========\n#\n");
 }