lkml.org 
[lkml]   [2002]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Subjectbug in ext3 htree rename: doesn't delete old name, leaves ino with bad nlink
    From
    Date
    I've isolated the problem to rename not removing the old name under some
    circumstances, leaving two names for a file with an nlink of 1. This
    will reliably reproduce the problem for me, under 2.4.19-ac4 and 2.4.19
    (stock) w/ patch-ext3-dxdir-2.4.19-4.

    Generate a new filesystem: this will create htree-bug.fs
    $ sh genfs

    # mkdir m
    # mount -o loop htree-bug.fs m

    $ gcc -o tickle tickle.c
    $ ./tickle m/test
    *** rename("drivers/scsi/psi240i.h", "drivers/scsi/psi240i.h.orig") failure:
    stating drivers/scsi/psi240i.h
    ino=294
    nlink=1
    stating drivers/scsi/psi240i.h.orig
    ino=294
    nlink=1
    *** rename("drivers/scsi/sun3_scsi.h", "drivers/scsi/sun3_scsi.h.orig") failure:
    stating drivers/scsi/sun3_scsi.h
    ino=350
    nlink=1
    stating drivers/scsi/sun3_scsi.h.orig
    ino=350
    nlink=1

    # umount m

    $ e2fsck -f htree-bug.fs
    e2fsck 1.30-WIP (30-Sep-2002)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Inode 294 ref count is 1, should be 2. Fix<y>? yes

    Inode 350 ref count is 1, should be 2. Fix<y>? yes

    Pass 5: Checking group summary information

    htree-bug.fs: ***** FILE SYSTEM WAS MODIFIED *****
    htree-bug.fs: 541/10240 files (0.2% non-contiguous), 1369/10240 blocks
    exit status 1
    $ debugfs htree-bug.fs
    debugfs 1.30-WIP (30-Sep-2002)
    debugfs: ncheck 294
    Inode Pathname
    294 /test/drivers/scsi/psi240i.h
    debugfs: ncheck 350
    Inode Pathname
    350 /test/drivers/scsi/sun3_scsi.h


    I've put all the bits needed to reproduce the bug (genfs, tickle) at
    http://www.goop.org/~jeremy/htree/


    J

    -
    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-03-22 13:30    [W:0.020 / U:30.084 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site