lkml.org 
[lkml]   [2005]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Problem with inotify
    Anton Altaparmakov wrote:
    > Eeek! I just reread my patch. I am a muppet! Instead of the printk (or
    > in addition if you like), please try the corrected version below. The
    > original version completely fails to do anything at all. It's amazing
    > what the omission of a single parenthesis pair can do to your code logic.
    > )-:

    I reverted the patch you sent earlier
    (inotify_unmount_inodes-list-iteration-fix.diff) and applied the one you
    attached here (inotify_unmount_inodes-list-iteration-fix2.diff).

    The good news is that the hang is gone. The bad news is that you cured the
    hang by introducing an oops :(

    Unable to handle kernel NULL pointer dereference at virtual address 00000024
    printing eip:
    c01751d9
    *pde = 00000000
    Oops: 0000 [#1]
    PREEMPT
    Modules linked in: ntfs snd_pcm_oss snd_mixer_oss snd_seq_oss
    snd_seq_midi_event snd_seq snd_seq_device snd_intel8x0 snd_ac97_codec snd_pcm
    snd_timer snd snd_page_alloc
    CPU: 0
    EIP: 0060:[<c01751d9>] Tainted: P VLI
    EFLAGS: 00010283 (2.6.12-gentoo-r3)
    EIP is at iput+0x19/0x90
    eax: 00000000 ebx: deb82e64 ecx: deb82e64 edx: deb82e64
    esi: dd01ff00 edi: deb82e64 ebp: dd01ff00 esp: df7b9eb8
    ds: 007b es: 007b ss: 0068
    Process umount (pid: 9201, threadinfo=df7b8000 task=dd656a60)
    Stack: dd01fe20 c03feb20 df7b8000 c0182337 deb82e64 00000000 00000000 00000000
    00000000 df7b8000 dd01ff08 deb82e64 dd01f0dc df7b8000 deb82e74 df7b9f08
    df7b8000 c0174050 deb82e74 dffe0040 df7b9f08 df7b9f08 dda12274 deb82e00
    Call Trace:
    [<c0182337>] inotify_unmount_inodes+0x187/0x1e0
    [<c0174050>] invalidate_inodes+0x40/0x90
    [<c015f579>] generic_shutdown_super+0x59/0x140
    [<c01601dd>] kill_block_super+0x2d/0x50
    [<c015f40a>] deactivate_super+0x5a/0x90
    [<c01773cf>] sys_umount+0x3f/0x90
    [<c0157e42>] filp_close+0x52/0xa0
    [<c0177437>] sys_oldumount+0x17/0x20
    [<c010326b>] sysenter_past_esp+0x54/0x75
    Code: ff ff 89 44 24 04 e9 47 fe ff ff 8d b4 26 00 00 00 00 53 83 ec 08 8b 5c
    24 10 85 db 74 58 83 bb 24 01 00 00 20 8b 83 94 00 00 00 <8b> 40 24 74 5a 85
    c0 74 07 8b 50 14 85 d2 75 47 8d 43 24 c7 44

    (gdb) list *iput+0x19
    0x1789 is in iput (inode.c:1131).
    1126 * Consequently, iput() can sleep.
    1127 */
    1128 void iput(struct inode *inode)
    1129 {
    1130 if (inode) {
    1131 struct super_operations *op = inode->i_sb->s_op;
    1132
    1133 BUG_ON(inode->i_state == I_CLEAR);
    1134
    1135 if (op && op->put_inode)


    Note that this exact oops happens even when inotify has not been used, i.e. to
    reproduce this oops, I can just do:

    mount /mnt/ntfs ; umount /mnt/ntfs

    What next? :)

    Thanks,
    Daniel
    -
    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/

    \
     
     \ /
      Last update: 2005-07-03 12:37    [W:0.024 / U:1.256 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site