summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2019-12-28 22:07:21 +0100
committerRafał Miłecki <rafal@milecki.pl>2020-03-21 22:40:52 +0100
commitd1f1f2b38fa1e7b594bd005e563679a40e4d7e95 (patch)
treee88d1591025850b836a42b9b2a7ddc945c64ad41
parent62c578c22f9d87ab9a7b686dece913861cf34c34 (diff)
downloadfstools-d1f1f2b38fa1e7b594bd005e563679a40e4d7e95.tar.gz
block: remove mount target file if it's a link
Links like that can remain from using autofs and can cause mounting errors after switching to non-autofs: block: mounting /dev/sda1 (vfat) as /mnt/sda1 failed (2) - No such file or directory Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-rw-r--r--block.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/block.c b/block.c
index 50d877f..9e530f1 100644
--- a/block.c
+++ b/block.c
@@ -1072,6 +1072,7 @@ static int mount_device(struct device *dev, int type)
{
struct mount *m;
struct probe_info *pr;
+ struct stat st;
char _target[32];
char *target;
char *device;
@@ -1154,6 +1155,8 @@ static int mount_device(struct device *dev, int type)
check_filesystem(pr);
mkdir_p(target);
+ if (!lstat(target, &st) && S_ISLNK(st.st_mode))
+ unlink(target);
err = handle_mount(pr->dev, target, pr->type, m);
if (err) {