X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudev-node.c;h=c80a74c2188128eb20478f4d137b0b89855975da;hp=24f2ccf618cd14592c3762640b76fd168521e4df;hb=560739148143061336096dc3c021f94fe1bce37b;hpb=6fb1b637d4fc9e94d0c492d8a3049f30db88dd54 diff --git a/udev/udev-node.c b/udev/udev-node.c index 24f2ccf61..c80a74c21 100644 --- a/udev/udev-node.c +++ b/udev/udev-node.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -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; } }