diff -NurpP linux-2.6.16-vs2.1.1-rc15.3/include/linux/vserver/sched_cmd.h linux-2.6.16-vs2.1.1-rc15.5/include/linux/vserver/sched_cmd.h --- linux-2.6.16-vs2.1.1-rc15.3/include/linux/vserver/sched_cmd.h 2006-03-20 18:09:05 +0100 +++ linux-2.6.16-vs2.1.1-rc15.5/include/linux/vserver/sched_cmd.h 2006-04-12 01:54:42 +0200 @@ -51,6 +51,7 @@ struct vcmd_set_sched_v4 { #define VXSM_IDLE_TIME 0x0200 #define VXSM_V3_MASK 0x0173 +#define VXSM_SET_MASK 0x01FF #define VXSM_CPU_ID 0x1000 #define VXSM_BUCKET_ID 0x2000 diff -NurpP linux-2.6.16-vs2.1.1-rc15.3/kernel/vserver/sched.c linux-2.6.16-vs2.1.1-rc15.5/kernel/vserver/sched.c --- linux-2.6.16-vs2.1.1-rc15.3/kernel/vserver/sched.c 2006-04-12 01:05:08 +0200 +++ linux-2.6.16-vs2.1.1-rc15.5/kernel/vserver/sched.c 2006-04-12 01:54:01 +0200 @@ -187,6 +187,7 @@ on_hold: int do_set_sched(struct vx_info *vxi, struct vcmd_set_sched_v4 *data) { unsigned int set_mask = data->set_mask; + unsigned int update_mask; /* Sanity check data values */ if (data->fill_rate < 0) @@ -224,7 +225,9 @@ int do_set_sched(struct vx_info *vxi, st if (set_mask & VXSM_PRIO_BIAS) vxi->sched.prio_bias = data->prio_bias; - vxi->sched.update_mask |= set_mask; + update_mask = vxi->sched.update_mask & VXSM_SET_MASK; + update_mask |= (set_mask & (VXSM_SET_MASK|VXSM_IDLE_TIME)); + vxi->sched.update_mask = update_mask; #ifdef CONFIG_SMP rmb(); if (set_mask & VXSM_CPU_ID)