All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: Nicolas Pitre <nico@cam.org>
Cc: mtd@infradead.org
Subject: Re: corruption with mtdblock
Date: Mon, 06 Nov 2000 14:47:45 +0000	[thread overview]
Message-ID: <18194.973522065@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.10.10011061235070.697-100000@xanadu.gn.com>


nico@cam.org said:
>  So in our case, q->head_active is 1 by default.
> Looking at __make_request() you can see the head of the queue is
> actually skipped when the queue is unplugged.  It is plugged only when
> actually empty and no request are processed until it gets unplugged
> again.  All this is done when io_request_lock is held.  That's why I
> came to the conclusion that requests don't have to be removed earlier.
> 

OK. How about 'plugging'?

The code looks like this...

        /*
         * skip first entry, for devices with active queue head
         */
        if (q->head_active && !q->plugged)
                head = head->next;


It may be that if our request function returns without first ending the 
request (as it does, because all it does is a wake_up()), the queue is 
'plugged' to wait for requests to be merged. 

Then the kernel thread is proceeding to deal with the requests while the 
ll_rw_blk code thinks that the driver's request function isn't running.

I'll see if I can find someone to explain the plugging stuff to me :)

--
dwmw2




To unsubscribe, send "unsubscribe mtd" to majordomo@infradead.org

  reply	other threads:[~2000-11-06 14:47 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-05 22:52 Erase unit header corrupted when using FTL Brian Kuschak
2000-11-06  0:57 ` David Woodhouse
2000-11-06  2:10   ` corruption with mtdblock Nicolas Pitre
2000-11-06  7:27     ` David Woodhouse
2000-11-06 17:54       ` Nicolas Pitre
2000-11-06 14:47         ` David Woodhouse [this message]
2000-11-06 20:11           ` Nicolas Pitre
2000-11-06 15:19             ` David Woodhouse
2000-11-07  9:04               ` Nicolas Pitre
2000-11-08 21:50                 ` David Woodhouse
2000-11-09  0:28                   ` Nicolas Pitre
2000-11-09  7:58                     ` David Woodhouse
2000-11-09 14:22                       ` Nicolas Pitre
2000-11-09  8:12                     ` David Woodhouse
2000-11-09 11:34                       ` David Woodhouse
2000-11-09 15:21                         ` Nicolas Pitre
2000-11-09 22:36                           ` David Woodhouse
2000-11-11 23:38                             ` Detecting the Disk-On-Chip 2800 Adam Agnew
2000-11-12 23:27                               ` David Woodhouse
2000-11-13  0:24                               ` Ollie Lho
2000-11-13  6:35                                 ` Adam Agnew
2000-11-09 14:34                       ` corruption with mtdblock Nicolas Pitre
2000-11-09 14:23                         ` David Woodhouse
2000-11-06 15:31             ` David Woodhouse
2000-11-06 21:24               ` Nicolas Pitre
2000-11-06 17:31                 ` David Woodhouse
2000-11-07  1:02                   ` Nicolas Pitre
2000-11-06 14:54         ` David Woodhouse
2000-11-06 21:27           ` Nicolas Pitre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=18194.973522065@redhat.com \
    --to=dwmw2@infradead.org \
    --cc=mtd@infradead.org \
    --cc=nico@cam.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.