lkml.org 
[lkml]   [2006]   [Feb]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: file system question
    I am only sending the relevant stuff.

    My strace output :

    fstat64(3, {st_mode=S_IFDIR|0755, st_size=48, ...}) = 0
    fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
    getdents64(3, /* 3 entries */, 4096) = 80
    getdents64(3, /* 0 entries */, 4096) = 0
    close(3) = 0
    exit_group(0)

    strace output on a partition under ext2

    fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
    fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
    getdents64(3, /* 4 entries */, 4096) = 104
    getdents64(3, /* 0 entries */, 4096) = 0
    close(3) = 0
    fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
    0) = 0xb7ddc000
    write(1, "kapil out\n", 11) = 11
    munmap(0xb7ddc000, 4096) = 0
    exit_group(0)

    We can see that my strace does not call the fstat, mmap, write and
    munmap calls. It directly calls the exit_group call. This is what i
    fail to understand. The getdents seems to be returning data correctly.
    And filldir() called by the readdir() seems to be working
    correctly(am not sure).
    So i fail to understand why the other calls are not performed.

    I would like to remind you that i have not written all the calls. For
    example i dont have my file systems implementation of the write call.
    But atleast i shd be able to call the default.

    any help would be appreciated. And can anybody think of an other way i
    can test my filesystem with a smaller call. "ls" seems to be calling
    way too many system calls. My filesystem is a disk based file system
    with my superblock in a floppy.

    kapil




    On 2/8/06, Avishay Traeger <atraeger@cs.sunysb.edu> wrote:
    > On Wed, 2006-02-08 at 19:11 -0500, kapil a wrote:
    > > thanks for the reply and sorry for the unclear question.
    > >
    > > What i meant was when i do an "ls" in a directory that is part of the
    > > ext2 filesystem, i can see a "write" call in the strace output at the
    > > end and it writes the directory contents to stdout. However when i
    > > issue "ls" in the mount point of my file system, i dont have the
    > > "write" call. The strace ends with the getdents64 call.
    > >
    > > When i did some debugging i found that filldir which is suppose to
    > > fill the dirent with the directory entries does its job. My filesystem
    > > currently has only one inode with one block of data where i have a
    > > ".", ".." and "test" written into it.
    > >
    > > The problem is it does not go further to do some of the other calls as
    > > in a mountpoint in ext2 file system.
    > >
    > > Hope i am clear now.
    > >
    > > kaps
    >
    > Can you send the strace output?
    >
    >
    -
    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: 2006-02-09 18:59    [W:0.040 / U:1.144 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site