All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chandan Babu R <chandan.babu@oracle.com>
To: linux-xfs@vger.kernel.org
Cc: djwong@kernel.org, cem@kernel.org
Subject: Re: [PATCH V3 00/23] Metadump v2
Date: Fri, 21 Jul 2023 15:27:54 +0530	[thread overview]
Message-ID: <87o7k5mvod.fsf@debian-BULLSEYE-live-builder-AMD64> (raw)
In-Reply-To: <20230721094533.1351868-1-chandan.babu@oracle.com>

Hi,

Please ignore the entire thread. "git send-email" failed after sending patch
"[PATCH V3 14/23] mdrestore: Declare boolean variables with bool type". I will
attempt to resend the patchset once again sometime tomorrow.

On Fri, Jul 21, 2023 at 03:15:10 PM +0530, Chandan Babu R wrote:
> Hi all,
>
> This patch series extends metadump/mdrestore tools to be able to dump
> and restore contents of an external log device. It also adds the
> ability to copy larger blocks (e.g. 4096 bytes instead of 512 bytes)
> into the metadump file. These objectives are accomplished by
> introducing a new metadump file format.
>
> I have tested the patchset by extending metadump/mdrestore tests in
> fstests to cover the newly introduced metadump v2 format. The tests
> can be found at
> https://github.com/chandanr/xfstests/commits/metadump-v2.
>
> The patch series can also be obtained from
> https://github.com/chandanr/xfsprogs-dev/commits/metadump-v2.
>
> Darrick, Please not that I have removed your RVB from "metadump: Add
> support for passing version option" patch. copy_log() and metadump_f()
> were invoking set_log_cur() for both "internal log" and "external
> log". In the V3 patchset, I have modified the patch to,
> 1. Invoke set_log_cur() when the filesystem has an external log.
> 2. Invoke set_cur() when the filesystem has an internal log.
>
> Changelog:
> V2 -> V3:
>   1. Pass a pointer to the newly introduced "union mdrestore_headers"
>      to call backs in "struct mdrestore_ops" instead of a pointer to
>      "void".
>   2. Use set_log_cur() only when metadump has to read from an external
>      log device.
>   3. Rename metadump_ops->end_write() to metadump_ops->finish_dump().
>   4. Fix indentation issues.
>   5. Address other trivial review comments.
>
> V1 -> V2:
>   1. Introduce the new incompat flag XFS_MD2_INCOMPAT_EXTERNALLOG to
>      indicate that the metadump file contains data obtained from an
>      external log.
>   2. Interpret bits 54 and 55 of xfs_meta_extent.xme_addr as a counter
>      such that 00 maps to the data device and 01 maps to the log
>      device.
>   3. Define the new function set_log_cur() to read from
>      internal/external log device. This allows us to continue using
>      TYP_LOG to read from both internal and external log.
>   4. In order to support reading metadump from a pipe, mdrestore now
>      reads the first four bytes of the header to determine the
>      metadump version rather than reading the entire header in a
>      single call to fread().
>   5. Add an ASCII diagram to describe metadump v2's ondisk layout in
>      xfs_metadump.h.
>   6. Update metadump's man page to indicate that metadump in v2 format
>      is generated by default if the filesystem has an external log and
>      the metadump version to use is not explicitly mentioned on the
>      command line.
>   7. Remove '_metadump' suffix from function pointer names in "struct
>      metadump_ops".
>   8. Use xfs_daddr_t type for declaring variables containing disk
>      offset value.
>   9. Use bool type rather than int for variables holding a boolean
>      value.
>   11. Remove unnecessary whitespace.
>
>
> Chandan Babu R (23):
>   metadump: Use boolean values true/false instead of 1/0
>   mdrestore: Fix logic used to check if target device is large enough
>   metadump: Declare boolean variables with bool type
>   metadump: Define and use struct metadump
>   metadump: Add initialization and release functions
>   metadump: Postpone invocation of init_metadump()
>   metadump: Introduce struct metadump_ops
>   metadump: Introduce metadump v1 operations
>   metadump: Rename XFS_MD_MAGIC to XFS_MD_MAGIC_V1
>   metadump: Define metadump v2 ondisk format structures and macros
>   metadump: Define metadump ops for v2 format
>   xfs_db: Add support to read from external log device
>   metadump: Add support for passing version option
>   mdrestore: Declare boolean variables with bool type
>   mdrestore: Define and use struct mdrestore
>   mdrestore: Detect metadump v1 magic before reading the header
>   mdrestore: Add open_device(), read_header() and show_info() functions
>   mdrestore: Introduce struct mdrestore_ops
>   mdrestore: Replace metadump header pointer argument with a union
>     pointer
>   mdrestore: Introduce mdrestore v1 operations
>   mdrestore: Extract target device size verification into a function
>   mdrestore: Define mdrestore ops for v2 format
>   mdrestore: Add support for passing log device as an argument
>
>  db/io.c                   |  56 ++-
>  db/io.h                   |   2 +
>  db/metadump.c             | 777 ++++++++++++++++++++++++--------------
>  db/xfs_metadump.sh        |   3 +-
>  include/xfs_metadump.h    |  70 +++-
>  man/man8/xfs_mdrestore.8  |   8 +
>  man/man8/xfs_metadump.8   |  14 +
>  mdrestore/xfs_mdrestore.c | 497 ++++++++++++++++++------
>  8 files changed, 1014 insertions(+), 413 deletions(-)


-- 
chandan

  parent reply	other threads:[~2023-07-21 10:00 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-21  9:45 [PATCH V3 00/23] Metadump v2 Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 01/23] metadump: Use boolean values true/false instead of 1/0 Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 02/23] mdrestore: Fix logic used to check if target device is large enough Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 03/23] metadump: Declare boolean variables with bool type Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 04/23] metadump: Define and use struct metadump Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 05/23] metadump: Add initialization and release functions Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 06/23] metadump: Postpone invocation of init_metadump() Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 07/23] metadump: Introduce struct metadump_ops Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 08/23] metadump: Introduce metadump v1 operations Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 09/23] metadump: Rename XFS_MD_MAGIC to XFS_MD_MAGIC_V1 Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 10/23] metadump: Define metadump v2 ondisk format structures and macros Chandan Babu R
2023-08-01 23:46   ` Darrick J. Wong
2023-07-21  9:45 ` [PATCH V3 11/23] metadump: Define metadump ops for v2 format Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 12/23] xfs_db: Add support to read from external log device Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 13/23] metadump: Add support for passing version option Chandan Babu R
2023-07-21  9:45 ` [PATCH V3 14/23] mdrestore: Declare boolean variables with bool type Chandan Babu R
2023-07-21  9:57 ` Chandan Babu R [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-07-24  4:35 [PATCH V3 00/23] Metadump v2 Chandan Babu R
2023-10-31 16:46 ` Darrick J. Wong
2023-11-01 14:58   ` Carlos Maiolino
2023-11-01 18:02     ` 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=87o7k5mvod.fsf@debian-BULLSEYE-live-builder-AMD64 \
    --to=chandan.babu@oracle.com \
    --cc=cem@kernel.org \
    --cc=djwong@kernel.org \
    --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.