Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 36bf32f
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Wed Jan 6 00:50:13 2021 -0800

    libzfs_FQ.c: Extend AUTOSNAP handling

      Motivation:  CATALYST zpool/BUILD/BINDER/portage-GC-REPOS and using 'a{d}'
        * daily is minimum to be picked up by OSCAR backups

      - * AUTOSNAP := { D | H | Z | m }
      + * AUTOSNAP := { D | H | M | W | Y | Z | d | m }
        *   H == no Hourly
        *   D == no Daily
      + *   W == no Weekly
      + *   M == no Monthly
      + *   Y == no Yearly
        *   Z == no ZBhold
      + *   d == daily only

commit 418dd7c
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Tue May 19 16:18:34 2020 -0700

    libzfs_FQ.c: refactor(lib): Deprecate 'FQ_OVERRIDE=b', now uses 'FQ_OVERRIDE=B'

commit 28e1c80
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sun May 17 03:31:00 2020 -0700

    libzfs_FQ.c: bug: Fix 'FQoverride_gtnd()' strtok() usage

commit af02cff
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Wed May 13 18:30:36 2020 -0700

    Fix missing sys/crypto/impl.h when building inline via --enable-builtin

      CC [M]  fs/zfs/icp/illumos-crypto.o
    fs/zfs/icp/illumos-crypto.c:37:10: fatal error: sys/crypto/impl.h: No such file or directory
       37 | #include <sys/crypto/impl.h>
          |          ^~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make[3]: *** [scripts/Makefile.build:266: fs/zfs/icp/illumos-crypto.o] Error 1
    make[2]: *** [scripts/Makefile.build:500: fs/zfs/icp] Error 2
    make[1]: *** [scripts/Makefile.build:500: fs/zfs] Error 2
    make: *** [Makefile:1691: fs] Error 2

commit b159b95
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Tue May 12 12:42:27 2020 -0700

    libzfs_FQ.c: refactor(lib): Implement new visibility 'h{...}' (HIDE) grouping

commit 03e3a3e
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sat May 16 12:13:57 2020 -0700

    refactor(lib): Refactor 'FQoverride_gtnd()' and implement envariable 'FQ_GTND_SKIP'

commit 427f7d8
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Mon Apr 13 03:29:37 2020 -0700

    libzfs_sendrecv.c: feat(lib): Add 'FQgtnd_override()' -- prepping for refactoring

commit 7d48a31
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Mon Apr 13 03:36:04 2020 -0700

    libzfs_FQ.c: dry(lib): Add 'FQenv_override()' to centralize override env access

commit 19a9c60
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sat Apr 11 23:19:36 2020 -0700

    libzfs_FQ.c: fix(lib): Fix bug where xattrs were only being parsed if 'a{}' was set, ergo missing 'x' parsing

commit 5e23cc4
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sat Apr 11 23:17:55 2020 -0700

    libzfs_FQ.c: feat(lib): Add 'FQdump_xattrs()' stringer

commit 088dd5d
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sat Apr 11 23:16:14 2020 -0700

    libzfs_FQ.h: style(lib): 'FQgothere()' place brackets around function name

commit 3a4fcf5
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sat Apr 11 17:19:46 2020 -0700

    feat(lib): Add 'FQbackup_skip_missing_snapshot()' to handle a long standing backup problem

      //
      // Skip if following xattrs:
      // 1) A
      // 2) a{D}
      //
      // This handles the following backup malfunction that occurs when dataset has been receiving
      //   daily autosnaps, but later - either 'A' or 'a{D}' xattrs has been set.
      //
      // ** cannot send zssd@autosnap_2020-04-04_00:00:00_daily recursively: snapshot zssd/bats@autosnap_2020-04-04_00:00:00_daily does not exist
      //

commit 4d0ab5a
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sat Apr 11 17:14:33 2020 -0700

    libzfs_FQ.c: refactor(lib): Refactor xattrs retrieval, parsing and 'FQxattrs_has_*()' checking

      1) Now scans and parses the 'x' attrs for better accuracy over 'index()' type checks
      2) Standardize on passing 'FQxattrs_t *' everywhere, instead of the split brain FQxattrs_t/xattrs_t
      3) Decided to pass in '&xattrs' instead of malloc in FQget_xattrs() to reduce the many free() needed

commit 28ca767
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Thu Apr 9 12:46:49 2020 -0700

    libzfs_FQ.c: fix: If no xattrs, then minutely was being implicitly included.

commit 141d79b
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Thu Apr 9 11:07:23 2020 -0700

    libzfs_FQ.c: refactor(lib): Wire in 'FQsnapshot_filter()' to replace old method

commit b51b574
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Thu Apr 9 11:05:50 2020 -0700

    libzfs_FQ.c: feat(lib): Add 'FQis_autosnap_minutely()' inclusion test

commit 50f279d
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Thu Apr 9 11:03:34 2020 -0700

    libzfs_FQ.c: refactor: FQxattrs_has_*() interrogators

commit e43980b
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Wed Apr 8 14:05:26 2020 -0700

    libzfs_FQ.c: fix(exclusion): Non-autosnap snapshots were also being excluded

commit 97f857f
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Tue Apr 7 22:14:43 2020 -0700

    libzfs_dataset.c: fix(holds): holdname was being set to dataset name

      'nvlist_t *holds' is:
      key=dataset name
      val=holdname

commit 3dae4af
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Sun Apr 5 23:25:41 2020 -0700

    Add 'FQexclude_hold()' ability.  For now traps 'ZBhold' only.

commit 7c49a5e
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Fri Apr 3 01:43:07 2020 -0700

    libzfs_dataset.c: Wire in snapshot exclusions via 'FQexclude_snapshot()'

commit 3bb177e
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Fri Apr 3 01:41:36 2020 -0700

    libzfs_sendrecv.c: Move out FQ specific infrastructure to libzfs_FQ

commit eff14fd
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Fri Apr 3 01:32:17 2020 -0700

    Add new libzfs_FQ library for backup overrides and snapshot exclusions

commit cb9df84
Author: fqbuild <fqbuild@spunky>
Date:   Wed Mar 11 22:01:25 2020 -0700

    libzfs_sendrecv.c: Add FQbackup_override() ability

      e.g. to override fq:xattrs=B
      FQ_OVERRIDE=B zfs send ...

commit 35b8ee6
Author: Terra <Service@FutureQuest.net>
Date:   Sun Feb 23 18:24:11 2020 -0500

    From 64c5c8750d738ecc502b6a0192feebf33914acbe Mon Sep 17 00:00:00 2001
    Subject: [PATCH] Revert "Let zfs mount all tolerate in-progress mounts"

    This reverts commit a9cd8bf.

    REF: openzfs#9560

commit 6e597a7
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Fri Mar 15 13:34:33 2019 -0700

    From 95ce7929646908673eecfd7f55db6d653feb2fea Mon Sep 17 00:00:00 2001
    Subject: [PATCH 2/2] libzfs_sendrecv.c: zfs send dataset exclude

commit bfcb121
Author: TerraTech <TerraTech@users.noreply.github.com>
Date:   Fri Mar 15 13:28:48 2019 -0700

    From 3e2dc2c3c5bcc81225449400c01c58d6c5df5027 Mon Sep 17 00:00:00 2001
    Subject: [PATCH 1/2] libzfs_sendrecv.c: Squelch "skipping snapshot"
  • Loading branch information
TerraTech committed Jun 25, 2021
1 parent e9353bc commit 853d5b0
Show file tree
Hide file tree
Showing 5 changed files with 698 additions and 4 deletions.
48 changes: 48 additions & 0 deletions include/libzfs_FQ.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/

/*
* Copyright 2020 FutureQuest, Inc. All rights reserved.
* Use is subject to license terms.
*/

#ifndef _LIBZFS_FQ_H
#define _LIBZFS_FQ_H

#define FQdebug(format, ...) __FQdebug(__FUNCTION__, __LINE__, format, ##__VA_ARGS__)
#define FQgothere() FQdebugf("[%s]:got here: %d\n", __FUNCTION__, __LINE__)

typedef enum {
FQ_OVERRIDE_NO_BACKUP
} FQoverride_t;

extern void FQdebugf(const char *, ...);
extern void __FQdebug(const char *, int, const char *, ...);

extern boolean_t FQbackup_skip_missing_snapshot(zfs_handle_t *);
extern boolean_t FQexclude_backup(zfs_handle_t *);
extern boolean_t FQexclude_hold(zfs_handle_t *, const char *);
extern boolean_t FQexclude_snapshot(libzfs_handle_t *, const char *);
extern boolean_t FQoverride_backup(FQoverride_t);
extern boolean_t FQoverride_gtnd(const char *);
extern void FQsnapshot_filter(libzfs_handle_t *, nvlist_t *);

#endif /* _LIBZFS_FQ_H */
1 change: 1 addition & 0 deletions lib/libzfs/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ lib_LTLIBRARIES = libzfs.la
include $(top_srcdir)/config/Abigail.am

USER_C = \
libzfs_FQ.c \
libzfs_changelist.c \
libzfs_config.c \
libzfs_crypto.c \
Expand Down
Loading

0 comments on commit 853d5b0

Please sign in to comment.