From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amir Goldstein Subject: [PATCH] utimes: Clamp the timestamps in notify_change() Date: Sun, 24 Nov 2019 21:31:45 +0200 Message-ID: <20191124193145.22945-1-amir73il@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" To: Arnd Bergmann Cc: linux-nfs@vger.kernel.org, Miklos Szeredi , y2038@lists.linaro.org, Jeff Layton , linux-unionfs@vger.kernel.org, "J . Bruce Fields" , Deepa Dinamani , linux-fsdevel@vger.kernel.org, Al Viro List-Id: linux-unionfs@vger.kernel.org UHVzaCBjbGFtcGluZyB0aW1lc3RhbXBzIGRvd24gdGhlIGNhbGwgc3RhY2sgaW50byBub3RpZnlf Y2hhbmdlKCksIHNvCmluLWtlcm5lbCBjYWxsZXJzIGxpa2UgbmZzZCBhbmQgb3ZlcmxheWZzIHdp bGwgZ2V0IHNpbWlsYXIgdGltZXN0YW1wCnNldCBiZWhhdmlvciBhcyB1dGltZXMuCgpTdWdnZXN0 ZWQtYnk6IE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUByZWRoYXQuY29tPgpGaXhlczogNDJlNzI5 YjlkZGJiICgidXRpbWVzOiBDbGFtcCB0aGUgdGltZXN0YW1wcyBiZWZvcmUgdXBkYXRlIikKQ2M6 IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcgIyB2NS40CkNjOiBEZWVwYSBEaW5hbWFuaSA8ZGVlcGEu a2VybmVsQGdtYWlsLmNvbT4KQ2M6IEplZmYgTGF5dG9uIDxqbGF5dG9uQGtlcm5lbC5vcmc+ClNp Z25lZC1vZmYtYnk6IEFtaXIgR29sZHN0ZWluIDxhbWlyNzNpbEBnbWFpbC5jb20+Ci0tLQoKQXJu ZCwKClRoaXMgZml4ZXMgeGZzdGVzdCBnZW5lcmljLzQwMiB3aGVuIHJ1biB3aXRoIC1vdmVybGF5 IHNldHVwLgpOb3RlIHRoYXQgcnVubmluZyB0aGUgdGVzdCByZXF1aXJlcyBsYXRlc3QgeGZzdGVz dHMgd2l0aDoKIGFjYjJiYTc4IC0gb3ZlcmxheTogc3VwcG9ydCB0aW1lc3RhbXAgcmFuZ2UgY2hl Y2sKCkkgaGFkIHByZXZpb3VzbHkgcG9zdGVkIGEgZml4IHNwZWNpZmljIGZvciBvdmVybGF5ZnMg WzFdLApidXQgTWlrbG9zIHN1Z2dlc3RlZCB0aGlzIG1vcmUgZ2VuZXJpYyBmaXgsIHdoaWNoIHNo b3VsZCBhbHNvCnNlcnZlIG5mc2QgYW5kIG90aGVyIGluLWtlcm5lbCB1c2Vycy4KCkkgdGVzdGVk IHRoaXMgY2hhbmdlIHdpdGggdGVzdCBnZW5lcmljLzQwMiBvbiBleHQ0L3hmcy9idHJmcwphbmQg b3ZlcmxheWZzLCBidXQgbm90IHdpdGggbmZzZC4KCkplZmYsIGNvdWxkIHlvdSBhY2sgdGhpcyBj aGFuZ2UgaXMgZ29vZCBmb3IgbmZzZCBhcyB3ZWxsPwoKVGhhbmtzLApBbWlyLgoKWzFdIGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWZzZGV2ZWwvMjAxOTExMTEwNzMwMDAuMjk1Ny0xLWFt aXI3M2lsQGdtYWlsLmNvbS8KCiBmcy9hdHRyLmMgICB8IDUgKysrKysKIGZzL3V0aW1lcy5jIHwg NCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9mcy9hdHRyLmMgYi9mcy9hdHRyLmMKaW5kZXggZGYyODAzNWFhMjNlLi5l OGRlNWU2MzZlNjYgMTAwNjQ0Ci0tLSBhL2ZzL2F0dHIuYworKysgYi9mcy9hdHRyLmMKQEAgLTI2 OCw4ICsyNjgsMTMgQEAgaW50IG5vdGlmeV9jaGFuZ2Uoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSwg c3RydWN0IGlhdHRyICogYXR0ciwgc3RydWN0IGlub2RlICoqZGUKIAlhdHRyLT5pYV9jdGltZSA9 IG5vdzsKIAlpZiAoIShpYV92YWxpZCAmIEFUVFJfQVRJTUVfU0VUKSkKIAkJYXR0ci0+aWFfYXRp bWUgPSBub3c7CisJZWxzZQorCQlhdHRyLT5pYV9hdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZShh dHRyLT5pYV9hdGltZSwgaW5vZGUpOwogCWlmICghKGlhX3ZhbGlkICYgQVRUUl9NVElNRV9TRVQp KQogCQlhdHRyLT5pYV9tdGltZSA9IG5vdzsKKwllbHNlCisJCWF0dHItPmlhX210aW1lID0gdGlt ZXN0YW1wX3RydW5jYXRlKGF0dHItPmlhX210aW1lLCBpbm9kZSk7CisKIAlpZiAoaWFfdmFsaWQg JiBBVFRSX0tJTExfUFJJVikgewogCQllcnJvciA9IHNlY3VyaXR5X2lub2RlX25lZWRfa2lsbHBy aXYoZGVudHJ5KTsKIAkJaWYgKGVycm9yIDwgMCkKZGlmZiAtLWdpdCBhL2ZzL3V0aW1lcy5jIGIv ZnMvdXRpbWVzLmMKaW5kZXggMWJhM2Y3ODgzODcwLi4wOTA3MzkzMjI0NjMgMTAwNjQ0Ci0tLSBh L2ZzL3V0aW1lcy5jCisrKyBiL2ZzL3V0aW1lcy5jCkBAIC0zNiwxNCArMzYsMTQgQEAgc3RhdGlj IGludCB1dGltZXNfY29tbW9uKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLCBzdHJ1Y3QgdGltZXNw ZWM2NCAqdGltZXMpCiAJCWlmICh0aW1lc1swXS50dl9uc2VjID09IFVUSU1FX09NSVQpCiAJCQlu ZXdhdHRycy5pYV92YWxpZCAmPSB+QVRUUl9BVElNRTsKIAkJZWxzZSBpZiAodGltZXNbMF0udHZf bnNlYyAhPSBVVElNRV9OT1cpIHsKLQkJCW5ld2F0dHJzLmlhX2F0aW1lID0gdGltZXN0YW1wX3Ry dW5jYXRlKHRpbWVzWzBdLCBpbm9kZSk7CisJCQluZXdhdHRycy5pYV9hdGltZSA9IHRpbWVzWzBd OwogCQkJbmV3YXR0cnMuaWFfdmFsaWQgfD0gQVRUUl9BVElNRV9TRVQ7CiAJCX0KIAogCQlpZiAo dGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9PTUlUKQogCQkJbmV3YXR0cnMuaWFfdmFsaWQgJj0g fkFUVFJfTVRJTUU7CiAJCWVsc2UgaWYgKHRpbWVzWzFdLnR2X25zZWMgIT0gVVRJTUVfTk9XKSB7 Ci0JCQluZXdhdHRycy5pYV9tdGltZSA9IHRpbWVzdGFtcF90cnVuY2F0ZSh0aW1lc1sxXSwgaW5v ZGUpOworCQkJbmV3YXR0cnMuaWFfbXRpbWUgPSB0aW1lc1sxXTsKIAkJCW5ld2F0dHJzLmlhX3Zh bGlkIHw9IEFUVFJfTVRJTUVfU0VUOwogCQl9CiAJCS8qCi0tIAoyLjE3LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClkyMDM4IG1haWxpbmcgbGlzdApZ MjAzOEBsaXN0cy5saW5hcm8ub3JnCmh0dHBzOi8vbGlzdHMubGluYXJvLm9yZy9tYWlsbWFuL2xp c3RpbmZvL3kyMDM4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19A37C43215 for ; Sun, 24 Nov 2019 19:31:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EA4E020815 for ; Sun, 24 Nov 2019 19:31:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kH4v/6aE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726957AbfKXTb5 (ORCPT ); Sun, 24 Nov 2019 14:31:57 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:44301 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726803AbfKXTb4 (ORCPT ); Sun, 24 Nov 2019 14:31:56 -0500 Received: by mail-wr1-f67.google.com with SMTP id i12so14861233wrn.11; Sun, 24 Nov 2019 11:31:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=QG4oMalSJITPl5dzJwFkwS3vwL8ty266LKmX5/+8iyw=; b=kH4v/6aEMLaSjEpnVO6zzCLcos7qYMUk+aXF57w/oZ6reKoyCFxVYEIinY8ejNhAmV fybNjxT1BY0jWqLemx0FzzrJALVOmCSdmARTUz7rF8q/YGXAHDWPRoJa6znCHux+UiIb xjuDYt1Uq2GIo978hvVvjJI/C74QPdY+Dt0O3wlYoxscLlLGYReGXIPrLgWCTF4CuLyC VIuKZt+vDCUyZuV9K7Xmib4kxWE4ib7Wxrj9bHf0AoNbFeNvCu0Ub7gicZWjirMKUIof nn0myP/sVdCCXtlg4fQ7SbxPoeCIiAU2kGQmD5A25NsxQSxAUCZWyzdBaAHIQNBZKJZi sxog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=QG4oMalSJITPl5dzJwFkwS3vwL8ty266LKmX5/+8iyw=; b=IU3EBtlpRneBRV57/iJ6VwFRWfrW4m6b/PeKXDzEvEkJWxxBt+69FxelBEvJwJ1iwV XJE0kQIEknY4Hd0Bk4lBAwO2GVs2llGk1eiL0jKYS6M2UZ9qBR1ajFH1Caij3haIVt25 USCP3DmXnLxqrS2adWVTLBejAEbAXFSUEN9BrtAXzF/tuOlkJABl/ILLk8SuaemCTZuk B94WdxxcsHmmLJw3LlTaUaU+NZIE/dNMZGCcnG7eAV/1w8fSAVHbEgWMvE401RS0Ps3I P30yl8Ycnlg7qEWQgd8z6VWA6xe07bb9jLBTKakrd+H3mEAfEWO8YdQBAjQCCt8hR2QS QzjA== X-Gm-Message-State: APjAAAUzkVWT11c+jJxPUFIPcF4YepYdXydgSpd3/svR6q4rUqEWwd/v xT4vMBj8eLBcn9rtXliW7x4= X-Google-Smtp-Source: APXvYqyliheZUhfJLstF6Mzl+u5ftSUoN8G+LIaVYsc6nxehrTAiuB5+DOIuz8eKSdR58snkjkVbIQ== X-Received: by 2002:a5d:438c:: with SMTP id i12mr5703540wrq.196.1574623914141; Sun, 24 Nov 2019 11:31:54 -0800 (PST) Received: from localhost.localdomain ([94.230.83.228]) by smtp.gmail.com with ESMTPSA id p9sm7314317wrs.55.2019.11.24.11.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Nov 2019 11:31:53 -0800 (PST) From: Amir Goldstein To: Arnd Bergmann Cc: Deepa Dinamani , Jeff Layton , "J . Bruce Fields" , Miklos Szeredi , Al Viro , linux-fsdevel@vger.kernel.org, linux-unionfs@vger.kernel.org, linux-nfs@vger.kernel.org, y2038@lists.linaro.org Subject: [PATCH] utimes: Clamp the timestamps in notify_change() Date: Sun, 24 Nov 2019 21:31:45 +0200 Message-Id: <20191124193145.22945-1-amir73il@gmail.com> X-Mailer: git-send-email 2.17.1 Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Push clamping timestamps down the call stack into notify_change(), so in-kernel callers like nfsd and overlayfs will get similar timestamp set behavior as utimes. Suggested-by: Miklos Szeredi Fixes: 42e729b9ddbb ("utimes: Clamp the timestamps before update") Cc: stable@vger.kernel.org # v5.4 Cc: Deepa Dinamani Cc: Jeff Layton Signed-off-by: Amir Goldstein --- Arnd, This fixes xfstest generic/402 when run with -overlay setup. Note that running the test requires latest xfstests with: acb2ba78 - overlay: support timestamp range check I had previously posted a fix specific for overlayfs [1], but Miklos suggested this more generic fix, which should also serve nfsd and other in-kernel users. I tested this change with test generic/402 on ext4/xfs/btrfs and overlayfs, but not with nfsd. Jeff, could you ack this change is good for nfsd as well? Thanks, Amir. [1] https://lore.kernel.org/linux-fsdevel/20191111073000.2957-1-amir73il@gmail.com/ fs/attr.c | 5 +++++ fs/utimes.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/fs/attr.c b/fs/attr.c index df28035aa23e..e8de5e636e66 100644 --- a/fs/attr.c +++ b/fs/attr.c @@ -268,8 +268,13 @@ int notify_change(struct dentry * dentry, struct iattr * attr, struct inode **de attr->ia_ctime = now; if (!(ia_valid & ATTR_ATIME_SET)) attr->ia_atime = now; + else + attr->ia_atime = timestamp_truncate(attr->ia_atime, inode); if (!(ia_valid & ATTR_MTIME_SET)) attr->ia_mtime = now; + else + attr->ia_mtime = timestamp_truncate(attr->ia_mtime, inode); + if (ia_valid & ATTR_KILL_PRIV) { error = security_inode_need_killpriv(dentry); if (error < 0) diff --git a/fs/utimes.c b/fs/utimes.c index 1ba3f7883870..090739322463 100644 --- a/fs/utimes.c +++ b/fs/utimes.c @@ -36,14 +36,14 @@ static int utimes_common(const struct path *path, struct timespec64 *times) if (times[0].tv_nsec == UTIME_OMIT) newattrs.ia_valid &= ~ATTR_ATIME; else if (times[0].tv_nsec != UTIME_NOW) { - newattrs.ia_atime = timestamp_truncate(times[0], inode); + newattrs.ia_atime = times[0]; newattrs.ia_valid |= ATTR_ATIME_SET; } if (times[1].tv_nsec == UTIME_OMIT) newattrs.ia_valid &= ~ATTR_MTIME; else if (times[1].tv_nsec != UTIME_NOW) { - newattrs.ia_mtime = timestamp_truncate(times[1], inode); + newattrs.ia_mtime = times[1]; newattrs.ia_valid |= ATTR_MTIME_SET; } /* -- 2.17.1