]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commit
Skip davfs mount points during quiescing
authorOliver Kurth <okurth@vmware.com>
Mon, 26 Feb 2018 20:29:06 +0000 (12:29 -0800)
committerOliver Kurth <okurth@vmware.com>
Mon, 26 Feb 2018 20:29:06 +0000 (12:29 -0800)
commitf459a325c4eec2e31eddc7f74901623b30ea0525
treeb7587e2e3d45b9261828c78e54d5629656c80a67
parent3af8139cfcb4578dd9d7cd9a85301ed808775eb4
Skip davfs mount points during quiescing

The davfs2 is a Linux filesystem that allows mounting a Web Distributed
Authoring and Versioning (WebDAV) network resource as a local filesystem.
On some Linux releases, the FREEZE ioctl() is rejected and quiescing
these filesystems is not attempted.  On others, however, the FREEZE is
not rejected and there exists the potential of a quiescing deadlock
if the davfs2 attempts to write to its cache in /var which has already
been quiesced.

This fix is to avoid a potential deadlock by excluding davfs2 mounts
as the networking filesystem they are.  Since davfs2 may be implemented
on the Linux fuse (default) or coda filesystem kernel module,
the detection of these network mounts must be based upon detection
of the URL prefix of the mounted device name.

The static function SyncDriverIsRemoteFSType() is being updated to
not only exclude remote filesystems based on filesystem type but also
to exclude davfs2 remote filesystems by the "http://" or "https://"
URL prefix on the device name.  The function name is being changed
to SyncDriverIsRemoteFS().
open-vm-tools/lib/syncDriver/syncDriverPosix.c