summaryrefslogtreecommitdiffstats
path: root/xlators/system
diff options
context:
space:
mode:
authorPrashanth Pai <ppai@redhat.com>2016-04-27 13:37:07 +0530
committerJeff Darcy <jdarcy@redhat.com>2016-05-02 04:48:45 -0700
commit77def44d497d090ef3f393b6d9403c1a29dcf993 (patch)
treec071c40379bf91d1c4e975a8fbc7cf22e8e5b51c /xlators/system
parent70a889489d79c41edfed52fdbdfa6869869906aa (diff)
posix: Set correct d_type for readdirp() calls
dirent.d_type can contain the type of the directory entry. The 'd_type' struct member in dirent is present in Linux and many BSD flavours. However, filling d_type with correct value requires support from the underlying filesystem. If not, d_type is set to DT_UNKNOWN. XFS added support for d_type as part of their newer version 5 on-disk format. However, this requires Linux >= 3.15, xfsprogs >= 3.2.0 and the bricks to be formatted using the new format. This patch enables posix xlator to set d_type to the right value even when the underlying filesystem does not support it. d_type can be set using information previously fetched by stat() on the dir entry. This will aid FUSE applications to leverage d_type to avoid the expense of calling lstat() if further actions depend on the type of the file. Refer `man 3 readdir` and `man 2 getdents` BUG: 1175711 Change-Id: Ic5a262fe4c64122726b4fae2d1bea375c559ca04 Signed-off-by: Prashanth Pai <ppai@redhat.com> Reviewed-on: http://review.gluster.org/14095 Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Diffstat (limited to 'xlators/system')
0 files changed, 0 insertions, 0 deletions