git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sort .gitignore (using sort -d -- dictionary order).
[libguestfs.git]
/
daemon
/
utimens.c
diff --git
a/daemon/utimens.c
b/daemon/utimens.c
index
a9857db
..
2df6fc7
100644
(file)
--- a/
daemon/utimens.c
+++ b/
daemon/utimens.c
@@
-33,18
+33,8
@@
do_utimens (const char *path,
int64_t atsecs, int64_t atnsecs,
int64_t mtsecs, int64_t mtnsecs)
{
int64_t atsecs, int64_t atnsecs,
int64_t mtsecs, int64_t mtnsecs)
{
- int fd;
int r;
int r;
- CHROOT_IN;
- fd = open (path, O_RDONLY | O_NOCTTY);
- CHROOT_OUT;
-
- if (fd == -1) {
- reply_with_perror ("open: %s", path);
- return -1;
- }
-
if (atnsecs == -1)
atnsecs = UTIME_NOW;
if (atnsecs == -2)
if (atnsecs == -1)
atnsecs = UTIME_NOW;
if (atnsecs == -2)
@@
-60,15
+50,12
@@
do_utimens (const char *path,
times[1].tv_sec = mtsecs;
times[1].tv_nsec = mtnsecs;
times[1].tv_sec = mtsecs;
times[1].tv_nsec = mtnsecs;
- r = futimens (fd, times);
- if (r == -1) {
- reply_with_perror ("futimens: %s", path);
- close (fd);
- return -1;
- }
+ CHROOT_IN;
+ r = utimensat (-1, path, times, AT_SYMLINK_NOFOLLOW);
+ CHROOT_OUT;
- if (
close (fd)
== -1) {
- reply_with_perror ("
close
: %s", path);
+ if (
r
== -1) {
+ reply_with_perror ("
utimensat
: %s", path);
return -1;
}
return -1;
}