diff -up sysstat-10.0.0/cifsiostat.c.pom sysstat-10.0.0/cifsiostat.c --- sysstat-10.0.0/cifsiostat.c.pom 2011-03-11 18:09:57.000000000 +0100 +++ sysstat-10.0.0/cifsiostat.c 2011-05-04 08:09:45.000000000 +0200 @@ -319,6 +319,8 @@ void read_cifs_stat(int curr) char line[256]; char aux[32]; int start = 0; + long long unsigned aux_open; + long long unsigned all_open = 0; char cifs_name[MAX_NAME_LEN]; char name_tmp[MAX_NAME_LEN]; struct cifs_stats scifs; @@ -337,7 +339,9 @@ void read_cifs_stat(int curr) /* Read CIFS directory name */ if (isdigit((unsigned char) line[0]) && sscanf(line, aux , name_tmp) == 1) { if (start) { + scifs.fopens = all_open; save_stats(cifs_name, curr, &scifs); + all_open = 0; } else { start = 1; @@ -353,12 +357,19 @@ void read_cifs_stat(int curr) } if (!strncmp(line, "Opens:", 6)) { sscanf(line, "Opens: %llu Closes:%llu Deletes: %llu", - &scifs.fopens, &scifs.fcloses, &scifs.fdeletes); + &aux_open, &scifs.fcloses, &scifs.fdeletes); + all_open += aux_open; + } + if (!strncmp(line, "Posix Opens:", 12)) { + sscanf(line, "Posix Opens: %llu Posix Mkdirs: %*llu", + &aux_open); + all_open += aux_open; } } } if (start) { + scifs.fopens = all_open; save_stats(cifs_name, curr, &scifs); }