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
----------