From: michaelolbrich Date: Mon, 6 Jun 2016 19:59:51 +0000 (+0200) Subject: mount: make sure got into MOUNT_DEAD state after a successful umount (#3444) X-Git-Tag: v231~213 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=53203e5f8f9a79d0ad774e29ea165b471e64619f;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/core/mount.c b/src/core/mount.c index 665a60bb550..8290ac859dc 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;