From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964789AbcBDIac (ORCPT ); Thu, 4 Feb 2016 03:30:32 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:52307 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754451AbcBDIaa (ORCPT ); Thu, 4 Feb 2016 03:30:30 -0500 From: Arnd Bergmann To: "Yan, Zheng" Cc: Deepa Dinamani , Zheng Yan , linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, Dave Chinner , "Theodore Ts'o" , linux-kernel , Sage Weil , Ilya Dryomov , ceph-devel Subject: Re: [PATCH 09/10] fs: ceph: Replace CURRENT_TIME by ktime_get_real_ts() Date: Thu, 04 Feb 2016 09:30:20 +0100 Message-ID: <4400939.hfiB5KsmnG@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: References: <1454479670-8204-1-git-send-email-deepa.kernel@gmail.com> <3267742.ulDeDOimis@wuerfel> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:FjEtYqQWOG4yhkco3Mg/dqRZQZHOa5EXkFQaWH6LZmvGcW+bLg1 kIc6FxgqkrrAkwho2DGFax1UM8bJ8LiNW62Cmli/6SBjlLR+2oG8X6i89L7DJeHIinvvSsh 3KPYKJCO4q/9ScZHX13ILqJPRw2FsozULaGUo1j3zDfJ6apdcJhWDVy17BH5zfRmJKaerfI dIRWHaLS1S0rep42iqFYQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:a5nUAs6Z8e4=:8bEzqq4WqKzAYTDc434B8O Syxyky+UgTJhJuryJPML+wKI6mJhrk2vNTljw1IUQTt1OZdYk1w3uYtHNHCuqbGAhhSmGNDAI e0DMTRdn5BLO7GpqIz5VOF4HlC2QIx7trCuw44Ykgppy4SOGx3sSshl08PaFZx7I20EL73eGm rJaqjzBeCOhzLjrWHGtDTNKhv1/e3xgyEIHSTQDgL3Zd7JYLCvnN/fUxj0gY/CgbZ8OhOvAVD IlvmGy8z+WgHCAvzHfsAzE8rDlbFoi42ZTNLJC11BYShicO0qJ4esKWmbJpUwoDlMGnuRyj1l X+E5d6hBPtbUFW9CafFXMPFRu/hNIy0w5EJyUVqn7NlFQJ61hUm7q7cYyKSYOGYmPArxfWGM/ iTpCSc6uTghtwcesccn+oLodz7mLEl3vCKYNRm50HGu4R9GiZwxuxObbiUlcVtG74KVEEa1U3 ZkRIB9tuZTrFD+/YBgjHePCCs1W6PIDzTy5Zsfv+GnrmFxinktJkOknbxp1kuKMEA5Lrhs9WR nkXJS+9jrQENXjmejrnSJNq7EmfNybPP2jQtxNTrQgKxI80vucSdaLJjeQ41II1d29KxfRV4H NdY6DcKNY3AsHUYcn/fq0smeaqOprfTx3UW7lVWVy3nJMZFPq5HY1zz/H06D0nRUEYM5DJzX+ CT3X8vt2mEUdxkQwzREX86oqoCZHUF/RJYzLujHy2rGY8Lwf2/DSRR1lDPnH3mo1nmhRqT8iU 7GefCsERgtWkKc59 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thursday 04 February 2016 10:00:19 Yan, Zheng wrote: > > On Feb 4, 2016, at 05:27, Arnd Bergmann wrote: > { > struct ceph_timespec ts; > ceph_encode_timespec(&ts, &req->r_stamp); > ceph_encode_copy(&p, &ts, sizeof(ts)); > } Ok, that does make the behavior consistent on all architectures, but leads to a different question: struct ceph_timespec { __le32 tv_sec; __le32 tv_nsec; } __attribute__ ((packed)); How do you define ceph_timespec, is tv_sec supposed to be signed or unsigned? It seems that you treat it as signed, meaning you interpret times from the server as being in the [1902..2038] range, rather than the [1970..2106] range: static inline void ceph_decode_timespec(struct timespec *ts, const struct ceph_timespec *tv) { ts->tv_sec = (__kernel_time_t)le32_to_cpu(tv->tv_sec); ts->tv_nsec = (long)le32_to_cpu(tv->tv_nsec); } Is that intentional and documented? If yes, what is your plan to deal with y2038 support? Arnd