| To: | ASANO Masahiro <masano@xxxxxxxxxxxxxx>, Luben Tuikov <luben@xxxxxxxxxxxx> |
|---|---|
| Subject: | Re: fix 2.4-xfs pagebuf request |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Sun, 27 Oct 2002 15:35:20 +0000 |
| Cc: | linux-xfs@xxxxxxxxxxx |
| In-reply-to: | <20021027161351Z.masano@tnes.nec.co.jp>; from masano@tnes.nec.co.jp on Sun, Oct 27, 2002 at 04:13:51PM +0900 |
| References: | <20021027161351Z.masano@tnes.nec.co.jp> |
| Sender: | linux-xfs-bounce@xxxxxxxxxxx |
| User-agent: | Mutt/1.2.5.1i |
On Sun, Oct 27, 2002 at 04:13:51PM +0900, ASANO Masahiro wrote:
> Hi,
>
> I found a bug at current 2.4 CVS about `struct pagesync_t'.
> Some driver top-half may call buffer_head.b_end_io() on process
> context (not interrupt context). So _end_pagebuf_page_io_multi() may
> be called several times with remain==1.
Thanks for the patch. Luben, I think this patch will fix your
lvm+raid setup, could you try it?
> --- linux/fs/xfs/pagebuf/page_buf.c Fri Oct 25 07:46:20 2002
> +++ linux/fs/xfs/pagebuf/page_buf.c.new Sun Oct 27 15:53:38 2002
> @@ -1645,7 +1645,7 @@
> BUG(); /* Ugh - out of memory condition here */
> psync->pb = pb;
> psync->locking = locking;
> - atomic_set(&psync->remain, 0);
> + atomic_set(&psync->remain, cnt);
>
> callback = public_bh ?
> _end_io_multi_part : _end_io_multi_full;
> @@ -1667,7 +1667,6 @@
> /* Complete the buffer_head, then submit the IO */
> if (psync) {
> init_buffer(bh, callback, psync);
> - atomic_inc(&psync->remain);
> } else {
> init_buffer(bh, callback, pb);
> }
>
>
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: fix 2.4-xfs pagebuf request, Stephen Lord |
|---|---|
| Next by Date: | Re: tabs-inside-strings cleanup, KELEMEN Peter |
| Previous by Thread: | Re: fix 2.4-xfs pagebuf request, Stephen Lord |
| Next by Thread: | Re: fix 2.4-xfs pagebuf request, Luben Tuikov |
| Indexes: | [Date] [Thread] [Top] [All Lists] |