---- linux-2.6.35.4/security/commoncap.c 2010-08-02 16:53:03.000000000 +0200
-+++ linux-2.6.35.4-vs2.3.0.36.32/security/commoncap.c 2010-08-02 17:05:06.000000000 +0200
-@@ -951,4 +969,3 @@ int cap_file_mmap(struct file *file, uns
- }
- return ret;
- }
--
-diff -NurpP linux-2.6.36-vs2.3.0.36.38/include/linux/cred.h linux-2.6.36-vs2.3.0.36.38.2/include/linux/cred.h
---- linux-2.6.36-vs2.3.0.36.38/include/linux/cred.h 2010-08-02 16:52:53.000000000 +0200
-+++ linux-2.6.36-vs2.3.0.36.38.2/include/linux/cred.h 2010-12-01 17:26:52.000000000 +0100
-@@ -208,6 +208,31 @@ static inline void validate_process_cred
- }
- #endif
-
-+static inline void set_cred_subscribers(struct cred *cred, int n)
-+{
-+#ifdef CONFIG_DEBUG_CREDENTIALS
-+ atomic_set(&cred->subscribers, n);
-+#endif
-+}
-+
-+static inline int read_cred_subscribers(const struct cred *cred)
-+{
-+#ifdef CONFIG_DEBUG_CREDENTIALS
-+ return atomic_read(&cred->subscribers);
-+#else
-+ return 0;
-+#endif
-+}
-+
-+static inline void alter_cred_subscribers(const struct cred *_cred, int n)
-+{
-+#ifdef CONFIG_DEBUG_CREDENTIALS
-+ struct cred *cred = (struct cred *) _cred;
-+
-+ atomic_add(n, &cred->subscribers);
-+#endif
-+}
-+
- /**
- * get_new_cred - Get a reference on a new set of credentials
- * @cred: The new credentials to reference
-diff -NurpP linux-2.6.36-vs2.3.0.36.38/include/linux/vserver/context.h linux-2.6.36-vs2.3.0.36.38.2/include/linux/vserver/context.h
---- linux-2.6.36-vs2.3.0.36.38/include/linux/vserver/context.h 2010-10-21 13:09:36.000000000 +0200
-+++ linux-2.6.36-vs2.3.0.36.38.2/include/linux/vserver/context.h 2010-12-01 17:36:51.000000000 +0100
-@@ -110,6 +110,8 @@ struct vx_info {
- unsigned long vx_nsmask[VX_SPACES]; /* assignment mask */
- struct nsproxy *vx_nsproxy[VX_SPACES]; /* private namespaces */
- struct fs_struct *vx_fs[VX_SPACES]; /* private namespace fs */
-+ const struct cred *vx_real_cred; /* real task credentials */
-+ const struct cred *vx_cred; /* task credentials */
-
- uint64_t vx_flags; /* context flags */
- uint64_t vx_ccaps; /* context caps (vserver) */
-diff -NurpP linux-2.6.36-vs2.3.0.36.38/kernel/cred.c linux-2.6.36-vs2.3.0.36.38.2/kernel/cred.c
---- linux-2.6.36-vs2.3.0.36.38/kernel/cred.c 2010-10-21 13:07:56.000000000 +0200
-+++ linux-2.6.36-vs2.3.0.36.38.2/kernel/cred.c 2010-12-01 17:25:55.000000000 +0100
-@@ -60,31 +60,6 @@ struct cred init_cred = {
- #endif
- };
-
--static inline void set_cred_subscribers(struct cred *cred, int n)
--{
--#ifdef CONFIG_DEBUG_CREDENTIALS
-- atomic_set(&cred->subscribers, n);
--#endif
--}
--
--static inline int read_cred_subscribers(const struct cred *cred)
--{
--#ifdef CONFIG_DEBUG_CREDENTIALS
-- return atomic_read(&cred->subscribers);
--#else
-- return 0;
--#endif
--}
--
--static inline void alter_cred_subscribers(const struct cred *_cred, int n)
--{
--#ifdef CONFIG_DEBUG_CREDENTIALS
-- struct cred *cred = (struct cred *) _cred;
+
+diff -NurpP --minimal linux-4.9.217-vs2.3.9.12/fs/proc/array.c linux-4.9.217-vs2.3.9.13/fs/proc/array.c
+--- linux-4.9.217-vs2.3.9.12/fs/proc/array.c 2019-10-05 14:58:45.660307716 +0000
++++ linux-4.9.217-vs2.3.9.13/fs/proc/array.c 2020-04-19 00:54:52.163080084 +0000
+@@ -567,17 +567,6 @@ static int do_task_stat(struct seq_file
+ /* convert nsec -> ticks */
+ start_time = nsec_to_clock_t(task->real_start_time);
+
+- /* fixup start time for virt uptime */
+- if (vx_flags(VXF_VIRT_UPTIME, 0)) {
+- unsigned long long bias =
+- current->vx_info->cvirt.bias_clock;