# ChangeLog for sys-kernel/openvz-sources
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/ChangeLog,v 1.129 2010/04/01 07:21:53 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/ChangeLog,v 1.130 2010/04/16 09:48:23 pva Exp $
+
+*openvz-sources-2.6.27.4.1-r1 (13 Apr 2010)
+
+ 13 Apr 2010; Peter Volkov <pva@gentoo.org>
+ +openvz-sources-2.6.27.4.1-r1.ebuild,
+ +files/openvz-sources-2.6.27.4.1-CAP_VE.patch,
+ +files/openvz-sources-2.6.27.4.1-hrtimer.patch,
+ +files/openvz-sources-2.6.27.4.1-nfs-flags.patch,
+ +files/openvz-sources-2.6.27.4.1-signal-curr_target.patch,
+ +files/openvz-sources-2.6.27.4.1-splice.patch,
+ +files/openvz-sources-2.6.27.4.1-task-state-percpu-counters.patch:
+ Upstream patches added.
*openvz-sources-2.6.18.028.068.9 (01 Apr 2010)
AUX openvz-sources-2.6.18.028.064.7-bridgemac.patch 514 RMD160 bdd04c4dc86c79b91b7675d8c59b569483e444c4 SHA1 ef092a68c4dab7dc7284b2be8cc74b1510def485 SHA256 250bc852aedca35624d9352c1d693e147812504b2799cd2ba20f0c9763e61908
AUX openvz-sources-2.6.18.028.068.3-build-fix.patch 742 RMD160 1c6e51e8e9d490cfeae747229deafbe129b73be6 SHA1 9e21887303534a76956ba8cafdd31c7168f8eae1 SHA256 0e04df4445fcea66ea771b727dc50800ff4e7065fc5cda3767f8a5fedee9b786
+AUX openvz-sources-2.6.27.4.1-CAP_VE.patch 759 RMD160 d351d50e45ec4880f08c3cb879b34c4ab2ec5f02 SHA1 1fd10c8e9c10362589c0abbfb8cab350aa1ed0a5 SHA256 29d32936e41720c3a2375dc872ce250d39262f08f1642aecb4911c6a99b9bfed
+AUX openvz-sources-2.6.27.4.1-hrtimer.patch 1985 RMD160 f2f887c1d8608c8281431c640608b48a5cc19cb2 SHA1 242896e04f31477caa2c90a81436b0f67e748e99 SHA256 909157dc55ba7241f79f60be1d71488e3aeb2e833c1de62b84d9841669118389
+AUX openvz-sources-2.6.27.4.1-nfs-flags.patch 912 RMD160 c84aaa6a8847f5e8442e730ae1c809ca9fcac6a8 SHA1 cc6c5003eda6ccd678b486610ea340b8f0ee4cb4 SHA256 509d5894c57950ec814c8b8d74c0e234cc9e7e52245f2bb33429d9cf9aadd370
+AUX openvz-sources-2.6.27.4.1-signal-curr_target.patch 1442 RMD160 4e4a2bce05e41ae392c09bf5c53bb429714d1c92 SHA1 4f34174539b2d80d2d0775acb4e87373fb937f48 SHA256 1aa919694898a6b2ac8b4628fe388a9ada9e11c04c6b656855f26745405f39e3
+AUX openvz-sources-2.6.27.4.1-splice.patch 1206 RMD160 db6fcb34fc1fc60ccf47eeb2429309f0a7b2c4b5 SHA1 680144a3f2c99fa7863c5d0223932ae0827b7990 SHA256 debe17360362c6f2ec29d920f1b74e233dc98a290b405cfe55dd69db718d3283
+AUX openvz-sources-2.6.27.4.1-task-state-percpu-counters.patch 1281 RMD160 359f479dd384a36242b158f3e1db691e9e51342d SHA1 2a6cb0c70a4a0238965a4b858c984a15a65963ba SHA256 48080364f8cae100b027b3a10eec70c8ef33b407c71c0f1e304d104f4e5f859e
DIST linux-2.6.18.tar.bz2 41863580 RMD160 f92283f956880676bfb1f1d5288325461e4e02e7 SHA1 178f7d5bb3af0978d42b37651b8753323c7129c2 SHA256 c95280ff6c5d2a17788f7cc582d23ae8a9a7ba3f202ec6e4238eaadfce7c163d
DIST linux-2.6.27.tar.bz2 50355835 RMD160 5be4595ad824a4af67c1ec0c692838ad0c31f0c0 SHA1 8425ec3be2652f9d511911ff4fcf99039d4574be SHA256 0e99bf9e83f4d1ae0c656741a84dfddfa9c4d2469cf35475f5939d02dc3e4393
DIST patch-164.11.1.el5.028stab068.3-combined.gz 15482070 RMD160 41417473a56b8fd539b547e24e98a785a173a889 SHA1 56580b60c74f7a983c6e6e20b99690b64680f225 SHA256 5f3f44e7f691cd195b4c280659c855f95896691e6922a65333f1a62c75233629
EBUILD openvz-sources-2.6.18.028.068.5.ebuild 1884 RMD160 046228a19828afe7e1afb67e54f1e4e2a275dee2 SHA1 2d41fd0e48f2b2e5caf025fa0d1da80f7990fdfa SHA256 5bd5bacded2104d17afed324c8adc17a81cc80d63295e6641844cb0a670084a4
EBUILD openvz-sources-2.6.18.028.068.9.ebuild 1884 RMD160 e22c41c7c33803894a12f74f2582f9cf38251236 SHA1 9e3312467b9ce0c8be0aafe69d8a2d60e17b2c88 SHA256 abf36f763bc4c529ac34244d7c62c01d0e6164ebed6d1e34be50553a33c2e302
EBUILD openvz-sources-2.6.27.3.1.ebuild 1894 RMD160 f7e40525eb6d532490c3c7da77e361217cf708de SHA1 38765a51769221e24f81273e3c60ce316393d468 SHA256 999b13c06aff4b54c6a1897bccafadaa9d03657314ba25e557d8f7096c54f700
+EBUILD openvz-sources-2.6.27.4.1-r1.ebuild 2241 RMD160 3263449195ef198b325404ed5d2869bf849eb3d1 SHA1 61f4a205daaa2862c670380350e74873f88e9695 SHA256 702ed72e9ac15d6ae38010cfef77c5925179a090bcda75899311d4b0e6b05c23
EBUILD openvz-sources-2.6.27.4.1.ebuild 1895 RMD160 ac9c121529a21840b11f161799f063d029a93645 SHA1 9e123ffe3318512228036821aeb2c657691ca163 SHA256 a8669d01e94f57b84320ed2fcd59c9c59715d3883a2794182de9f6b394ecac8f
-MISC ChangeLog 33062 RMD160 37dcbc678d9fe3cfd5d9b88e98ff9688d9dad637 SHA1 571233375140537a55da470d62388c4182e15553 SHA256 c56f278036d2a14606c071f4cccef739881d0a6ec8be962a8577bf829a823d83
+MISC ChangeLog 33549 RMD160 9818bafc0bcd476a0feabe6dcfd2f5c01b154311 SHA1 c21de567d53b52ec5b558731c3a9b1560118ad9b SHA256 4c63ef9d390e3a49ba538452c5dfeb74d86822f5eae8ebec8abdae6a2b11b997
MISC metadata.xml 554 RMD160 0d62a03694a7c0e0caa538a603b3a41916451887 SHA1 d4d18f1c2c52425a1a819ac0d76ff1c906853047 SHA256 78f7ce5323a1a18773d5a6a01cffcc729fb51f4a667b5d2df37450907a007a31
--- /dev/null
+X-Git-Url: http://git.openvz.org/?p=linux-2.6.27-openvz;a=blobdiff_plain;f=security%2Fcommoncap.c;fp=security%2Fcommoncap.c;h=59b6841de151e5e704a58ee9d92cfd583b2ad2ce;hp=880d02f0368bb51badc500d94b5960452092ab3d;hb=193ba36c82f6097e910a47f12cce85833fae9d57;hpb=a8e6d74c12874f97232c8dba8b2b4521cbdb3230
+
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 880d02f..59b6841 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -700,8 +700,9 @@ void cap_task_reparent_to_init (struct task_struct *p)
+
+ int cap_syslog (int type)
+ {
+- if ((type != 3 && type != 10) && !capable(CAP_VE_SYS_ADMIN))
+- return -EPERM;
++ if ((type != 3 && type != 10) &&
++ !capable(CAP_VE_SYS_ADMIN) && !capable(CAP_SYS_ADMIN))
++ return -EPERM;
+ return 0;
+ }
+
--- /dev/null
+From: Cyrill Gorcunov <gorcunov@openvz.org>
+Date: Mon, 5 Apr 2010 11:44:48 +0000 (+0400)
+Subject: hrtimer: fixup negative expire value in hrtimer_start and hrtimer_force_reprogram
+X-Git-Url: http://git.openvz.org/?p=linux-2.6.27-openvz;a=commitdiff_plain;h=1713baddd8443c4abf299aec70bbde96a0885a8a;hp=762c78b5d7f1c293133651ac2096179f161ef0c0
+
+hrtimer: fixup negative expire value in hrtimer_start and hrtimer_force_reprogram
+
+We still have a few user-space callers for hrtimer_start()
+with HRTIMER_MODE_ABS timer mode in which we can't be sure
+the sane expire value has been passed. So to prevent overflow
+warning we fix su a case by using maximal possible timer
+expiration.
+
+ps: mainline already uses hrtimer_set_expires_range_ns
+which is safe against such values.
+
+http://bugzilla.openvz.org/show_bug.cgi?id=1370
+
+Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
+Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
+---
+
+diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
+index 59604cb..7821ea7 100644
+--- a/kernel/hrtimer.c
++++ b/kernel/hrtimer.c
+@@ -518,6 +518,13 @@ static void hrtimer_force_reprogram(struct hrtimer_cpu_base *cpu_base)
+ continue;
+ timer = rb_entry(base->first, struct hrtimer, node);
+ expires = ktime_sub(timer->expires, base->offset);
++ /*
++ * clock_was_set() has changed base->offset so the
++ * result might be negative. Fix it up to prevent a
++ * false positive in clockevents_program_event()
++ */
++ if (expires.tv64 < 0)
++ expires.tv64 = 0;
+ if (expires.tv64 < cpu_base->expires_next.tv64)
+ cpu_base->expires_next = expires;
+ }
+@@ -983,7 +990,13 @@ hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)
+ #endif
+ }
+
+- timer->expires = tim;
++ /*
++ * We still have a few callers from a userspace
++ * so that we can't be sure they send a proper value,
++ * lets prevent overflow
++ */
++ timer->expires = (tim.tv64 < 0) ?
++ ktime_set(KTIME_SEC_MAX, 0) : tim;
+
+ timer_stats_hrtimer_set_start_info(timer);
+
--- /dev/null
+From: Konstantin Khlebnikov <khlebnikov@openvz.org>
+Date: Mon, 5 Apr 2010 11:41:30 +0000 (+0400)
+Subject: check flags on parsed structure
+X-Git-Url: http://git.openvz.org/?p=linux-2.6.27-openvz;a=commitdiff_plain;h=f83e9da10c15dcb6532a1d1bf3e46a4758c7ad97;hp=0eac9fd14f22c8f217de47db339ca82a574c075b
+
+check flags on parsed structure
+
+http://bugzilla.openvz.org/show_bug.cgi?id=1464
+
+Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
+Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
+---
+
+diff --git a/fs/nfs/super.c b/fs/nfs/super.c
+index 59915e1..fdd9c18 100644
+--- a/fs/nfs/super.c
++++ b/fs/nfs/super.c
+@@ -1708,7 +1708,7 @@ static int nfs_validate_mount_data(void *options,
+ goto out_v3_not_compiled;
+ #endif /* !CONFIG_NFS_V3 */
+
+- if (!(data->flags & NFS_MOUNT_VER3)) {
++ if (!(args->flags & NFS_MOUNT_VER3)) {
+ printk("NFSv2 is broken and not supported\n");
+ return -EPROTONOSUPPORT;
+ }
--- /dev/null
+From: Konstantin Khlebnikov <khlebnikov@openvz.org>
+Date: Mon, 5 Apr 2010 11:38:29 +0000 (+0400)
+Subject: CPT: check signal curr_target at restore
+X-Git-Url: http://git.openvz.org/?p=linux-2.6.27-openvz;a=commitdiff_plain;h=0eac9fd14f22c8f217de47db339ca82a574c075b;hp=9248c37200a97a9ab41019692aaf7fb70f0ba34b
+
+CPT: check signal curr_target at restore
+
+set signal curr_target to current if right task was not found.
+fix oops after broken restore.
+
+"curr_target" controls round robin signal target balance over process
+threads, there no reasons to care about migration accuracy.
+
+http://bugzilla.openvz.org/show_bug.cgi?id=1467
+
+Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
+Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
+---
+
+diff --git a/kernel/cpt/rst_process.c b/kernel/cpt/rst_process.c
+index 873aec6..50b1d8a 100644
+--- a/kernel/cpt/rst_process.c
++++ b/kernel/cpt/rst_process.c
+@@ -421,8 +421,13 @@ restore_one_signal_struct(struct cpt_task_image *ti, int *exiting, cpt_context_t
+ }
+ }
+
+- if (si->cpt_curr_target)
++ if (si->cpt_curr_target) {
+ current->signal->curr_target = find_task_by_vpid(si->cpt_curr_target);
++ if (current->signal->curr_target == NULL) {
++ wprintk_ctx("oops, curr_target=NULL, pid=%u\n", si->cpt_curr_target);
++ current->signal->curr_target = current;
++ }
++ }
+ current->signal->flags = 0;
+ *exiting = si->cpt_group_exit;
+ current->signal->group_exit_code = si->cpt_group_exit_code;
--- /dev/null
+From: Pavel Emelyanov <xemul@openvzorg>
+Date: Mon, 5 Apr 2010 11:35:58 +0000 (+0400)
+Subject: cpt: Don't mind the tsk->splice_pipe cache at cpt time
+X-Git-Url: http://git.openvz.org/?p=linux-2.6.27-openvz;a=commitdiff_plain;h=9248c37200a97a9ab41019692aaf7fb70f0ba34b;hp=193ba36c82f6097e910a47f12cce85833fae9d57
+
+cpt: Don't mind the tsk->splice_pipe cache at cpt time
+
+This field is just a cache for sendfile systemcall. It can be dropped
+safely during migration - the first sendfile after restore will create
+it back.
+
+http://bugzilla.openvz.org/show_bug.cgi?id=881
+
+Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
+---
+
+diff --git a/kernel/cpt/cpt_process.c b/kernel/cpt/cpt_process.c
+index 57bdcb2..dd44694 100644
+--- a/kernel/cpt/cpt_process.c
++++ b/kernel/cpt/cpt_process.c
+@@ -712,10 +712,6 @@ static int dump_one_signal_struct(cpt_object_t *obj, struct cpt_context *ctx)
+
+ int cpt_check_unsupported(struct task_struct *tsk, cpt_context_t *ctx)
+ {
+- if (tsk->splice_pipe) {
+- eprintk_ctx("splice is used by " CPT_FID "\n", CPT_TID(tsk));
+- return -EBUSY;
+- }
+ #ifdef CONFIG_KEYS
+ if (tsk->request_key_auth || tsk->thread_keyring) {
+ eprintk_ctx("keys are used by " CPT_FID "\n", CPT_TID(tsk));
--- /dev/null
+From: Konstantin Khlebnikov <khlebnikov@openvz.org>
+Date: Mon, 5 Apr 2010 11:43:18 +0000 (+0400)
+Subject: ve: fix ve task state percpu counters
+X-Git-Url: http://git.openvz.org/?p=linux-2.6.27-openvz;a=commitdiff_plain;h=762c78b5d7f1c293133651ac2096179f161ef0c0;hp=f83e9da10c15dcb6532a1d1bf3e46a4758c7ad97
+
+ve: fix ve task state percpu counters
+
+Counters overlap detection for ve tasks in running/uninterraprible/iowait state
+was broken due to type mismatch:
+nr_{running/unin..e/iowait}_ve() uses _long_ for summing _int_ percpu counters.
+
+As result, it broke ve loadavg calculation after first int overlap.
+
+This patch expand all this percpu counters to unsigned long.
+
+http://bugzilla.openvz.org/show_bug.cgi?id=1396
+
+Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
+Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
+---
+
+diff --git a/include/linux/ve.h b/include/linux/ve.h
+index 7d12746..821a2be 100644
+--- a/include/linux/ve.h
++++ b/include/linux/ve.h
+@@ -129,9 +129,9 @@ struct ve_cpu_stats {
+ cycles_t strt_idle_time;
+ cycles_t used_time;
+ seqcount_t stat_lock;
+- int nr_running;
+- int nr_unint;
+- int nr_iowait;
++ unsigned long nr_running;
++ unsigned long nr_unint;
++ unsigned long nr_iowait;
+ cputime64_t user;
+ cputime64_t nice;
+ cputime64_t system;
--- /dev/null
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/openvz-sources/openvz-sources-2.6.27.4.1-r1.ebuild,v 1.1 2010/04/16 09:48:23 pva Exp $
+
+inherit versionator
+
+# Upstream uses string to version their releases. To make portage version
+# comparisment working we have to use numbers instead of strings, that is 4th
+# component of our version. So we have aivazovsky - 1, briullov - 2 and so on.
+# Keep this string on top since we have to modify it each new release.
+OVZ_CODENAME="kiprensky"
+OVZ_CODENAME_SUBRELEASE=$(get_version_component_range 5)
+
+#http://download.openvz.org/kernel/branches/2.6.27/2.6.27-chistyakov.1/patches/patch-chistyakov.1-combined.gz
+
+OVZ_KV="${OVZ_CODENAME}.${OVZ_CODENAME_SUBRELEASE}"
+
+ETYPE="sources"
+
+CKV=$(get_version_component_range 1-3)
+OKV=${OKV:-${CKV}}
+EXTRAVERSION=-${PN/-*}-${OVZ_KV}
+KV_FULL=${CKV}${EXTRAVERSION}
+if [[ ${PR} != r0 ]]; then
+ KV_FULL+=-${PR}
+ EXTRAVERSION+=-${PR}
+fi
+
+# ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} should succeed.
+KV_MAJOR=$(get_version_component_range 1 ${OKV})
+KV_MINOR=$(get_version_component_range 2 ${OKV})
+KV_PATCH=$(get_version_component_range 3 ${OKV})
+
+KERNEL_URI="mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/linux-${OKV}.tar.bz2"
+
+inherit kernel-2
+detect_version
+
+SLOT=${CKV}-${OVZ_KV}
+if [[ ${PR} != r0 ]]; then
+ SLOT+=-${PR}
+fi
+
+KEYWORDS="~amd64 ~ia64 ~ppc64 ~sparc ~x86"
+IUSE=""
+
+DESCRIPTION="Kernel sources with OpenVZ patchset"
+HOMEPAGE="http://www.openvz.org"
+SRC_URI="${KERNEL_URI} ${ARCH_URI}
+ http://download.openvz.org/kernel/branches/${CKV}/${CKV}-${OVZ_KV}/patches/patch-${OVZ_KV}-combined.gz"
+
+UNIPATCH_STRICTORDER=1
+UNIPATCH_LIST="${DISTDIR}/patch-${OVZ_KV}-combined.gz
+${FILESDIR}/openvz-sources-2.6.27.4.1-CAP_VE.patch
+${FILESDIR}/openvz-sources-2.6.27.4.1-signal-curr_target.patch
+${FILESDIR}/openvz-sources-2.6.27.4.1-hrtimer.patch
+${FILESDIR}/openvz-sources-2.6.27.4.1-splice.patch
+${FILESDIR}/openvz-sources-2.6.27.4.1-nfs-flags.patch
+${FILESDIR}/openvz-sources-2.6.27.4.1-task-state-percpu-counters.patch
+"
+
+K_EXTRAEINFO="For more information about this kernel take a look at:
+http://wiki.openvz.org/Download/kernel/${CKV}/${CKV}-${OVZ_KV}"