patch-2.2.16 linux/fs/buffer.c
Next file: linux/fs/dcache.c
Previous file: linux/fs/binfmt_elf.c
Back to the patch index
Back to the overall index
- Lines: 40
- Date:
Wed Jun 7 14:26:43 2000
- Orig file:
v2.2.15/linux/fs/buffer.c
- Orig date:
Wed May 3 17:16:46 2000
diff -urN v2.2.15/linux/fs/buffer.c linux/fs/buffer.c
@@ -679,21 +679,26 @@
bhnext = bh->b_next_free;
if (bh->b_dev != dev || bh->b_size == size)
continue;
- if (buffer_dirty(bh))
- printk(KERN_ERR "set_blocksize: dev %s buffer_dirty %lu size %lu\n", kdevname(dev), bh->b_blocknr, bh->b_size);
if (buffer_locked(bh))
{
slept = 1;
wait_on_buffer(bh);
}
+ if (buffer_dirty(bh))
+ printk(KERN_WARNING "set_blocksize: dev %s buffer_dirty %lu size %lu\n", kdevname(dev), bh->b_blocknr, bh->b_size);
if (!bh->b_count)
put_last_free(bh);
else
- printk(KERN_ERR
+ {
+ mark_buffer_clean(bh);
+ clear_bit(BH_Uptodate, &bh->b_state);
+ clear_bit(BH_Req, &bh->b_state);
+ printk(KERN_WARNING
"set_blocksize: "
- "b_count %d, dev %s, block %lu!\n",
+ "b_count %d, dev %s, block %lu, from %p\n",
bh->b_count, bdevname(bh->b_dev),
- bh->b_blocknr);
+ bh->b_blocknr, __builtin_return_address(0));
+ }
if (slept)
goto again;
}
@@ -708,6 +713,7 @@
if (!grow_buffers(size)) {
wakeup_bdflush(1);
current->policy |= SCHED_YIELD;
+ current->state = TASK_RUNNING;
schedule();
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)