From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 06/22] xfs: refactor kernel-specific parts of xfs_ialloc
Date: Thu, 17 Jan 2019 15:02:40 -0800 [thread overview]
Message-ID: <20190117230240.GI4424@magnolia> (raw)
In-Reply-To: <20190117222614.GG6173@dastard>
On Fri, Jan 18, 2019 at 09:26:14AM +1100, Dave Chinner wrote:
> On Mon, Dec 31, 2018 at 06:19:38PM -0800, Darrick J. Wong wrote:
> > From: Darrick J. Wong <darrick.wong@oracle.com>
> >
> > Move the kernel-specific parts of xfs_ialloc into a separate function in
> > preparation for hoisting xfs_ialloc to libxfs.
> >
> > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> > ---
> > fs/xfs/xfs_inode.c | 45 ++++++++++++++++++++++++++++++++++++---------
> > 1 file changed, 36 insertions(+), 9 deletions(-)
> >
> >
> > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> > index 403eb8fa2f1f..b635d43caeed 100644
> > --- a/fs/xfs/xfs_inode.c
> > +++ b/fs/xfs/xfs_inode.c
> > @@ -621,6 +621,32 @@ xfs_lookup(
> > return error;
> > }
> >
> > +/* Return an exclusive ILOCK'd in-core inode. */
> > +static int
> > +xfs_ialloc_iget(
> > + struct xfs_mount *mp,
> > + struct xfs_trans *tp,
> > + xfs_ino_t ino,
> > + struct xfs_inode **ipp)
> > +{
> > + return xfs_iget(mp, tp, ino, XFS_IGET_CREATE, XFS_ILOCK_EXCL, ipp);
> > +}
> > +
> > +/* Propagate platform-specific inode properties into the new child. */
> > +static void
> > +xfs_ialloc_platform_init(
> > + struct xfs_trans *tp,
> > + const struct xfs_ialloc_args *args,
> > + struct xfs_inode *ip)
> > +{
> > + struct timespec64 tv;
> > +
> > + tv = current_time(VFS_I(ip));
> > + VFS_I(ip)->i_mtime = tv;
> > + VFS_I(ip)->i_atime = tv;
> > + VFS_I(ip)->i_ctime = tv;
>
> Doesn't set ip->i_d.di_crtime, so ....
>
> > @@ -755,10 +781,11 @@ 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.t_sec = 0;
> > + ip->i_d.di_crtime.t_nsec = 0;
> > }
> >
> > + xfs_ialloc_platform_init(tp, args, ip);
>
> This breaks create time functionality.
Yikes!
> Don't we have a statx() test in fstests that checks that the
> create time of inodes is set correctly?
Clearly not... <frown>
--D
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com
next prev parent reply other threads:[~2019-01-17 23:02 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-01 2:19 [PATCH 00/22] xfs: hoist inode operations to libxfs Darrick J. Wong
2019-01-01 2:19 ` [PATCH 01/22] xfs: hoist extent size helpers " Darrick J. Wong
2019-01-17 14:18 ` Christoph Hellwig
2019-01-17 19:11 ` Darrick J. Wong
2019-01-01 2:19 ` [PATCH 02/22] xfs: hoist inode flag conversion functions Darrick J. Wong
2019-01-01 2:19 ` [PATCH 03/22] xfs: convert projid get/set functions Darrick J. Wong
2019-01-17 14:19 ` Christoph Hellwig
2019-01-17 19:16 ` Darrick J. Wong
2019-01-01 2:19 ` [PATCH 04/22] xfs: hoist project id " Darrick J. Wong
2019-01-01 2:19 ` [PATCH 05/22] xfs: pack inode allocation parameters into a separate structure Darrick J. Wong
2019-01-17 14:21 ` Christoph Hellwig
2019-01-23 4:11 ` Darrick J. Wong
2019-01-01 2:19 ` [PATCH 06/22] xfs: refactor kernel-specific parts of xfs_ialloc Darrick J. Wong
2019-01-17 14:22 ` Christoph Hellwig
2019-01-17 23:28 ` Darrick J. Wong
2019-01-18 7:17 ` Christoph Hellwig
2019-01-24 2:04 ` Darrick J. Wong
2019-01-17 22:26 ` Dave Chinner
2019-01-17 23:02 ` Darrick J. Wong [this message]
2019-01-01 2:19 ` [PATCH 07/22] xfs: decouple platform-specific inode allocation functions Darrick J. Wong
2019-01-17 14:22 ` Christoph Hellwig
2019-01-01 2:19 ` [PATCH 08/22] xfs: split inode allocation and initialization Darrick J. Wong
2019-01-01 2:19 ` [PATCH 09/22] xfs: hoist inode allocation function Darrick J. Wong
2019-01-01 2:20 ` [PATCH 10/22] xfs: push xfs_ialloc_args creation out of xfs_dir_ialloc Darrick J. Wong
2019-01-01 2:20 ` [PATCH 11/22] xfs: refactor special inode roll " Darrick J. Wong
2019-01-17 14:24 ` Christoph Hellwig
2019-01-17 20:04 ` Darrick J. Wong
2019-01-01 2:20 ` [PATCH 12/22] xfs: move xfs_dir_ialloc to libxfs Darrick J. Wong
2019-01-01 2:20 ` [PATCH 13/22] xfs: hoist xfs_iunlink " Darrick J. Wong
2019-01-01 2:20 ` [PATCH 14/22] xfs: hoist xfs_{bump,drop}link " Darrick J. Wong
2019-01-01 2:20 ` [PATCH 15/22] xfs: create libxfs helper to link a new inode into a directory Darrick J. Wong
2019-01-01 2:20 ` [PATCH 16/22] xfs: create libxfs helper to link an existing " Darrick J. Wong
2019-01-01 2:21 ` [PATCH 17/22] xfs: hoist inode free function to libxfs Darrick J. Wong
2019-01-01 2:21 ` [PATCH 18/22] xfs: create libxfs helper to remove an existing inode/name from a directory Darrick J. Wong
2019-01-01 2:21 ` [PATCH 19/22] xfs: create libxfs helper to exchange two directory entries Darrick J. Wong
2019-01-01 2:21 ` [PATCH 20/22] xfs: create libxfs helper to rename " Darrick J. Wong
2019-01-01 2:21 ` [PATCH 21/22] xfs: get rid of cross_rename Darrick J. Wong
2019-01-01 2:21 ` [PATCH 22/22] xfs: create library function to reset root inodes Darrick J. Wong
2019-01-17 14:25 ` Christoph Hellwig
2019-01-17 23:29 ` Darrick J. Wong
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=20190117230240.GI4424@magnolia \
--to=darrick.wong@oracle.com \
--cc=david@fromorbit.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox