diff -Nurb linux-2.6.22-594/net/core/dev.c linux-2.6.22-595/net/core/dev.c --- linux-2.6.22-594/net/core/dev.c 2008-03-20 01:27:55.000000000 -0400 +++ linux-2.6.22-595/net/core/dev.c 2008-03-20 01:32:22.000000000 -0400 @@ -2207,7 +2207,7 @@ total = 0; for_each_netdev(net, dev) { - if (!nx_dev_visible(current->nx_info, dev)) + if (net==&init_net && !nx_dev_visible(current->nx_info, dev)) continue; for (i = 0; i < NPROTO; i++) { if (gifconf_list[i]) { @@ -2274,8 +2274,9 @@ static void dev_seq_printf_stats(struct seq_file *seq, struct net_device *dev) { struct net_device_stats *stats = dev->get_stats(dev); + struct net *net = seq->private; - if (!nx_dev_visible(current->nx_info, dev)) + if (net==&init_net && !nx_dev_visible(current->nx_info, dev)) return; seq_printf(seq, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu " diff -Nurb linux-2.6.22-594/net/core/net_namespace.c linux-2.6.22-595/net/core/net_namespace.c --- linux-2.6.22-594/net/core/net_namespace.c 2008-03-20 01:27:51.000000000 -0400 +++ linux-2.6.22-595/net/core/net_namespace.c 2008-03-20 01:28:00.000000000 -0400 @@ -112,10 +112,12 @@ ops = list_entry(ptr, struct pernet_operations, list); if (ops->init) { error = ops->init(net); - if (error < 0) + if (error < 0) { + printk(KERN_ALERT "Error setting up netns: %x\n", ops->init); goto out_undo; } } + } out: return error; out_undo: diff -Nurb linux-2.6.22-594/net/socket.c linux-2.6.22-595/net/socket.c --- linux-2.6.22-594/net/socket.c 2008-03-20 01:27:52.000000000 -0400 +++ linux-2.6.22-595/net/socket.c 2008-03-20 01:28:00.000000000 -0400 @@ -1122,12 +1122,17 @@ if (type < 0 || type >= SOCK_MAX) return -EINVAL; + /* + * Hack no. 2 - Sapan + * Clean this up later + * if (!nx_check(0, VS_ADMIN)) { if (family == PF_INET && !current_nx_info_has_v4()) return -EAFNOSUPPORT; if (family == PF_INET6 && !current_nx_info_has_v6()) return -EAFNOSUPPORT; } + */ /* Compatibility.