aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0001-Btrfs-progs-add-a-btrfs-select-super-command-to-over.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0001-Btrfs-progs-add-a-btrfs-select-super-command-to-over.patch')
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0001-Btrfs-progs-add-a-btrfs-select-super-command-to-over.patch170
1 files changed, 0 insertions, 170 deletions
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0001-Btrfs-progs-add-a-btrfs-select-super-command-to-over.patch b/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0001-Btrfs-progs-add-a-btrfs-select-super-command-to-over.patch
deleted file mode 100644
index 2102f08e96..0000000000
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools/upstream-tmp/0001-Btrfs-progs-add-a-btrfs-select-super-command-to-over.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-Upstream-Status: Inappropriate [Backport]
-From 70c6c10134b502fa69955746554031939b85fb0c Mon Sep 17 00:00:00 2001
-From: Chris Mason <chris.mason@oracle.com>
-Date: Thu, 9 Dec 2010 16:36:29 -0500
-Subject: [PATCH 01/15] Btrfs-progs: add a btrfs-select-super command to overwrite the super
-
-Btrfs stores multiple copies of the superblock, and for common power-failure
-crashes where barriers were not in use, one of the super copies is often
-valid while the first copy is not.
-
-This adds a btrfs-select-super -s N /dev/xxx command, which can
-overwrite all the super blocks with a copy that you have already
-determined is valid with btrfsck -s
-
-Signed-off-by: Chris Mason <chris.mason@oracle.com>
----
- Makefile | 3 ++
- btrfs-select-super.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++
- disk-io.c | 2 +-
- disk-io.h | 1 +
- 4 files changed, 104 insertions(+), 1 deletions(-)
- create mode 100644 btrfs-select-super.c
-
-diff --git a/Makefile b/Makefile
-index 6e6f6c6..d65f6a2 100644
---- a/Makefile
-+++ b/Makefile
-@@ -62,6 +62,9 @@ btrfs-debug-tree: $(objects) debug-tree.o
- btrfs-zero-log: $(objects) btrfs-zero-log.o
- gcc $(CFLAGS) -o btrfs-zero-log $(objects) btrfs-zero-log.o $(LDFLAGS) $(LIBS)
-
-+btrfs-select-super: $(objects) btrfs-select-super.o
-+ gcc $(CFLAGS) -o btrfs-select-super $(objects) btrfs-select-super.o $(LDFLAGS) $(LIBS)
-+
- btrfstune: $(objects) btrfstune.o
- gcc $(CFLAGS) -o btrfstune $(objects) btrfstune.o $(LDFLAGS) $(LIBS)
-
-diff --git a/btrfs-select-super.c b/btrfs-select-super.c
-new file mode 100644
-index 0000000..f12f36c
---- /dev/null
-+++ b/btrfs-select-super.c
-@@ -0,0 +1,99 @@
-+/*
-+ * Copyright (C) 2007 Oracle. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public
-+ * License v2 as published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public
-+ * License along with this program; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 021110-1307, USA.
-+ */
-+
-+#define _XOPEN_SOURCE 500
-+#define _GNU_SOURCE 1
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <fcntl.h>
-+#include <sys/stat.h>
-+#include "kerncompat.h"
-+#include "ctree.h"
-+#include "disk-io.h"
-+#include "print-tree.h"
-+#include "transaction.h"
-+#include "list.h"
-+#include "version.h"
-+#include "utils.h"
-+
-+static void print_usage(void)
-+{
-+ fprintf(stderr, "usage: btrfs-select-super -s number dev\n");
-+ fprintf(stderr, "%s\n", BTRFS_BUILD_VERSION);
-+ exit(1);
-+}
-+
-+int main(int ac, char **av)
-+{
-+ struct btrfs_root *root;
-+ int ret;
-+ int num;
-+ u64 bytenr = 0;
-+
-+ while(1) {
-+ int c;
-+ c = getopt(ac, av, "s:");
-+ if (c < 0)
-+ break;
-+ switch(c) {
-+ case 's':
-+ num = atol(optarg);
-+ bytenr = btrfs_sb_offset(num);
-+ printf("using SB copy %d, bytenr %llu\n", num,
-+ (unsigned long long)bytenr);
-+ break;
-+ default:
-+ print_usage();
-+ }
-+ }
-+ ac = ac - optind;
-+
-+ if (ac != 1)
-+ print_usage();
-+
-+ if (bytenr == 0) {
-+ fprintf(stderr, "Please select the super copy with -s\n");
-+ print_usage();
-+ }
-+
-+ radix_tree_init();
-+
-+ if((ret = check_mounted(av[optind])) < 0) {
-+ fprintf(stderr, "Could not check mount status: %s\n", strerror(ret));
-+ return ret;
-+ } else if(ret) {
-+ fprintf(stderr, "%s is currently mounted. Aborting.\n", av[optind]);
-+ return -EBUSY;
-+ }
-+
-+ root = open_ctree(av[optind], bytenr, 1);
-+
-+ if (root == NULL)
-+ return 1;
-+
-+ /* make the super writing code think we've read the first super */
-+ root->fs_info->super_bytenr = BTRFS_SUPER_INFO_OFFSET;
-+ ret = write_all_supers(root);
-+
-+ /* we don't close the ctree or anything, because we don't want a real
-+ * transaction commit. We just want the super copy we pulled off the
-+ * disk to overwrite all the other copies
-+ */
-+ return ret;
-+}
-diff --git a/disk-io.c b/disk-io.c
-index a6e1000..5bd9cfc 100644
---- a/disk-io.c
-+++ b/disk-io.c
-@@ -828,7 +828,7 @@ int write_dev_supers(struct btrfs_root *root, struct btrfs_super_block *sb,
-
- if (root->fs_info->super_bytenr != BTRFS_SUPER_INFO_OFFSET) {
- btrfs_set_super_bytenr(sb, root->fs_info->super_bytenr);
--
-+printk("speiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n");
- crc = ~(u32)0;
- crc = btrfs_csum_data(NULL, (char *)sb + BTRFS_CSUM_SIZE, crc,
- BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE);
-diff --git a/disk-io.h b/disk-io.h
-index 49e5692..7ebec24 100644
---- a/disk-io.h
-+++ b/disk-io.h
-@@ -47,6 +47,7 @@ struct btrfs_root *open_ctree(const char *filename, u64 sb_bytenr, int writes);
- struct btrfs_root *open_ctree_fd(int fp, const char *path, u64 sb_bytenr,
- int writes);
- int close_ctree(struct btrfs_root *root);
-+int write_all_supers(struct btrfs_root *root);
- int write_ctree_super(struct btrfs_trans_handle *trans,
- struct btrfs_root *root);
- int btrfs_read_dev_super(int fd, struct btrfs_super_block *sb, u64 sb_bytenr);
---
-1.7.2.3
-