Pavel Roskin wrote:
On Fri, 2009-07-24 at 23:02 +0200, Christian Franke wrote:

A correct performance-aware solution would look like:

#ifdef DT_DIR
  if (de->d_type == DT_DIR)
    info.dir = 1;
  else if (de->type == DT_FILE)

There in no DT_FILE in glibc, but there is DT_REG.

Yes correct.


DT_UNKNOWN is
present.  Perhaps the above line should be

else if (de->type != DT_UNKNOWN)

We only care if it's a directory or not.  All other objects can be
treated like files.


It depends: If DT_UNKNOWN is used, you have to replace stat() by lstat() in is_dir(). Otherwise symlinked directories would be appear as dir only if d_type == DT_UNKNOWN and not if d_type == DT_LNK.


I'm fine either way, whether we fix the "high-performance" code or
remove it, as long as we don't have to add more checks.


I would suggest to remove it.

--
Regards,
Christian Franke



_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to