diff options
| author | Steve Dickson <steved@redhat.com> | 2014-06-17 14:01:48 -0400 |
|---|---|---|
| committer | Steve Dickson <steved@redhat.com> | 2014-06-17 14:03:18 -0400 |
| commit | 6091c0a4c442f67edf1237347e1cb0eedc7d6fd9 (patch) | |
| tree | 0cb34fd4b6e315403d1310935466a4cff4892807 /configure.ac | |
| parent | 3b1457d219ceb1058d44bacc657581f13437ae40 (diff) | |
| download | nfs-utils-6091c0a4c442f67edf1237347e1cb0eedc7d6fd9.tar.gz | |
mountd: add support for case-insensitive file names
Case insensitive filesystems support textually distinct names for the
same directory. i.e. you can access it with a name other than the
canonical name.
For example if you
mkdir /mnt/export
then add /mnt/EXPORT to /etc/exports, and on a client
mount server:/mnt/EXPORT /import
then the mount will work, but if the kernel on the server needs to
refresh the export information, it will ask about "/mnt/export", which
is not listed in /etc/exports and so will fail.
To fix this we need mountd to perform case-insensitive name
comparisons, but only when the filesystem would, and in exactly the
same way that the filesystem would.
So, when comparing paths for equality first try some simple heuristics
which will not be fooled by case and then ask the kernel if they are
the same.
By preference we use name_to_handle_at() as it reports the mntid which
can distinguish between bind mounts. If that is not available, use
lstat() and compare rdev and ino.
Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 7b93de6..408f4c8 100644 --- a/configure.ac +++ b/configure.ac @@ -411,7 +411,7 @@ AC_CHECK_FUNCS([alarm atexit dup2 fdatasync ftruncate getcwd \ getnameinfo getrpcbyname getifaddrs \ gettimeofday hasmntopt inet_ntoa innetgr memset mkdir pathconf \ ppoll realpath rmdir select socket strcasecmp strchr strdup \ - strerror strrchr strtol strtoul sigprocmask]) + strerror strrchr strtol strtoul sigprocmask name_to_handle_at]) dnl ************************************************************* |
