All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Allison Henderson <allison.henderson@oracle.com>
Cc: Amir Goldstein <amir73il@gmail.com>,
	linux-xfs <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH v2 24/27] xfsprogs: Add parent pointers to recreated inodes
Date: Mon, 11 Jun 2018 10:31:59 -0700	[thread overview]
Message-ID: <20180611173159.GC22045@magnolia> (raw)
In-Reply-To: <cde33676-f0c7-4a67-c0b9-4e677ecf3d5e@oracle.com>

On Sun, Jun 10, 2018 at 10:19:48AM -0700, Allison Henderson wrote:
> On 06/10/2018 04:27 AM, Amir Goldstein wrote:
> > On Sun, Jun 10, 2018 at 8:07 AM, Allison Henderson
> > <allison.henderson@oracle.com> wrote:
> > > Inodes that are not recovered from the orphanage will
> > > be recreated, so we will need to re-add the parent pointers
> > > here too.
> > > 
> > > Signed-off-by: Allison Henderson <allison.henderson@oracle.com>
> > > ---
> > >   libxfs/libxfs_api_defs.h |  1 +
> > >   repair/phase6.c          | 40 +++++++++++++++++++++++++++-------------
> > >   2 files changed, 28 insertions(+), 13 deletions(-)
> > > 
> > > diff --git a/libxfs/libxfs_api_defs.h b/libxfs/libxfs_api_defs.h
> > > index 78daca0..4b47479 100644
> > > --- a/libxfs/libxfs_api_defs.h
> > > +++ b/libxfs/libxfs_api_defs.h
> > > @@ -152,5 +152,6 @@
> > >   #define xfs_rmap_compare               libxfs_rmap_compare
> > >   #define xfs_dir_get_ops                        libxfs_dir_get_ops
> > >   #define xfs_default_ifork_ops          libxfs_default_ifork_ops
> > > +#define xfs_parent_add                 libxfs_parent_add
> > > 
> > >   #endif /* __LIBXFS_API_DEFS_H__ */
> > > diff --git a/repair/phase6.c b/repair/phase6.c
> > > index 4fedb35..96ffade 100644
> > > --- a/repair/phase6.c
> > > +++ b/repair/phase6.c
> > > @@ -29,6 +29,7 @@
> > >   #include "dinode.h"
> > >   #include "progress.h"
> > >   #include "versions.h"
> > > +#include "xfs_parent.h"
> > > 
> > >   static struct cred             zerocr;
> > >   static struct fsxattr          zerofsx;
> > > @@ -962,19 +963,20 @@ mk_root_dir(xfs_mount_t *mp)
> > >   static xfs_ino_t
> > >   mk_orphanage(xfs_mount_t *mp)
> > >   {
> > > -       xfs_ino_t       ino;
> > > -       xfs_trans_t     *tp;
> > > -       xfs_inode_t     *ip;
> > > -       xfs_inode_t     *pip;
> > > -       xfs_fsblock_t   first;
> > > -       ino_tree_node_t *irec;
> > > -       int             ino_offset = 0;
> > > -       int             i;
> > > -       int             error;
> > > +       xfs_ino_t               ino;
> > > +       struct xfs_trans        *tp;
> > > +       struct xfs_inode        *ip;
> > > +       struct xfs_inode        *pip;
> > 
> > I guess you did some whitespace cleanups here while at it,
> > but why did those types change from xfs_inode_t etc?
> 
> Yes, removing the *_t types where appropriate was something that came up in
> a few of the earlier reviews.  I just assumed we are trying to clear them
> all out?  It does seem to kind of help distinguish whats a structure and
> whats a primitive data type.

Yes, the general practice (afaict) is to de-typedef-ify code when making
changes to them.

--D

> Allison
> 
> 
> > 
> > > +       xfs_fsblock_t           first;
> > > +       struct ino_tree_node    *irec;
> > > +       int                     ino_offset = 0;
> > > +       int                     i;
> > > +       int                     error;
> > >          struct xfs_defer_ops    dfops;
> > > -       const int       mode = 0755;
> > > -       int             nres;
> > > -       struct xfs_name xname;
> > > +       const int               mode = 0755;
> > > +       int                     nres;
> > > +       struct xfs_name         xname;
> > > +       xfs_dir2_dataptr_t      offset;
> > > 
> > >          /*
> > >           * check for an existing lost+found first, if it exists, return
> > > @@ -1061,7 +1063,7 @@ mk_orphanage(xfs_mount_t *mp)
> > >           * create the actual entry
> > >           */
> > >          error = -libxfs_dir_createname(tp, pip, &xname, ip->i_ino, &first,
> > > -                                       &dfops, nres, NULL);
> > > +                                       &dfops, nres, &offset);
> > >          if (error)
> > >                  do_error(
> > >                  _("can't make %s, createname error %d\n"),
> > > @@ -1083,6 +1085,18 @@ mk_orphanage(xfs_mount_t *mp)
> > >          libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
> > > 
> > >          libxfs_defer_ijoin(&dfops, ip);
> > > +
> > > +        if (xfs_sb_version_hasparent(&mp->m_sb)) {
> > > +                error = -libxfs_parent_add(pip, ip, &xname, offset,
> > > +                                      &first, &dfops);
> > > +                if (error)
> > > +                        do_error(_("Error creating parent pointer: %d\n"),
> > > +                                error);
> > > +               libxfs_trans_log_inode(tp, pip, XFS_ILOG_CORE);
> > > +               libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
> > > +               libxfs_defer_ijoin(&dfops, pip);
> > > +        }
> > > +
> > >          error = -libxfs_defer_finish(&tp, &dfops);
> > >          if (error) {
> > >                  do_error(_("%s directory creation failed -- bmapf error %d\n"),
> > > --
> > > 2.7.4
> > > 
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  https://urldefense.proofpoint.com/v2/url?u=http-3A__vger.kernel.org_majordomo-2Dinfo.html&d=DwIBaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=LHZQ8fHvy6wDKXGTWcm97burZH5sQKHRDMaY1UthQxc&m=G-6Ft7goE2Cf-mpLlEpFZl98e-5uBpekKLRKZzIJTXE&s=SbB24E7j4VibOio0puyqOZPpxpfyIMm0xJ2wF-rltDA&e=
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2018-06-11 17:32 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-10  5:07 [PATCH v2 00/27] xfsprogs: parent pointers v2 Allison Henderson
2018-06-10  5:07 ` [PATCH v2 01/27] xfsprogs: Move xfs_attr.h to libxfs Allison Henderson
2018-06-10  5:07 ` [PATCH v2 02/27] xfsprogs: Add helper function xfs_attr_try_sf_addname Allison Henderson
2018-06-10  5:07 ` [PATCH v2 03/27] xfsprogs: Add trans toggle to attr routines Allison Henderson
2018-06-10  7:02   ` Amir Goldstein
2018-06-10 16:19     ` Allison Henderson
2018-06-10  5:07 ` [PATCH v2 04/27] xfsprogs: Add attibute set and helper functions Allison Henderson
2018-06-10  5:07 ` [PATCH v2 05/27] xfsprogs: Add attibute remove " Allison Henderson
2018-06-10  5:07 ` [PATCH v2 06/27] xfsprogs: Set up infastructure for deferred attribute operations Allison Henderson
2018-06-10  5:07 ` [PATCH v2 07/27] xfsprogs: Add xfs_attr_set_deferred and xfs_attr_remove_deferred Allison Henderson
2018-06-10  5:07 ` [PATCH v2 08/27] xfsprogs: Remove all strlen calls in all xfs_attr_* functions for attr names Allison Henderson
2018-06-10  5:07 ` [PATCH v2 09/27] xfsprogs: get directory offset when adding directory name Allison Henderson
2018-06-10  5:07 ` [PATCH v2 10/27] xfsprogs: get directory offset when removing " Allison Henderson
2018-06-10  5:07 ` [PATCH v2 11/27] xfsprogs: get directory offset when replacing a " Allison Henderson
2018-06-10  5:07 ` [PATCH v2 12/27] xfsprogs: add parent pointer support to attribute code Allison Henderson
2018-06-10  5:07 ` [PATCH v2 13/27] xfsprogs: define parent pointer xattr format Allison Henderson
2018-06-10  5:07 ` [PATCH v2 14/27] xfsprogs: extent transaction reservations for parent attributes Allison Henderson
2018-06-10  5:07 ` [PATCH v2 15/27] xfsprogs: parent pointer attribute creation Allison Henderson
2018-06-10  5:07 ` [PATCH v2 16/27] xfsprogs: Add the parent pointer support to the superblock version 5 Allison Henderson
2018-06-10  5:07 ` [PATCH v2 17/27] xfsprogs: Add helper function xfs_attr_list_context_init Allison Henderson
2018-06-10  5:07 ` [PATCH v2 18/27] xfsprogs: Add parent pointer ioctl Allison Henderson
2018-06-10  5:07 ` [PATCH v2 19/27] xfsprogs: Add delayed attributes error tag Allison Henderson
2018-06-11 17:28   ` Darrick J. Wong
2018-06-11 19:59     ` Allison Henderson
2018-06-10  5:07 ` [PATCH v2 20/27] xfsprogs: Add parent pointer flag to cmd Allison Henderson
2018-06-11 17:43   ` Darrick J. Wong
2018-06-11 20:00     ` Allison Henderson
2018-06-10  5:07 ` [PATCH v2 21/27] xfsprogs: Remove single byte array from struct parent Allison Henderson
2018-06-10 11:21   ` Amir Goldstein
2018-06-10 15:25     ` Allison Henderson
2018-06-10  5:07 ` [PATCH v2 22/27] xfsprogs: Add log item printing for ATTRI and ATTRD Allison Henderson
2018-06-10  5:07 ` [PATCH v2 23/27] xfsprogs: Do not use namechecks on parent pointers Allison Henderson
2018-06-11 18:00   ` Darrick J. Wong
2018-06-11 20:00     ` Allison Henderson
2018-06-11 20:23       ` Darrick J. Wong
2018-06-11 20:38         ` Allison Henderson
2018-06-10  5:07 ` [PATCH v2 24/27] xfsprogs: Add parent pointers to recreated inodes Allison Henderson
2018-06-10 11:27   ` Amir Goldstein
2018-06-10 17:19     ` Allison Henderson
2018-06-11 17:31       ` Darrick J. Wong [this message]
2018-06-11 18:06   ` Darrick J. Wong
2018-06-11 20:00     ` Allison Henderson
2018-06-10  5:07 ` [PATCH v2 25/27] xfsprogs: Add parent pointers during protofile creation Allison Henderson
2018-06-10 11:32   ` Amir Goldstein
2018-06-11 18:15   ` Darrick J. Wong
2018-06-11 19:58     ` Allison Henderson
2018-06-10  5:07 ` [PATCH v2 26/27] xfsprogs: implement the upper half of parent pointers Allison Henderson
2018-06-10 12:06   ` Amir Goldstein
2018-06-10  5:07 ` [PATCH v2 27/27] xfsprogs: Clean up old parent pointer definitions Allison Henderson
2018-06-11 18:20   ` Darrick J. Wong
2018-06-11 20:06     ` Allison Henderson

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=20180611173159.GC22045@magnolia \
    --to=darrick.wong@oracle.com \
    --cc=allison.henderson@oracle.com \
    --cc=amir73il@gmail.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 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.