Author: waldi
Date: Sat Aug 12 14:41:22 2006
New Revision: 7143

Added:
   dists/sid/linux-2.6/debian/patches/series/7-extra
   dists/sid/linux-2.6/debian/patches/vserver-vs2.0.2-rc28-update.patch   
(contents, props changed)
Modified:
   dists/sid/linux-2.6/debian/changelog

Log:
Update vserver patch to 2.0.2-rc29.

* debian/changelog: Update.
* debian/patches/series/7-extra: Add vserver-vs2.0.2-rc28-update.patch.
* debian/patches/vserver-vs2.0.2-rc28-update.patch: Add.


Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog        (original)
+++ dists/sid/linux-2.6/debian/changelog        Sat Aug 12 14:41:22 2006
@@ -8,7 +8,10 @@
   [ Kyle McMartin ]
   * Apply patch to fix pa8800 (mostly...)
 
- -- Martin Michlmayr <[EMAIL PROTECTED]>  Fri, 11 Aug 2006 22:49:46 +0200
+  [ Bastian Blank ]
+  * Update vserver patch to 2.0.2-rc29.
+
+ -- Bastian Blank <[EMAIL PROTECTED]>  Sat, 12 Aug 2006 05:53:22 +0200
 
 linux-2.6 (2.6.17-6) unstable; urgency=low
 

Added: dists/sid/linux-2.6/debian/patches/series/7-extra
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/series/7-extra   Sat Aug 12 14:41:22 2006
@@ -0,0 +1 @@
++ vserver-vs2.0.2-rc28-update.patch *_vserver *_xen-vserver

Added: dists/sid/linux-2.6/debian/patches/vserver-vs2.0.2-rc28-update.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/vserver-vs2.0.2-rc28-update.patch        
Sat Aug 12 14:41:22 2006
@@ -0,0 +1,255 @@
+diff -u linux-2.6.17-vs2.0.2-rc24/arch/v850/kernel/ptrace.c 
linux-2.6.17.7-vs2.0.2-rc28/arch/v850/kernel/ptrace.c
+--- linux-2.6.17-vs2.0.2-rc24/arch/v850/kernel/ptrace.c        2006-06-18 
05:02:55 +0200
++++ linux-2.6.17.7-vs2.0.2-rc28/arch/v850/kernel/ptrace.c      2006-07-27 
19:01:39 +0200
+@@ -117,6 +117,9 @@
+ {
+       int rval;
+ 
++      if (!vx_check(vx_task_xid(child), VX_WATCH|VX_IDENT))
++              goto out;
++
+       switch (request) {
+               unsigned long val, copied;
+ 
+@@ -137,8 +140,6 @@
+                       break;
+               rval = -EIO;
+               goto out;
+-      if (!vx_check(vx_task_xid(child), VX_WATCH|VX_IDENT))
+-              goto out_tsk;
+ 
+       /* Read/write the word at location ADDR in the registers.  */
+       case PTRACE_PEEKUSR:
+reverted:
+--- linux-2.6.17-vs2.0.2-rc24/fs/dquot.c       2006-06-18 17:37:41 +0200
++++ linux-2.6.17/fs/dquot.c    2006-06-18 04:54:33 +0200
+@@ -458,7 +458,6 @@
+       spin_unlock(&dq_list_lock);
+ }
+ 
+-
+ int vfs_quota_sync(struct super_block *sb, int type)
+ {
+       struct list_head *dirty;
+@@ -668,6 +667,7 @@
+ #ifdef __DQUOT_PARANOIA
+       BUG_ON(!dquot->dq_sb);  /* Has somebody invalidated entry under us? */
+ #endif
++
+       return dquot;
+ }
+ 
+diff -u linux-2.6.17-vs2.0.2-rc24/fs/namespace.c 
linux-2.6.17.7-vs2.0.2-rc28/fs/namespace.c
+--- linux-2.6.17-vs2.0.2-rc24/fs/namespace.c   2006-06-18 05:28:30 +0200
++++ linux-2.6.17.7-vs2.0.2-rc28/fs/namespace.c 2006-08-05 04:03:48 +0200
+@@ -449,17 +449,27 @@
+       struct vfsmount *mnt = v;
+       int err = 0;
+ 
+-      /* device */
+-      if (mnt->mnt_devname) {
+-              seq_puts(m, "device ");
+-              mangle(m, mnt->mnt_devname);
+-      } else
+-              seq_puts(m, "no device");
+-
+-      /* mount point */
+-      seq_puts(m, " mounted on ");
+-      seq_path(m, mnt, mnt->mnt_root, " \t\n\\");
+-      seq_putc(m, ' ');
++      if (vx_flags(VXF_HIDE_MOUNT, 0))
++              return 0;
++      if (!mnt_is_reachable(mnt) && !vx_check(0, VX_WATCH))
++              return 0;
++
++      if (!vx_check(0, VX_ADMIN|VX_WATCH) &&
++              mnt == current->fs->rootmnt) {
++              seq_puts(m, "device /dev/root mounted on / ");
++      } else {
++              /* device */
++              if (mnt->mnt_devname) {
++                      seq_puts(m, "device ");
++                      mangle(m, mnt->mnt_devname);
++              } else
++                      seq_puts(m, "no device");
++
++              /* mount point */
++              seq_puts(m, " mounted on ");
++              seq_path(m, mnt, mnt->mnt_root, " \t\n\\");
++              seq_putc(m, ' ');
++      }
+ 
+       /* file system type */
+       seq_puts(m, "with fstype ");
+@@ -558,11 +568,15 @@
+       }
+ }
+ 
+-static inline void __umount_list(struct vfsmount *mnt,
+-      int propagate, struct list_head *kill)
++void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill)
+ {
+       struct vfsmount *p;
+ 
++      for (p = mnt; p; p = next_mnt(p, mnt)) {
++              list_del(&p->mnt_hash);
++              list_add(&p->mnt_hash, kill);
++      }
++
+       if (propagate)
+               propagate_umount(kill);
+ 
+@@ -578,33 +592,6 @@
+       }
+ }
+ 
+-void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill)
+-{
+-      struct vfsmount *p;
+-
+-      for (p = mnt; p; p = next_mnt(p, mnt)) {
+-              list_del(&p->mnt_hash);
+-              list_add(&p->mnt_hash, kill);
+-              // p->mnt_namespace = NULL;
+-      }
+-      __umount_list(mnt, propagate, kill);
+-}
+-
+-void umount_unused(struct vfsmount *mnt, struct fs_struct *fs)
+-{
+-      struct vfsmount *p;
+-      LIST_HEAD(kill);
+-
+-      for (p = mnt; p; p = next_mnt(p, mnt)) {
+-              if (p == fs->rootmnt || p == fs->pwdmnt)
+-                      continue;
+-              list_del(&p->mnt_list);
+-              list_add(&p->mnt_list, &kill);
+-              p->mnt_namespace = NULL;
+-      }
+-      __umount_list(mnt, 0, &kill);
+-}
+-
+ static int do_umount(struct vfsmount *mnt, int flags)
+ {
+       struct super_block *sb = mnt->mnt_sb;
+diff -u linux-2.6.17-vs2.0.2-rc24/include/asm-i386/elf.h 
linux-2.6.17.7-vs2.0.2-rc28/include/asm-i386/elf.h
+--- linux-2.6.17-vs2.0.2-rc24/include/asm-i386/elf.h   2006-06-18 05:03:04 
+0200
++++ linux-2.6.17.7-vs2.0.2-rc28/include/asm-i386/elf.h 2006-07-27 19:01:39 
+0200
+@@ -71,7 +71,7 @@
+    the loader.  We need to make sure that it is out of the way of the program
+    that it will "exec", and that there is sufficient room for the brk.  */
+ 
+-#define ELF_ET_DYN_BASE               ((TASK_UNMAPPED_BASE) * 2)
++#define ELF_ET_DYN_BASE       (TASK_SIZE / 3 * 2)
+ 
+ /* regs is struct pt_regs, pr_reg is elf_gregset_t (which is
+    now struct_user_regs, they are different) */
+reverted:
+--- linux-2.6.17-vs2.0.2-rc24/include/linux/namespace.h        2006-06-18 
05:03:04 +0200
++++ linux-2.6.17/include/linux/namespace.h     2006-02-18 14:40:34 +0100
+@@ -16,7 +16,6 @@
+ extern int copy_namespace(int, struct task_struct *);
+ extern void __put_namespace(struct namespace *namespace);
+ extern struct namespace *dup_namespace(struct task_struct *, struct fs_struct 
*);
+-extern void umount_unused(struct vfsmount *, struct fs_struct *);
+ 
+ static inline void put_namespace(struct namespace *namespace)
+ {
+diff -u linux-2.6.17-vs2.0.2-rc24/include/linux/vserver/namespace_cmd.h 
linux-2.6.17.7-vs2.0.2-rc28/include/linux/vserver/namespace_cmd.h
+--- linux-2.6.17-vs2.0.2-rc24/include/linux/vserver/namespace_cmd.h    
2006-06-18 05:03:05 +0200
++++ linux-2.6.17.7-vs2.0.2-rc28/include/linux/vserver/namespace_cmd.h  
2006-07-27 19:01:39 +0200
+@@ -3,7 +3,6 @@
+ 
+ 
+ #define VCMD_enter_namespace  VC_CMD(PROCALT, 1, 0)
+-#define VCMD_cleanup_namespace        VC_CMD(PROCALT, 2, 0)
+ 
+ #define VCMD_set_namespace_v0 VC_CMD(PROCALT, 3, 0)
+ #define VCMD_set_namespace    VC_CMD(PROCALT, 3, 1)
+@@ -12,7 +11,6 @@
+ #ifdef        __KERNEL__
+ 
+ extern int vc_enter_namespace(uint32_t, void __user *);
+-extern int vc_cleanup_namespace(uint32_t, void __user *);
+ extern int vc_set_namespace(uint32_t, void __user *);
+ 
+ #endif        /* __KERNEL__ */
+diff -u linux-2.6.17-vs2.0.2-rc24/kernel/exit.c 
linux-2.6.17.7-vs2.0.2-rc28/kernel/exit.c
+--- linux-2.6.17-vs2.0.2-rc24/kernel/exit.c    2006-06-18 05:28:31 +0200
++++ linux-2.6.17.7-vs2.0.2-rc28/kernel/exit.c  2006-07-26 21:36:28 +0200
+@@ -729,7 +729,6 @@
+       list_for_each_safe(_p, _n, &father->ptrace_children) {
+               p = list_entry(_p,struct task_struct,ptrace_list);
+               /* check for reaper context */
+-              BUG_ON(p->xid != reaper->xid);
+               choose_new_parent(p, reaper);
+               reparent_thread(p, father, 1);
+       }
+diff -u linux-2.6.17-vs2.0.2-rc24/kernel/sys.c 
linux-2.6.17.7-vs2.0.2-rc28/kernel/sys.c
+--- linux-2.6.17-vs2.0.2-rc24/kernel/sys.c     2006-06-18 05:28:31 +0200
++++ linux-2.6.17.7-vs2.0.2-rc28/kernel/sys.c   2006-07-26 21:36:28 +0200
+@@ -1698,7 +1698,7 @@
+       int errno;
+       char tmp[__NEW_UTS_LEN];
+ 
+-      if (!capable(CAP_SYS_ADMIN))
++      if (!vx_capable(CAP_SYS_ADMIN, VXC_SET_UTSNAME))
+               return -EPERM;
+       if (len < 0 || len > __NEW_UTS_LEN)
+               return -EINVAL;
+diff -u linux-2.6.17-vs2.0.2-rc24/kernel/vserver/cvirt.c 
linux-2.6.17.7-vs2.0.2-rc28/kernel/vserver/cvirt.c
+--- linux-2.6.17-vs2.0.2-rc24/kernel/vserver/cvirt.c   2006-06-18 05:28:31 
+0200
++++ linux-2.6.17.7-vs2.0.2-rc28/kernel/vserver/cvirt.c 2006-07-27 19:45:30 
+0200
+@@ -68,8 +68,9 @@
+       uint32_t now, last, delta;
+       unsigned int nr_running, nr_uninterruptible;
+       unsigned int total;
++      unsigned long flags;
+ 
+-      spin_lock(&vxi->cvirt.load_lock);
++      spin_lock_irqsave(&vxi->cvirt.load_lock, flags);
+ 
+       now = jiffies;
+       last = vxi->cvirt.load_last;
+@@ -92,7 +93,7 @@
+       vxi->cvirt.load_last = now;
+ out:
+       atomic_inc(&vxi->cvirt.load_updates);
+-      spin_unlock(&vxi->cvirt.load_lock);
++      spin_unlock_irqrestore(&vxi->cvirt.load_lock, flags);
+ }
+ 
+ 
+diff -u linux-2.6.17-vs2.0.2-rc24/kernel/vserver/namespace.c 
linux-2.6.17.7-vs2.0.2-rc28/kernel/vserver/namespace.c
+--- linux-2.6.17-vs2.0.2-rc24/kernel/vserver/namespace.c       2006-06-18 
05:28:31 +0200
++++ linux-2.6.17.7-vs2.0.2-rc28/kernel/vserver/namespace.c     2006-07-27 
19:01:39 +0200
+@@ -85,16 +85,6 @@
+       return ret;
+ }
+ 
+-int vc_cleanup_namespace(uint32_t id, void __user *data)
+-{
+-      // down_write(&current->namespace->sem);
+-      spin_lock(&vfsmount_lock);
+-      umount_unused(current->namespace->root, current->fs);
+-      spin_unlock(&vfsmount_lock);
+-      // up_write(&current->namespace->sem);
+-      return 0;
+-}
+-
+ int vc_set_namespace(uint32_t id, void __user *data)
+ {
+       struct fs_struct *fs;
+diff -u linux-2.6.17-vs2.0.2-rc24/kernel/vserver/switch.c 
linux-2.6.17.7-vs2.0.2-rc28/kernel/vserver/switch.c
+--- linux-2.6.17-vs2.0.2-rc24/kernel/vserver/switch.c  2006-06-18 05:28:31 
+0200
++++ linux-2.6.17.7-vs2.0.2-rc28/kernel/vserver/switch.c        2006-07-27 
19:01:39 +0200
+@@ -111,8 +111,6 @@
+               return vc_set_namespace(-1, data);
+       case VCMD_set_namespace:
+               return vc_set_namespace(id, data);
+-      case VCMD_cleanup_namespace:
+-              return vc_cleanup_namespace(id, data);
+       }
+ 
+       /* those are allowed while in setup too */

_______________________________________________
Kernel-svn-changes mailing list
Kernel-svn-changes@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to