lkml.org 
[lkml]   [2006]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: file system question
    ---------- Forwarded message ----------
    From: kapil a <kapilann@gmail.com>
    Date: Feb 8, 2006 7:11 PM
    Subject: Re: file system question
    To: Avishay Traeger <atraeger@cs.sunysb.edu>


    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


    On 2/8/06, Avishay Traeger <atraeger@cs.sunysb.edu> wrote:
    > On Wed, 2006-02-08 at 18:39 -0500, kapil a wrote:
    > > I am trying to write a file system for 2.6. I have written the
    > > required things to mount my file system and now i am trying to get
    > > some f_op's and d_op's. I was trying to make the 'ls' command work. So
    > > i wrote a myfs_readdir() and linked it to the f_op field. My routine
    > > gets called and also filldir gets called and stores the data in the
    > > dirent but i dont get the output in stdout.
    > >
    > > On using strace i find that "ls" does not perform all the calls that
    > > a "ls" in a directory mountedf in ext2 performs. To be specific, the
    > > strace ouput ends after the getdents64 system call. In the normal "ls"
    > > strace, i find there are a couple of more system calls namely a fstat
    > > followed by a write to stdout and some more mmap calls.
    >
    > Correct. The getdents system call will call your readdir function.
    >
    > > I dont understand the reason behind why the write is not called. My
    > > guess is i have not over-ridden some function that i have to write as
    > > part of my file system instead of using the default method.
    >
    > Why would your write function get called when 'ls' writes to stdout?
    > Please explain your question more clearly.
    >
    >
    > Avishay Traeger
    > http://www.fsl.cs.sunysb.edu/~avishay/
    >
    >
    -
    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 01:15    [W:0.022 / U:0.180 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site