From: Andrei Vagin Date: Tue, 12 Nov 2019 01:27:02 +0000 (+0000) Subject: timerfd: Make timerfd_settime() time namespace aware X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6cd889d43c40b13f81a44c41896781ce70244769;p=linux.git timerfd: Make timerfd_settime() time namespace aware timerfd_settime() accepts an absolute value of the expiration time if TFD_TIMER_ABSTIME is specified. This value is in the task's time namespace and has to be converted to the host's time namespace. Co-developed-by: Dmitry Safonov Signed-off-by: Andrei Vagin Signed-off-by: Dmitry Safonov Signed-off-by: Thomas Gleixner Link: https://lore.kernel.org/r/20191112012724.250792-14-dima@arista.com --- diff --git a/fs/timerfd.c b/fs/timerfd.c index ac7f59a58f947..c5509d2448e38 100644 --- a/fs/timerfd.c +++ b/fs/timerfd.c @@ -26,6 +26,7 @@ #include #include #include +#include struct timerfd_ctx { union { @@ -196,6 +197,8 @@ static int timerfd_setup(struct timerfd_ctx *ctx, int flags, } if (texp != 0) { + if (flags & TFD_TIMER_ABSTIME) + texp = timens_ktime_to_host(clockid, texp); if (isalarm(ctx)) { if (flags & TFD_TIMER_ABSTIME) alarm_start(&ctx->t.alarm, texp);