summaryrefslogtreecommitdiffstats
path: root/utils/mountd/cache.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-12-17 16:19:09 -0500
committerSteve Dickson <steved@redhat.com>2012-12-17 16:33:17 -0500
commitffe1b3f8483c96e85409e5ea5ed69ab98128a3a1 (patch)
tree83d909fe497c733543ab8750c0afd5b15db2932a /utils/mountd/cache.c
parent11d4f1d2feae160caa35c4eb8565c969dc16a24d (diff)
downloadnfs-utils-ffe1b3f8483c96e85409e5ea5ed69ab98128a3a1.tar.gz
nfs-utils-ffe1b3f8483c96e85409e5ea5ed69ab98128a3a1.tar.xz
nfs-utils-ffe1b3f8483c96e85409e5ea5ed69ab98128a3a1.zip
mountd: fix checking for errors when exporting filesystems
commit 5604b35a61e22930873ffc4e9971002f578e7978 nfs-utils: Increase the stdio file buffer size for procfs files changed writes to some sysfs files to be line buffered (_IOLBF) where they weren't before. While this probably makes sense, it introduced a bug. With fully buffered streams, you don't expect to get an error until you call fflush(). With line buffered streams you can get the error from fprintf() et al. qword_eol() only tests the return from fflush(), not from fprintf(). Consequently errors were not noticed. One result of this is that if you export, with crossmnt, a filesystem underneath which are mounted non-exportable filesystems (e.g. /proc) then an 'ls -l' on the client will block indefinitely waiting for a meaningful 'yes' or 'no' from the server, but will never get one. This patch changes qword_eol to test both fprintf and fflush. 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 'utils/mountd/cache.c')
0 files changed, 0 insertions, 0 deletions