Re: file system question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux