Lines Matching defs:savedirfd

230 getbounds(int savedirfd)
245 if ((fp = xfopenat(savedirfd, "bounds", O_RDONLY, "r")) == NULL) {
270 writebounds(int savedirfd, int bounds)
274 if ((fp = xfopenat(savedirfd, "bounds", O_WRONLY | O_CREAT | O_TRUNC,
288 writekey(int savedirfd, const char *keyname, uint8_t *dumpkey,
293 fd = openat(savedirfd, keyname, O_WRONLY | O_CREAT | O_TRUNC, 0600);
312 int savedirfd, const char *infoname, const char *device, int bounds,
321 if ((info = xfopenat(savedirfd, infoname,
349 file_size(int savedirfd, const char *path)
354 if (fstatat(savedirfd, path, &sb, 0) == -1)
360 saved_dump_size(int savedirfd, int bounds)
368 dumpsize += file_size(savedirfd, path);
370 dumpsize += file_size(savedirfd, path);
372 dumpsize += file_size(savedirfd, path);
374 dumpsize += file_size(savedirfd, path);
376 dumpsize += file_size(savedirfd, path);
378 dumpsize += file_size(savedirfd, path);
384 saved_dump_remove(int savedirfd, int bounds)
389 (void)unlinkat(savedirfd, path, 0);
391 (void)unlinkat(savedirfd, path, 0);
393 (void)unlinkat(savedirfd, path, 0);
395 (void)unlinkat(savedirfd, path, 0);
397 (void)unlinkat(savedirfd, path, 0);
399 (void)unlinkat(savedirfd, path, 0);
401 (void)unlinkat(savedirfd, path, 0);
403 (void)unlinkat(savedirfd, path, 0);
405 (void)unlinkat(savedirfd, path, 0);
409 symlinks_remove(int savedirfd)
412 (void)unlinkat(savedirfd, "info.last", 0);
413 (void)unlinkat(savedirfd, "key.last", 0);
414 (void)unlinkat(savedirfd, "vmcore.last", 0);
415 (void)unlinkat(savedirfd, "vmcore.last.gz", 0);
416 (void)unlinkat(savedirfd, "vmcore.last.zst", 0);
417 (void)unlinkat(savedirfd, "vmcore_encrypted.last", 0);
418 (void)unlinkat(savedirfd, "vmcore_encrypted.last.gz", 0);
419 (void)unlinkat(savedirfd, "textdump.tar.last", 0);
420 (void)unlinkat(savedirfd, "textdump.tar.last.gz", 0);
421 (void)unlinkat(savedirfd, "livecore.last", 0);
422 (void)unlinkat(savedirfd, "livecore.last.gz", 0);
423 (void)unlinkat(savedirfd, "livecore.last.zst", 0);
431 check_space(const char *savedir, int savedirfd, off_t dumpsize, int bounds)
438 if (fstatfs(savedirfd, &fsbuf) < 0) {
445 if ((fp = xfopenat(savedirfd, "minfree", O_RDONLY, "r")) == NULL)
473 needed -= saved_dump_size(savedirfd, bounds);
748 DoLiveFile(const char *savedir, int savedirfd, const char *device)
760 bounds = getbounds(savedirfd);
779 fdcore = mkostempsat(savedirfd, tmpname, 0, 0);
870 writebounds(savedirfd, bounds + 1);
871 saved_dump_remove(savedirfd, bounds);
880 if (renameat(savedirfd, tmpname, savedirfd, corename) != 0) {
886 if (write_header_info(xostdout, &kdhl, savedirfd, infoname, device,
898 symlinks_remove(savedirfd);
899 if (symlinkat(infoname, savedirfd, "info.last") == -1) {
908 if (symlinkat(corename, savedirfd, linkname) == -1) {
920 funlinkat(savedirfd, tmpname, fdcore, 0);
925 DoFile(const char *savedir, int savedirfd, const char *device)
943 DoLiveFile(savedir, savedirfd, device);
947 bounds = getbounds(savedirfd);
1142 if (!check_space(savedir, savedirfd, dumplength, bounds)) {
1147 writebounds(savedirfd, bounds + 1);
1149 saved_dump_remove(savedirfd, bounds);
1163 fdcore = openat(savedirfd, corename, O_WRONLY | O_CREAT | O_TRUNC,
1184 if (write_header_info(xostdout, &kdhl, savedirfd, infoname, device,
1205 ret = writekey(savedirfd, keyname, dumpkey, dumpkeysize);
1238 symlinks_remove(savedirfd);
1239 if (symlinkat(infoname, savedirfd, "info.last") == -1) {
1244 if (symlinkat(keyname, savedirfd, "key.last") == -1) {
1260 if (symlinkat(corename, savedirfd, linkname) == -1) {
1435 int i, ch, error, savedirfd;
1530 savedirfd = open(savedir, O_RDONLY | O_DIRECTORY);
1531 if (savedirfd < 0) {
1541 if (caph_rights_limit(savedirfd, &rights) < 0) {
1550 DoFile(savedir, savedirfd, devs[i]);