Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp173701ybz; Tue, 21 Apr 2020 07:00:04 -0700 (PDT) X-Google-Smtp-Source: APiQypKU/kfG/cZQQ9aVTD1+pZO2Ty+71wZf4zIj//hZvar97sJkGSpap0fPguCBC0EAW5UsN0Xs X-Received: by 2002:aa7:d4cd:: with SMTP id t13mr13250144edr.30.1587477604508; Tue, 21 Apr 2020 07:00:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587477604; cv=none; d=google.com; s=arc-20160816; b=EuwOUgq+pGjZJKyrH56m7Aajg46Nk+0+8DEtzmGcgaHzb/ACZR80evH0GjrUGND5ZE BgPDpAHYTGZ90Mve2glqBNSAK//V/TBbuClqpeUCESeq7aQBdj1QRAn69jgRuNWPrMmK LDzG/AECyXYPebgfioCgiMEbS6xMFa55I7XdeetPK5FnMqQkSQENCHhp6dCgm6CHPExU AtYHeK+58GOJsgH/b0OBSBcE89PHOkJi2PbKEppp53a5aLJiddieB7/eCbhlBJp9vpRq In9hTNPzOvNhkKw+dMTo/vUngk8RCDR8b4uSPeElspuC9d+YRUhHPYSCaaY95CliQ0Ma Waaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2wRD9FPTWKMzxCyWJGhqpm27rg8NjVNjjKx55UL7gOU=; b=Sq1E9iE/ED6iSmTIRiFlhdMZ3VOpX6+CiJNCp2uCZZ2OPg1ANHtm5lpxGOmKKt0voz kY90kVJIZDLh8SenTIK9wO9SS4kcl2Y7itDnbRooXi8DPzyR8xGWHq4X7ICZQfsb8Ur6 xM/GnEjkP1rb/kYA/338+lWcVcexcr4EC0uBZqLJs4CEtr9BSiHJyHz2s+fFXdjWlAUA wGtPaZZn5Ns24ZeFTAA0ryAkZNVDGJWC+SS5kMM6WPOcRQPCYJFzgjTrNPxCbHAaxm7r E/yA6b5Ok1/qpAXIJvA4oiFXML8/nn//123pYMM1WpQ9ANVnpgkQL4OpJcwNoLLLSEj6 cKsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Nu3trMDK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cx18si1662500edb.73.2020.04.21.06.59.41; Tue, 21 Apr 2020 07:00:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Nu3trMDK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728825AbgDUN5y (ORCPT + 99 others); Tue, 21 Apr 2020 09:57:54 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:48456 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728824AbgDUN5v (ORCPT ); Tue, 21 Apr 2020 09:57:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587477469; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2wRD9FPTWKMzxCyWJGhqpm27rg8NjVNjjKx55UL7gOU=; b=Nu3trMDKQtUIanQbH665T2r5W69cir4BYnqL/P1xC+skrm/gffIT4BhTOS6jPkTl5objGj BHNhlR18NZV0trlNkBy9l6qhtEKxmvOFYCua/P+dXcGMiqOQ3PTfuhO0Has91F7QzXDDI+ 14pV7PDCkEi+3gT39hdQsaQLePqKXnc= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-44-K6S-CHKmOrq5ykjxFvIwvg-1; Tue, 21 Apr 2020 09:57:47 -0400 X-MC-Unique: K6S-CHKmOrq5ykjxFvIwvg-1 Received: by mail-wm1-f71.google.com with SMTP id n127so1408320wme.4 for ; Tue, 21 Apr 2020 06:57:47 -0700 (PDT) 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=2wRD9FPTWKMzxCyWJGhqpm27rg8NjVNjjKx55UL7gOU=; b=MT6Ft0Mpq9aXJ3A1WSRRKxfLAhSn6pzXMBf7M7y4BL/UpEpqdsM7x4OJ4Jzm4RPbyq e0dirKkcBNwy77dO9/7ybcWi49GJMvpk5GOA+WcCx8Ed724wwfaXRa8nmnJKBeLpeCw0 bz8W2hSD1iJDl9csfjOF9PjZulKTOdHRwo63ExuzakbcCh+QFsaz5pknXc7IMpMFkXlI AVGrLTLD6bXQwz+acbWoadkfd7r3RfFbZ7cCVVyYaqpxKURbI/1Jm+Cm415tKAeHrL6n weNtc/e4TSwkylzTleBWsU8lK4KOtNs/VnG8O0wFXnlJjcVucKQ1B7oyZHLJIX2WuxBb mp+w== X-Gm-Message-State: AGi0Puay70CwqZslXD/vZILj3dVqckmloUJyn4ymXH/2PBwpDGW5MJNF D33OjJK9Q/YobM6MxuDMxJ0CVVn80vMoK+h6z2rfUPPZk1wvYkEi+HvmwexCzim1n7OTRKsdVMR af/BWjrJHcj+335x0stqufh3p X-Received: by 2002:a7b:cb17:: with SMTP id u23mr4993985wmj.130.1587477466575; Tue, 21 Apr 2020 06:57:46 -0700 (PDT) X-Received: by 2002:a7b:cb17:: with SMTP id u23mr4993944wmj.130.1587477466378; Tue, 21 Apr 2020 06:57:46 -0700 (PDT) Received: from localhost.localdomain.com ([194.230.155.194]) by smtp.gmail.com with ESMTPSA id f23sm3562989wml.4.2020.04.21.06.57.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2020 06:57:45 -0700 (PDT) From: Emanuele Giuseppe Esposito To: linux-fsdevel@vger.kernel.org Cc: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , "Manoj N. Kumar" , "Matthew R. Ochs" , Uma Krishnan , "James E.J. Bottomley" , "Martin K. Petersen" , Alexander Viro , Joel Becker , Christoph Hellwig , "Rafael J. Wysocki" , John Johansen , James Morris , "Serge E. Hallyn" , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-scsi@vger.kernel.org, linux-security-module@vger.kernel.org, Paolo Bonzini , Emanuele Giuseppe Esposito Subject: [PATCH v2 3/7] libfs: introduce new_inode_current_time Date: Tue, 21 Apr 2020 15:57:37 +0200 Message-Id: <20200421135741.30657-1-eesposit@redhat.com> X-Mailer: git-send-email 2.25.2 In-Reply-To: <20200421135119.30007-1-eesposit@redhat.com> References: <20200421135119.30007-1-eesposit@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is a common special case for new_inode to initialize the time to the current time and the inode to get_next_ino(). Introduce a core function that does it. Signed-off-by: Emanuele Giuseppe Esposito --- fs/libfs.c | 20 ++++++++++++++++++++ include/linux/fs.h | 1 + 2 files changed, 21 insertions(+) diff --git a/fs/libfs.c b/fs/libfs.c index 54e07ae986ca..3fa0cd27ab06 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -594,6 +594,26 @@ int simple_write_end(struct file *file, struct address_space *mapping, } EXPORT_SYMBOL(simple_write_end); +/** + * new_inode_current_time - create new inode by initializing the + * time to the current time and the inode to get_next_ino() + * @sb: pointer to super block of the file system + * + * Returns an inode pointer on success, NULL on failure. + */ +struct inode *new_inode_current_time(struct super_block *sb) +{ + struct inode *inode = new_inode(sb); + + if (inode) { + inode->i_ino = get_next_ino(); + inode->i_atime = inode->i_mtime = + inode->i_ctime = current_time(inode); + } + return inode; +} +EXPORT_SYMBOL(new_inode_current_time); + /* * the inodes created here are not hashed. If you use iunique to generate * unique inode values later for this filesystem, then you must take care diff --git a/include/linux/fs.h b/include/linux/fs.h index a3691c132b3a..de2577df30ae 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3088,6 +3088,7 @@ extern void clear_inode(struct inode *); extern void __destroy_inode(struct inode *); extern struct inode *new_inode_pseudo(struct super_block *sb); extern struct inode *new_inode(struct super_block *sb); +extern struct inode *new_inode_current_time(struct super_block *sb); extern void free_inode_nonrcu(struct inode *inode); extern int should_remove_suid(struct dentry *); extern int file_remove_privs(struct file *); -- 2.25.2