Re: Linux 1.3.51 aka "Greased Weasel"

Linus Torvalds (Linus.Torvalds@cs.helsinki.fi)
Thu, 28 Dec 1995 11:51:17 +0200


Ok, here is a small patch for people using 1.3.51, just to fix two
irritating problems. They seldom turn up, but they _can_ happen (eh,
the mm/swap.c one is just an optimization, you can ignore that).

Linus

----------
diff -u --recursive --new-file v1.3.51/linux/fs/buffer.c linux/fs/buffer.c
--- v1.3.51/linux/fs/buffer.c Wed Dec 27 09:12:13 1995
+++ linux/fs/buffer.c Thu Dec 28 09:09:20 1995
@@ -1042,6 +1042,10 @@
}
tmp = get_hash_table(dev, block, size);
if (tmp) {
+ if (!buffer_uptodate(tmp)) {
+ ll_rw_block(READ, 1, &tmp);
+ wait_on_buffer(tmp);
+ }
memcpy(next->b_data, tmp->b_data, size);
brelse(tmp);
continue;
diff -u --recursive --new-file v1.3.51/linux/mm/swap.c linux/mm/swap.c
--- v1.3.51/linux/mm/swap.c Wed Dec 27 09:12:14 1995
+++ linux/mm/swap.c Thu Dec 28 08:03:40 1995
@@ -709,8 +709,8 @@

static inline void remove_mem_queue(struct mem_list * head, struct mem_list * entry)
{
- entry->next->prev = entry->prev;
- entry->prev->next = entry->next;
+ struct mem_list * next = entry->next;
+ (next->prev = entry->prev)->next = next;
}

/*
diff -u --recursive --new-file v1.3.51/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c
--- v1.3.51/linux/net/ipv4/tcp.c Wed Dec 27 09:12:15 1995
+++ linux/net/ipv4/tcp.c Thu Dec 28 11:31:44 1995
@@ -5334,8 +5334,7 @@
* Find the first data byte.
*/

- tcp_data_start = skb->ip_hdr +
- ((iph->ihl + th->doff) << 2);
+ tcp_data_start = (char *) th + (th->doff << 2);

/*
* Add it to our new buffer
----------