All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Vladimir V. Saveliev" <vs@namesys.com>
To: "Kristian Köhntopp" <kris@koehntopp.de>
Cc: reiserfs-list@namesys.com
Subject: Re: struct dirent *ent->d_type weirdness
Date: Mon, 19 Sep 2005 18:33:48 +0400	[thread overview]
Message-ID: <432ECC4C.30707@namesys.com> (raw)
In-Reply-To: <200509191558.27362.kris@koehntopp.de>

Hello

Kristian Köhntopp wrote:
> I have a machine running under 2.6.13-SMP, using reiserfs 3.6. On 
> this machine, directories are flagged strangely and thus code 
> which operates properly under ext3 fails with reiserfs.
> 
> Why is this, and what am I doing wrong?
> 
> My goal is to walk a spool directory recursively and deal with 
> all files inside directories that I encounter. For that, I check 
> struct dirent *ent->d_type and get unexpected results.
> 
Yes, unfortunately, reiserfs does not support entry types.
Probably it should, but there is nothing wrong to not support it:
man readdir:
       According to POSIX, the dirent structure contains a field char d_name[] of unspecified size, with at most NAME_MAX charac╜
       ters  preceding  the  terminating  null character.  Use of other fields will harm the portability of your programs.  POSIX
       1003.1-2001 also documents the field ino_t d_ino as an XSI extension.

> 
> mx15:/tmp # uname -a
> Linux mx15 2.6.13web #4 SMP Fri Sep 16 16:03:39 CEST 2005 i686 
> unknown
> 
> mx15:/tmp # cat rtest.cpp
> #include <stdio.h>
> #include <dirent.h>
> 
> int main(int argc, char** argv)
> {
> struct dirent *ent = NULL;
> DIR *dd = NULL;
> 
> dd = opendir(argv[1]);
> if (dd != NULL) {
>          while ((ent = readdir(dd)) != NULL) {
> 	 /* disable actual test and print ent->d_type */
> 	 /* ent->d_type==DT_DIR && ent->d_name[1]==0 && ent->d_name[0]>0 
> && ent->d_name[0]!='.'*/
> 		if (1) {
> 			printf("%s (%d) \n", ent->d_name, ent->d_type);
> 		}
>          }
>          closedir(dd);
> }
> }
> mx15:/tmp # ./rtest /netsite/var/spool/wmail.reiser
> . (0)
> .. (0)
> head (0)
> dbclub02 (0)
> mx15:/tmp # df -Th /netsite/var/spool/wmail.reiser
> Dateisystem   Typ    Größe Benut  Verf Ben% Eingehängt auf
> /reiserfile
>            reiserfs    2.0G   33M  2.0G 
> 2% /netsite/var/spool/wmail.reiser
> 
> 
> 
> Kristian
> 
> 


  reply	other threads:[~2005-09-19 14:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-19 13:58 struct dirent *ent->d_type weirdness Kristian Köhntopp
2005-09-19 14:33 ` Vladimir V. Saveliev [this message]
2005-09-19 16:25   ` Kristian Koehntopp
2005-09-19 17:14   ` Andreas Dilger
2005-09-22 15:03   ` Grzegorz Jaśkiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=432ECC4C.30707@namesys.com \
    --to=vs@namesys.com \
    --cc=kris@koehntopp.de \
    --cc=reiserfs-list@namesys.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.