Second patch set

Alan Cox (iialan@iifeak.swan.ac.uk)
Mon, 13 May 96 16:06 BST


--- ./fs/locks.c.old Sun May 12 17:34:30 1996
+++ ./fs/locks.c Mon May 13 01:54:37 1996
@@ -75,6 +75,10 @@
* Fixed deadlock condition for pathological code that mixes calls to
* flock() and fcntl().
* Andy Walker (andy@lysaker.kvaerner.no), April 29, 1996.
+ *
+ * BUG: MUST DISALLOW MANDATORY LOCK ON NFS/SMB/NCP FILE SYSTEM
+ * TO MATCH SYS5.4 SEMANTICS.
+ *
*/

#include <linux/malloc.h>
@@ -336,6 +340,7 @@

int locks_mandatory_locked(struct inode *inode)
{
+#ifdef CONFIG_LOCK_MANDATORY
struct file_lock *fl;

/* Search the lock list for this inode for any POSIX locks.
@@ -344,6 +349,7 @@
if ((fl->fl_flags & F_POSIX) && (fl->fl_owner != current))
return (-EAGAIN);
}
+#endif
return (0);
}

@@ -353,16 +359,19 @@
/* Candidates for mandatory locking have the setgid bit set
* but no group execute bit - an otherwise meaningless combination.
*/
+#ifdef CONFIG_LOCK_MANDATORY
if ((inode->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID)
return (locks_mandatory_area(read_write, inode, filp, offset,
count));
+#endif
return (0);
}
-
+
int locks_mandatory_area(int read_write, struct inode *inode,
struct file *filp, unsigned int offset,
unsigned int count)
{
+#ifdef CONFIG_LOCK_MANDATORY
struct file_lock *fl;

repeat:
@@ -401,6 +410,7 @@
goto repeat;
}
}
+#endif
return (0);
}

--- ./fs/Config.in.old Sun May 12 17:34:28 1996
+++ ./fs/Config.in Mon May 13 00:34:00 1996
@@ -5,6 +5,7 @@
comment 'Filesystems'

bool 'Quota support' CONFIG_QUOTA
+bool 'Mandatory lock support' CONFIG_LOCK_MANDATORY
tristate 'Minix fs support' CONFIG_MINIX_FS
tristate 'Extended fs support' CONFIG_EXT_FS
tristate 'Second extended fs support' CONFIG_EXT2_FS
--- ./net/unix/garbage.c.old Sun May 12 18:28:33 1996
+++ ./net/unix/garbage.c Mon May 13 00:39:18 1996
@@ -259,8 +259,15 @@
* We exist only in the passing tree of sockets
* that is no longer connected to active descriptors
* Time to die..
+ *
+ * Subtle item: We will correctly sweep out the
+ * socket that has just been closed by the user.
+ * We must not close this as we are in the middle
+ * of its close at this moment. Skip that file
+ * using f_count==0 to spot it.
*/
- if(s->socket && s->socket->file)
+
+ if(s->socket && s->socket->file && s->socket->file->f_count)
close_fp(s->socket->file);
}
else
--- ./net/unix/af_unix.c.old Sun May 12 18:28:36 1996
+++ ./net/unix/af_unix.c Mon May 13 01:12:01 1996
@@ -1086,7 +1086,7 @@
)
{
kfree(cm);
- printk("recvmsg: Bad msg_accrights\n");
+/* printk("recvmsg: Bad msg_accrights\n");*/
return -EINVAL;
}
}
@@ -1306,7 +1306,7 @@

void unix_proto_init(struct net_proto *pro)
{
- printk("NET3: Unix domain sockets 0.12 for Linux NET3.033.\n");
+ printk(KERN_INFO "NET3: Unix domain sockets 0.12 for Linux NET3.035.\n");
sock_register(unix_proto_ops.family, &unix_proto_ops);
#ifdef CONFIG_PROC_FS
proc_net_register(&(struct proc_dir_entry) {
--- ./net/appletalk/aarp.c.old Mon May 13 00:57:58 1996
+++ ./net/appletalk/aarp.c Mon May 13 00:58:09 1996
@@ -794,7 +794,7 @@
void aarp_proto_init(void)
{
if((aarp_dl=register_snap_client(aarp_snap_id, aarp_rcv))==NULL)
- printk("Unable to register AARP with SNAP.\n");
+ printk(KERN_CRIT "Unable to register AARP with SNAP.\n");
init_timer(&aarp_timer);
aarp_timer.function=aarp_expire_timeout;
aarp_timer.data=0;
--- ./net/appletalk/ddp.c.old Mon May 13 00:58:13 1996
+++ ./net/appletalk/ddp.c Mon May 13 01:03:01 1996
@@ -830,7 +830,7 @@
limit=ntohs(nr->nr_lastnet);
if(limit-ntohs(nr->nr_firstnet) > 256)
{
- printk("Too many routes/iface.\n");
+ printk(KERN_WARING "Too many routes/iface.\n");
return -EINVAL;
}
for(ct=ntohs(nr->nr_firstnet);ct<=limit;ct++)
@@ -2013,7 +2013,7 @@
{
(void) sock_register(atalk_proto_ops.family, &atalk_proto_ops);
if ((ddp_dl = register_snap_client(ddp_snap_id, atalk_rcv)) == NULL)
- printk("Unable to register DDP with SNAP.\n");
+ printk(KERN_CRIT "Unable to register DDP with SNAP.\n");

ltalk_packet_type.type=htons(ETH_P_LOCALTALK);
dev_add_pack(&ltalk_packet_type);
@@ -2043,7 +2043,7 @@
atalk_if_get_info
});

- printk(KERN_INFO "Appletalk 0.17 for Linux NET3.034\n");
+ printk(KERN_INFO "Appletalk 0.17 for Linux NET3.035\n");
}

#ifdef MODULE
--- ./net/ax25/af_ax25.c.old Mon May 13 00:53:49 1996
+++ ./net/ax25/af_ax25.c Mon May 13 00:55:25 1996
@@ -636,8 +636,10 @@
case AX25_PACLEN:
if (ax25_ctl.arg < 16 || ax25_ctl.arg > 65535)
return -EINVAL;
+#if 0
if (ax25_ctl.arg > 256) /* we probably want this */
- printk("ax25_ctl_ioctl: Warning --- huge paclen %d\n", (int)ax25_ctl.arg);
+ printk(KERN_WARNING "ax25_ctl_ioctl: Warning --- huge paclen %d\n", (int)ax25_ctl.arg);
+#endif
ax25->paclen = ax25_ctl.arg;
break;

@@ -2413,7 +2415,7 @@
ax25_cs_get_info
});

- printk("G4KLX/GW4PTS AX.25 for Linux. Version 0.32 BETA for Linux NET3.034 (Linux 1.3.77)\n");
+ printk(KERN_INFO "G4KLX/GW4PTS AX.25 for Linux. Version 0.32 BETA for Linux NET3.035 (Linux 2.0)\n");

#ifdef CONFIG_BPQETHER
proc_net_register(&(struct proc_dir_entry) {
@@ -2423,7 +2425,7 @@
ax25_bpq_get_info
});

- printk("G8BPQ Encapsulation of AX.25 frames enabled\n");
+ printk(KERN_INFO "G8BPQ Encapsulation of AX.25 frames enabled\n");
#endif
}

@@ -2451,7 +2453,7 @@
int size;

if(skb_headroom(skb) < AX25_BPQ_HEADER_LEN) {
- printk("ax25_queue_xmit: not enough space to add BPQ Ether header\n");
+ printk(KERN_CRIT "ax25_queue_xmit: not enough space to add BPQ Ether header\n");
dev_kfree_skb(skb, FREE_WRITE);
return;
}
@@ -2522,7 +2524,7 @@
*buff++ = AX25_P_ARP;
break;
default:
- printk("wrong protocol type 0x%x2.2\n", type);
+ printk(KERN_ERR "wrong protocol type 0x%x2.2\n", type);
*buff++ = 0;
break;
}
--- ./net/ax25/ax25_out.c.old Mon May 13 00:55:47 1996
+++ ./net/ax25/ax25_out.c Mon May 13 00:56:17 1996
@@ -99,7 +99,7 @@
*/
if ((skbn = alloc_skb(mtu + 2 + frontlen, GFP_ATOMIC)) == NULL) {
restore_flags(flags);
- printk("ax25_output: alloc_skb returned NULL\n");
+ printk(KERN_DEBUG "ax25_output: alloc_skb returned NULL\n");
if (skb_device_locked(skb))
skb_device_unlock(skb);
return;
@@ -268,7 +268,7 @@
}

if (skb_headroom(skb) < size_ax25_addr(ax25->digipeat)) {
- printk("ax25_transmit_buffer: not enough room for digi-peaters\n");
+ printk(KERN_CRIT "ax25_transmit_buffer: not enough room for digi-peaters\n");
skb->free = 1;
kfree_skb(skb, FREE_WRITE);
return;
--- ./net/ax25/ax25_route.c.old Mon May 13 00:56:29 1996
+++ ./net/ax25/ax25_route.c Mon May 13 00:57:06 1996
@@ -598,7 +598,7 @@
len = ax25_rt->digipeat->ndigi * AX25_ADDR_LEN;

if (skb_headroom(skb) < len) {
- printk("ax25_dg_build_path: not enough headroom for digis in skb\n");
+ printk(KERN_CRIT "ax25_dg_build_path: not enough headroom for digis in skb\n");
return;
}

@@ -659,7 +659,7 @@
struct ax25_dev *ax25_dev;

if ((ax25_dev = ax25_dev_get_dev(dev)) == NULL) {
- printk("ax25_dev_get_flag called with invalid device\n");
+ printk(KERN_WARNING "ax25_dev_get_flag called with invalid device\n");
return 1;
}

--- ./net/core/skbuff.c.old Mon May 13 01:03:16 1996
+++ ./net/core/skbuff.c Mon May 13 01:04:39 1996
@@ -69,13 +69,13 @@

void show_net_buffers(void)
{
- printk("Networking buffers in use : %u\n",net_skbcount);
- printk("Network buffers locked by drivers : %u\n",net_locked);
- printk("Total network buffer allocations : %u\n",net_allocs);
- printk("Total failed network buffer allocs : %u\n",net_fails);
- printk("Total free while locked events : %u\n",net_free_locked);
+ printk(KERN_INFO "Networking buffers in use : %u\n",net_skbcount);
+ printk(KERN_INFO "Network buffers locked by drivers : %u\n",net_locked);
+ printk(KERN_INFO "Total network buffer allocations : %u\n",net_allocs);
+ printk(KERN_INFO "Total failed network buffer allocs : %u\n",net_fails);
+ printk(KERN_INFO "Total free while locked events : %u\n",net_free_locked);
#ifdef CONFIG_INET
- printk("IP fragment buffer size : %u\n",ip_frag_mem);
+ printk(KERN_INFO "IP fragment buffer size : %u\n",ip_frag_mem);
#endif
}

@@ -578,7 +578,7 @@
{
if (skb == NULL)
{
- printk("kfree_skb: skb = NULL (from %p)\n",
+ printk(KERN_CRIT "kfree_skb: skb = NULL (from %p)\n",
__builtin_return_address(0));
return;
}
@@ -592,10 +592,10 @@
return;
}
if (skb->free == 2)
- printk("Warning: kfree_skb passed an skb that nobody set the free flag on! (from %p)\n",
+ printk(KERN_WARNING "Warning: kfree_skb passed an skb that nobody set the free flag on! (from %p)\n",
__builtin_return_address(0));
if (skb->list)
- printk("Warning: kfree_skb passed an skb still on a list (from %p).\n",
+ printk(KERN_WARNING "Warning: kfree_skb passed an skb still on a list (from %p).\n",
__builtin_return_address(0));

if(skb->destructor)
@@ -641,7 +641,7 @@
{
static int count = 0;
if (++count < 5) {
- printk("alloc_skb called nonatomically from interrupt %p\n",
+ printk(KERN_ERR "alloc_skb called nonatomically from interrupt %p\n",
__builtin_return_address(0));
priority = GFP_ATOMIC;
}
--- ./net/core/dev.c.old Mon May 13 01:04:52 1996
+++ ./net/core/dev.c Mon May 13 01:05:04 1996
@@ -184,7 +184,7 @@
return;
}
}
- printk("dev_remove_pack: %p not found.\n", pt);
+ printk(KERN_WARNING "dev_remove_pack: %p not found.\n", pt);
}

/*****************************************************************************************
@@ -360,7 +360,7 @@
#ifdef CONFIG_NET_DEBUG
if (pri >= DEV_NUMBUFFS)
{
- printk("bad priority in dev_queue_xmit.\n");
+ printk(KERN_WARNING "bad priority in dev_queue_xmit.\n");
pri = 1;
}
#endif
--- ./net/core/net_alias.c.old Mon May 13 01:05:31 1996
+++ ./net/core/net_alias.c Mon May 13 01:40:56 1996
@@ -157,7 +157,7 @@
if (n_at < 0)
{
restore_flags(flags);
- printk("net_alias: tried to set n_attach < 0 for (family==%d) nat object.\n",
+ printk(KERN_WARNING "net_alias: tried to set n_attach < 0 for (family==%d) nat object.\n",
nat->type);
return -1;
}
@@ -229,7 +229,7 @@
static int
net_alias_hard_start_xmit(struct sk_buff *skb, struct device *dev)
{
- printk("net_alias: net_alias_hard_start_xmit() for %s called (ignored)!!\n", dev->name);
+ printk(KERN_WARNING "net_alias: net_alias_hard_start_xmit() for %s called (ignored)!!\n", dev->name);
dev_kfree_skb(skb, FREE_WRITE);
return 0;
}
@@ -363,7 +363,7 @@
nat = nat_getbytype(family);
if (!nat) {
#endif
- printk("net_alias_dev_create(%s:%d): unregistered family==%d\n",
+ printk(KERN_WARNING "net_alias_dev_create(%s:%d): unregistered family==%d\n",
main_dev->name, slot, family);
/* *err = -EAFNOSUPPORT; */
*err = -EINVAL;
@@ -509,7 +509,7 @@
{
if (!(alias = prevdev->next->my_alias))
{
- printk("ERROR: net_alias_dev_delete(): incorrect non-alias device after maindev\n");
+ printk(KERN_ERR "ERROR: net_alias_dev_delete(): incorrect non-alias device after maindev\n");
continue; /* or should give up? */
}
if (alias->slot == slot) break;
@@ -534,10 +534,10 @@

if (*aliasp != alias)
if ((aliasp = net_alias_slow_findp(alias_info, alias)))
- printk("net_alias_dev_delete(%s): bad hashing recovered\n", alias->name);
+ printk(KERN_WARNING "net_alias_dev_delete(%s): bad hashing recovered\n", alias->name);
else
{
- printk("ERROR: net_alias_dev_delete(%s): unhashed alias!\n",alias->name);
+ printk(KERN_ERR "ERROR: net_alias_dev_delete(%s): unhashed alias!\n",alias->name);
return NULL; /* ENODEV */
}

@@ -654,11 +654,11 @@
continue;
}
else
- printk("net_alias_free(%s): '%s' is not my alias\n",
+ printk(KERN_ERR "net_alias_free(%s): '%s' is not my alias\n",
main_dev->name, alias->name);
}
else
- printk("net_alias_free(%s): found a non-alias after device!\n",
+ printk(KERN_ERR "net_alias_free(%s): found a non-alias after device!\n",
main_dev->name);
dev = dev->next;
}
@@ -760,7 +760,7 @@

if (!sa)
{
- printk("ERROR: net_alias_rehash(): NULL sockaddr passed\n");
+ printk(KERN_ERR "ERROR: net_alias_rehash(): NULL sockaddr passed\n");
return -1;
}

@@ -770,7 +770,7 @@

if ( (main_dev = alias->main_dev) == NULL )
{
- printk("ERROR: net_alias_rehash for %s: NULL maindev\n", alias->name);
+ printk(KERN_ERR "ERROR: net_alias_rehash for %s: NULL maindev\n", alias->name);
return -1;
}

@@ -780,7 +780,7 @@

if (!(alias_info=main_dev->alias_info))
{
- printk("ERROR: net_alias_rehash for %s: NULL alias_info\n", alias->name);
+ printk(KERN_ERR "ERROR: net_alias_rehash for %s: NULL alias_info\n", alias->name);
return -1;
}

@@ -791,7 +791,7 @@
o_nat = alias->nat;
if (!o_nat)
{
- printk("ERROR: net_alias_rehash(%s): unbound alias.\n", alias->name);
+ printk(KERN_ERR "ERROR: net_alias_rehash(%s): unbound alias.\n", alias->name);
return -1;
}

@@ -806,7 +806,7 @@
n_nat = nat_getbytype(sa->sa_family);
if (!n_nat)
{
- printk("ERROR: net_alias_rehash(%s): unreg family==%d.\n", alias->name, sa->sa_family);
+ printk(KERN_ERR "ERROR: net_alias_rehash(%s): unreg family==%d.\n", alias->name, sa->sa_family);
return -1;
}
}
@@ -832,10 +832,10 @@

if(!*aliasp)
if ((aliasp = net_alias_slow_findp(alias_info, alias)))
- printk("net_alias_rehash(%s): bad hashing recovered\n", alias->name);
+ printk(KERN_WARNING "net_alias_rehash(%s): bad hashing recovered\n", alias->name);
else
{
- printk("ERROR: net_alias_rehash(%s): unhashed alias!\n", alias->name);
+ printk(KERN_ERR "ERROR: net_alias_rehash(%s): unhashed alias!\n", alias->name);
return -1;
}

@@ -1309,7 +1309,7 @@
unsigned long flags;
if (!nat)
{
- printk("register_net_alias_type(): NULL arg\n");
+ printk(KERN_ERR "register_net_alias_type(): NULL arg\n");
return -EINVAL;
}
nat->type = type;
@@ -1334,7 +1334,7 @@

if (!nat)
{
- printk("unregister_net_alias_type(): NULL arg\n");
+ printk(KERN_ERR "unregister_net_alias_type(): NULL arg\n");
return -EINVAL;
}

@@ -1343,7 +1343,7 @@
*/
if (nat->n_attach)
{
- printk("unregister_net_alias_type(): has %d attachments. failed\n",
+ printk(KERN_ERR "unregister_net_alias_type(): has %d attachments. failed\n",
nat->n_attach);
return -EINVAL;
}
@@ -1360,7 +1360,7 @@
}
}
restore_flags(flags);
- printk("unregister_net_alias_type(type=%d): not found!\n", nat->type);
+ printk(KERN_ERR "unregister_net_alias_type(type=%d): not found!\n", nat->type);
return -EINVAL;
}

--- ./net/ethernet/eth.c.old Mon May 13 01:07:41 1996
+++ ./net/ethernet/eth.c Mon May 13 01:07:49 1996
@@ -231,7 +231,7 @@

if (htype != ETH_P_IP)
{
- printk("eth_header_cache_bind: %04x cache is not implemented\n", htype);
+ printk(KERN_DEBUG "eth_header_cache_bind: %04x cache is not implemented\n", htype);
return;
}
if (arp_bind_cache(hhp, dev, htype, daddr))
@@ -252,7 +252,7 @@
{
if (hh->hh_type != ETH_P_IP)
{
- printk("eth_header_cache_update: %04x cache is not implemented\n", hh->hh_type);
+ printk(KERN_DEBUG "eth_header_cache_update: %04x cache is not implemented\n", hh->hh_type);
return;
}
memcpy(hh->hh_data, haddr, ETH_ALEN);
--- ./net/ipv4/arp.c.old Mon May 13 01:12:40 1996
+++ ./net/ipv4/arp.c Mon May 13 01:13:12 1996
@@ -1105,7 +1105,7 @@

if(!(entry->flags&ATF_COM))
{
- printk("arp_send_q: incomplete entry for %s\n",
+ printk(KERN_ERR "arp_send_q: incomplete entry for %s\n",
in_ntoa(entry->ip));
/* Can't flush the skb, because RFC1122 says to hang on to */
/* at least one from any unresolved entry. --MS */
@@ -1670,7 +1670,7 @@
+ dev->hard_header_len, GFP_ATOMIC);
if (skb == NULL)
{
- printk("ARP: no memory to send an arp packet\n");
+ printk(KERN_DEBUG "ARP: no memory to send an arp packet\n");
return;
}
skb_reserve(skb, dev->hard_header_len);
@@ -1798,7 +1798,7 @@
break;

default:
- printk("ARP: dev->type mangled!\n");
+ printk(KERN_ERR "ARP: dev->type mangled!\n");
kfree_skb(skb, FREE_READ);
return 0;
}
--- ./net/ipv4/igmp.c.old Mon May 13 01:13:38 1996
+++ ./net/ipv4/igmp.c Mon May 13 01:13:45 1996
@@ -203,7 +203,7 @@
im->tm_running=0;
}
else {
- printk("igmp_stop_timer() called with timer not running by %p\n",__builtin_return_address(0));
+ printk(KERN_ERR "igmp_stop_timer() called with timer not running by %p\n",__builtin_return_address(0));
}
}

@@ -459,7 +459,7 @@

if(saddr==0)
{
- printk("Broken multicast host using 0.0.0.0 heard on %s\n",
+ printk(KERN_INFO "Broken multicast host using 0.0.0.0 heard on %s\n",
dev->name);
kfree_skb(skb, FREE_READ);
return 0;
--- ./net/ipv4/ipip.c.old Sun May 12 23:09:47 1996
+++ ./net/ipv4/ipip.c Mon May 13 01:16:37 1996
@@ -113,7 +113,7 @@
void cleanup_module( void)
{
if ( inet_del_protocol(&ipip_protocol) < 0 )
- printk("ipip close: can't remove protocol\n");
+ printk(KERN_INFO "ipip close: can't remove protocol\n");
}

#endif
--- ./net/ipv4/ip_alias.c.old Sun May 12 17:27:59 1996
+++ ./net/ipv4/ip_alias.c Mon May 13 01:14:09 1996
@@ -159,7 +159,7 @@
void cleanup_module(void)
{
if (ip_alias_done() != 0)
- printk("ip_alias: can't remove module");
+ printk(KERN_INFO "ip_alias: can't remove module");
}

#endif /* MODULE */
--- ./net/ipv4/ip_forward.c.old Sun May 12 17:34:40 1996
+++ ./net/ipv4/ip_forward.c Mon May 13 01:14:49 1996
@@ -399,7 +399,7 @@
optptr[2] = srrptr+4;
}
else
- printk("ip_forward(): Argh! Destination lost!\n");
+ printk(KERN_CRIT "ip_forward(): Argh! Destination lost!\n");
}
if (opt->ts_needaddr)
{
--- ./net/ipv4/ip_fragment.c.old Mon May 13 01:15:12 1996
+++ ./net/ipv4/ip_fragment.c Mon May 13 01:15:15 1996
@@ -707,7 +707,7 @@

skb2->arp = skb->arp;
if(skb->free==0)
- printk("IP fragmenter: BUG free!=1 in fragmenter\n");
+ printk(KERN_ERR "IP fragmenter: BUG free!=1 in fragmenter\n");
skb2->free = 1;
skb_put(skb2,len + hlen);
skb2->h.raw=(char *) skb2->data;
--- ./net/ipv4/ipmr.c.old Mon May 13 01:16:49 1996
+++ ./net/ipv4/ipmr.c Mon May 13 01:17:00 1996
@@ -908,7 +908,7 @@

void ip_mr_init(void)
{
- printk("Linux IP multicast router 0.05-maybe-works 8)\n");
+ printk(KERN_INFO "Linux IP multicast router 0.05.\n");
register_netdevice_notifier(&ip_mr_notifier);
proc_net_register(&(struct proc_dir_entry) {
PROC_NET_IPMR_VIF, 9 ,"ip_mr_vif",
--- ./net/ipv4/rarp.c.old Mon May 13 01:17:57 1996
+++ ./net/ipv4/rarp.c Mon May 13 01:18:01 1996
@@ -320,7 +320,7 @@
ip = si->sin_addr.s_addr;
if (ip == 0)
{
- printk("RARP: SETRARP: requested PA is 0.0.0.0 !\n");
+ printk(KERN_DEBUG "RARP: SETRARP: requested PA is 0.0.0.0 !\n");
return -EINVAL;
}

--- ./net/ipv4/tcp.c.old Sun May 12 17:34:41 1996
+++ ./net/ipv4/tcp.c Mon May 13 01:18:40 1996
@@ -985,7 +985,7 @@
copy = min(sk->mss - tcp_size, seglen);
if (copy <= 0)
{
- printk("TCP: **bug**: \"copy\" <= 0\n");
+ printk(KERN_CRIT "TCP: **bug**: \"copy\" <= 0\n");
return -EFAULT;
}
tcp_size += copy;
@@ -1023,7 +1023,7 @@
copy = seglen;
if (copy <= 0)
{
- printk("TCP: **bug**: copy=%d, sk->mss=%d\n", copy, sk->mss);
+ printk(KERN_CRIT "TCP: **bug**: copy=%d, sk->mss=%d\n", copy, sk->mss);
return -EFAULT;
}

--- ./net/ipv4/tcp_input.c.old Mon May 13 01:18:57 1996
+++ ./net/ipv4/tcp_input.c Mon May 13 01:19:02 1996
@@ -1673,7 +1673,7 @@

if (!sk->prot)
{
- printk("IMPOSSIBLE 3\n");
+ printk(KERN_CRIT "IMPOSSIBLE 3\n");
return(0);
}

--- ./net/ipv4/tcp_output.c.old Mon May 13 01:19:12 1996
+++ ./net/ipv4/tcp_output.c Mon May 13 01:19:36 1996
@@ -120,7 +120,7 @@

if (size < sizeof(struct tcphdr) || size > skb->len)
{
- printk("tcp_send_skb: bad skb (skb = %p, data = %p, th = %p, len = %lu)\n",
+ printk(KERN_ERR "tcp_send_skb: bad skb (skb = %p, data = %p, th = %p, len = %lu)\n",
skb, skb->data, th, skb->len);
kfree_skb(skb, FREE_WRITE);
return;
@@ -136,7 +136,7 @@
/* If it's got a syn or fin it's notionally included in the size..*/
if(!th->syn && !th->fin)
{
- printk("tcp_send_skb: attempt to queue a bogon.\n");
+ printk(KERN_ERR "tcp_send_skb: attempt to queue a bogon.\n");
kfree_skb(skb,FREE_WRITE);
return;
}
@@ -167,7 +167,7 @@
th->check = 0;
if (skb->next != NULL)
{
- printk("tcp_send_partial: next != NULL\n");
+ printk(KERN_ERR "tcp_send_partial: next != NULL\n");
skb_unlink(skb);
}
skb_queue_tail(&sk->write_queue, skb);
@@ -648,7 +648,7 @@
if (buff == NULL)
{
/* This is a disaster if it occurs */
- printk("tcp_send_fin: Impossible malloc failure");
+ printk(KERN_CRIT "tcp_send_fin: Impossible malloc failure");
return;
}

@@ -713,7 +713,7 @@
buff->free = 0;
if (buff->next != NULL)
{
- printk("tcp_send_fin: next != NULL\n");
+ printk(KERN_ERR "tcp_send_fin: next != NULL\n");
skb_unlink(buff);
}
skb_queue_tail(&sk->write_queue, buff);
--- ./net/ipv4/tcp_timer.c.old Mon May 13 01:19:51 1996
+++ ./net/ipv4/tcp_timer.c Mon May 13 01:19:56 1996
@@ -38,7 +38,7 @@
if((long)when < 0)
{
when=3;
- printk("Error: Negative timer in xmit_timer\n");
+ printk(KERN_ERR "Error: Negative timer in xmit_timer\n");
}
sk->retransmit_timer.expires=jiffies+when;
add_timer(&sk->retransmit_timer);
@@ -257,7 +257,7 @@
break;

default:
- printk ("rexmit_timer: timer expired - reason unknown\n");
+ printk (KERN_ERR "rexmit_timer: timer expired - reason unknown\n");
break;
}
}
--- ./net/ipx/af_ipx.c.old Mon May 13 01:08:08 1996
+++ ./net/ipx/af_ipx.c Mon May 13 01:08:37 1996
@@ -756,7 +756,7 @@
}
else
{
- printk("IPX: Network number collision %lx\n\t%s %s and %s %s\n",
+ printk(KERN_WARNING "IPX: Network number collision %lx\n\t%s %s and %s %s\n",
htonl(ipx->ipx_source.net),
ipx_device_name(i),
ipx_frame_name(i->if_dlink_type),
@@ -2353,13 +2353,13 @@
dev_add_pack(&ipx_8023_packet_type);

if ((p8022_datalink = register_8022_client(ipx_8022_type, ipx_rcv)) == NULL)
- printk("IPX: Unable to register with 802.2\n");
+ printk(KERN_CRIT "IPX: Unable to register with 802.2\n");

if ((p8022tr_datalink = register_8022tr_client(ipx_8022_type, ipx_rcv)) == NULL)
- printk("IPX: Unable to register with 802.2TR\n");
+ printk(KERN_CRIT "IPX: Unable to register with 802.2TR\n");

if ((pSNAP_datalink = register_snap_client(ipx_snap_id, ipx_rcv)) == NULL)
- printk("IPX: Unable to register with SNAP\n");
+ printk(KERN_CRIT "IPX: Unable to register with SNAP\n");

register_netdevice_notifier(&ipx_dev_notifier);

@@ -2367,7 +2367,7 @@
proc_net_register(&ipx_if_procinfo);
proc_net_register(&ipx_rt_procinfo);

- printk(KERN_INFO "Swansea University Computer Society IPX 0.34 for NET3.034\n");
+ printk(KERN_INFO "Swansea University Computer Society IPX 0.34 for NET3.035\n");
printk(KERN_INFO "IPX Portions Copyright (c) 1995 Caldera, Inc.\n");
}

--- ./net/netrom/af_netrom.c.old Mon May 13 01:09:08 1996
+++ ./net/netrom/af_netrom.c Mon May 13 01:10:17 1996
@@ -347,7 +347,7 @@
if (nr_ctl.arg < 16 || nr_ctl.arg > 65535)
return -EINVAL;
if (nr_ctl.arg > 236) /* we probably want this */
- printk("nr_ctl_ioctl: Warning --- huge paclen %d\n", (int)nr_ctl.arg);
+ printk(KERN_WARNING "nr_ctl_ioctl: Warning --- huge paclen %d\n", (int)nr_ctl.arg);
sk->nr->paclen = nr_ctl.arg;
break;

@@ -1406,7 +1406,7 @@
{
sock_register(nr_proto_ops.family, &nr_proto_ops);
register_netdevice_notifier(&nr_dev_notifier);
- printk("G4KLX NET/ROM for Linux. Version 0.4 ALPHA for AX25.032 Linux 1.3.77\n");
+ printk(KERN_INFO "G4KLX NET/ROM for Linux. Version 0.5 for AX25.032 Linux 2.0\n");

nr_default.quality = NR_DEFAULT_QUAL;
nr_default.obs_count = NR_DEFAULT_OBS;
--- ./net/netrom/nr_dev.c.old Mon May 13 01:10:36 1996
+++ ./net/netrom/nr_dev.c Mon May 13 01:10:40 1996
@@ -181,7 +181,7 @@
return 0;

if (!dev->start) {
- printk("netrom: xmit call when iface is down\n");
+ printk(KERN_ERR "netrom: xmit call when iface is down\n");
return 1;
}

--- ./net/netrom/nr_in.c.old Mon May 13 01:10:54 1996
+++ ./net/netrom/nr_in.c Mon May 13 01:11:01 1996
@@ -316,7 +316,7 @@

if (sk->nr->state != NR_STATE_1 && sk->nr->state != NR_STATE_2 &&
sk->nr->state != NR_STATE_3) {
- printk("nr_process_rx_frame: frame received - state: %d\n", sk->nr->state);
+ printk(KERN_ERR "nr_process_rx_frame: frame received - state: %d\n", sk->nr->state);
return queued;
}

--- ./net/netrom/nr_subr.c.old Mon May 13 01:11:16 1996
+++ ./net/netrom/nr_subr.c Mon May 13 01:11:23 1996
@@ -168,7 +168,7 @@
case NR_INFOACK:
break;
default:
- printk("nr_write_internal: invalid frame type %d\n", frametype);
+ printk(KERN_ERR "nr_write_internal: invalid frame type %d\n", frametype);
return;
}

--- ./net/bridge/br.c.old Mon May 13 00:59:06 1996
+++ ./net/bridge/br.c Mon May 13 01:02:10 1996
@@ -579,6 +579,7 @@
{ /* (4.8.1) */
int port_no;

+ printk(KERN_INFO "Ethernet Bridge 002 for NET3.035 (Linux 2.0)\n");
bridge_info.designated_root = bridge_info.bridge_id; /* (4.8.1.1) */
bridge_info.root_path_cost = Zero;
bridge_info.root_port = No_port;
@@ -876,7 +877,7 @@
unsigned long flags;

if (port_info[port_no].state == Disabled) {
- printk("send_config_bpdu: port %i not valid\n",port_no);
+ printk(KERN_DEBUG "send_config_bpdu: port %i not valid\n",port_no);
return(-1);
}
if (br_stats.flags & BR_DEBUG)
@@ -887,7 +888,7 @@
size = sizeof(Config_bpdu) + dev->hard_header_len;
skb = alloc_skb(size, GFP_ATOMIC);
if (skb == NULL) {
- printk("send_config_bpdu: no skb available\n");
+ printk(KERN_DEBUG "send_config_bpdu: no skb available\n");
return(-1);
}
skb->dev = dev;
@@ -935,7 +936,7 @@
unsigned long flags;

if (port_info[port_no].state == Disabled) {
- printk("send_tcn_bpdu: port %i not valid\n",port_no);
+ printk(KERN_DEBUG "send_tcn_bpdu: port %i not valid\n",port_no);
return(-1);
}
if (br_stats.flags & BR_DEBUG)
@@ -943,7 +944,7 @@
size = sizeof(Tcn_bpdu) + dev->hard_header_len;
skb = alloc_skb(size, GFP_ATOMIC);
if (skb == NULL) {
- printk("send_tcn_bpdu: no skb available\n");
+ printk(KERN_DEBUG "send_tcn_bpdu: no skb available\n");
return(-1);
}
skb->dev = dev;
@@ -1033,9 +1034,11 @@
}
}
break;
+#if 0
default:
printk("br_device_event: unknown event [%x]\n",
(unsigned int)event);
+#endif
}
return NOTIFY_DONE;
}
@@ -1054,7 +1057,7 @@
printk("br_receive_frame: ");
/* sanity */
if (!skb) {
- printk("no skb!\n");
+ printk(KERN_CRIT "br_receive_frame: no skb!\n");
return(1);
}

@@ -1134,7 +1137,7 @@
skb_device_lock(skb);
return(br_forward(skb, port));
default:
- printk("br_receive_frame: port [%i] unknown state [%i]\n",
+ printk(KERN_DEBUG "br_receive_frame: port [%i] unknown state [%i]\n",
port, port_info[port].state);
return(0); /* pass frame up stack? */
}
@@ -1153,7 +1156,7 @@
/* sanity */
if (!skb)
{
- printk("br_tx_frame: no skb!\n");
+ printk(KERN_CRIT "br_tx_frame: no skb!\n");
return(0);
}
/* check for loopback */
@@ -1208,7 +1211,7 @@
GFP_ATOMIC);

if (!f) {
- printk("br_learn: unable to malloc fdb\n");
+ printk(KERN_DEBUG "br_learn: unable to malloc fdb\n");
return(-1);
}
f->port = port; /* source port */
@@ -1409,7 +1412,7 @@
received_tcn_bpdu(port, bpdu);
break;
default:
- printk("br_bpdu: received unknown bpdu, type = %i\n",
+ printk(KERN_DEBUG "br_bpdu: received unknown bpdu, type = %i\n",
bpdu->type);
/* break; */
}
@@ -1444,14 +1447,14 @@
case BRCMD_BRIDGE_ENABLE:
if (br_stats.flags & BR_UP)
return(-EALREADY);
- printk("br: enabling bridging function\n");
+ printk(KERN_DEBUG "br: enabling bridging function\n");
br_stats.flags |= BR_UP; /* enable bridge */
start_hello_timer();
break;
case BRCMD_BRIDGE_DISABLE:
if (!(br_stats.flags & BR_UP))
return(-EALREADY);
- printk("br: disabling bridging function\n");
+ printk(KERN_DEBUG "br: disabling bridging function\n");
br_stats.flags &= ~BR_UP; /* disable bridge */
stop_hello_timer();
#if 0
@@ -1465,7 +1468,7 @@
return(-EINVAL);
if (port_info[bcf.arg1].state != Disabled)
return(-EALREADY);
- printk("br: enabling port %i\n",bcf.arg1);
+ printk(KERN_DEBUG "br: enabling port %i\n",bcf.arg1);
enable_port(bcf.arg1);
break;
case BRCMD_PORT_DISABLE:
@@ -1473,7 +1476,7 @@
return(-EINVAL);
if (port_info[bcf.arg1].state == Disabled)
return(-EALREADY);
- printk("br: disabling port %i\n",bcf.arg1);
+ printk(KERN_DEBUG "br: disabling port %i\n",bcf.arg1);
disable_port(bcf.arg1);
break;
case BRCMD_SET_BRIDGE_PRIORITY:
--- ./net/bridge/br_tree.c.old Mon May 13 01:02:17 1996
+++ ./net/bridge/br_tree.c Mon May 13 01:02:47 1996
@@ -263,7 +263,7 @@
struct fdb * node = *nodeplace;
if (node == avl_br_empty) {
/* what? node_to_delete not found in tree? */
- printk("avl_remove: node to delete not found in tree\n");
+ printk(KERN_ERR "br: avl_remove: node to delete not found in tree\n");
return(-1);
}
*stack_ptr++ = nodeplace; stack_count++;
--- ./net/netlink.c.old Mon May 13 00:52:15 1996
+++ ./net/netlink.c Mon May 13 00:52:31 1996
@@ -218,7 +218,7 @@
int ct;

if(register_chrdev(NETLINK_MAJOR,"netlink", &netlink_fops)) {
- printk("netlink: unable to get major %d\n", NETLINK_MAJOR);
+ printk(KERN_ERR "netlink: unable to get major %d\n", NETLINK_MAJOR);
return -EIO;
}
for(ct=0;ct<MAX_LINKS;ct++)
@@ -233,7 +233,7 @@

int init_module(void)
{
- printk("Network Kernel/User communications module 0.03\n");
+ printk(KERN_INFO "Network Kernel/User communications module 0.03\n");
return init_netlink();
}

--- ./net/socket.c.old Mon May 13 00:52:40 1996
+++ ./net/socket.c Mon May 13 00:53:28 1996
@@ -577,7 +577,7 @@

if (!(sock = sock_alloc()))
{
- printk("NET: sys_socket: no more sockets\n");
+ printk(KERN_WARNING "socket: no more sockets\n");
return(-ENOSR); /* Was: EAGAIN, but we are out of
system resources! */
}
@@ -754,7 +754,7 @@

if (!(newsock = sock_alloc()))
{
- printk("NET: sock_accept: no more sockets\n");
+ printk(KERN_WARNING "accept: no more sockets\n");
return(-ENOSR); /* Was: EAGAIN, but we are out of system
resources! */
}
@@ -1397,7 +1397,7 @@
{
int i;

- printk("Swansea University Computer Society NET3.034 for Linux 1.3.77\n");
+ printk(KERN_INFO "Swansea University Computer Society NET3.035 for Linux 2.0\n");

/*
* Initialize all address (protocol) families.
--- ./Documentation/Configure.help.old Mon May 13 00:34:31 1996
+++ ./Documentation/Configure.help Mon May 13 00:36:43 1996
@@ -2563,6 +2563,14 @@
use it. Probably this is only useful for multi user systems. If
unsure, say N.

+Mandatory lock support
+CONFIG_LOCK_MANDATORY
+ Mandatory locking is used by some System 5 style database applications.
+ To use this option safely you must have newer NFS daemons, new samba,
+ new netatalk, new mars-nwe and other file servers. At the time of
+ writing none of these are available. Unless you need this feature say
+ N.
+
Standard (minix) fs support
CONFIG_MINIX_FS
Minix is a simple operating system used in many classes about