From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 1/4] xfs: use a struct timespec64 for the in-core crtime
Date: Tue, 12 Nov 2019 08:20:26 -0800 [thread overview]
Message-ID: <20191112162026.GX6219@magnolia> (raw)
In-Reply-To: <20191020082145.32515-2-hch@lst.de>
On Sun, Oct 20, 2019 at 10:21:42AM +0200, Christoph Hellwig wrote:
> struct xfs_icdinode is purely an in-memory data structure, so don't use
> a log on-disk structure for it. This simplifies the code a bit, and
> also reduces our include hell slightly.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> fs/xfs/libxfs/xfs_inode_buf.c | 8 ++++----
> fs/xfs/libxfs/xfs_inode_buf.h | 2 +-
> fs/xfs/libxfs/xfs_trans_inode.c | 6 ++----
> fs/xfs/xfs_inode.c | 3 +--
> fs/xfs/xfs_inode_item.c | 4 ++--
> fs/xfs/xfs_iops.c | 3 +--
> fs/xfs/xfs_itable.c | 4 ++--
> 7 files changed, 13 insertions(+), 17 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c
> index 28ab3c5255e1..d31156718b20 100644
> --- a/fs/xfs/libxfs/xfs_inode_buf.c
> +++ b/fs/xfs/libxfs/xfs_inode_buf.c
> @@ -256,8 +256,8 @@ xfs_inode_from_disk(
> if (to->di_version == 3) {
> inode_set_iversion_queried(inode,
> be64_to_cpu(from->di_changecount));
> - to->di_crtime.t_sec = be32_to_cpu(from->di_crtime.t_sec);
> - to->di_crtime.t_nsec = be32_to_cpu(from->di_crtime.t_nsec);
> + to->di_crtime.tv_sec = be32_to_cpu(from->di_crtime.t_sec);
> + to->di_crtime.tv_nsec = be32_to_cpu(from->di_crtime.t_nsec);
> to->di_flags2 = be64_to_cpu(from->di_flags2);
> to->di_cowextsize = be32_to_cpu(from->di_cowextsize);
> }
> @@ -306,8 +306,8 @@ xfs_inode_to_disk(
>
> if (from->di_version == 3) {
> to->di_changecount = cpu_to_be64(inode_peek_iversion(inode));
> - to->di_crtime.t_sec = cpu_to_be32(from->di_crtime.t_sec);
> - to->di_crtime.t_nsec = cpu_to_be32(from->di_crtime.t_nsec);
> + to->di_crtime.t_sec = cpu_to_be32(from->di_crtime.tv_sec);
> + to->di_crtime.t_nsec = cpu_to_be32(from->di_crtime.tv_nsec);
> to->di_flags2 = cpu_to_be64(from->di_flags2);
> to->di_cowextsize = cpu_to_be32(from->di_cowextsize);
> to->di_ino = cpu_to_be64(ip->i_ino);
> diff --git a/fs/xfs/libxfs/xfs_inode_buf.h b/fs/xfs/libxfs/xfs_inode_buf.h
> index ab0f84165317..c9ac69c82d21 100644
> --- a/fs/xfs/libxfs/xfs_inode_buf.h
> +++ b/fs/xfs/libxfs/xfs_inode_buf.h
> @@ -37,7 +37,7 @@ struct xfs_icdinode {
> uint64_t di_flags2; /* more random flags */
> uint32_t di_cowextsize; /* basic cow extent size for file */
>
> - xfs_ictimestamp_t di_crtime; /* time created */
> + struct timespec64 di_crtime; /* time created */
> };
>
> /*
> diff --git a/fs/xfs/libxfs/xfs_trans_inode.c b/fs/xfs/libxfs/xfs_trans_inode.c
> index a9ad90926b87..b7b81c5de2de 100644
> --- a/fs/xfs/libxfs/xfs_trans_inode.c
> +++ b/fs/xfs/libxfs/xfs_trans_inode.c
> @@ -66,10 +66,8 @@ xfs_trans_ichgtime(
I spotted a misaligned variable declaration for @tv in this function and
will fold that into this patch on commit.
@@ -55,7 +55,7 @@ xfs_trans_ichgtime(
int flags)
{
struct inode *inode = VFS_I(ip);
- struct timespec64 tv;
+ struct timespec64 tv;
ASSERT(tp);
ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
Looks ok otherwise,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
> inode->i_mtime = tv;
> if (flags & XFS_ICHGTIME_CHG)
> inode->i_ctime = tv;
> - if (flags & XFS_ICHGTIME_CREATE) {
> - ip->i_d.di_crtime.t_sec = (int32_t)tv.tv_sec;
> - ip->i_d.di_crtime.t_nsec = (int32_t)tv.tv_nsec;
> - }
> + if (flags & XFS_ICHGTIME_CREATE)
> + ip->i_d.di_crtime = tv;
> }
>
> /*
> diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> index 18f4b262e61c..24efdbf534c7 100644
> --- a/fs/xfs/xfs_inode.c
> +++ b/fs/xfs/xfs_inode.c
> @@ -845,8 +845,7 @@ xfs_ialloc(
> inode_set_iversion(inode, 1);
> ip->i_d.di_flags2 = 0;
> ip->i_d.di_cowextsize = 0;
> - ip->i_d.di_crtime.t_sec = (int32_t)tv.tv_sec;
> - ip->i_d.di_crtime.t_nsec = (int32_t)tv.tv_nsec;
> + ip->i_d.di_crtime = tv;
> }
>
>
> diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c
> index bb8f076805b9..a15db5d679ac 100644
> --- a/fs/xfs/xfs_inode_item.c
> +++ b/fs/xfs/xfs_inode_item.c
> @@ -340,8 +340,8 @@ xfs_inode_to_log_dinode(
>
> if (from->di_version == 3) {
> to->di_changecount = inode_peek_iversion(inode);
> - to->di_crtime.t_sec = from->di_crtime.t_sec;
> - to->di_crtime.t_nsec = from->di_crtime.t_nsec;
> + to->di_crtime.t_sec = from->di_crtime.tv_sec;
> + to->di_crtime.t_nsec = from->di_crtime.tv_nsec;
> to->di_flags2 = from->di_flags2;
> to->di_cowextsize = from->di_cowextsize;
> to->di_ino = ip->i_ino;
> diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
> index fe285d123d69..47d8cdb86e5c 100644
> --- a/fs/xfs/xfs_iops.c
> +++ b/fs/xfs/xfs_iops.c
> @@ -516,8 +516,7 @@ xfs_vn_getattr(
> if (ip->i_d.di_version == 3) {
> if (request_mask & STATX_BTIME) {
> stat->result_mask |= STATX_BTIME;
> - stat->btime.tv_sec = ip->i_d.di_crtime.t_sec;
> - stat->btime.tv_nsec = ip->i_d.di_crtime.t_nsec;
> + stat->btime = ip->i_d.di_crtime;
> }
> }
>
> diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
> index 884950adbd16..11771112a634 100644
> --- a/fs/xfs/xfs_itable.c
> +++ b/fs/xfs/xfs_itable.c
> @@ -97,8 +97,8 @@ xfs_bulkstat_one_int(
> buf->bs_mtime_nsec = inode->i_mtime.tv_nsec;
> buf->bs_ctime = inode->i_ctime.tv_sec;
> buf->bs_ctime_nsec = inode->i_ctime.tv_nsec;
> - buf->bs_btime = dic->di_crtime.t_sec;
> - buf->bs_btime_nsec = dic->di_crtime.t_nsec;
> + buf->bs_btime = dic->di_crtime.tv_sec;
> + buf->bs_btime_nsec = dic->di_crtime.tv_nsec;
> buf->bs_gen = inode->i_generation;
> buf->bs_mode = inode->i_mode;
>
> --
> 2.20.1
>
next prev parent reply other threads:[~2019-11-12 16:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-20 8:21 xfs inode structure cleanups Christoph Hellwig
2019-10-20 8:21 ` [PATCH 1/4] xfs: use a struct timespec64 for the in-core crtime Christoph Hellwig
2019-11-12 16:20 ` Darrick J. Wong [this message]
2019-10-20 8:21 ` [PATCH 2/4] xfs: merge the projid fields in struct xfs_icdinode Christoph Hellwig
2019-11-12 16:22 ` Darrick J. Wong
2019-10-20 8:21 ` [PATCH 3/4] xfs: don't reset the "inode core" in xfs_iread Christoph Hellwig
2019-11-12 16:24 ` Darrick J. Wong
2019-11-12 16:25 ` Christoph Hellwig
2019-10-20 8:21 ` [PATCH 4/4] xfs: remove struct xfs_icdinode Christoph Hellwig
2019-10-20 23:29 ` Dave Chinner
2019-10-23 1:28 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191112162026.GX6219@magnolia \
--to=darrick.wong@oracle.com \
--cc=hch@lst.de \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.