Re: [GIT PULL] Core block IO bits for 2.6.39 - early Oops

Jens Axboe
2011-03-24T21:01:26Z

On 2011-03-24 21:06, Markus Trippelsdorf wrote:
> On 2011.03.24 at 20:57 +0100, Jens Axboe wrote:
>>
>> OK, still a data point. What was the last -git kernel you used?
>
> This one was the last and gave me no problems:
>
> commit b81a618dcd3ea99de292dbe624f41ca68f464376
> Merge: 2f284c8 a9712bc
> Author: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Wed Mar 23 20:51:42 2011 -0700
>
> Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6

Puzzling... Poking at straws here so far. Does this make any difference
whatsoever?

diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index c05324d..580966f 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -989,8 +989,6 @@ xfs_buf_lock(

if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE))
xfs_log_force(bp->b_target->bt_mount, 0);
- if (atomic_read(&bp->b_io_remaining))
- blk_flush_plug(current);
down(&bp->b_sema);
XB_SET_OWNER(bp);

@@ -1439,8 +1437,6 @@ xfs_buf_iowait(
{
trace_xfs_buf_iowait(bp, _RET_IP_);

- if (atomic_read(&bp->b_io_remaining))
- blk_flush_plug(current);
wait_for_completion(&bp->b_iowait);

trace_xfs_buf_iowait_done(bp, _RET_IP_);
@@ -1943,9 +1939,6 @@ xfsbufd(
xfs_bdstrat_cb(bp);
count++;
}
- if (count)
- blk_flush_plug(current);
-
} while (!kthread_should_stop());

return 0;
@@ -1992,7 +1985,6 @@ xfs_flush_buftarg(

if (wait) {
/* Expedite and wait for IO to complete. */
- blk_flush_plug(current);
while (!list_empty(&wait_list)) {
bp = list_first_entry(&wait_list, struct xfs_buf, b_list);

--
Jens Axboe