From patchwork Fri May 30 20:01:36 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 4273731 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 26CC89F333 for ; Fri, 30 May 2014 20:15:50 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 512AD203B1 for ; Fri, 30 May 2014 20:15:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9F477203B0 for ; Fri, 30 May 2014 20:15:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030319AbaE3UFu (ORCPT ); Fri, 30 May 2014 16:05:50 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:55893 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030248AbaE3UFs (ORCPT ); Fri, 30 May 2014 16:05:48 -0400 Received: from wuerfel.lan (HSI-KBW-134-3-133-35.hsi14.kabel-badenwuerttemberg.de [134.3.133.35]) by mrelayeu.kundenserver.de (node=mreue104) with ESMTP (Nemesis) id 0LfSYr-1WSOpS3JZB-00p1m4; Fri, 30 May 2014 22:05:04 +0200 From: Arnd Bergmann To: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org, joseph@codesourcery.com, john.stultz@linaro.org, hch@infradead.org, tglx@linutronix.de, geert@linux-m68k.org, lftan@altera.com, hpa@zytor.com, linux-fsdevel@vger.kernel.org, Arnd Bergmann , Chris Mason , Josef Bacik , linux-btrfs@vger.kernel.org Subject: [RFC 12/32] btrfs: convert to struct inode_time Date: Fri, 30 May 2014 22:01:36 +0200 Message-Id: <1401480116-1973111-13-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <1401480116-1973111-1-git-send-email-arnd@arndb.de> References: <1401480116-1973111-1-git-send-email-arnd@arndb.de> X-Provags-ID: V02:K0:9Xjj/rrfPUqiZGKEAgC8PmgN/ebt7EOjPh6UnRa4DFD sI6vdV5ZW7fnFiQS+FwRYgDHN9dbNLpM/kOTtgebrDPD654RVN VKWOdVqnI8OJYkGuljCgUPrCvB8Gf6wprGxLuCODFServ5sJYD BkdDQhVBZe96iDvYNn5IAW6U7i4BYEVn5qQaZWxvCYQw2bJfVh F9gd/PpDZHX/zJ1OgHUORNx72+BEr4aadUL642JEZra93cmAce qhfryY7eAS3N4bQG9xCZxNECkbKwQQ3o3E1q7AW6eNrOXjHBCu gm/i1Ibx27F2yd6IKD1DLuymD3oYI9Mm/B69euubTu4t+0DgSF 5mGpjR8DLaHqkanz4ubwEOW9Q0nNHTairRvX1fB6J Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP btrfs uses unsigned 64-bit seconds for inode timestamps, which will work basically forever, but the VFS uses struct timespec for timestamps, which is only good until 2038 on 32-bit CPUs. This gets us one small step closer to lifting the VFS limit by using struct inode_time in btrfs. Signed-off-by: Arnd Bergmann Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org --- fs/btrfs/file.c | 6 +++--- fs/btrfs/inode.c | 4 ++-- fs/btrfs/ioctl.c | 4 ++-- fs/btrfs/root-tree.c | 2 +- fs/btrfs/transaction.c | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index a58df83..3e16a4e 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1693,16 +1693,16 @@ out: static void update_time_for_write(struct inode *inode) { - struct timespec now; + struct inode_time now; if (IS_NOCMTIME(inode)) return; now = current_fs_time(inode->i_sb); - if (!timespec_equal(&inode->i_mtime, &now)) + if (!inode_time_equal(&inode->i_mtime, &now)) inode->i_mtime = now; - if (!timespec_equal(&inode->i_ctime, &now)) + if (!inode_time_equal(&inode->i_ctime, &now)) inode->i_ctime = now; if (IS_I_VERSION(inode)) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 2ac3036..d825387 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -5440,7 +5440,7 @@ static int btrfs_dirty_inode(struct inode *inode) * This is a copy of file_update_time. We need this so we can return error on * ENOSPC for updating the inode in the case of file write and mmap writes. */ -static int btrfs_update_time(struct inode *inode, struct timespec *now, +static int btrfs_update_time(struct inode *inode, struct inode_time *now, int flags) { struct btrfs_root *root = BTRFS_I(inode)->root; @@ -8223,7 +8223,7 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry, struct btrfs_root *dest = BTRFS_I(new_dir)->root; struct inode *new_inode = new_dentry->d_inode; struct inode *old_inode = old_dentry->d_inode; - struct timespec ctime = CURRENT_TIME; + struct inode_time ctime = CURRENT_TIME; u64 index = 0; u64 root_objectid; int ret; diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index a313ab0..2de5f86 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -435,7 +435,7 @@ static noinline int create_subvol(struct inode *dir, struct btrfs_root *root = BTRFS_I(dir)->root; struct btrfs_root *new_root; struct btrfs_block_rsv block_rsv; - struct timespec cur_time = CURRENT_TIME; + struct inode_time cur_time = CURRENT_TIME; struct inode *inode; int ret; int err; @@ -4456,7 +4456,7 @@ static long _btrfs_ioctl_set_received_subvol(struct file *file, struct btrfs_root *root = BTRFS_I(inode)->root; struct btrfs_root_item *root_item = &root->root_item; struct btrfs_trans_handle *trans; - struct timespec ct = CURRENT_TIME; + struct inode_time ct = CURRENT_TIME; int ret = 0; int received_uuid_changed; diff --git a/fs/btrfs/root-tree.c b/fs/btrfs/root-tree.c index 38bb47e..344e89f 100644 --- a/fs/btrfs/root-tree.c +++ b/fs/btrfs/root-tree.c @@ -487,7 +487,7 @@ void btrfs_update_root_times(struct btrfs_trans_handle *trans, struct btrfs_root *root) { struct btrfs_root_item *item = &root->root_item; - struct timespec ct = CURRENT_TIME; + struct inode_time ct = CURRENT_TIME; spin_lock(&root->root_item_lock); btrfs_set_root_ctransid(item, trans->transid); diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index 7579f6d..09dcc8a 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -1133,7 +1133,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, struct dentry *dentry; struct extent_buffer *tmp; struct extent_buffer *old; - struct timespec cur_time = CURRENT_TIME; + struct inode_time cur_time = CURRENT_TIME; int ret = 0; u64 to_reserve = 0; u64 index = 0;