Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp4963390ybi; Tue, 30 Jul 2019 11:14:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqzJuXgePKsGacTvrVLLMF3dHdT0956aTB/E64kN3WkxnH2gTHODsmLK/dmtgT1m5AYoVPb4 X-Received: by 2002:a63:9e43:: with SMTP id r3mr86072189pgo.148.1564510442334; Tue, 30 Jul 2019 11:14:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564510442; cv=none; d=google.com; s=arc-20160816; b=NRsv+p3l2tDRDwfivsngX63QXOxsBL6s2PDarKgLF9QcP+lHR/vkYAn5r5xpjs+sh8 sL1HMkJ4VLS74irFeD25rsfVaAGQ/75qJt5yr12+OXTvvBL9J322Q6r/ONDwe5Q6EcYv MdlcWITyMx6Z1MoNI2a1/TWFmDwYf07kFFqPxtgdorTdmJ0oid0JWBIwJm8kf0SyyVK4 ucI5E/6WgcfCLCFsYZo6IJmpvaTYgO2jWVOgv8MdujV6uDM8/6Cq2tAbQzcEndHjq2OQ 8HxkDxiq6Xe0irbA03lIUSY1zEEzmL3Lvh2oA0tb4DSZciWVqvwM4rPahZK/53wNaSNx OOhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=uwRGpPyO4rj41OhPrKgAKlV9LI4f1AOpgovGm7Ses18=; b=dOsZeVrDVLCUaGMARTwvBkjVVG0ZlwG0S5hmLG4awrFkg337wiP6y8pHruo/P6A+lV KNF5rIPkGJbr8I6nBk0/B1KksMOVZYmnoQ/7+OEfjpHiF/f9UAdDOq3LnFNYYBXUp6wE sfn88iNrdDf6TldkYl0yKYDzCsT52Gz47cXna9i+j0dN4kKFFvUc5Sa3LbrpIa8hKLip +so0tewxAKIfsK3x0WZE/sOSgOUJ2ckGBQwzSEkzJXPQG4b5V18ptb80xRuo/t8++Gem hm5UBDce0WAd7nTPDzw62WWf3wrr9n2BMHzixNphk2xJAiAJXv360oyAsuYQCXcssyPs hzhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rksr4Dju; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z17si25752115pjr.21.2019.07.30.11.13.46; Tue, 30 Jul 2019 11:14:02 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rksr4Dju; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731329AbfG3Rjx (ORCPT + 99 others); Tue, 30 Jul 2019 13:39:53 -0400 Received: from mail-io1-f67.google.com ([209.85.166.67]:35180 "EHLO mail-io1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731313AbfG3Rjx (ORCPT ); Tue, 30 Jul 2019 13:39:53 -0400 Received: by mail-io1-f67.google.com with SMTP id m24so130086599ioo.2; Tue, 30 Jul 2019 10:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uwRGpPyO4rj41OhPrKgAKlV9LI4f1AOpgovGm7Ses18=; b=rksr4DjuGP0oernMgWLZxy30LGhFuhay1j1vOnOeicZjBWcqFJ+Nx6MfuUboj9QxPu +s3KqxCVZ6YCOwjMF6XAnU9scY8hJk64AiBY3aRG7qoKqJ43hiim+myQHFw1xdWZkquA j1S872SkhWEOxZ3WTO7SNFLVuh/RjTE+Dsg0DhnZMk0BtQ4l3EshZBGWijHr2OGFB4lv XodPLoOau1Z4SFA3GBfBRUiM4EGWadAnYO/oQaSDTIwMJHiGxAYIFQiwUyjXot/4VEm1 JmGcG67m/98CXLV7fQSflRRr6EVkcNirxk4Ndfr17ug481gcd4md+nZyTaBTNiZXLGvg Zfgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uwRGpPyO4rj41OhPrKgAKlV9LI4f1AOpgovGm7Ses18=; b=ZSxplPujgNu9gGh6f2A92+izWesCU4TaSMoIFwidmMBoP7QcrS/q57hKfJyIDAQ1y1 Mzu/9bpv7LhhKoIp6uv3SgGOWOnxtO34X2XbaU1cMs3iAOUCr7ACO/97r/mxPyF7Yf2x Jp1fdbXWSh8mDnn2DiH8OOsMgKc7V4KWIWj2wcQ8RzfWHBBYvk4r4/lAyoZ5iN1uJYsW 8/kN4y0SetOYojqw1w0LrsDZjsx+jLIN3vz1oRUfe2xJqv056XLi1DNgTS2161kY6/eJ TC3jKpKWY37nCtMtjeYahz0xpMg4X9vs1N/9z6eYYyEOieRbcSsV9XG6S2nONoJUvvy0 hn4Q== X-Gm-Message-State: APjAAAWjsdgzgIKuWih9855DYOSPlaQyudcNNI7hefdx9GCL4iAmeE3r vijNCZwtPyTAmkF8HOYXvkxhKutN2g92hCE3GsM= X-Received: by 2002:a6b:ed09:: with SMTP id n9mr36647545iog.153.1564508392466; Tue, 30 Jul 2019 10:39:52 -0700 (PDT) MIME-Version: 1.0 References: <20190730014924.2193-1-deepa.kernel@gmail.com> <20190730014924.2193-13-deepa.kernel@gmail.com> <878ssfc1id.fsf@mail.parknet.co.jp> In-Reply-To: <878ssfc1id.fsf@mail.parknet.co.jp> From: Deepa Dinamani Date: Tue, 30 Jul 2019 10:39:41 -0700 Message-ID: Subject: Re: [PATCH 12/20] fs: fat: Initialize filesystem timestamp ranges To: OGAWA Hirofumi Cc: Alexander Viro , Linux Kernel Mailing List , Linux FS-devel Mailing List , Arnd Bergmann , y2038 Mailman List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 30, 2019 at 2:31 AM OGAWA Hirofumi wrote: > > Deepa Dinamani writes: > > > +/* DOS dates from 1980/1/1 through 2107/12/31 */ > > +#define FAT_DATE_MIN (0<<9 | 1<<5 | 1) > > +#define FAT_DATE_MAX (127<<9 | 12<<5 | 31) > > +#define FAT_TIME_MAX (23<<11 | 59<<5 | 29) > > + > > /* > > * A deserialized copy of the on-disk structure laid out in struct > > * fat_boot_sector. > > @@ -1605,6 +1610,7 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat, > > int debug; > > long error; > > char buf[50]; > > + struct timespec64 ts; > > > > /* > > * GFP_KERNEL is ok here, because while we do hold the > > @@ -1698,6 +1704,12 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat, > > sbi->free_clus_valid = 0; > > sbi->prev_free = FAT_START_ENT; > > sb->s_maxbytes = 0xffffffff; > > + fat_time_fat2unix(sbi, &ts, 0, cpu_to_le16(FAT_DATE_MIN), 0); > > + sb->s_time_min = ts.tv_sec; > > + > > + fat_time_fat2unix(sbi, &ts, cpu_to_le16(FAT_TIME_MAX), > > + cpu_to_le16(FAT_DATE_MAX), 0); > > + sb->s_time_max = ts.tv_sec; > > At least, it is wrong to call fat_time_fat2unix() before setup parameters > in sbi. All the parameters that fat_time_fat2unix() cares in sbi is accessed through static inline int fat_tz_offset(struct msdos_sb_info *sbi) { return (sbi->options.tz_set ? -sbi->options.time_offset : sys_tz.tz_minuteswest) * SECS_PER_MIN; } Both the sbi fields sbi->options.tz_set and sbi->options.time_offset are set by the call to parse_options(). And, parse_options() is called before the calls to fat_time_fat2unix().: int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat, void (*setup)(struct super_block *)) { error = parse_options(sb, data, isvfat, silent, &debug, &sbi->options); if (error) goto out_fail; sbi->prev_free = FAT_START_ENT; sb->s_maxbytes = 0xffffffff; fat_time_fat2unix(sbi, &ts, 0, cpu_to_le16(FAT_DATE_MIN), 0); sb->s_time_min = ts.tv_sec; fat_time_fat2unix(sbi, &ts, cpu_to_le16(FAT_TIME_MAX), cpu_to_le16(FAT_DATE_MAX), 0); sb->s_time_max = ts.tv_sec; } I do not see what the problem is. -Deepa