From 53203e5f8f9a79d0ad774e29ea165b471e64619f Mon Sep 17 00:00:00 2001 From: michaelolbrich Date: Mon, 6 Jun 2016 21:59:51 +0200 Subject: mount: make sure got into MOUNT_DEAD state after a successful umount (#3444) Without this code the following can happen: 1. Open a file to keep a mount busy 2. Try to stop the corresponding mount unit with systemctl -> umount fails and the failure is remembered in mount->result 3. Close the file and umount the filesystem manually -> mount_dispatch_io() calls "mount_enter_dead(mount, MOUNT_SUCCESS)" -> Old error in mount->result is reused and the mount unit enters a failed state Clear the old error result when 'mountinfo' reports a successful umount to fix this. --- src/core/mount.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/core/mount.c b/src/core/mount.c index 665a60bb55..8290ac859d 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1706,6 +1706,7 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, /* This has just been unmounted by * somebody else, follow the state * change. */ + mount->result = MOUNT_SUCCESS; mount_enter_dead(mount, MOUNT_SUCCESS); break; -- cgit v1.2.3-54-g00ecf