]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - tools-util.c
Update bcachefs sources to 44ac32df8e0c bcachefs: Split brain detection
[bcachefs-tools-debian] / tools-util.c
index 7d4a3c1c30dff8dd9261e0a3eee313638ac9a4a4..5f0b9ba4fd5f7c279763c3f7df9a9da1d0ca0f59 100644 (file)
@@ -51,36 +51,6 @@ char *mprintf(const char *fmt, ...)
        return str;
 }
 
-void *xcalloc(size_t count, size_t size)
-{
-       void *p = calloc(count, size);
-
-       if (!p)
-               die("insufficient memory");
-
-       return p;
-}
-
-void *xmalloc(size_t size)
-{
-       void *p = malloc(size);
-
-       if (!p)
-               die("insufficient memory");
-
-       memset(p, 0, size);
-       return p;
-}
-
-void *xrealloc(void *p, size_t size)
-{
-       p = realloc(p, size);
-       if (!p)
-               die("insufficient memory");
-
-       return p;
-}
-
 void xpread(int fd, void *buf, size_t count, off_t offset)
 {
        while (count) {
@@ -225,9 +195,6 @@ int open_for_format(struct dev_opts *dev, bool force)
        if (ret < 0)
                die("Error opening device to format %s: %s", dev->path, strerror(-ret));
 
-       if (force)
-               return 0;
-
        if (!(pr = blkid_new_probe()))
                die("blkid error 1");
        if (blkid_probe_set_device(pr, dev->bdev->bd_buffered_fd, 0, 0))
@@ -250,9 +217,11 @@ int open_for_format(struct dev_opts *dev, bool force)
                else
                        printf("%s contains a %s filesystem\n",
                               dev->path, fs_type);
-               fputs("Proceed anyway?", stdout);
-               if (!ask_yn())
-                       exit(EXIT_FAILURE);
+               if (!force) {
+                       fputs("Proceed anyway?", stdout);
+                       if (!ask_yn())
+                               exit(EXIT_FAILURE);
+               }
                while (blkid_do_probe(pr) == 0) {
                        if (blkid_do_wipe(pr, 0))
                                die("Failed to wipe preexisting metadata.");
@@ -294,14 +263,13 @@ static int range_cmp(const void *_l, const void *_r)
 
 void ranges_sort_merge(ranges *r)
 {
-       struct range *t, *i;
        ranges tmp = { 0 };
 
        sort(r->data, r->nr, sizeof(r->data[0]), range_cmp, NULL);
 
        /* Merge contiguous ranges: */
        darray_for_each(*r, i) {
-               t = tmp.nr ?  &tmp.data[tmp.nr - 1] : NULL;
+               struct range *t = tmp.nr ?  &tmp.data[tmp.nr - 1] : NULL;
 
                if (t && t->end >= i->start)
                        t->end = max(t->end, i->end);
@@ -315,8 +283,6 @@ void ranges_sort_merge(ranges *r)
 
 void ranges_roundup(ranges *r, unsigned block_size)
 {
-       struct range *i;
-
        darray_for_each(*r, i) {
                i->start = round_down(i->start, block_size);
                i->end  = round_up(i->end, block_size);
@@ -325,8 +291,6 @@ void ranges_roundup(ranges *r, unsigned block_size)
 
 void ranges_rounddown(ranges *r, unsigned block_size)
 {
-       struct range *i;
-
        darray_for_each(*r, i) {
                i->start = round_up(i->start, block_size);
                i->end  = round_down(i->end, block_size);
@@ -686,3 +650,17 @@ struct bbpos bbpos_parse(char *buf)
        ret.pos = bpos_parse(s);
        return ret;
 }
+
+darray_str get_or_split_cmdline_devs(int argc, char *argv[])
+{
+       darray_str ret = {};
+
+       if (argc == 1) {
+               bch2_split_devs(argv[0], &ret);
+       } else {
+               for (unsigned i = 0; i < argc; i++)
+                       darray_push(&ret, strdup(argv[i]));
+       }
+
+       return ret;
+}