diff -NurpP linux-2.6.18-vs2.1.1-rc37.1/kernel/vserver/history.c linux-2.6.18-vs2.1.1-rc37.2/kernel/vserver/history.c --- linux-2.6.18-vs2.1.1-rc37.1/kernel/vserver/history.c 2006-10-07 05:00:30 +0200 +++ linux-2.6.18-vs2.1.1-rc37.2/kernel/vserver/history.c 2006-10-07 18:25:19 +0200 @@ -191,7 +191,7 @@ int do_read_history(struct __user _vx_hi struct _vx_history *hist = &per_cpu(vx_history_buffer, cpu); int end = hist->counter; int start = end - VXH_SIZE + 2; - int delta = *index; + int idx = *index; /* special case: get current pos */ if (!*count) { @@ -200,12 +200,12 @@ int do_read_history(struct __user _vx_hi } /* have we lost some data? */ - if (delta < start) - delta = start; + if (idx < start) + idx = start; - for (pos = 0; (pos < *count) && (delta <= end); pos++) { + for (pos = 0; (pos < *count) && (idx < end); pos++, idx++) { struct _vx_hist_entry *entry = - &hist->entry[(delta + pos) & VXH_SIZE]; + &hist->entry[idx & VXH_SIZE]; /* send entry to userspace */ ret = copy_to_user (&data[pos], entry, sizeof(*entry)); @@ -213,7 +213,7 @@ int do_read_history(struct __user _vx_hi break; } /* save new index and count */ - *index = delta + pos; + *index = idx; *count = pos; return ret ? ret : (*index < end); } diff -NurpP linux-2.6.18-vs2.1.1-rc37.1/kernel/vserver/monitor.c linux-2.6.18-vs2.1.1-rc37.2/kernel/vserver/monitor.c --- linux-2.6.18-vs2.1.1-rc37.1/kernel/vserver/monitor.c 2006-10-07 05:01:04 +0200 +++ linux-2.6.18-vs2.1.1-rc37.2/kernel/vserver/monitor.c 2006-10-07 18:28:41 +0200 @@ -71,7 +71,7 @@ int do_read_monitor(struct __user _vx_mo struct _vx_monitor *mon = &per_cpu(vx_monitor_buffer, cpu); int end = mon->counter; int start = end - VXM_SIZE + 2; - int delta = *index; + int idx = *index; /* special case: get current pos */ if (!*count) { @@ -80,12 +80,12 @@ int do_read_monitor(struct __user _vx_mo } /* have we lost some data? */ - if (delta < start) - delta = start; + if (idx < start) + idx = start; - for (pos = 0; (pos < *count) && (delta <= end); pos++) { + for (pos = 0; (pos < *count) && (idx < end); pos++, idx++) { struct _vx_mon_entry *entry = - &mon->entry[(delta + pos) & VXM_SIZE]; + &mon->entry[idx & VXM_SIZE]; /* send entry to userspace */ ret = copy_to_user (&data[pos], entry, sizeof(*entry)); @@ -93,7 +93,7 @@ int do_read_monitor(struct __user _vx_mo break; } /* save new index and count */ - *index = delta + pos; + *index = idx; *count = pos; return ret ? ret : (*index < end); }