diff options
| -rw-r--r-- | xlators/mount/fuse/src/fuse-bridge.c | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index 8843afb38fe..a51cf6eed98 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -2135,24 +2135,27 @@ d_type_from_stat (struct stat *buf)  {          unsigned char d_type; -        if (buf->st_mode & S_IFREG) { -                d_type = DT_REG; +        if (S_ISLNK (buf->st_mode)) { +                d_type = DT_LNK; -        } else if (buf->st_mode & S_IFDIR) { +        } else if (S_ISDIR (buf->st_mode)) {                  d_type = DT_DIR; -        } else if (buf->st_mode & S_IFIFO) { +        } else if (S_ISFIFO (buf->st_mode)) {                  d_type = DT_FIFO; -        } else if (buf->st_mode & S_IFSOCK) { +        } else if (S_ISSOCK (buf->st_mode)) {                  d_type = DT_SOCK; -        } else if (buf->st_mode & S_IFCHR) { +        } else if (S_ISCHR (buf->st_mode)) {                  d_type = DT_CHR; -        } else if (buf->st_mode & S_IFBLK) { +        } else if (S_ISBLK (buf->st_mode)) {                  d_type = DT_BLK; +        } else if (S_ISREG (buf->st_mode)) { +                d_type = DT_REG; +          } else {                  d_type = DT_UNKNOWN;          }  | 
