Re: [PATCH] loopback device can't act as its backing store

From: Andrew Morton (akpm_at_osdl.org)
Date: 12/03/04

  • Next message: Andrew Morton: "Re: [PATCH] loopback device can't act as its backing store"
    Date:	Fri, 3 Dec 2004 14:50:56 -0800
    To: franz_pletz@t-online.de (Franz Pletz)
    
    

    franz_pletz@t-online.de (Franz Pletz) wrote:
    >
    > The patch below fixes a bug in loop which apparently causes the kernel to call
    > the initialization routine of a loopback device recursively while trying to set
    > the backing store to the loopback device it's being mapped to.

    Your patch addresses direct loop0-on-loop0 recursion, but does it fix the
    more complex loop-stacks which Chris Spiegel identified?

    I don't think there's any actual infinite recursion in Chris's example - in
    his case we simply stacked loop deveces too deep. But a fix for Chris's
    scenario will also fix the one which you identify, I think. Andries posted
    such a patch but I have not yet got around to looking at it.

    Begin forwarded message:

    Date: Fri, 12 Nov 2004 02:49:34 -0800
    From: Chris Spiegel <lkml@happyjack.org>
    To: linux-kernel@vger.kernel.org
    Subject: Oops with loop devices on 2.6.9

    Hi,
      While playing around with loop mounts on kernel 2.6.9 I managed to get
    a kernel panic. After messing around with it I can reproduce the
    problem reliably. The sequence I came up with to cause the problem:

    mount -o loop /dev/loop/0 /mnt
    mount -o loop /dev/loop/1 /mnt
    mount -o loop /dev/loop/2 /mnt
    mount /dev/loop/0 /mnt -t ext2

    I know the above is silly and contrived.

    An example oops is as follows (I copied this down on paper and then
    back, so hopefully I made no transcription errors):

    Unable to handle kernel paging request at virtual address 98858a6f
     printing eip:
    c011345a
    *pde = 00000000
    Oops: 0000 [#1]
    SMP
    Modules linked in:
    CPU 0
    EIP 0060:[<c011345a>] Not tainted VLI
    EFLAGS 00010083 (2.6.9)
    EIP is at do_page_fault+0x99/0x599
    eax: c9100000 ebx: 65642f3c ecx: 0000007b edx: f7d4858b
    esi: 00000000 edi: c01133c1 ebp: 988589ff esp: c9100108
    ds: 007b es: 007b ss: 0068
    Unable to handle kernel NULL pointer dereference at virtual address 00000070
     printing eip:
    c011345a
    *pde = 00000000

    I ran this through ksymoops, but it just spit it back at me with the
    following tacked on:

    Warning (Oops_read): Code line not seen, dumping what data is available

    >>eax; c9100000 <pg0+8b9f000/3fa9d400>
    >>edx; f7d4858b <pg0+377e758b/3fa9d400>
    >>edi; c01133c1 <do_page_fault+0/599>
    >>esp; c9100108 <pg0+8b9f108/3fa9d400>

    1 warning issued. Results may not be reliable.

    So I'm not sure if that's useful. I could also get my system to lock up
    if I did the above, but without the loop1 and 2 devices. One time it
    just froze, no messages. Another time I got:
    double fault, gdt at c1408260 [255 bytes]

    I'm attaching my kernel config if that's of any help. If you'd like me
    to reply to the list, please CC me so I can set the In-Reply-To header
    properly.

    Chris

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Andrew Morton: "Re: [PATCH] loopback device can't act as its backing store"

    Relevant Pages

    • Re: bug in 2.6.22-rc2: loop mount limited to one single iso image
      ... I'd suggest just reverting it for now until the ... But right now there is no kernel mechanism that user level program could ... use to request allocation of new loop node. ... is obvious that any kernel patch that adds such mechanism goes far beyond ...
      (Linux-Kernel)
    • Re: bug in 2.6.22-rc2: loop mount limited to one single iso image
      ... > In kernel 2.6.22-rc2 the number of available loop mounts is reduced ... > Kernel 2.6.20.11 does not show that problem. ... sudo mount -o loop cd1.iso m1 ... commit 705962ccc9d21a08b74b6b6e1d3cf10f98968a67 ...
      (Linux-Kernel)
    • Re: Help with a driver im writing.
      ... Tasklets don't interfere each other on single CPU with non-preemeptable ... put it into a critical section with interrupt off anyway. ... > It's running on kernel version 2.6.14 single intel cpu, ... > My write routine is a loop in which i shift data out to the ...
      (comp.os.linux.development.system)
    • Re: 2.6.23-rc1-mm1 -- mostly fails to build
      ... Oops: ... Kernel panic - not syncing: ... This patch does not seem to be wrong in and of itself. ...
      (Linux-Kernel)
    • Oops with loop devices on 2.6.9
      ... While playing around with loop mounts on kernel 2.6.9 I managed to get ... mount -o loop /dev/loop/1 /mnt ...
      (Linux-Kernel)

    Loading