1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

dir.c: get attributes by fd

* dir.c (is_case_sensitive): get attributes by the file descriptor
  of open directory, instead of using mount point name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-07-10 08:41:57 +00:00
parent f7946774dd
commit d8f628e582
2 changed files with 6 additions and 3 deletions

View file

@ -1,3 +1,8 @@
Fri Jul 10 17:41:54 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* dir.c (is_case_sensitive): get attributes by the file descriptor
of open directory, instead of using mount point name.
Fri Jul 10 10:46:02 2015 ksss <co000ri@gmail.com>
* ext/stringio/stringio.c (writable): remove unnecessary check for

4
dir.c
View file

@ -1451,10 +1451,8 @@ is_case_sensitive(DIR *dirp)
const vol_capabilities_attr_t *const cap = attrbuf[0].cap;
const int idx = VOL_CAPABILITIES_FORMAT;
const uint32_t mask = VOL_CAP_FMT_CASE_SENSITIVE;
struct statfs sf;
if (fstatfs(dirfd(dirp), &sf)) return -1;
if (getattrlist(sf.f_mntonname, &al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW))
if (fgetattrlist(dirfd(dirp), &al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW))
return -1;
if (!(cap->valid[idx] & mask))
return -1;