From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 06/14] xfs: move the di_cowextsize field to struct xfs_inode
Date: Tue, 2 Jun 2020 17:30:45 -0700 [thread overview]
Message-ID: <20200603003045.GV8230@magnolia> (raw)
In-Reply-To: <20200524091757.128995-7-hch@lst.de>
On Sun, May 24, 2020 at 11:17:49AM +0200, Christoph Hellwig wrote:
> In preparation of removing the historic icinode struct, move the
> cowextsize field into the containing xfs_inode structure.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> fs/xfs/libxfs/xfs_inode_buf.c | 4 ++--
> fs/xfs/libxfs/xfs_inode_buf.h | 1 -
> fs/xfs/xfs_file.c | 2 +-
> fs/xfs/xfs_inode.c | 6 +++---
> fs/xfs/xfs_inode.h | 1 +
> fs/xfs/xfs_inode_item.c | 2 +-
> fs/xfs/xfs_ioctl.c | 8 +++-----
> fs/xfs/xfs_itable.c | 2 +-
> fs/xfs/xfs_reflink.c | 2 +-
> 9 files changed, 13 insertions(+), 15 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c
> index e51b15c44bb3e..860e35611e001 100644
> --- a/fs/xfs/libxfs/xfs_inode_buf.c
> +++ b/fs/xfs/libxfs/xfs_inode_buf.c
> @@ -255,7 +255,7 @@ xfs_inode_from_disk(
> 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);
> + ip->i_cowextsize = be32_to_cpu(from->di_cowextsize);
> }
>
> error = xfs_iformat_data_fork(ip, from);
> @@ -321,7 +321,7 @@ xfs_inode_to_disk(
> 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_cowextsize = cpu_to_be32(ip->i_cowextsize);
> to->di_ino = cpu_to_be64(ip->i_ino);
> to->di_lsn = cpu_to_be64(lsn);
> memset(to->di_pad2, 0, sizeof(to->di_pad2));
> diff --git a/fs/xfs/libxfs/xfs_inode_buf.h b/fs/xfs/libxfs/xfs_inode_buf.h
> index d420ea835c839..663a97fa78f05 100644
> --- a/fs/xfs/libxfs/xfs_inode_buf.h
> +++ b/fs/xfs/libxfs/xfs_inode_buf.h
> @@ -23,7 +23,6 @@ struct xfs_icdinode {
> uint16_t di_flags; /* random flags, XFS_DIFLAG_... */
>
> uint64_t di_flags2; /* more random flags */
> - uint32_t di_cowextsize; /* basic cow extent size for file */
>
> struct timespec64 di_crtime; /* time created */
> };
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index 14b533a8ce8e6..b0384306d6622 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -1055,7 +1055,7 @@ xfs_file_remap_range(
> (src->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE) &&
> pos_out == 0 && len >= i_size_read(inode_out) &&
> !(dest->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE))
> - cowextsize = src->i_d.di_cowextsize;
> + cowextsize = src->i_cowextsize;
>
> ret = xfs_reflink_update_dest(dest, pos_out + len, cowextsize,
> remap_flags);
> diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> index 777dadc3fd531..ef6a4c313ebbd 100644
> --- a/fs/xfs/xfs_inode.c
> +++ b/fs/xfs/xfs_inode.c
> @@ -82,7 +82,7 @@ xfs_get_cowextsz_hint(
>
> a = 0;
> if (ip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE)
> - a = ip->i_d.di_cowextsize;
> + a = ip->i_cowextsize;
> b = xfs_get_extsz_hint(ip);
>
> a = max(a, b);
> @@ -842,7 +842,7 @@ xfs_ialloc(
> if (xfs_sb_version_has_v3inode(&mp->m_sb)) {
> inode_set_iversion(inode, 1);
> ip->i_d.di_flags2 = 0;
> - ip->i_d.di_cowextsize = 0;
> + ip->i_cowextsize = 0;
> ip->i_d.di_crtime = tv;
> }
>
> @@ -901,7 +901,7 @@ xfs_ialloc(
> if (pip && (pip->i_d.di_flags2 & XFS_DIFLAG2_ANY)) {
> if (pip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE) {
> ip->i_d.di_flags2 |= XFS_DIFLAG2_COWEXTSIZE;
> - ip->i_d.di_cowextsize = pip->i_d.di_cowextsize;
> + ip->i_cowextsize = pip->i_cowextsize;
> }
> if (pip->i_d.di_flags2 & XFS_DIFLAG2_DAX)
> ip->i_d.di_flags2 |= XFS_DIFLAG2_DAX;
> diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
> index af90c6f745549..f6aa97fde63cb 100644
> --- a/fs/xfs/xfs_inode.h
> +++ b/fs/xfs/xfs_inode.h
> @@ -58,6 +58,7 @@ typedef struct xfs_inode {
> xfs_rfsblock_t i_nblocks; /* # of direct & btree blocks */
> uint32_t i_projid; /* owner's project id */
> xfs_extlen_t i_extsize; /* basic/minimum extent size */
> + uint32_t i_cowextsize; /* basic cow extent size */
You might as well fix this to xfs_extlen_t while you're doing this.
--D
>
> struct xfs_icdinode i_d; /* most of ondisk inode */
>
> diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c
> index 8b8c99809f273..ab0d8cf8ceb6a 100644
> --- a/fs/xfs/xfs_inode_item.c
> +++ b/fs/xfs/xfs_inode_item.c
> @@ -343,7 +343,7 @@ xfs_inode_to_log_dinode(
> 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_cowextsize = ip->i_cowextsize;
> to->di_ino = ip->i_ino;
> to->di_lsn = lsn;
> memset(to->di_pad2, 0, sizeof(to->di_pad2));
> diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
> index aeb1de3aec60f..a9b31ae3c28c0 100644
> --- a/fs/xfs/xfs_ioctl.c
> +++ b/fs/xfs/xfs_ioctl.c
> @@ -1108,8 +1108,7 @@ xfs_fill_fsxattr(
>
> simple_fill_fsxattr(fa, xfs_ip2xflags(ip));
> fa->fsx_extsize = ip->i_extsize << ip->i_mount->m_sb.sb_blocklog;
> - fa->fsx_cowextsize = ip->i_d.di_cowextsize <<
> - ip->i_mount->m_sb.sb_blocklog;
> + fa->fsx_cowextsize = ip->i_cowextsize << ip->i_mount->m_sb.sb_blocklog;
> fa->fsx_projid = ip->i_projid;
> if (ifp && (ifp->if_flags & XFS_IFEXTENTS))
> fa->fsx_nextents = xfs_iext_count(ifp);
> @@ -1574,10 +1573,9 @@ xfs_ioctl_setattr(
> ip->i_extsize = 0;
> if (xfs_sb_version_has_v3inode(&mp->m_sb) &&
> (ip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE))
> - ip->i_d.di_cowextsize = fa->fsx_cowextsize >>
> - mp->m_sb.sb_blocklog;
> + ip->i_cowextsize = fa->fsx_cowextsize >> mp->m_sb.sb_blocklog;
> else
> - ip->i_d.di_cowextsize = 0;
> + ip->i_cowextsize = 0;
>
> code = xfs_trans_commit(tp);
>
> diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
> index b0f0c19fd7822..7937af9f2ea77 100644
> --- a/fs/xfs/xfs_itable.c
> +++ b/fs/xfs/xfs_itable.c
> @@ -112,7 +112,7 @@ xfs_bulkstat_one_int(
>
> if (xfs_sb_version_has_v3inode(&mp->m_sb)) {
> if (dic->di_flags2 & XFS_DIFLAG2_COWEXTSIZE)
> - buf->bs_cowextsize_blks = dic->di_cowextsize;
> + buf->bs_cowextsize_blks = ip->i_cowextsize;
> }
>
> switch (ip->i_df.if_format) {
> diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c
> index 8598896156e29..0e07fa7e43117 100644
> --- a/fs/xfs/xfs_reflink.c
> +++ b/fs/xfs/xfs_reflink.c
> @@ -942,7 +942,7 @@ xfs_reflink_update_dest(
> }
>
> if (cowextsize) {
> - dest->i_d.di_cowextsize = cowextsize;
> + dest->i_cowextsize = cowextsize;
> dest->i_d.di_flags2 |= XFS_DIFLAG2_COWEXTSIZE;
> }
>
> --
> 2.26.2
>
next prev parent reply other threads:[~2020-06-03 0:32 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-24 9:17 kill of struct xfs_icdinode Christoph Hellwig
2020-05-24 9:17 ` [PATCH 01/14] xfs: don't clear the "dinode core" in xfs_inode_alloc Christoph Hellwig
2020-05-24 9:17 ` [PATCH 02/14] xfs: move the di_projid field to struct xfs_inode Christoph Hellwig
2020-05-24 9:17 ` [PATCH 03/14] xfs: move the di_size " Christoph Hellwig
2020-05-24 9:17 ` [PATCH 04/14] xfs: move the di_nblocks " Christoph Hellwig
2020-05-24 9:17 ` [PATCH 05/14] xfs: move the di_extsize " Christoph Hellwig
2020-05-24 9:17 ` [PATCH 06/14] xfs: move the di_cowextsize " Christoph Hellwig
2020-06-03 0:30 ` Darrick J. Wong [this message]
2020-05-24 9:17 ` [PATCH 07/14] xfs: move the di_flushiter " Christoph Hellwig
2020-05-24 9:17 ` [PATCH 08/14] xfs: use a union for i_cowextsize and i_flushiter Christoph Hellwig
2020-06-03 0:33 ` Darrick J. Wong
2020-05-24 9:17 ` [PATCH 09/14] xfs: move the di_forkoff field to struct xfs_inode Christoph Hellwig
2020-05-24 9:17 ` [PATCH 10/14] xfs: move the di_flags " Christoph Hellwig
2020-05-24 9:17 ` [PATCH 11/14] xfs: move the di_flags2 " Christoph Hellwig
2020-05-24 9:17 ` [PATCH 12/14] xfs: move the di_crtime " Christoph Hellwig
2020-05-24 9:17 ` [PATCH 13/14] xfs: move the di_dmevmask " Christoph Hellwig
2020-06-03 0:36 ` Darrick J. Wong
2020-06-19 13:42 ` Christoph Hellwig
2020-05-24 9:17 ` [PATCH 14/14] xfs: move the di_dmstate " Christoph Hellwig
2020-06-01 12:56 ` kill of struct xfs_icdinode Brian Foster
2020-06-19 13:35 ` 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=20200603003045.GV8230@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.