summaryrefslogtreecommitdiff
path: root/udev/udev-node.c
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2009-12-18 21:25:13 +0100
committerKay Sievers <kay.sievers@vrfy.org>2009-12-18 21:25:13 +0100
commit560739148143061336096dc3c021f94fe1bce37b (patch)
treea3714892ff1665eb8eb96b8368715c33295f2755 /udev/udev-node.c
parent6fb1b637d4fc9e94d0c492d8a3049f30db88dd54 (diff)
update mtime of nodes and links when we re-use them
Diffstat (limited to 'udev/udev-node.c')
-rw-r--r--udev/udev-node.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/udev/udev-node.c b/udev/udev-node.c
index 24f2ccf618..c80a74c218 100644
--- a/udev/udev-node.c
+++ b/udev/udev-node.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <grp.h>
#include <dirent.h>
+#include <sys/time.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -55,6 +56,8 @@ int udev_node_mknod(struct udev_device *dev, const char *file, dev_t devnum, mod
info(udev, "preserve file '%s', because it has correct dev_t\n", file);
preserve = 1;
udev_selinux_lsetfilecon(udev, file, mode);
+ /* update time stamp when we re-use the node, like on media change events */
+ utimes(file, NULL);
} else {
char file_tmp[UTIL_PATH_SIZE + sizeof(TMP_FILE_EXT)];
@@ -175,6 +178,7 @@ static int node_symlink(struct udev *udev, const char *node, const char *slink)
info(udev, "preserve already existing symlink '%s' to '%s'\n",
slink, target);
udev_selinux_lsetfilecon(udev, slink, S_IFLNK);
+ lutimes(slink, NULL);
goto exit;
}
}