static void check_blocks(void) { unsigned int current_page; int do_seek = 1; char *buffer; buffer = xmalloc(pagesize); current_page = 0; while (current_page < PAGES) { ssize_t rc; if (do_seek && lseek(DEV,current_page*pagesize,SEEK_SET) != current_page*pagesize) errx(EXIT_FAILURE, _("seek failed in check_blocks")); rc = read(DEV, buffer, pagesize); do_seek = (rc < 0 || (size_t) rc != pagesize); if (do_seek) page_bad(current_page); current_page++; } printf(P_("%lu bad page\n", "%lu bad pages\n", badpages), badpages); free(buffer); }
static void check_blocks(void) { unsigned int current_page; int do_seek = 1; char *buffer; buffer = xmalloc(pagesize); current_page = 0; while (current_page < PAGES) { if (!check) { page_ok(current_page++); continue; } if (do_seek && lseek(DEV, current_page * pagesize, SEEK_SET) != current_page * pagesize) bb_error_msg_and_die("seek failed in check_blocks"); if ((do_seek = (pagesize != read(DEV, buffer, pagesize)))) { page_bad(current_page++); continue; } page_ok(current_page++); } if (badpages == 1) printf("one bad page\n"); else if (badpages > 1) printf("%d bad pages\n", badpages); }
static void check_blocks(struct mkswap_control *ctl) { unsigned int current_page = 0; int do_seek = 1; char *buffer; assert(ctl); assert(ctl->fd > -1); buffer = xmalloc(ctl->pagesize); while (current_page < ctl->npages) { ssize_t rc; if (do_seek && lseek(ctl->fd, current_page * ctl->pagesize, SEEK_SET) != current_page * ctl->pagesize) errx(EXIT_FAILURE, _("seek failed in check_blocks")); rc = read(ctl->fd, buffer, ctl->pagesize); do_seek = (rc < 0 || rc != ctl->pagesize); if (do_seek) page_bad(ctl, current_page); current_page++; } printf(P_("%lu bad page\n", "%lu bad pages\n", ctl->nbadpages), ctl->nbadpages); free(buffer); }
static void check_blocks(void) { unsigned int current_page; int do_seek = 1; char *buffer; buffer = malloc(pagesize); if (!buffer) die(_("Out of memory")); current_page = 0; while (current_page < PAGES) { if (do_seek && lseek(DEV,current_page*pagesize,SEEK_SET) != current_page*pagesize) die(_("seek failed in check_blocks")); if ((do_seek = (pagesize != read(DEV, buffer, pagesize)))) page_bad(current_page); current_page++; } if (badpages == 1) printf(_("one bad page\n")); else if (badpages > 1) printf(_("%lu bad pages\n"), badpages); free(buffer); }