From 3d585810b809dcbcd72815e22177f65e1cec8853 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Tue, 8 Jul 2014 10:07:25 +0200 Subject: [PATCH] - rel 3; important fixes from git (these will be in 3.2.1) --- xfsprogs-git.patch | 27180 +++++++++++++++++++++++++++++++++++++++++++ xfsprogs.spec | 6 +- 2 files changed, 27184 insertions(+), 2 deletions(-) create mode 100644 xfsprogs-git.patch diff --git a/xfsprogs-git.patch b/xfsprogs-git.patch new file mode 100644 index 0000000..4b4f73a --- /dev/null +++ b/xfsprogs-git.patch @@ -0,0 +1,27180 @@ +diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c +index 71adb57..7ce5ec9 100644 +--- a/copy/xfs_copy.c ++++ b/copy/xfs_copy.c +@@ -217,25 +217,6 @@ handle_error: + } + + void +-killall(void) +-{ +- int i; +- +- /* only the parent gets to kill things */ +- +- if (getpid() != parent_pid) +- return; +- +- for (i = 0; i < num_targets; i++) { +- if (target[i].state == ACTIVE) { +- /* kill up target threads */ +- pthread_kill(target[i].pid, SIGKILL); +- pthread_mutex_unlock(&targ[i].wait); +- } +- } +-} +- +-void + handler(int sig) + { + pid_t pid; +@@ -400,8 +381,7 @@ read_wbuf(int fd, wbuf *buf, xfs_mount_t *mp) + if (buf->length > buf->size) { + do_warn(_("assert error: buf->length = %d, buf->size = %d\n"), + buf->length, buf->size); +- killall(); +- abort(); ++ exit(1); + } + + if ((res = read(fd, buf->data, buf->length)) < 0) { +@@ -594,11 +574,6 @@ main(int argc, char **argv) + + parent_pid = getpid(); + +- if (atexit(killall)) { +- do_log(_("%s: couldn't register atexit function.\n"), progname); +- die_perror(); +- } +- + /* open up source -- is it a file? */ + + open_flags = O_RDONLY; +@@ -725,7 +700,7 @@ main(int argc, char **argv) + if (source_blocksize > source_sectorsize) { + /* get number of leftover sectors in last block of ag header */ + +- tmp_residue = ((XFS_AGFL_DADDR(mp) + 1) * source_sectorsize) ++ tmp_residue = ((XFS_AGFL_DADDR(mp) + 1) * BBSIZE) + % source_blocksize; + first_residue = (tmp_residue == 0) ? 0 : + source_blocksize - tmp_residue; +@@ -738,10 +713,10 @@ main(int argc, char **argv) + exit(1); + } + +- first_agbno = (((XFS_AGFL_DADDR(mp) + 1) * source_sectorsize) ++ first_agbno = (((XFS_AGFL_DADDR(mp) + 1) * BBSIZE) + + first_residue) / source_blocksize; + ASSERT(first_agbno != 0); +- ASSERT( ((((XFS_AGFL_DADDR(mp) + 1) * source_sectorsize) ++ ASSERT(((((XFS_AGFL_DADDR(mp) + 1) * BBSIZE) + + first_residue) % source_blocksize) == 0); + + /* now open targets */ +@@ -1177,9 +1152,6 @@ main(int argc, char **argv) + } + + check_errors(); +- killall(); +- pthread_exit(NULL); +- /*NOTREACHED*/ + return 0; + } + +diff --git a/db/Makefile b/db/Makefile +index 9485b82..bae6154 100644 +--- a/db/Makefile ++++ b/db/Makefile +@@ -14,7 +14,7 @@ HFILES = addr.h agf.h agfl.h agi.h attr.h attrshort.h bit.h block.h bmap.h \ + io.h malloc.h metadump.h output.h print.h quit.h sb.h sig.h strvec.h \ + text.h type.h write.h attrset.h symlink.h + CFILES = $(HFILES:.h=.c) +-LSRCFILES = xfs_admin.sh xfs_check.sh xfs_ncheck.sh xfs_metadump.sh ++LSRCFILES = xfs_admin.sh xfs_ncheck.sh xfs_metadump.sh + + LLDLIBS = $(LIBXFS) $(LIBXLOG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD) + LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG) +@@ -38,7 +38,6 @@ install: default + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) + $(INSTALL) -m 755 xfs_admin.sh $(PKG_SBIN_DIR)/xfs_admin +- $(INSTALL) -m 755 xfs_check.sh $(PKG_SBIN_DIR)/xfs_check + $(INSTALL) -m 755 xfs_ncheck.sh $(PKG_SBIN_DIR)/xfs_ncheck + $(INSTALL) -m 755 xfs_metadump.sh $(PKG_SBIN_DIR)/xfs_metadump + install-dev: +diff --git a/db/agi.c b/db/agi.c +index 398bdbb..6f167ac 100644 +--- a/db/agi.c ++++ b/db/agi.c +@@ -57,6 +57,8 @@ const field_t agi_flds[] = { + { "uuid", FLDT_UUID, OI(OFF(uuid)), C1, 0, TYP_NONE }, + { "lsn", FLDT_UINT64X, OI(OFF(lsn)), C1, 0, TYP_NONE }, + { "crc", FLDT_CRC, OI(OFF(crc)), C1, 0, TYP_NONE }, ++ { "free_root", FLDT_AGBLOCK, OI(OFF(free_root)), C1, 0, TYP_INOBT }, ++ { "free_level", FLDT_UINT32D, OI(OFF(free_level)), C1, 0, TYP_NONE }, + { NULL } + }; + +diff --git a/db/attrset.c b/db/attrset.c +index 762b3bf..ea5261a 100644 +--- a/db/attrset.c ++++ b/db/attrset.c +@@ -170,7 +170,7 @@ attr_set_f( + out: + mp->m_flags &= ~LIBXFS_MOUNT_COMPAT_ATTR; + if (ip) +- libxfs_iput(ip, 0); ++ IRELE(ip); + if (value) + free(value); + return 0; +@@ -244,6 +244,6 @@ attr_remove_f( + out: + mp->m_flags &= ~LIBXFS_MOUNT_COMPAT_ATTR; + if (ip) +- libxfs_iput(ip, 0); ++ IRELE(ip); + return 0; + } +diff --git a/db/btblock.c b/db/btblock.c +index 1ea0cff..cdb8b1d 100644 +--- a/db/btblock.c ++++ b/db/btblock.c +@@ -60,6 +60,12 @@ struct xfs_db_btree { + sizeof(xfs_inobt_rec_t), + sizeof(__be32), + }, ++ { XFS_FIBT_MAGIC, ++ XFS_BTREE_SBLOCK_LEN, ++ sizeof(xfs_inobt_key_t), ++ sizeof(xfs_inobt_rec_t), ++ sizeof(__be32), ++ }, + { XFS_BMAP_CRC_MAGIC, + XFS_BTREE_LBLOCK_CRC_LEN, + sizeof(xfs_bmbt_key_t), +@@ -84,6 +90,12 @@ struct xfs_db_btree { + sizeof(xfs_inobt_rec_t), + sizeof(__be32), + }, ++ { XFS_FIBT_CRC_MAGIC, ++ XFS_BTREE_SBLOCK_CRC_LEN, ++ sizeof(xfs_inobt_key_t), ++ sizeof(xfs_inobt_rec_t), ++ sizeof(__be32), ++ }, + { 0, + }, + }; +diff --git a/db/metadump.c b/db/metadump.c +index 09bb85a..38cd441 100644 +--- a/db/metadump.c ++++ b/db/metadump.c +@@ -1917,6 +1917,7 @@ scanfunc_ino( + xfs_inobt_ptr_t *pp; + int i; + int numrecs; ++ int finobt = *(int *) arg; + + numrecs = be16_to_cpu(block->bb_numrecs); + +@@ -1928,6 +1929,14 @@ scanfunc_ino( + typtab[btype].name, agno, agbno); + numrecs = mp->m_inobt_mxr[0]; + } ++ ++ /* ++ * Only copy the btree blocks for the finobt. The inobt scan ++ * copies the inode chunks. ++ */ ++ if (finobt) ++ return 1; ++ + rp = XFS_INOBT_REC_ADDR(mp, block, 1); + for (i = 0; i < numrecs; i++, rp++) { + if (!copy_inode_chunk(agno, rp)) +@@ -1967,6 +1976,7 @@ copy_inodes( + { + xfs_agblock_t root; + int levels; ++ int finobt = 0; + + root = be32_to_cpu(agi->agi_root); + levels = be32_to_cpu(agi->agi_level); +@@ -1985,7 +1995,20 @@ copy_inodes( + return 1; + } + +- return scan_btree(agno, root, levels, TYP_INOBT, agi, scanfunc_ino); ++ if (!scan_btree(agno, root, levels, TYP_INOBT, &finobt, scanfunc_ino)) ++ return 0; ++ ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) { ++ root = be32_to_cpu(agi->agi_free_root); ++ levels = be32_to_cpu(agi->agi_free_level); ++ ++ finobt = 1; ++ if (!scan_btree(agno, root, levels, TYP_INOBT, &finobt, ++ scanfunc_ino)) ++ return 0; ++ } ++ ++ return 1; + } + + static int +diff --git a/db/write.c b/db/write.c +index ca8bd0f..0157a44 100644 +--- a/db/write.c ++++ b/db/write.c +@@ -565,7 +565,7 @@ convert_arg( + return NULL; + + /* Does the value fit into the range of the destination bitfield? */ +- if ((val >> bit_length) > 0) ++ if (bit_length < 64 && (val >> bit_length) > 0) + return NULL; + /* + * If the length of the field is not a multiple of a byte, push +diff --git a/db/xfs_check.sh b/db/xfs_check.sh +deleted file mode 100755 +index 553da63..0000000 +--- a/db/xfs_check.sh ++++ /dev/null +@@ -1,42 +0,0 @@ +-#!/bin/sh -f +-# +-# Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved. +-# +- +-OPTS=" " +-DBOPTS=" " +-USAGE="Usage: xfs_check [-fsvV] [-l logdev] [-i ino]... [-b bno]... special" +- +-echo "xfs_check is deprecated and scheduled for removal in June 2014." +-echo "Please use xfs_repair -n instead." +- +-while getopts "b:fi:l:stvV" c +-do +- case $c in +- s) OPTS=$OPTS"-s ";; +- t) OPTS=$OPTS"-t ";; +- v) OPTS=$OPTS"-v ";; +- i) OPTS=$OPTS"-i "$OPTARG" ";; +- b) OPTS=$OPTS"-b "$OPTARG" ";; +- f) DBOPTS=$DBOPTS" -f";; +- l) DBOPTS=$DBOPTS" -l "$OPTARG" ";; +- V) xfs_db -p xfs_check -V +- status=$? +- exit $status +- ;; +- \?) echo $USAGE 1>&2 +- exit 2 +- ;; +- esac +-done +-set -- extra $@ +-shift $OPTIND +-case $# in +- 1) xfs_db$DBOPTS -F -i -p xfs_check -c "check$OPTS" $1 +- status=$? +- ;; +- *) echo $USAGE 1>&2 +- exit 2 +- ;; +-esac +-exit $status +diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c +index 3818f02..48629fd 100644 +--- a/fsr/xfs_fsr.c ++++ b/fsr/xfs_fsr.c +@@ -554,6 +554,8 @@ fsrallfs(char *mtab, int howlong, char *leftofffile) + fsrprintf(_("could not read %s, starting with %s\n"), + leftofffile, *fs->dev); + } else { ++ /* Ensure the buffer we read is null terminated */ ++ buf[SMBUFSZ-1] = '\0'; + for (fs = fsbase; fs < fsend; fs++) { + fsname = fs->dev; + if ((strncmp(buf,fsname,strlen(fsname)) == 0) +@@ -1203,14 +1205,20 @@ out: + * We already are pretty sure we can and want to + * defragment the file. Create the tmp file, copy + * the data (maintaining holes) and call the kernel +- * extent swap routinte. ++ * extent swap routine. ++ * ++ * Return values: ++ * -1: Some error was encountered ++ * 0: Successfully defragmented the file ++ * 1: No change / No Error + */ + static int + packfile(char *fname, char *tname, int fd, + xfs_bstat_t *statp, struct fsxattr *fsxp) + { +- int tfd; ++ int tfd = -1; + int srval; ++ int retval = -1; /* Failure is the default */ + int nextents, extent, cur_nextents, new_nextents; + unsigned blksz_dio; + unsigned dio_min; +@@ -1218,7 +1226,7 @@ packfile(char *fname, char *tname, int fd, + static xfs_swapext_t sx; + struct xfs_flock64 space; + off64_t cnt, pos; +- void *fbuf; ++ void *fbuf = NULL; + int ct, wc, wc_b4; + char ffname[SMBUFSZ]; + int ffd = -1; +@@ -1234,7 +1242,8 @@ packfile(char *fname, char *tname, int fd, + if (cur_nextents == 1 || cur_nextents <= nextents) { + if (vflag) + fsrprintf(_("%s already fully defragmented.\n"), fname); +- return 1; /* indicates no change/no error */ ++ retval = 1; /* indicates no change/no error */ ++ goto out; + } + + if (dflag) +@@ -1246,15 +1255,14 @@ packfile(char *fname, char *tname, int fd, + if (vflag) + fsrprintf(_("could not open tmp file: %s: %s\n"), + tname, strerror(errno)); +- return -1; ++ goto out; + } + unlink(tname); + + /* Setup extended attributes */ + if (fsr_setup_attr_fork(fd, tfd, statp) != 0) { + fsrprintf(_("failed to set ATTR fork on tmp: %s:\n"), tname); +- close(tfd); +- return -1; ++ goto out; + } + + /* Setup extended inode flags, project identifier, etc */ +@@ -1262,15 +1270,13 @@ packfile(char *fname, char *tname, int fd, + if (ioctl(tfd, XFS_IOC_FSSETXATTR, fsxp) < 0) { + fsrprintf(_("could not set inode attrs on tmp: %s\n"), + tname); +- close(tfd); +- return -1; ++ goto out; + } + } + + if ((ioctl(tfd, XFS_IOC_DIOINFO, &dio)) < 0 ) { + fsrprintf(_("could not get DirectIO info on tmp: %s\n"), tname); +- close(tfd); +- return -1; ++ goto out; + } + + dio_min = dio.d_miniosz; +@@ -1292,8 +1298,7 @@ packfile(char *fname, char *tname, int fd, + + if (!(fbuf = (char *)memalign(dio.d_mem, blksz_dio))) { + fsrprintf(_("could not allocate buf: %s\n"), tname); +- close(tfd); +- return -1; ++ goto out; + } + + if (nfrags) { +@@ -1304,9 +1309,7 @@ packfile(char *fname, char *tname, int fd, + if ((ffd = open(ffname, openopts, 0666)) < 0) { + fsrprintf(_("could not open fragfile: %s : %s\n"), + ffname, strerror(errno)); +- close(tfd); +- free(fbuf); +- return -1; ++ goto out; + } + unlink(ffname); + } +@@ -1322,7 +1325,11 @@ packfile(char *fname, char *tname, int fd, + fsrprintf(_("could not trunc tmp %s\n"), + tname); + } +- lseek64(tfd, outmap[extent].bmv_length, SEEK_CUR); ++ if (lseek64(tfd, outmap[extent].bmv_length, SEEK_CUR) < 0) { ++ fsrprintf(_("could not lseek in tmpfile: %s : %s\n"), ++ tname, strerror(errno)); ++ goto out; ++ } + continue; + } else if (outmap[extent].bmv_length == 0) { + /* to catch holes at the beginning of the file */ +@@ -1336,21 +1343,19 @@ packfile(char *fname, char *tname, int fd, + if (ioctl(tfd, XFS_IOC_RESVSP64, &space) < 0) { + fsrprintf(_("could not pre-allocate tmp space:" + " %s\n"), tname); +- close(tfd); +- free(fbuf); +- return -1; ++ goto out; ++ } ++ if (lseek64(tfd, outmap[extent].bmv_length, SEEK_CUR) < 0) { ++ fsrprintf(_("could not lseek in tmpfile: %s : %s\n"), ++ tname, strerror(errno)); ++ goto out; + } +- lseek64(tfd, outmap[extent].bmv_length, SEEK_CUR); + } + } /* end of space allocation loop */ + + if (lseek64(tfd, 0, SEEK_SET)) { + fsrprintf(_("Couldn't rewind on temporary file\n")); +- close(tfd); +- if (ffd != -1) +- close(ffd); +- free(fbuf); +- return -1; ++ goto out; + } + + /* Check if the temporary file has fewer extents */ +@@ -1360,19 +1365,24 @@ packfile(char *fname, char *tname, int fd, + if (cur_nextents <= new_nextents) { + if (vflag) + fsrprintf(_("No improvement will be made (skipping): %s\n"), fname); +- free(fbuf); +- close(tfd); +- if (ffd != -1) +- close(ffd); +- return 1; /* no change/no error */ ++ retval = 1; /* no change/no error */ ++ goto out; + } + + /* Loop through block map copying the file. */ + for (extent = 0; extent < nextents; extent++) { + pos = outmap[extent].bmv_offset; + if (outmap[extent].bmv_block == -1) { +- lseek64(tfd, outmap[extent].bmv_length, SEEK_CUR); +- lseek64(fd, outmap[extent].bmv_length, SEEK_CUR); ++ if (lseek64(tfd, outmap[extent].bmv_length, SEEK_CUR) < 0) { ++ fsrprintf(_("could not lseek in tmpfile: %s : %s\n"), ++ tname, strerror(errno)); ++ goto out; ++ } ++ if (lseek64(fd, outmap[extent].bmv_length, SEEK_CUR) < 0) { ++ fsrprintf(_("could not lseek in file: %s : %s\n"), ++ fname, strerror(errno)); ++ goto out; ++ } + continue; + } else if (outmap[extent].bmv_length == 0) { + /* to catch holes at the beginning of the file */ +@@ -1435,11 +1445,7 @@ packfile(char *fname, char *tname, int fd, + tname); + } + } +- free(fbuf); +- close(tfd); +- if (ffd != -1) +- close(ffd); +- return -1; ++ goto out; + } + if (nfrags) { + /* Do a matching write to the tmp file */ +@@ -1452,12 +1458,16 @@ packfile(char *fname, char *tname, int fd, + } + } + } +- ftruncate64(tfd, statp->bs_size); +- if (ffd != -1) +- close(ffd); +- fsync(tfd); +- +- free(fbuf); ++ if (ftruncate64(tfd, statp->bs_size) < 0) { ++ fsrprintf(_("could not truncate tmpfile: %s : %s\n"), ++ fname, strerror(errno)); ++ goto out; ++ } ++ if (fsync(tfd) < 0) { ++ fsrprintf(_("could not fsync tmpfile: %s : %s\n"), ++ fname, strerror(errno)); ++ goto out; ++ } + + sx.sx_stat = *statp; /* struct copy */ + sx.sx_version = XFS_SX_VERSION; +@@ -1471,8 +1481,7 @@ packfile(char *fname, char *tname, int fd, + if (vflag) + fsrprintf(_("failed to fchown tmpfile %s: %s\n"), + tname, strerror(errno)); +- close(tfd); +- return -1; ++ goto out; + } + + /* Swap the extents */ +@@ -1494,8 +1503,7 @@ packfile(char *fname, char *tname, int fd, + fsrprintf(_("XFS_IOC_SWAPEXT failed: %s: %s\n"), + fname, strerror(errno)); + } +- close(tfd); +- return -1; ++ goto out; + } + + /* Report progress */ +@@ -1504,8 +1512,15 @@ packfile(char *fname, char *tname, int fd, + cur_nextents, new_nextents, + (new_nextents <= nextents ? "DONE" : " " ), + fname); +- close(tfd); +- return 0; ++ retval = 0; ++ ++out: ++ free(fbuf); ++ if (tfd != -1) ++ close(tfd); ++ if (ffd != -1) ++ close(ffd); ++ return retval; + } + + char * +diff --git a/growfs/xfs_growfs.c b/growfs/xfs_growfs.c +index 77da707..8e611b6 100644 +--- a/growfs/xfs_growfs.c ++++ b/growfs/xfs_growfs.c +@@ -56,12 +56,13 @@ report_info( + int projid32bit, + int crcs_enabled, + int cimode, +- int ftype_enabled) ++ int ftype_enabled, ++ int finobt_enabled) + { + printf(_( + "meta-data=%-22s isize=%-6u agcount=%u, agsize=%u blks\n" + " =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" +- " =%-22s crc=%u\n" ++ " =%-22s crc=%-8u finobt=%u\n" + "data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" + " =%-22s sunit=%-6u swidth=%u blks\n" + "naming =version %-14u bsize=%-6u ascii-ci=%d ftype=%d\n" +@@ -71,7 +72,7 @@ report_info( + + mntpoint, geo.inodesize, geo.agcount, geo.agblocks, + "", geo.sectsize, attrversion, projid32bit, +- "", crcs_enabled, ++ "", crcs_enabled, finobt_enabled, + "", geo.blocksize, (unsigned long long)geo.datablocks, + geo.imaxpct, + "", geo.sunit, geo.swidth, +@@ -123,6 +124,7 @@ main(int argc, char **argv) + int projid32bit; + int crcs_enabled; + int ftype_enabled = 0; ++ int finobt_enabled; /* free inode btree */ + + progname = basename(argv[0]); + setlocale(LC_ALL, ""); +@@ -244,11 +246,12 @@ main(int argc, char **argv) + projid32bit = geo.flags & XFS_FSOP_GEOM_FLAGS_PROJID32 ? 1 : 0; + crcs_enabled = geo.flags & XFS_FSOP_GEOM_FLAGS_V5SB ? 1 : 0; + ftype_enabled = geo.flags & XFS_FSOP_GEOM_FLAGS_FTYPE ? 1 : 0; ++ finobt_enabled = geo.flags & XFS_FSOP_GEOM_FLAGS_FINOBT ? 1 : 0; + if (nflag) { + report_info(geo, datadev, isint, logdev, rtdev, + lazycount, dirversion, logversion, + attrversion, projid32bit, crcs_enabled, ci, +- ftype_enabled); ++ ftype_enabled, finobt_enabled); + exit(0); + } + +@@ -285,7 +288,8 @@ main(int argc, char **argv) + + report_info(geo, datadev, isint, logdev, rtdev, + lazycount, dirversion, logversion, +- attrversion, projid32bit, crcs_enabled, ci, ftype_enabled); ++ attrversion, projid32bit, crcs_enabled, ci, ftype_enabled, ++ finobt_enabled); + + ddsize = xi.dsize; + dlsize = ( xi.logBBsize? xi.logBBsize : +diff --git a/include/libxfs.h b/include/libxfs.h +index 9c10957..45a924f 100644 +--- a/include/libxfs.h ++++ b/include/libxfs.h +@@ -480,7 +480,6 @@ typedef struct xfs_inode_log_item { + unsigned int ili_fields; /* fields to be logged */ + unsigned int ili_last_fields; /* fields when flushed*/ + xfs_inode_log_format_t ili_format; /* logged structure */ +- int ili_lock_flags; + } xfs_inode_log_item_t; + + typedef struct xfs_buf_log_item { +@@ -535,9 +534,7 @@ extern xfs_buf_t *libxfs_trans_getsb (xfs_trans_t *, xfs_mount_t *, int); + + extern int libxfs_trans_iget (xfs_mount_t *, xfs_trans_t *, xfs_ino_t, + uint, uint, struct xfs_inode **); +-extern void libxfs_trans_iput(xfs_trans_t *, struct xfs_inode *, uint); + extern void libxfs_trans_ijoin (xfs_trans_t *, struct xfs_inode *, uint); +-extern void libxfs_trans_ihold (xfs_trans_t *, struct xfs_inode *); + extern void libxfs_trans_ijoin_ref(xfs_trans_t *, struct xfs_inode *, int); + extern void libxfs_trans_log_inode (xfs_trans_t *, struct xfs_inode *, + uint); +@@ -656,7 +653,9 @@ extern int libxfs_iflush_int (xfs_inode_t *, xfs_buf_t *); + /* Inode Cache Interfaces */ + extern int libxfs_iget (xfs_mount_t *, xfs_trans_t *, xfs_ino_t, + uint, xfs_inode_t **, xfs_daddr_t); +-extern void libxfs_iput (xfs_inode_t *, uint); ++extern void libxfs_iput (xfs_inode_t *); ++ ++#define IRELE(ip) libxfs_iput(ip) + + /* Shared utility routines */ + extern unsigned int libxfs_log2_roundup(unsigned int i); +@@ -760,6 +759,7 @@ bool xfs_dinode_verify(struct xfs_mount *mp, xfs_ino_t ino, + /* xfs_sb.h */ + #define libxfs_mod_sb xfs_mod_sb + #define libxfs_sb_from_disk xfs_sb_from_disk ++#define libxfs_sb_quota_from_disk xfs_sb_quota_from_disk + #define libxfs_sb_to_disk xfs_sb_to_disk + + /* xfs_symlink.h */ +diff --git a/include/xfs_ag.h b/include/xfs_ag.h +index 0fdd410..2531658 100644 +--- a/include/xfs_ag.h ++++ b/include/xfs_ag.h +@@ -166,24 +166,30 @@ typedef struct xfs_agi { + __be32 agi_pad32; + __be64 agi_lsn; /* last write sequence */ + ++ __be32 agi_free_root; /* root of the free inode btree */ ++ __be32 agi_free_level;/* levels in free inode btree */ ++ + /* structure must be padded to 64 bit alignment */ + } xfs_agi_t; + + #define XFS_AGI_CRC_OFF offsetof(struct xfs_agi, agi_crc) + +-#define XFS_AGI_MAGICNUM 0x00000001 +-#define XFS_AGI_VERSIONNUM 0x00000002 +-#define XFS_AGI_SEQNO 0x00000004 +-#define XFS_AGI_LENGTH 0x00000008 +-#define XFS_AGI_COUNT 0x00000010 +-#define XFS_AGI_ROOT 0x00000020 +-#define XFS_AGI_LEVEL 0x00000040 +-#define XFS_AGI_FREECOUNT 0x00000080 +-#define XFS_AGI_NEWINO 0x00000100 +-#define XFS_AGI_DIRINO 0x00000200 +-#define XFS_AGI_UNLINKED 0x00000400 +-#define XFS_AGI_NUM_BITS 11 +-#define XFS_AGI_ALL_BITS ((1 << XFS_AGI_NUM_BITS) - 1) ++#define XFS_AGI_MAGICNUM (1 << 0) ++#define XFS_AGI_VERSIONNUM (1 << 1) ++#define XFS_AGI_SEQNO (1 << 2) ++#define XFS_AGI_LENGTH (1 << 3) ++#define XFS_AGI_COUNT (1 << 4) ++#define XFS_AGI_ROOT (1 << 5) ++#define XFS_AGI_LEVEL (1 << 6) ++#define XFS_AGI_FREECOUNT (1 << 7) ++#define XFS_AGI_NEWINO (1 << 8) ++#define XFS_AGI_DIRINO (1 << 9) ++#define XFS_AGI_UNLINKED (1 << 10) ++#define XFS_AGI_NUM_BITS_R1 11 /* end of the 1st agi logging region */ ++#define XFS_AGI_ALL_BITS_R1 ((1 << XFS_AGI_NUM_BITS_R1) - 1) ++#define XFS_AGI_FREE_ROOT (1 << 11) ++#define XFS_AGI_FREE_LEVEL (1 << 12) ++#define XFS_AGI_NUM_BITS_R2 13 + + /* disk block (xfs_daddr_t) in the AG */ + #define XFS_AGI_DADDR(mp) ((xfs_daddr_t)(2 << (mp)->m_sectbb_log)) +diff --git a/include/xfs_btree.h b/include/xfs_btree.h +index 6afe0b2..2590d40 100644 +--- a/include/xfs_btree.h ++++ b/include/xfs_btree.h +@@ -37,6 +37,7 @@ extern kmem_zone_t *xfs_btree_cur_zone; + #define XFS_BTNUM_CNT ((xfs_btnum_t)XFS_BTNUM_CNTi) + #define XFS_BTNUM_BMAP ((xfs_btnum_t)XFS_BTNUM_BMAPi) + #define XFS_BTNUM_INO ((xfs_btnum_t)XFS_BTNUM_INOi) ++#define XFS_BTNUM_FINO ((xfs_btnum_t)XFS_BTNUM_FINOi) + + /* + * For logging record fields. +@@ -67,6 +68,7 @@ do { \ + case XFS_BTNUM_CNT: __XFS_BTREE_STATS_INC(abtc, stat); break; \ + case XFS_BTNUM_BMAP: __XFS_BTREE_STATS_INC(bmbt, stat); break; \ + case XFS_BTNUM_INO: __XFS_BTREE_STATS_INC(ibt, stat); break; \ ++ case XFS_BTNUM_FINO: __XFS_BTREE_STATS_INC(fibt, stat); break; \ + case XFS_BTNUM_MAX: ASSERT(0); /* fucking gcc */ ; break; \ + } \ + } while (0) +@@ -80,6 +82,7 @@ do { \ + case XFS_BTNUM_CNT: __XFS_BTREE_STATS_ADD(abtc, stat, val); break; \ + case XFS_BTNUM_BMAP: __XFS_BTREE_STATS_ADD(bmbt, stat, val); break; \ + case XFS_BTNUM_INO: __XFS_BTREE_STATS_ADD(ibt, stat, val); break; \ ++ case XFS_BTNUM_FINO: __XFS_BTREE_STATS_ADD(fibt, stat, val); break; \ + case XFS_BTNUM_MAX: ASSERT(0); /* fucking gcc */ ; break; \ + } \ + } while (0) +diff --git a/include/xfs_format.h b/include/xfs_format.h +index 77f6b8b..758052f 100644 +--- a/include/xfs_format.h ++++ b/include/xfs_format.h +@@ -202,6 +202,8 @@ typedef __be32 xfs_alloc_ptr_t; + */ + #define XFS_IBT_MAGIC 0x49414254 /* 'IABT' */ + #define XFS_IBT_CRC_MAGIC 0x49414233 /* 'IAB3' */ ++#define XFS_FIBT_MAGIC 0x46494254 /* 'FIBT' */ ++#define XFS_FIBT_CRC_MAGIC 0x46494233 /* 'FIB3' */ + + typedef __uint64_t xfs_inofree_t; + #define XFS_INODES_PER_CHUNK (NBBY * sizeof(xfs_inofree_t)) +@@ -244,7 +246,17 @@ typedef __be32 xfs_inobt_ptr_t; + * block numbers in the AG. + */ + #define XFS_IBT_BLOCK(mp) ((xfs_agblock_t)(XFS_CNT_BLOCK(mp) + 1)) +-#define XFS_PREALLOC_BLOCKS(mp) ((xfs_agblock_t)(XFS_IBT_BLOCK(mp) + 1)) ++#define XFS_FIBT_BLOCK(mp) ((xfs_agblock_t)(XFS_IBT_BLOCK(mp) + 1)) ++ ++/* ++ * The first data block of an AG depends on whether the filesystem was formatted ++ * with the finobt feature. If so, account for the finobt reserved root btree ++ * block. ++ */ ++#define XFS_PREALLOC_BLOCKS(mp) \ ++ (xfs_sb_version_hasfinobt(&((mp)->m_sb)) ? \ ++ XFS_FIBT_BLOCK(mp) + 1 : \ ++ XFS_IBT_BLOCK(mp) + 1) + + + +diff --git a/include/xfs_fs.h b/include/xfs_fs.h +index 554fd66..59c40fc 100644 +--- a/include/xfs_fs.h ++++ b/include/xfs_fs.h +@@ -238,6 +238,7 @@ typedef struct xfs_fsop_resblks { + #define XFS_FSOP_GEOM_FLAGS_LAZYSB 0x4000 /* lazy superblock counters */ + #define XFS_FSOP_GEOM_FLAGS_V5SB 0x8000 /* version 5 superblock */ + #define XFS_FSOP_GEOM_FLAGS_FTYPE 0x10000 /* inode directory types */ ++#define XFS_FSOP_GEOM_FLAGS_FINOBT 0x20000 /* free inode btree */ + + + /* +diff --git a/include/xfs_ialloc.h b/include/xfs_ialloc.h +index a8f76a5..c8ac0a4 100644 +--- a/include/xfs_ialloc.h ++++ b/include/xfs_ialloc.h +@@ -89,7 +89,7 @@ xfs_difree( + struct xfs_trans *tp, /* transaction pointer */ + xfs_ino_t inode, /* inode to be freed */ + struct xfs_bmap_free *flist, /* extents to free */ +- int *delete, /* set if inode cluster was deleted */ ++ int *deleted, /* set if inode cluster was deleted */ + xfs_ino_t *first_ino); /* first inode in deleted cluster */ + + /* +diff --git a/include/xfs_ialloc_btree.h b/include/xfs_ialloc_btree.h +index f38b220..d7ebea7 100644 +--- a/include/xfs_ialloc_btree.h ++++ b/include/xfs_ialloc_btree.h +@@ -58,7 +58,8 @@ struct xfs_mount; + ((index) - 1) * sizeof(xfs_inobt_ptr_t))) + + extern struct xfs_btree_cur *xfs_inobt_init_cursor(struct xfs_mount *, +- struct xfs_trans *, struct xfs_buf *, xfs_agnumber_t); ++ struct xfs_trans *, struct xfs_buf *, xfs_agnumber_t, ++ xfs_btnum_t); + extern int xfs_inobt_maxrecs(struct xfs_mount *, int, int); + + #endif /* __XFS_IALLOC_BTREE_H__ */ +diff --git a/include/xfs_sb.h b/include/xfs_sb.h +index f7b2fe7..950d1ea 100644 +--- a/include/xfs_sb.h ++++ b/include/xfs_sb.h +@@ -587,7 +587,9 @@ xfs_sb_has_compat_feature( + return (sbp->sb_features_compat & feature) != 0; + } + +-#define XFS_SB_FEAT_RO_COMPAT_ALL 0 ++#define XFS_SB_FEAT_RO_COMPAT_FINOBT (1 << 0) /* free inode btree */ ++#define XFS_SB_FEAT_RO_COMPAT_ALL \ ++ (XFS_SB_FEAT_RO_COMPAT_FINOBT) + #define XFS_SB_FEAT_RO_COMPAT_UNKNOWN ~XFS_SB_FEAT_RO_COMPAT_ALL + static inline bool + xfs_sb_has_ro_compat_feature( +@@ -641,6 +643,12 @@ static inline int xfs_sb_version_hasftype(struct xfs_sb *sbp) + (sbp->sb_features2 & XFS_SB_VERSION2_FTYPE)); + } + ++static inline int xfs_sb_version_hasfinobt(xfs_sb_t *sbp) ++{ ++ return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5) && ++ (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_FINOBT); ++} ++ + /* + * end of superblock version macros + */ +diff --git a/include/xfs_trans_space.h b/include/xfs_trans_space.h +index 7d2c920..a7d1721 100644 +--- a/include/xfs_trans_space.h ++++ b/include/xfs_trans_space.h +@@ -47,7 +47,9 @@ + #define XFS_DIRREMOVE_SPACE_RES(mp) \ + XFS_DAREMOVE_SPACE_RES(mp, XFS_DATA_FORK) + #define XFS_IALLOC_SPACE_RES(mp) \ +- (XFS_IALLOC_BLOCKS(mp) + (mp)->m_in_maxlevels - 1) ++ (XFS_IALLOC_BLOCKS(mp) + \ ++ (xfs_sb_version_hasfinobt(&mp->m_sb) ? 2 : 1 * \ ++ ((mp)->m_in_maxlevels - 1))) + + /* + * Space reservation values for various transactions. +@@ -82,5 +84,8 @@ + (XFS_DIRREMOVE_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp,nl)) + #define XFS_SYMLINK_SPACE_RES(mp,nl,b) \ + (XFS_IALLOC_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp,nl) + (b)) ++#define XFS_IFREE_SPACE_RES(mp) \ ++ (xfs_sb_version_hasfinobt(&mp->m_sb) ? (mp)->m_in_maxlevels : 0) ++ + + #endif /* __XFS_TRANS_SPACE_H__ */ +diff --git a/include/xfs_types.h b/include/xfs_types.h +index 82bbc34..65c6e66 100644 +--- a/include/xfs_types.h ++++ b/include/xfs_types.h +@@ -134,7 +134,7 @@ typedef enum { + + typedef enum { + XFS_BTNUM_BNOi, XFS_BTNUM_CNTi, XFS_BTNUM_BMAPi, XFS_BTNUM_INOi, +- XFS_BTNUM_MAX ++ XFS_BTNUM_FINOi, XFS_BTNUM_MAX + } xfs_btnum_t; + + struct xfs_name { +diff --git a/libxfs/init.c b/libxfs/init.c +index 0924948..06458e5 100644 +--- a/libxfs/init.c ++++ b/libxfs/init.c +@@ -778,9 +778,9 @@ void + libxfs_rtmount_destroy(xfs_mount_t *mp) + { + if (mp->m_rsumip) +- libxfs_iput(mp->m_rsumip, 0); ++ IRELE(mp->m_rsumip); + if (mp->m_rbmip) +- libxfs_iput(mp->m_rbmip, 0); ++ IRELE(mp->m_rbmip); + mp->m_rsumip = mp->m_rbmip = NULL; + } + +diff --git a/libxfs/linux.c b/libxfs/linux.c +index 2e07d54..8d1a117 100644 +--- a/libxfs/linux.c ++++ b/libxfs/linux.c +@@ -141,10 +141,20 @@ platform_findsizes(char *path, int fd, long long *sz, int *bsz) + exit(1); + } + if ((st.st_mode & S_IFMT) == S_IFREG) { ++ struct xfs_fsop_geom_v1 geom = { 0 }; ++ + *sz = (long long)(st.st_size >> 9); +- *bsz = BBSIZE; +- if (BBSIZE > max_block_alignment) +- max_block_alignment = BBSIZE; ++ if (ioctl(fd, XFS_IOC_FSGEOMETRY_V1, &geom) < 0) { ++ /* ++ * fall back to BBSIZE; mkfs might fail if there's a ++ * size mismatch between the image & the host fs... ++ */ ++ *bsz = BBSIZE; ++ } else ++ *bsz = geom.sectsize; ++ ++ if (*bsz > max_block_alignment) ++ max_block_alignment = *bsz; + return; + } + +diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c +index 57c12c1..0294c98 100644 +--- a/libxfs/rdwr.c ++++ b/libxfs/rdwr.c +@@ -19,6 +19,37 @@ + #include + #include "init.h" + ++/* ++ * Important design/architecture note: ++ * ++ * The userspace code that uses the buffer cache is much less constrained than ++ * the kernel code. The userspace code is pretty nasty in places, especially ++ * when it comes to buffer error handling. Very little of the userspace code ++ * outside libxfs clears bp->b_error - very little code even checks it - so the ++ * libxfs code is tripping on stale errors left by the userspace code. ++ * ++ * We can't clear errors or zero buffer contents in libxfs_getbuf-* like we do ++ * in the kernel, because those functions are used by the libxfs_readbuf_* ++ * functions and hence need to leave the buffers unchanged on cache hits. This ++ * is actually the only way to gather a write error from a libxfs_writebuf() ++ * call - you need to get the buffer again so you can check bp->b_error field - ++ * assuming that the buffer is still in the cache when you check, that is. ++ * ++ * This is very different to the kernel code which does not release buffers on a ++ * write so we can wait on IO and check errors. The kernel buffer cache also ++ * guarantees a buffer of a known initial state from xfs_buf_get() even on a ++ * cache hit. ++ * ++ * IOWs, userspace is behaving quite differently to the kernel and as a result ++ * it leaks errors from reads, invalidations and writes through ++ * libxfs_getbuf/libxfs_readbuf. ++ * ++ * The result of this is that until the userspace code outside libxfs is cleaned ++ * up, functions that release buffers from userspace control (i.e ++ * libxfs_writebuf/libxfs_putbuf) need to zero bp->b_error to prevent ++ * propagation of stale errors into future buffer operations. ++ */ ++ + #define BDSTRAT_SIZE (256 * 1024) + + #define IO_BCOMPARE_CHECK +@@ -632,6 +663,12 @@ libxfs_putbuf(xfs_buf_t *bp) + pthread_mutex_unlock(&bp->b_lock); + } + } ++ /* ++ * ensure that any errors on this use of the buffer don't carry ++ * over to the next user. ++ */ ++ bp->b_error = 0; ++ + cache_node_put(libxfs_bcache, (struct cache_node *)bp); + } + +@@ -907,10 +944,10 @@ libxfs_writebufr(xfs_buf_t *bp) + } + + #ifdef IO_DEBUG +- printf("%lx: %s: wrote %u bytes, blkno=%llu(%llu), %p\n", ++ printf("%lx: %s: wrote %u bytes, blkno=%llu(%llu), %p, error %d\n", + pthread_self(), __FUNCTION__, bp->b_bcount, + (long long)LIBXFS_BBTOOFF64(bp->b_bn), +- (long long)bp->b_bn, bp); ++ (long long)bp->b_bn, bp, error); + #endif + if (!error) { + bp->b_flags |= LIBXFS_B_UPTODATE; +@@ -928,6 +965,7 @@ libxfs_writebuf_int(xfs_buf_t *bp, int flags) + * subsequent reads after this write from seeing stale errors. + */ + bp->b_error = 0; ++ bp->b_flags &= ~LIBXFS_B_STALE; + bp->b_flags |= (LIBXFS_B_DIRTY | flags); + return 0; + } +@@ -946,6 +984,7 @@ libxfs_writebuf(xfs_buf_t *bp, int flags) + * subsequent reads after this write from seeing stale errors. + */ + bp->b_error = 0; ++ bp->b_flags &= ~LIBXFS_B_STALE; + bp->b_flags |= (LIBXFS_B_DIRTY | flags); + libxfs_putbuf(bp); + return 0; +@@ -1103,7 +1142,7 @@ libxfs_idestroy(xfs_inode_t *ip) + } + + void +-libxfs_iput(xfs_inode_t *ip, uint lock_flags) ++libxfs_iput(xfs_inode_t *ip) + { + if (ip->i_itemp) + kmem_zone_free(xfs_ili_zone, ip->i_itemp); +diff --git a/libxfs/trans.c b/libxfs/trans.c +index c443863..13d21b2 100644 +--- a/libxfs/trans.c ++++ b/libxfs/trans.c +@@ -110,7 +110,7 @@ libxfs_trans_roll( + /* + * Commit the current transaction. + * If this commit failed, then it'd just unlock those items that +- * are not marked ihold. That also means that a filesystem shutdown ++ * are marked to be released. That also means that a filesystem shutdown + * is in progress. The caller takes the responsibility to cancel + * the duplicate transaction that gets returned. + */ +@@ -248,27 +248,6 @@ libxfs_trans_iget( + } + + void +-libxfs_trans_iput( +- xfs_trans_t *tp, +- xfs_inode_t *ip, +- uint lock_flags) +-{ +- xfs_inode_log_item_t *iip; +- +- if (tp == NULL) { +- libxfs_iput(ip, lock_flags); +- return; +- } +- +- ASSERT(ip->i_transp == tp); +- iip = ip->i_itemp; +- ASSERT(iip != NULL); +- xfs_trans_del_item(&iip->ili_item); +- +- libxfs_iput(ip, lock_flags); +-} +- +-void + libxfs_trans_ijoin( + xfs_trans_t *tp, + xfs_inode_t *ip, +@@ -301,7 +280,6 @@ libxfs_trans_ijoin_ref( + ASSERT(ip->i_itemp != NULL); + + xfs_trans_ijoin(tp, ip, lock_flags); +- ip->i_itemp->ili_lock_flags = lock_flags; + + #ifdef XACT_DEBUG + fprintf(stderr, "ijoin_ref'd inode %llu, transaction %p\n", ip->i_ino, tp); +@@ -309,21 +287,6 @@ libxfs_trans_ijoin_ref( + } + + void +-libxfs_trans_ihold( +- xfs_trans_t *tp, +- xfs_inode_t *ip) +-{ +- ASSERT(ip->i_transp == tp); +- ASSERT(ip->i_itemp != NULL); +- +- ip->i_itemp->ili_lock_flags = 1; +- +-#ifdef XACT_DEBUG +- fprintf(stderr, "ihold'd inode %llu, transaction %p\n", ip->i_ino, tp); +-#endif +-} +- +-void + libxfs_trans_inode_alloc_buf( + xfs_trans_t *tp, + xfs_buf_t *bp) +@@ -702,7 +665,7 @@ inode_item_done( + if (!(iip->ili_fields & XFS_ILOG_ALL)) { + ip->i_transp = NULL; /* disassociate from transaction */ + iip->ili_flags = 0; /* reset all flags */ +- goto ili_done; ++ return; + } + + /* +@@ -712,7 +675,7 @@ inode_item_done( + if (error) { + fprintf(stderr, _("%s: warning - imap_to_bp failed (%d)\n"), + progname, error); +- goto ili_done; ++ return; + } + + XFS_BUF_SET_FSPRIVATE(bp, iip); +@@ -720,7 +683,7 @@ inode_item_done( + if (error) { + fprintf(stderr, _("%s: warning - iflush_int failed (%d)\n"), + progname, error); +- goto ili_done; ++ return; + } + + ip->i_transp = NULL; /* disassociate from transaction */ +@@ -728,16 +691,9 @@ inode_item_done( + XFS_BUF_SET_FSPRIVATE2(bp, NULL); /* remove xact ptr */ + libxfs_writebuf(bp, 0); + #ifdef XACT_DEBUG +- fprintf(stderr, "flushing dirty inode %llu, buffer %p (hold=%u)\n", +- ip->i_ino, bp, iip->ili_lock_flags); ++ fprintf(stderr, "flushing dirty inode %llu, buffer %p\n", ++ ip->i_ino, bp); + #endif +-ili_done: +- if (iip->ili_lock_flags) { +- iip->ili_lock_flags = 0; +- return; +- } +- /* free the inode */ +- libxfs_iput(ip, 0); + } + + static void +@@ -818,10 +774,6 @@ inode_item_unlock( + ip->i_transp = NULL; + + iip->ili_flags = 0; +- if (!iip->ili_lock_flags) +- libxfs_iput(ip, 0); +- else +- iip->ili_lock_flags = 0; + } + + /* +diff --git a/libxfs/util.c b/libxfs/util.c +index 4c40324..9504e33 100644 +--- a/libxfs/util.c ++++ b/libxfs/util.c +@@ -595,7 +595,6 @@ libxfs_alloc_file_space( + break; + } + xfs_trans_ijoin(tp, ip, 0); +- xfs_trans_ihold(tp, ip); + + xfs_bmap_init(&free_list, &firstfsb); + error = xfs_bmapi_write(tp, ip, startoffset_fsb, allocatesize_fsb, +diff --git a/libxfs/xfs.h b/libxfs/xfs.h +index 5a21590..30a316d 100644 +--- a/libxfs/xfs.h ++++ b/libxfs/xfs.h +@@ -292,7 +292,6 @@ roundup_64(__uint64_t x, __uint32_t y) + #define xfs_trans_get_buf libxfs_trans_get_buf + #define xfs_trans_getsb libxfs_trans_getsb + #define xfs_trans_iget libxfs_trans_iget +-#define xfs_trans_ihold libxfs_trans_ihold + #define xfs_trans_ijoin libxfs_trans_ijoin + #define xfs_trans_ijoin_ref libxfs_trans_ijoin_ref + #define xfs_trans_init libxfs_trans_init +diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c +index 5cf5c73..08b983b 100644 +--- a/libxfs/xfs_attr_remote.c ++++ b/libxfs/xfs_attr_remote.c +@@ -85,7 +85,7 @@ xfs_attr3_rmt_verify( + if (be32_to_cpu(rmt->rm_bytes) > fsbsize - sizeof(*rmt)) + return false; + if (be32_to_cpu(rmt->rm_offset) + +- be32_to_cpu(rmt->rm_bytes) >= XATTR_SIZE_MAX) ++ be32_to_cpu(rmt->rm_bytes) > XATTR_SIZE_MAX) + return false; + if (rmt->rm_owner == 0) + return false; +diff --git a/libxfs/xfs_btree.c b/libxfs/xfs_btree.c +index 9be4abd..cc823f5 100644 +--- a/libxfs/xfs_btree.c ++++ b/libxfs/xfs_btree.c +@@ -27,9 +27,10 @@ kmem_zone_t *xfs_btree_cur_zone; + * Btree magic numbers. + */ + static const __uint32_t xfs_magics[2][XFS_BTNUM_MAX] = { +- { XFS_ABTB_MAGIC, XFS_ABTC_MAGIC, XFS_BMAP_MAGIC, XFS_IBT_MAGIC }, ++ { XFS_ABTB_MAGIC, XFS_ABTC_MAGIC, XFS_BMAP_MAGIC, XFS_IBT_MAGIC, ++ XFS_FIBT_MAGIC }, + { XFS_ABTB_CRC_MAGIC, XFS_ABTC_CRC_MAGIC, +- XFS_BMAP_CRC_MAGIC, XFS_IBT_CRC_MAGIC } ++ XFS_BMAP_CRC_MAGIC, XFS_IBT_CRC_MAGIC, XFS_FIBT_CRC_MAGIC } + }; + #define xfs_btree_magic(cur) \ + xfs_magics[!!((cur)->bc_flags & XFS_BTREE_CRC_BLOCKS)][cur->bc_btnum] +@@ -1099,6 +1100,7 @@ xfs_btree_set_refs( + xfs_buf_set_ref(bp, XFS_ALLOC_BTREE_REF); + break; + case XFS_BTNUM_INO: ++ case XFS_BTNUM_FINO: + xfs_buf_set_ref(bp, XFS_INO_BTREE_REF); + break; + case XFS_BTNUM_BMAP: +diff --git a/libxfs/xfs_da_btree.c b/libxfs/xfs_da_btree.c +index b70454e..b731b54 100644 +--- a/libxfs/xfs_da_btree.c ++++ b/libxfs/xfs_da_btree.c +@@ -2582,7 +2582,8 @@ xfs_da_get_buf( + mapp, nmap, 0); + error = bp ? bp->b_error : XFS_ERROR(EIO); + if (error) { +- xfs_trans_brelse(trans, bp); ++ if (bp) ++ xfs_trans_brelse(trans, bp); + goto out_free; + } + +diff --git a/libxfs/xfs_ialloc.c b/libxfs/xfs_ialloc.c +index c19d84a..5462c54 100644 +--- a/libxfs/xfs_ialloc.c ++++ b/libxfs/xfs_ialloc.c +@@ -88,6 +88,66 @@ xfs_inobt_get_rec( + } + + /* ++ * Insert a single inobt record. Cursor must already point to desired location. ++ */ ++STATIC int ++xfs_inobt_insert_rec( ++ struct xfs_btree_cur *cur, ++ __int32_t freecount, ++ xfs_inofree_t free, ++ int *stat) ++{ ++ cur->bc_rec.i.ir_freecount = freecount; ++ cur->bc_rec.i.ir_free = free; ++ return xfs_btree_insert(cur, stat); ++} ++ ++/* ++ * Insert records describing a newly allocated inode chunk into the inobt. ++ */ ++STATIC int ++xfs_inobt_insert( ++ struct xfs_mount *mp, ++ struct xfs_trans *tp, ++ struct xfs_buf *agbp, ++ xfs_agino_t newino, ++ xfs_agino_t newlen, ++ xfs_btnum_t btnum) ++{ ++ struct xfs_btree_cur *cur; ++ struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); ++ xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); ++ xfs_agino_t thisino; ++ int i; ++ int error; ++ ++ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); ++ ++ for (thisino = newino; ++ thisino < newino + newlen; ++ thisino += XFS_INODES_PER_CHUNK) { ++ error = xfs_inobt_lookup(cur, thisino, XFS_LOOKUP_EQ, &i); ++ if (error) { ++ xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); ++ return error; ++ } ++ ASSERT(i == 0); ++ ++ error = xfs_inobt_insert_rec(cur, XFS_INODES_PER_CHUNK, ++ XFS_INOBT_ALL_FREE, &i); ++ if (error) { ++ xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); ++ return error; ++ } ++ ASSERT(i == 1); ++ } ++ ++ xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); ++ ++ return 0; ++} ++ ++/* + * Verify that the number of free inodes in the AGI is correct. + */ + #ifdef DEBUG +@@ -286,13 +346,10 @@ xfs_ialloc_ag_alloc( + { + xfs_agi_t *agi; /* allocation group header */ + xfs_alloc_arg_t args; /* allocation argument structure */ +- xfs_btree_cur_t *cur; /* inode btree cursor */ + xfs_agnumber_t agno; + int error; +- int i; + xfs_agino_t newino; /* new first inode's number */ + xfs_agino_t newlen; /* new number of inodes */ +- xfs_agino_t thisino; /* current inode number, for loop */ + int isaligned = 0; /* inode allocation at stripe unit */ + /* boundary */ + struct xfs_perag *pag; +@@ -430,29 +487,19 @@ xfs_ialloc_ag_alloc( + agi->agi_newino = cpu_to_be32(newino); + + /* +- * Insert records describing the new inode chunk into the btree. ++ * Insert records describing the new inode chunk into the btrees. + */ +- cur = xfs_inobt_init_cursor(args.mp, tp, agbp, agno); +- for (thisino = newino; +- thisino < newino + newlen; +- thisino += XFS_INODES_PER_CHUNK) { +- cur->bc_rec.i.ir_startino = thisino; +- cur->bc_rec.i.ir_freecount = XFS_INODES_PER_CHUNK; +- cur->bc_rec.i.ir_free = XFS_INOBT_ALL_FREE; +- error = xfs_btree_lookup(cur, XFS_LOOKUP_EQ, &i); +- if (error) { +- xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); +- return error; +- } +- ASSERT(i == 0); +- error = xfs_btree_insert(cur, &i); +- if (error) { +- xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); ++ error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, ++ XFS_BTNUM_INO); ++ if (error) ++ return error; ++ ++ if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) { ++ error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, ++ XFS_BTNUM_FINO); ++ if (error) + return error; +- } +- ASSERT(i == 1); + } +- xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); + /* + * Log allocation group header fields + */ +@@ -652,7 +699,7 @@ xfs_ialloc_get_rec( + * available. + */ + STATIC int +-xfs_dialloc_ag( ++xfs_dialloc_ag_slow( + struct xfs_trans *tp, + struct xfs_buf *agbp, + xfs_ino_t parent, +@@ -678,7 +725,7 @@ xfs_dialloc_ag( + ASSERT(pag->pagi_freecount > 0); + + restart_pagno: +- cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); ++ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); + /* + * If pagino is 0 (this is the root inode allocation) use newino. + * This must work because we've just allocated some. +@@ -910,6 +957,215 @@ error0: + return error; + } + ++STATIC int ++xfs_dialloc_ag( ++ struct xfs_trans *tp, ++ struct xfs_buf *agbp, ++ xfs_ino_t parent, ++ xfs_ino_t *inop) ++{ ++ struct xfs_mount *mp = tp->t_mountp; ++ struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); ++ xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); ++ xfs_agnumber_t pagno = XFS_INO_TO_AGNO(mp, parent); ++ xfs_agino_t pagino = XFS_INO_TO_AGINO(mp, parent); ++ struct xfs_perag *pag; ++ struct xfs_btree_cur *cur; ++ struct xfs_btree_cur *tcur; ++ struct xfs_inobt_rec_incore rec; ++ struct xfs_inobt_rec_incore trec; ++ xfs_ino_t ino; ++ int error; ++ int offset; ++ int i, j; ++ ++ if (!xfs_sb_version_hasfinobt(&mp->m_sb)) ++ return xfs_dialloc_ag_slow(tp, agbp, parent, inop); ++ ++ pag = xfs_perag_get(mp, agno); ++ ++ /* ++ * If pagino is 0 (this is the root inode allocation) use newino. ++ * This must work because we've just allocated some. ++ */ ++ if (!pagino) ++ pagino = be32_to_cpu(agi->agi_newino); ++ ++ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_FINO); ++ ++ error = xfs_check_agi_freecount(cur, agi); ++ if (error) ++ goto error_cur; ++ ++ if (agno == pagno) { ++ /* ++ * We're in the same AG as the parent inode so allocate the ++ * closest inode to the parent. ++ */ ++ error = xfs_inobt_lookup(cur, pagino, XFS_LOOKUP_LE, &i); ++ if (error) ++ goto error_cur; ++ if (i == 1) { ++ error = xfs_inobt_get_rec(cur, &rec, &i); ++ if (error) ++ goto error_cur; ++ XFS_WANT_CORRUPTED_GOTO(i == 1, error_cur); ++ ++ /* ++ * See if we've landed in the parent inode record. The ++ * finobt only tracks chunks with at least one free ++ * inode, so record existence is enough. ++ */ ++ if (pagino >= rec.ir_startino && ++ pagino < (rec.ir_startino + XFS_INODES_PER_CHUNK)) ++ goto alloc_inode; ++ } ++ ++ error = xfs_btree_dup_cursor(cur, &tcur); ++ if (error) ++ goto error_cur; ++ ++ error = xfs_inobt_lookup(tcur, pagino, XFS_LOOKUP_GE, &j); ++ if (error) ++ goto error_tcur; ++ if (j == 1) { ++ error = xfs_inobt_get_rec(tcur, &trec, &j); ++ if (error) ++ goto error_tcur; ++ XFS_WANT_CORRUPTED_GOTO(j == 1, error_tcur); ++ } ++ ++ if (i == 1 && j == 1) { ++ if ((pagino - rec.ir_startino + XFS_INODES_PER_CHUNK - 1) > ++ (trec.ir_startino - pagino)) { ++ rec = trec; ++ xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); ++ cur = tcur; ++ } else { ++ xfs_btree_del_cursor(tcur, XFS_BTREE_NOERROR); ++ } ++ } else if (j == 1) { ++ rec = trec; ++ xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); ++ cur = tcur; ++ } else { ++ xfs_btree_del_cursor(tcur, XFS_BTREE_NOERROR); ++ } ++ } else { ++ /* ++ * Different AG from the parent inode. Check the record for the ++ * most recently allocated inode. ++ */ ++ if (agi->agi_newino != cpu_to_be32(NULLAGINO)) { ++ error = xfs_inobt_lookup(cur, agi->agi_newino, ++ XFS_LOOKUP_EQ, &i); ++ if (error) ++ goto error_cur; ++ if (i == 1) { ++ error = xfs_inobt_get_rec(cur, &rec, &i); ++ if (error) ++ goto error_cur; ++ XFS_WANT_CORRUPTED_GOTO(i == 1, error_cur); ++ goto alloc_inode; ++ } ++ } ++ ++ /* ++ * Allocate the first inode available in the AG. ++ */ ++ error = xfs_inobt_lookup(cur, 0, XFS_LOOKUP_GE, &i); ++ if (error) ++ goto error_cur; ++ XFS_WANT_CORRUPTED_GOTO(i == 1, error_cur); ++ ++ error = xfs_inobt_get_rec(cur, &rec, &i); ++ if (error) ++ goto error_cur; ++ XFS_WANT_CORRUPTED_GOTO(i == 1, error_cur); ++ } ++ ++alloc_inode: ++ offset = xfs_lowbit64(rec.ir_free); ++ ASSERT(offset >= 0); ++ ASSERT(offset < XFS_INODES_PER_CHUNK); ++ ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) % ++ XFS_INODES_PER_CHUNK) == 0); ++ ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino + offset); ++ ++ /* ++ * Modify or remove the finobt record. ++ */ ++ rec.ir_free &= ~XFS_INOBT_MASK(offset); ++ rec.ir_freecount--; ++ if (rec.ir_freecount) ++ error = xfs_inobt_update(cur, &rec); ++ else ++ error = xfs_btree_delete(cur, &i); ++ if (error) ++ goto error_cur; ++ ++ /* ++ * Lookup and modify the equivalent record in the inobt. ++ */ ++ tcur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); ++ ++ error = xfs_check_agi_freecount(tcur, agi); ++ if (error) ++ goto error_tcur; ++ ++ error = xfs_inobt_lookup(tcur, rec.ir_startino, XFS_LOOKUP_EQ, &i); ++ if (error) ++ goto error_tcur; ++ XFS_WANT_CORRUPTED_GOTO(i == 1, error_tcur); ++ ++ error = xfs_inobt_get_rec(tcur, &trec, &i); ++ if (error) ++ goto error_tcur; ++ XFS_WANT_CORRUPTED_GOTO(i == 1, error_tcur); ++ ASSERT((XFS_AGINO_TO_OFFSET(mp, trec.ir_startino) % ++ XFS_INODES_PER_CHUNK) == 0); ++ ++ trec.ir_free &= ~XFS_INOBT_MASK(offset); ++ trec.ir_freecount--; ++ ++ XFS_WANT_CORRUPTED_GOTO((rec.ir_free == trec.ir_free) && ++ (rec.ir_freecount == trec.ir_freecount), ++ error_tcur); ++ ++ error = xfs_inobt_update(tcur, &trec); ++ if (error) ++ goto error_tcur; ++ ++ /* ++ * Update the perag and superblock. ++ */ ++ be32_add_cpu(&agi->agi_freecount, -1); ++ xfs_ialloc_log_agi(tp, agbp, XFS_AGI_FREECOUNT); ++ pag->pagi_freecount--; ++ ++ xfs_trans_mod_sb(tp, XFS_TRANS_SB_IFREE, -1); ++ ++ error = xfs_check_agi_freecount(tcur, agi); ++ if (error) ++ goto error_tcur; ++ error = xfs_check_agi_freecount(cur, agi); ++ if (error) ++ goto error_tcur; ++ ++ xfs_btree_del_cursor(tcur, XFS_BTREE_NOERROR); ++ xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); ++ xfs_perag_put(pag); ++ *inop = ino; ++ return 0; ++ ++error_tcur: ++ xfs_btree_del_cursor(tcur, XFS_BTREE_ERROR); ++error_cur: ++ xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); ++ xfs_perag_put(pag); ++ return error; ++} ++ + /* + * Allocate an inode on disk. + * +@@ -1069,78 +1325,34 @@ out_error: + return XFS_ERROR(error); + } + +-/* +- * Free disk inode. Carefully avoids touching the incore inode, all +- * manipulations incore are the caller's responsibility. +- * The on-disk inode is not changed by this operation, only the +- * btree (free inode mask) is changed. +- */ +-int +-xfs_difree( +- xfs_trans_t *tp, /* transaction pointer */ +- xfs_ino_t inode, /* inode to be freed */ +- xfs_bmap_free_t *flist, /* extents to free */ +- int *delete, /* set if inode cluster was deleted */ +- xfs_ino_t *first_ino) /* first inode in deleted cluster */ ++STATIC int ++xfs_difree_inobt( ++ struct xfs_mount *mp, ++ struct xfs_trans *tp, ++ struct xfs_buf *agbp, ++ xfs_agino_t agino, ++ struct xfs_bmap_free *flist, ++ int *deleted, ++ xfs_ino_t *first_ino, ++ struct xfs_inobt_rec_incore *orec) + { +- /* REFERENCED */ +- xfs_agblock_t agbno; /* block number containing inode */ +- xfs_buf_t *agbp; /* buffer containing allocation group header */ +- xfs_agino_t agino; /* inode number relative to allocation group */ +- xfs_agnumber_t agno; /* allocation group number */ +- xfs_agi_t *agi; /* allocation group header */ +- xfs_btree_cur_t *cur; /* inode btree cursor */ +- int error; /* error return value */ +- int i; /* result code */ +- int ilen; /* inodes in an inode cluster */ +- xfs_mount_t *mp; /* mount structure for filesystem */ +- int off; /* offset of inode in inode chunk */ +- xfs_inobt_rec_incore_t rec; /* btree record */ +- struct xfs_perag *pag; ++ struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); ++ xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); ++ struct xfs_perag *pag; ++ struct xfs_btree_cur *cur; ++ struct xfs_inobt_rec_incore rec; ++ int ilen; ++ int error; ++ int i; ++ int off; + +- mp = tp->t_mountp; +- +- /* +- * Break up inode number into its components. +- */ +- agno = XFS_INO_TO_AGNO(mp, inode); +- if (agno >= mp->m_sb.sb_agcount) { +- xfs_warn(mp, "%s: agno >= mp->m_sb.sb_agcount (%d >= %d).", +- __func__, agno, mp->m_sb.sb_agcount); +- ASSERT(0); +- return XFS_ERROR(EINVAL); +- } +- agino = XFS_INO_TO_AGINO(mp, inode); +- if (inode != XFS_AGINO_TO_INO(mp, agno, agino)) { +- xfs_warn(mp, "%s: inode != XFS_AGINO_TO_INO() (%llu != %llu).", +- __func__, (unsigned long long)inode, +- (unsigned long long)XFS_AGINO_TO_INO(mp, agno, agino)); +- ASSERT(0); +- return XFS_ERROR(EINVAL); +- } +- agbno = XFS_AGINO_TO_AGBNO(mp, agino); +- if (agbno >= mp->m_sb.sb_agblocks) { +- xfs_warn(mp, "%s: agbno >= mp->m_sb.sb_agblocks (%d >= %d).", +- __func__, agbno, mp->m_sb.sb_agblocks); +- ASSERT(0); +- return XFS_ERROR(EINVAL); +- } +- /* +- * Get the allocation group header. +- */ +- error = xfs_ialloc_read_agi(mp, tp, agno, &agbp); +- if (error) { +- xfs_warn(mp, "%s: xfs_ialloc_read_agi() returned error %d.", +- __func__, error); +- return error; +- } +- agi = XFS_BUF_TO_AGI(agbp); + ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC)); +- ASSERT(agbno < be32_to_cpu(agi->agi_length)); ++ ASSERT(XFS_AGINO_TO_AGBNO(mp, agino) < be32_to_cpu(agi->agi_length)); ++ + /* + * Initialize the cursor. + */ +- cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); ++ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); + + error = xfs_check_agi_freecount(cur, agi); + if (error) +@@ -1180,7 +1392,7 @@ xfs_difree( + if (!(mp->m_flags & XFS_MOUNT_IKEEP) && + (rec.ir_freecount == XFS_IALLOC_INODES(mp))) { + +- *delete = 1; ++ *deleted = 1; + *first_ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino); + + /* +@@ -1208,7 +1420,7 @@ xfs_difree( + agno, XFS_INO_TO_AGBNO(mp,rec.ir_startino)), + XFS_IALLOC_BLOCKS(mp), flist, mp); + } else { +- *delete = 0; ++ *deleted = 0; + + error = xfs_inobt_update(cur, &rec); + if (error) { +@@ -1232,6 +1444,7 @@ xfs_difree( + if (error) + goto error0; + ++ *orec = rec; + xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); + return 0; + +@@ -1240,6 +1453,189 @@ error0: + return error; + } + ++/* ++ * Free an inode in the free inode btree. ++ */ ++STATIC int ++xfs_difree_finobt( ++ struct xfs_mount *mp, ++ struct xfs_trans *tp, ++ struct xfs_buf *agbp, ++ xfs_agino_t agino, ++ struct xfs_inobt_rec_incore *ibtrec) /* inobt record */ ++{ ++ struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); ++ xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); ++ struct xfs_btree_cur *cur; ++ struct xfs_inobt_rec_incore rec; ++ int offset = agino - ibtrec->ir_startino; ++ int error; ++ int i; ++ ++ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_FINO); ++ ++ error = xfs_inobt_lookup(cur, ibtrec->ir_startino, XFS_LOOKUP_EQ, &i); ++ if (error) ++ goto error; ++ if (i == 0) { ++ /* ++ * If the record does not exist in the finobt, we must have just ++ * freed an inode in a previously fully allocated chunk. If not, ++ * something is out of sync. ++ */ ++ XFS_WANT_CORRUPTED_GOTO(ibtrec->ir_freecount == 1, error); ++ ++ error = xfs_inobt_insert_rec(cur, ibtrec->ir_freecount, ++ ibtrec->ir_free, &i); ++ if (error) ++ goto error; ++ ASSERT(i == 1); ++ ++ goto out; ++ } ++ ++ /* ++ * Read and update the existing record. ++ */ ++ error = xfs_inobt_get_rec(cur, &rec, &i); ++ if (error) ++ goto error; ++ XFS_WANT_CORRUPTED_GOTO(i == 1, error); ++ ++ rec.ir_free |= XFS_INOBT_MASK(offset); ++ rec.ir_freecount++; ++ ++ XFS_WANT_CORRUPTED_GOTO((rec.ir_free == ibtrec->ir_free) && ++ (rec.ir_freecount == ibtrec->ir_freecount), ++ error); ++ ++ /* ++ * The content of inobt records should always match between the inobt ++ * and finobt. The lifecycle of records in the finobt is different from ++ * the inobt in that the finobt only tracks records with at least one ++ * free inode. This is to optimize lookup for inode allocation purposes. ++ * The following checks determine whether to update the existing record or ++ * remove it entirely. ++ */ ++ ++ if (rec.ir_freecount == XFS_IALLOC_INODES(mp) && ++ !(mp->m_flags & XFS_MOUNT_IKEEP)) { ++ /* ++ * If all inodes are free and we're in !ikeep mode, the entire ++ * inode chunk has been deallocated. Remove the record from the ++ * finobt. ++ */ ++ error = xfs_btree_delete(cur, &i); ++ if (error) ++ goto error; ++ ASSERT(i == 1); ++ } else { ++ /* ++ * The existing finobt record was modified and has a combination ++ * of allocated and free inodes or is completely free and ikeep ++ * is enabled. Update the record. ++ */ ++ error = xfs_inobt_update(cur, &rec); ++ if (error) ++ goto error; ++ } ++ ++out: ++ error = xfs_check_agi_freecount(cur, agi); ++ if (error) ++ goto error; ++ ++ xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); ++ return 0; ++ ++error: ++ xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); ++ return error; ++} ++ ++/* ++ * Free disk inode. Carefully avoids touching the incore inode, all ++ * manipulations incore are the caller's responsibility. ++ * The on-disk inode is not changed by this operation, only the ++ * btree (free inode mask) is changed. ++ */ ++int ++xfs_difree( ++ struct xfs_trans *tp, /* transaction pointer */ ++ xfs_ino_t inode, /* inode to be freed */ ++ struct xfs_bmap_free *flist, /* extents to free */ ++ int *deleted,/* set if inode cluster was deleted */ ++ xfs_ino_t *first_ino)/* first inode in deleted cluster */ ++{ ++ /* REFERENCED */ ++ xfs_agblock_t agbno; /* block number containing inode */ ++ struct xfs_buf *agbp; /* buffer for allocation group header */ ++ xfs_agino_t agino; /* allocation group inode number */ ++ xfs_agnumber_t agno; /* allocation group number */ ++ int error; /* error return value */ ++ struct xfs_mount *mp; /* mount structure for filesystem */ ++ struct xfs_inobt_rec_incore rec;/* btree record */ ++ ++ mp = tp->t_mountp; ++ ++ /* ++ * Break up inode number into its components. ++ */ ++ agno = XFS_INO_TO_AGNO(mp, inode); ++ if (agno >= mp->m_sb.sb_agcount) { ++ xfs_warn(mp, "%s: agno >= mp->m_sb.sb_agcount (%d >= %d).", ++ __func__, agno, mp->m_sb.sb_agcount); ++ ASSERT(0); ++ return XFS_ERROR(EINVAL); ++ } ++ agino = XFS_INO_TO_AGINO(mp, inode); ++ if (inode != XFS_AGINO_TO_INO(mp, agno, agino)) { ++ xfs_warn(mp, "%s: inode != XFS_AGINO_TO_INO() (%llu != %llu).", ++ __func__, (unsigned long long)inode, ++ (unsigned long long)XFS_AGINO_TO_INO(mp, agno, agino)); ++ ASSERT(0); ++ return XFS_ERROR(EINVAL); ++ } ++ agbno = XFS_AGINO_TO_AGBNO(mp, agino); ++ if (agbno >= mp->m_sb.sb_agblocks) { ++ xfs_warn(mp, "%s: agbno >= mp->m_sb.sb_agblocks (%d >= %d).", ++ __func__, agbno, mp->m_sb.sb_agblocks); ++ ASSERT(0); ++ return XFS_ERROR(EINVAL); ++ } ++ /* ++ * Get the allocation group header. ++ */ ++ error = xfs_ialloc_read_agi(mp, tp, agno, &agbp); ++ if (error) { ++ xfs_warn(mp, "%s: xfs_ialloc_read_agi() returned error %d.", ++ __func__, error); ++ return error; ++ } ++ ++ /* ++ * Fix up the inode allocation btree. ++ */ ++ error = xfs_difree_inobt(mp, tp, agbp, agino, flist, deleted, first_ino, ++ &rec); ++ if (error) ++ goto error0; ++ ++ /* ++ * Fix up the free inode btree. ++ */ ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) { ++ error = xfs_difree_finobt(mp, tp, agbp, agino, &rec); ++ if (error) ++ goto error0; ++ } ++ ++ return 0; ++ ++error0: ++ return error; ++} ++ + STATIC int + xfs_imap_lookup( + struct xfs_mount *mp, +@@ -1271,7 +1667,7 @@ xfs_imap_lookup( + * we have a record, we need to ensure it contains the inode number + * we are looking up. + */ +- cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); ++ cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, XFS_BTNUM_INO); + error = xfs_inobt_lookup(cur, agino, XFS_LOOKUP_LE, &i); + if (!error) { + if (i) +@@ -1482,6 +1878,8 @@ xfs_ialloc_log_agi( + offsetof(xfs_agi_t, agi_newino), + offsetof(xfs_agi_t, agi_dirino), + offsetof(xfs_agi_t, agi_unlinked), ++ offsetof(xfs_agi_t, agi_free_root), ++ offsetof(xfs_agi_t, agi_free_level), + sizeof(xfs_agi_t) + }; + #ifdef DEBUG +@@ -1491,14 +1889,39 @@ xfs_ialloc_log_agi( + ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC)); + #endif + /* +- * Compute byte offsets for the first and last fields. ++ * The growth of the agi buffer over time now requires that we interpret ++ * the buffer as two logical regions delineated at the end of the unlinked ++ * list. This is due to the size of the hash table and its location in the ++ * middle of the agi. ++ * ++ * For example, a request to log a field before agi_unlinked and a field ++ * after agi_unlinked could cause us to log the entire hash table and use ++ * an excessive amount of log space. To avoid this behavior, log the ++ * region up through agi_unlinked in one call and the region after ++ * agi_unlinked through the end of the structure in another. + */ +- xfs_btree_offsets(fields, offsets, XFS_AGI_NUM_BITS, &first, &last); ++ xfs_trans_buf_set_type(tp, bp, XFS_BLFT_AGI_BUF); ++ + /* +- * Log the allocation group inode header buffer. ++ * Compute byte offsets for the first and last fields in the first ++ * region and log agi buffer. This only logs up through agi_unlinked. + */ +- xfs_trans_buf_set_type(tp, bp, XFS_BLFT_AGI_BUF); +- xfs_trans_log_buf(tp, bp, first, last); ++ if (fields & XFS_AGI_ALL_BITS_R1) { ++ xfs_btree_offsets(fields, offsets, XFS_AGI_NUM_BITS_R1, ++ &first, &last); ++ xfs_trans_log_buf(tp, bp, first, last); ++ } ++ ++ /* ++ * Mask off the bits in the first region and calculate the first and last ++ * field offsets for any bits in the second region. ++ */ ++ fields &= ~XFS_AGI_ALL_BITS_R1; ++ if (fields) { ++ xfs_btree_offsets(fields, offsets, XFS_AGI_NUM_BITS_R2, ++ &first, &last); ++ xfs_trans_log_buf(tp, bp, first, last); ++ } + } + + #ifdef DEBUG +diff --git a/libxfs/xfs_ialloc_btree.c b/libxfs/xfs_ialloc_btree.c +index 0a29d73..c337389 100644 +--- a/libxfs/xfs_ialloc_btree.c ++++ b/libxfs/xfs_ialloc_btree.c +@@ -30,7 +30,8 @@ xfs_inobt_dup_cursor( + struct xfs_btree_cur *cur) + { + return xfs_inobt_init_cursor(cur->bc_mp, cur->bc_tp, +- cur->bc_private.a.agbp, cur->bc_private.a.agno); ++ cur->bc_private.a.agbp, cur->bc_private.a.agno, ++ cur->bc_btnum); + } + + STATIC void +@@ -47,6 +48,21 @@ xfs_inobt_set_root( + xfs_ialloc_log_agi(cur->bc_tp, agbp, XFS_AGI_ROOT | XFS_AGI_LEVEL); + } + ++STATIC void ++xfs_finobt_set_root( ++ struct xfs_btree_cur *cur, ++ union xfs_btree_ptr *nptr, ++ int inc) /* level change */ ++{ ++ struct xfs_buf *agbp = cur->bc_private.a.agbp; ++ struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); ++ ++ agi->agi_free_root = nptr->s; ++ be32_add_cpu(&agi->agi_free_level, inc); ++ xfs_ialloc_log_agi(cur->bc_tp, agbp, ++ XFS_AGI_FREE_ROOT | XFS_AGI_FREE_LEVEL); ++} ++ + STATIC int + xfs_inobt_alloc_block( + struct xfs_btree_cur *cur, +@@ -154,6 +170,17 @@ xfs_inobt_init_ptr_from_cur( + ptr->s = agi->agi_root; + } + ++STATIC void ++xfs_finobt_init_ptr_from_cur( ++ struct xfs_btree_cur *cur, ++ union xfs_btree_ptr *ptr) ++{ ++ struct xfs_agi *agi = XFS_BUF_TO_AGI(cur->bc_private.a.agbp); ++ ++ ASSERT(cur->bc_private.a.agno == be32_to_cpu(agi->agi_seqno)); ++ ptr->s = agi->agi_free_root; ++} ++ + STATIC __int64_t + xfs_inobt_key_diff( + struct xfs_btree_cur *cur, +@@ -184,6 +211,7 @@ xfs_inobt_verify( + */ + switch (block->bb_magic) { + case cpu_to_be32(XFS_IBT_CRC_MAGIC): ++ case cpu_to_be32(XFS_FIBT_CRC_MAGIC): + if (!xfs_sb_version_hascrc(&mp->m_sb)) + return false; + if (!uuid_equal(&block->bb_u.s.bb_uuid, &mp->m_sb.sb_uuid)) +@@ -195,6 +223,7 @@ xfs_inobt_verify( + return false; + /* fall through */ + case cpu_to_be32(XFS_IBT_MAGIC): ++ case cpu_to_be32(XFS_FIBT_MAGIC): + break; + default: + return 0; +@@ -371,6 +400,28 @@ static const struct xfs_btree_ops xfs_inobt_ops = { + #endif + }; + ++static const struct xfs_btree_ops xfs_finobt_ops = { ++ .rec_len = sizeof(xfs_inobt_rec_t), ++ .key_len = sizeof(xfs_inobt_key_t), ++ ++ .dup_cursor = xfs_inobt_dup_cursor, ++ .set_root = xfs_finobt_set_root, ++ .alloc_block = xfs_inobt_alloc_block, ++ .free_block = xfs_inobt_free_block, ++ .get_minrecs = xfs_inobt_get_minrecs, ++ .get_maxrecs = xfs_inobt_get_maxrecs, ++ .init_key_from_rec = xfs_inobt_init_key_from_rec, ++ .init_rec_from_key = xfs_inobt_init_rec_from_key, ++ .init_rec_from_cur = xfs_inobt_init_rec_from_cur, ++ .init_ptr_from_cur = xfs_finobt_init_ptr_from_cur, ++ .key_diff = xfs_inobt_key_diff, ++ .buf_ops = &xfs_inobt_buf_ops, ++#if defined(DEBUG) || defined(XFS_WARN) ++ .keys_inorder = xfs_inobt_keys_inorder, ++ .recs_inorder = xfs_inobt_recs_inorder, ++#endif ++}; ++ + /* + * Allocate a new inode btree cursor. + */ +@@ -379,7 +430,8 @@ xfs_inobt_init_cursor( + struct xfs_mount *mp, /* file system mount point */ + struct xfs_trans *tp, /* transaction pointer */ + struct xfs_buf *agbp, /* buffer for agi structure */ +- xfs_agnumber_t agno) /* allocation group number */ ++ xfs_agnumber_t agno, /* allocation group number */ ++ xfs_btnum_t btnum) /* ialloc or free ino btree */ + { + struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); + struct xfs_btree_cur *cur; +@@ -388,11 +440,17 @@ xfs_inobt_init_cursor( + + cur->bc_tp = tp; + cur->bc_mp = mp; +- cur->bc_nlevels = be32_to_cpu(agi->agi_level); +- cur->bc_btnum = XFS_BTNUM_INO; ++ cur->bc_btnum = btnum; ++ if (btnum == XFS_BTNUM_INO) { ++ cur->bc_nlevels = be32_to_cpu(agi->agi_level); ++ cur->bc_ops = &xfs_inobt_ops; ++ } else { ++ cur->bc_nlevels = be32_to_cpu(agi->agi_free_level); ++ cur->bc_ops = &xfs_finobt_ops; ++ } ++ + cur->bc_blocklog = mp->m_sb.sb_blocklog; + +- cur->bc_ops = &xfs_inobt_ops; + if (xfs_sb_version_hascrc(&mp->m_sb)) + cur->bc_flags |= XFS_BTREE_CRC_BLOCKS; + +diff --git a/libxfs/xfs_sb.c b/libxfs/xfs_sb.c +index 7ee4612..ea89367 100644 +--- a/libxfs/xfs_sb.c ++++ b/libxfs/xfs_sb.c +@@ -408,6 +408,8 @@ xfs_sb_from_disk( + to->sb_features_incompat = be32_to_cpu(from->sb_features_incompat); + to->sb_features_log_incompat = + be32_to_cpu(from->sb_features_log_incompat); ++ /* crc is only used on disk, not in memory; just init to 0 here. */ ++ to->sb_crc = 0; + to->sb_pad = 0; + to->sb_pquotino = be64_to_cpu(from->sb_pquotino); + to->sb_lsn = be64_to_cpu(from->sb_lsn); +@@ -485,6 +487,9 @@ xfs_sb_to_disk( + if (!fields) + return; + ++ /* We should never write the crc here, it's updated in the IO path */ ++ fields &= ~XFS_SB_CRC; ++ + xfs_sb_quota_to_disk(to, from, &fields); + while (fields) { + f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); +diff --git a/libxfs/xfs_trans_resv.c b/libxfs/xfs_trans_resv.c +index 1e59fad..870d4fc 100644 +--- a/libxfs/xfs_trans_resv.c ++++ b/libxfs/xfs_trans_resv.c +@@ -81,6 +81,37 @@ xfs_calc_inode_res( + } + + /* ++ * The free inode btree is a conditional feature and the log reservation ++ * requirements differ slightly from that of the traditional inode allocation ++ * btree. The finobt tracks records for inode chunks with at least one free inode. ++ * Therefore, a record can be removed from the tree for an inode allocation or ++ * free and the associated merge reservation is unconditional. This also covers ++ * the possibility of a split on record insertion. ++ * ++ * the free inode btree: max depth * block size ++ * the free inode btree entry: block size ++ * ++ * TODO: is the modify res really necessary? covered by the merge/split res? ++ * This seems to be the pattern of ifree, but not create_resv_alloc. Why? ++ */ ++STATIC uint ++xfs_calc_finobt_res( ++ struct xfs_mount *mp, ++ int modify) ++{ ++ uint res; ++ ++ if (!xfs_sb_version_hasfinobt(&mp->m_sb)) ++ return 0; ++ ++ res = xfs_calc_buf_res(mp->m_in_maxlevels, XFS_FSB_TO_B(mp, 1)); ++ if (modify) ++ res += (uint)XFS_FSB_TO_B(mp, 1); ++ ++ return res; ++} ++ ++/* + * Various log reservation values. + * + * These are based on the size of the file system block because that is what +@@ -250,6 +281,7 @@ xfs_calc_remove_reservation( + * the superblock for the nlink flag: sector size + * the directory btree: (max depth + v2) * dir block size + * the directory inode's bmap btree: (max depth + v2) * block size ++ * the finobt + */ + STATIC uint + xfs_calc_create_resv_modify( +@@ -258,7 +290,8 @@ xfs_calc_create_resv_modify( + return xfs_calc_inode_res(mp, 2) + + xfs_calc_buf_res(1, mp->m_sb.sb_sectsize) + + (uint)XFS_FSB_TO_B(mp, 1) + +- xfs_calc_buf_res(XFS_DIROP_LOG_COUNT(mp), XFS_FSB_TO_B(mp, 1)); ++ xfs_calc_buf_res(XFS_DIROP_LOG_COUNT(mp), XFS_FSB_TO_B(mp, 1)) + ++ xfs_calc_finobt_res(mp, 1); + } + + /* +@@ -268,6 +301,7 @@ xfs_calc_create_resv_modify( + * the inode blocks allocated: XFS_IALLOC_BLOCKS * blocksize + * the inode btree: max depth * blocksize + * the allocation btrees: 2 trees * (max depth - 1) * block size ++ * the finobt + */ + STATIC uint + xfs_calc_create_resv_alloc( +@@ -278,7 +312,8 @@ xfs_calc_create_resv_alloc( + xfs_calc_buf_res(XFS_IALLOC_BLOCKS(mp), XFS_FSB_TO_B(mp, 1)) + + xfs_calc_buf_res(mp->m_in_maxlevels, XFS_FSB_TO_B(mp, 1)) + + xfs_calc_buf_res(XFS_ALLOCFREE_LOG_COUNT(mp, 1), +- XFS_FSB_TO_B(mp, 1)); ++ XFS_FSB_TO_B(mp, 1)) + ++ xfs_calc_finobt_res(mp, 0); + } + + STATIC uint +@@ -296,6 +331,7 @@ __xfs_calc_create_reservation( + * the superblock for the nlink flag: sector size + * the inode btree: max depth * blocksize + * the allocation btrees: 2 trees * (max depth - 1) * block size ++ * the finobt + */ + STATIC uint + xfs_calc_icreate_resv_alloc( +@@ -305,7 +341,8 @@ xfs_calc_icreate_resv_alloc( + mp->m_sb.sb_sectsize + + xfs_calc_buf_res(mp->m_in_maxlevels, XFS_FSB_TO_B(mp, 1)) + + xfs_calc_buf_res(XFS_ALLOCFREE_LOG_COUNT(mp, 1), +- XFS_FSB_TO_B(mp, 1)); ++ XFS_FSB_TO_B(mp, 1)) + ++ xfs_calc_finobt_res(mp, 0); + } + + STATIC uint +@@ -359,6 +396,7 @@ xfs_calc_symlink_reservation( + * the on disk inode before ours in the agi hash list: inode cluster size + * the inode btree: max depth * blocksize + * the allocation btrees: 2 trees * (max depth - 1) * block size ++ * the finobt + */ + STATIC uint + xfs_calc_ifree_reservation( +@@ -374,7 +412,8 @@ xfs_calc_ifree_reservation( + xfs_calc_buf_res(2 + XFS_IALLOC_BLOCKS(mp) + + mp->m_in_maxlevels, 0) + + xfs_calc_buf_res(XFS_ALLOCFREE_LOG_COUNT(mp, 1), +- XFS_FSB_TO_B(mp, 1)); ++ XFS_FSB_TO_B(mp, 1)) + ++ xfs_calc_finobt_res(mp, 1); + } + + /* +diff --git a/man/man5/xfs.5 b/man/man5/xfs.5 +index 0f490f0..5e47c4c 100644 +--- a/man/man5/xfs.5 ++++ b/man/man5/xfs.5 +@@ -1,6 +1,6 @@ + .TH xfs 5 + .SH NAME +-xfs \- layout of the XFS filesystem ++xfs \- layout and mount options for the XFS filesystem + .SH DESCRIPTION + An XFS filesystem can reside on a regular disk partition or on a + logical volume. +@@ -98,9 +98,210 @@ and by-handle (see + .BR open_by_handle (3)) + interfaces. + .SH MOUNT OPTIONS +-Refer to the ++The following XFS-specific mount options may be used when mounting ++an XFS filesystem. Other generic options may be used as well; refer to the + .BR mount (8) +-manual entry for descriptions of the individual XFS mount options. ++manual page for more details. ++.TP ++.B allocsize=size ++Sets the buffered I/O end-of-file preallocation size when ++doing delayed allocation writeout. Valid values for this ++option are page size (typically 4KiB) through to 1GiB, ++inclusive, in power-of-2 increments. ++.sp ++The default behavior is for dynamic end-of-file ++preallocation size, which uses a set of heuristics to ++optimise the preallocation size based on the current ++allocation patterns within the file and the access patterns ++to the file. Specifying a fixed allocsize value turns off ++the dynamic behavior. ++.TP ++.BR attr2 | noattr2 ++The options enable/disable an "opportunistic" improvement to ++be made in the way inline extended attributes are stored ++on-disk. When the new form is used for the first time when ++attr2 is selected (either when setting or removing extended ++attributes) the on-disk superblock feature bit field will be ++updated to reflect this format being in use. ++.sp ++The default behavior is determined by the on-disk feature ++bit indicating that attr2 behavior is active. If either ++mount option it set, then that becomes the new default used ++by the filesystem. ++.sp ++CRC enabled filesystems always use the attr2 format, and so ++will reject the noattr2 mount option if it is set. ++.TP ++.BR barrier | nobarrier ++Enables/disables the use of block layer write barriers for ++writes into the journal and for data integrity operations. ++This allows for drive level write caching to be enabled, for ++devices that support write barriers. ++.sp ++Barriers are enabled by default. ++.TP ++.BR discard | nodiscard ++Enable/disable the issuing of commands to let the block ++device reclaim space freed by the filesystem. This is ++useful for SSD devices, thinly provisioned LUNs and virtual ++machine images, but may have a performance impact. ++.sp ++Note: It is currently recommended that you use the fstrim ++application to discard unused blocks rather than the discard ++mount option because the performance impact of this option ++is quite severe. For this reason, nodiscard is the default. ++.TP ++.BR grpid | bsdgroups | nogrpid | sysvgroups ++These options define what group ID a newly created file ++gets. When grpid is set, it takes the group ID of the ++directory in which it is created; otherwise it takes the ++fsgid of the current process, unless the directory has the ++setgid bit set, in which case it takes the gid from the ++parent directory, and also gets the setgid bit set if it is ++a directory itself. ++.TP ++.B filestreams ++Make the data allocator use the filestreams allocation mode ++across the entire filesystem rather than just on directories ++configured to use it. ++.TP ++.BR ikeep | noikeep ++When ikeep is specified, XFS does not delete empty inode ++clusters and keeps them around on disk. When noikeep is ++specified, empty inode clusters are returned to the free ++space pool. noikeep is the default. ++.TP ++.BR inode32 | inode64 ++When inode32 is specified, it indicates that XFS limits ++inode creation to locations which will not result in inode ++numbers with more than 32 bits of significance. ++.sp ++When inode64 is specified, it indicates that XFS is allowed ++to create inodes at any location in the filesystem, ++including those which will result in inode numbers occupying ++more than 32 bits of significance. ++.sp ++inode32 is provided for backwards compatibility with older ++systems and applications, since 64 bits inode numbers might ++cause problems for some applications that cannot handle ++large inode numbers. If applications are in use which do ++not handle inode numbers bigger than 32 bits, the inode32 ++option should be specified. ++.sp ++For kernel v3.7 and later, inode64 is the default. ++.TP ++.BR largeio | nolargeio ++If "nolargeio" is specified, the optimal I/O reported in ++st_blksize by stat(2) will be as small as possible to allow ++user applications to avoid inefficient read/modify/write ++I/O. This is typically the page size of the machine, as ++this is the granularity of the page cache. ++.sp ++If "largeio" specified, a filesystem that was created with a ++"swidth" specified will return the "swidth" value (in bytes) ++in st_blksize. If the filesystem does not have a "swidth" ++specified but does specify an "allocsize" then "allocsize" ++(in bytes) will be returned instead. Otherwise the behavior ++is the same as if "nolargeio" was specified. nolargeio ++is the default. ++.TP ++.B logbufs=value ++Set the number of in-memory log buffers. Valid numbers ++range from 2\(en8 inclusive. ++.sp ++The default value is 8 buffers. ++.sp ++If the memory cost of 8 log buffers is too high on small ++systems, then it may be reduced at some cost to performance ++on metadata intensive workloads. The logbsize option below ++controls the size of each buffer and so is also relevant to ++this case. ++.TP ++.B logbsize=value ++Set the size of each in-memory log buffer. The size may be ++specified in bytes, or in kibibytes (KiB) with a "k" suffix. ++Valid sizes for version 1 and version 2 logs are 16384 (value=16k) ++and 32768 (value=32k). Valid sizes for version 2 logs also ++include 65536 (value=64k), 131072 (value=128k) and 262144 (value=256k). The ++logbsize must be an integer multiple of the log ++stripe unit configured at mkfs time. ++.sp ++The default value for version 1 logs is 32768, while the ++default value for version 2 logs is MAX(32768, log_sunit). ++.TP ++.BR logdev=device and rtdev=device ++Use an external log (metadata journal) and/or real-time device. ++An XFS filesystem has up to three parts: a data section, a log ++section, and a real-time section. The real-time section is ++optional, and the log section can be separate from the data ++section or contained within it. ++.TP ++.B noalign ++Data allocations will not be aligned at stripe unit ++boundaries. This is only relevant to filesystems created ++with non-zero data alignment parameters (sunit, swidth) by ++mkfs. ++.TP ++.B norecovery ++The filesystem will be mounted without running log recovery. ++If the filesystem was not cleanly unmounted, it is likely to ++be inconsistent when mounted in "norecovery" mode. ++Some files or directories may not be accessible because of this. ++Filesystems mounted "norecovery" must be mounted read-only or ++the mount will fail. ++.TP ++.B nouuid ++Don't check for double mounted file systems using the file ++system uuid. This is useful to mount LVM snapshot volumes, ++and often used in combination with "norecovery" for mounting ++read-only snapshots. ++.TP ++.B noquota ++Forcibly turns off all quota accounting and enforcement ++within the filesystem. ++.TP ++.B uquota/usrquota/uqnoenforce/quota ++User disk quota accounting enabled, and limits (optionally) ++enforced. Refer to xfs_quota(8) for further details. ++.TP ++.B gquota/grpquota/gqnoenforce ++Group disk quota accounting enabled and limits (optionally) ++enforced. Refer to xfs_quota(8) for further details. ++.TP ++.B pquota/prjquota/pqnoenforce ++Project disk quota accounting enabled and limits (optionally) ++enforced. Refer to xfs_quota(8) for further details. ++.TP ++.BR sunit=value " and " swidth=value ++Used to specify the stripe unit and width for a RAID device ++or a stripe volume. "value" must be specified in 512-byte ++block units. These options are only relevant to filesystems ++that were created with non-zero data alignment parameters. ++.sp ++The sunit and swidth parameters specified must be compatible ++with the existing filesystem alignment characteristics. In ++general, that means the only valid changes to sunit are ++increasing it by a power-of-2 multiple. Valid swidth values ++are any integer multiple of a valid sunit value. ++.sp ++Typically the only time these mount options are necessary if ++after an underlying RAID device has had it's geometry ++modified, such as adding a new disk to a RAID5 lun and ++reshaping it. ++.TP ++.B swalloc ++Data allocations will be rounded up to stripe width boundaries ++when the current end of file is being extended and the file ++size is larger than the stripe width size. ++.TP ++.B wsync ++When specified, all filesystem namespace operations are ++executed synchronously. This ensures that when the namespace ++operation (create, unlink, etc) completes, the change to the ++namespace is on stable storage. This is useful in HA setups ++where failover must not result in clients seeing ++inconsistent namespace presentation during or after a ++failover event. + .SH SEE ALSO + .BR xfsctl (3), + .BR mount (8), +diff --git a/man/man8/mkfs.xfs.8 b/man/man8/mkfs.xfs.8 +index 8184e10..ad9ff3d 100644 +--- a/man/man8/mkfs.xfs.8 ++++ b/man/man8/mkfs.xfs.8 +@@ -7,6 +7,9 @@ mkfs.xfs \- construct an XFS filesystem + .B \-b + .I block_size + ] [ ++.B \-m ++.I global_metadata_options ++] [ + .B \-d + .I data_section_options + ] [ +@@ -125,6 +128,48 @@ The default value is 4096 bytes (4 KiB), the minimum is 512, and the + maximum is 65536 (64 KiB). + XFS on Linux currently only supports pagesize or smaller blocks. + .TP ++.BI \-m " global_metadata_options" ++These options specify metadata format options that either apply to the entire ++filesystem or aren't easily characterised by a specific functionality group. The ++valid ++.I global_metadata_options ++are: ++.RS 1.2i ++.TP ++.BI crc= value ++This is used to create a filesystem which maintains and checks CRC information ++in all metadata objects on disk. The value is either 0 to disable the feature, ++or 1 to enable the use of CRCs. ++.IP ++CRCs enable enhanced error detection due to hardware issues, whilst the format ++changes also improves crash recovery algorithms and the ability of various tools ++to validate and repair metadata corruptions when they are found. The CRC ++algorithm used is CRC32c, so the overhead is dependent on CPU architecture as ++some CPUs have hardware acceleration of this algorithm. Typically the overhead ++of calculating and checking the CRCs is not noticable in normal operation. ++.IP ++By default, ++.B mkfs.xfs ++will not enable metadata CRCs. ++.TP ++.BI finobt= value ++This option enables the use of a separate free inode btree index in each ++allocation group. The value is either 0 to disable the feature, or 1 to create ++a free inode btree in each allocation group. ++.IP ++The free inode btree mirrors the existing allocated inode btree index which ++indexes both used and free inodes. The free inode btree does not index used ++inodes, allowing faster, more consistent inode allocation performance as ++filesystems age. ++.IP ++By default, ++.B mkfs.xfs ++will not create free inode btrees. This feature is also currently only available ++for filesystems created with the ++.B \-m crc=1 ++option set. ++.RE ++.TP + .BI \-d " data_section_options" + These options specify the location, size, and other parameters of the + data section of the filesystem. The valid +diff --git a/man/man8/xfs_check.8 b/man/man8/xfs_check.8 +deleted file mode 100644 +index 23027ca..0000000 +--- a/man/man8/xfs_check.8 ++++ /dev/null +@@ -1,203 +0,0 @@ +-.TH xfs_check 8 +-.SH NAME +-xfs_check \- check XFS filesystem consistency +-.SH SYNOPSIS +-.B xfs_check +-[ +-.B \-i +-.I ino +-] ... [ +-.B \-b +-.I bno +-] ... [ +-.B \-f +-] [ +-.B \-s +-] [ +-.B \-v +-] [ +-.B \-l +-.I logdev +-] +-.I device +-.br +-.B xfs_check \-V +-.SH DESCRIPTION +-.B xfs_check +-checks whether an XFS filesystem is consistent. +-It is normally run only when there is reason to believe that the +-filesystem has a consistency problem. +-The filesystem to be checked is specified by the +-.I device +-argument, which should be the disk or volume device for the filesystem. +-Filesystems stored in files can also be checked, using the +-.B \-f +-flag. The filesystem should normally be unmounted or read-only +-during the execution of +-.BR xfs_check . +-Otherwise, spurious problems are reported. +-.PP +-Note that +-.B xfs_check +-is deprecated and scheduled for removal in June 2014. Please use +-.BR xfs_repair " " \-n +-instead. +-.SH +-OPTIONS +-.TP +-.B \-f +-Specifies that the filesystem image to be processed is stored in a +-regular file at +-.I device +-(see the +-.BR mkfs.xfs "(8) " \-d +-.I file +-option). This might happen if an image copy +-of a filesystem has been made into an ordinary file. +-.TP +-.BI \-l " logdev" +-Specifies the device where the filesystem's external log resides. +-Only for those filesystems which use an external log. See the +-.BR mkfs.xfs "(8) " \-l +-option, and refer to +-.BR xfs (5) +-for a detailed description of the XFS log. +-.TP +-.B \-s +-Specifies that only serious errors should be reported. +-Serious errors are those that make it impossible to find major data +-structures in the filesystem. This option can be used to cut down the +-amount of output when there is a serious problem, when the output +-might make it difficult to see what the real problem is. +-.TP +-.B \-v +-Specifies verbose output; it is impossibly long for a +-reasonably-sized filesystem. +-This option is intended for internal use only. +-.TP +-.BI \-i " ino" +-Specifies verbose behavior for the specified inode +-.IR ino . +-For instance, it can be used to locate all the blocks +-associated with a given inode. +-.TP +-.BI \-b " bno" +-Specifies verbose behavior for the specific filesystem block at +-.IR bno . +-For instance, it can be used to determine what a specific block +-is used for. The block number is a "file system block number". +-Conversion between disk addresses (i.e. addresses reported by +-.BR xfs_bmap (8)) +-and file system blocks may be accomplished using +-.BR xfs_db "(8)'s " convert +-command. +-.TP +-.B \-V +-Prints the version number and exits. +-.PP +-Any output that is produced when +-.B xfs_check +-is not run in verbose mode indicates that the filesystem has an +-inconsistency. The filesystem can be repaired using either +-.BR xfs_repair (8) +-to fix the filesystem in place, or by using +-.BR xfsdump (8) +-and +-.BR mkfs.xfs (8) +-to dump the filesystem, make a new filesystem, then use +-.BR xfsrestore (8) +-to restore the data onto the new filesystem. +-Note that xfsdump may fail on a corrupt filesystem. +-However, if the filesystem is mountable, xfsdump can +-be used to try and save important data before +-repairing the filesystem with xfs_repair. +-If the filesystem is not mountable though, xfs_repair is +-the only viable option. +-.SH DIAGNOSTICS +-If the filesystem is completely corrupt, a core dump might +-be produced instead of the message +-.RS +-.I device +-.B is not a valid filesystem +-.RE +-.PP +-If the filesystem is very large (has many files) then +-.B xfs_check +-might run out of memory. In this case the message +-.RS +-.B out of memory +-.RE +-is printed. +-.PP +-The following is a description of the most likely problems and the associated +-messages. +-Most of the diagnostics produced are only meaningful with an understanding +-of the structure of the filesystem. +-.TP +-.BI "agf_freeblks " n ", counted " m " in ag " a +-The freeblocks count in the allocation group header for allocation group +-.I a +-doesn't match the number of blocks counted free. +-.TP +-.BI "agf_longest " n ", counted " m " in ag " a +-The longest free extent in the allocation group header for allocation group +-.I a +-doesn't match the longest free extent found in the allocation group. +-.TP +-.BI "agi_count " n ", counted " m " in ag " a +-The allocated inode count in the allocation group header for allocation group +-.I a +-doesn't match the number of inodes counted in the allocation group. +-.TP +-.BI "agi_freecount " n ", counted " m " in ag " a +-The free inode count in the allocation group header for allocation group +-.I a +-doesn't match the number of inodes counted free in the allocation group. +-.TP +-.BI "block " a/b " expected inum 0 got " i +-The block number is specified as a pair +-(allocation group number, block in the allocation group). +-The block is used multiple times (shared), between multiple inodes. +-This message usually follows a message of the next type. +-.TP +-.BI "block " a/b " expected type unknown got " y +-The block is used multiple times (shared). +-.TP +-.BI "block " a/b " type unknown not expected +-The block is unaccounted for (not in the freelist and not in use). +-.TP +-.BI "link count mismatch for inode " nnn " (name " xxx "), nlink " m ", counted " n +-The inode has a bad link count (number of references in directories). +-.TP +-.BI "rtblock " b " expected inum 0 got " i +-The block is used multiple times (shared), between multiple inodes. +-This message usually follows a message of the next type. +-.TP +-.BI "rtblock " b " expected type unknown got " y +-The real-time block is used multiple times (shared). +-.TP +-.BI "rtblock " b " type unknown not expected +-The real-time block is unaccounted for (not in the freelist and not in use). +-.TP +-.BI "sb_fdblocks " n ", counted " m +-The number of free data blocks recorded +-in the superblock doesn't match the number counted free in the filesystem. +-.TP +-.BI "sb_frextents " n ", counted " m +-The number of free real-time extents recorded +-in the superblock doesn't match the number counted free in the filesystem. +-.TP +-.BI "sb_icount " n ", counted " m +-The number of allocated inodes recorded +-in the superblock doesn't match the number allocated in the filesystem. +-.TP +-.BI "sb_ifree " n ", counted " m +-The number of free inodes recorded +-in the superblock doesn't match the number free in the filesystem. +-.SH SEE ALSO +-.BR mkfs.xfs (8), +-.BR xfsdump (8), +-.BR xfsrestore (8), +-.BR xfs_ncheck (8), +-.BR xfs_repair (8), +-.BR xfs (5). +diff --git a/man/man8/xfs_db.8 b/man/man8/xfs_db.8 +index 7a43a2c..4d8d4ff 100644 +--- a/man/man8/xfs_db.8 ++++ b/man/man8/xfs_db.8 +@@ -38,8 +38,7 @@ commands may be run interactively (the default) or as arguments + on the command line. Multiple + .B \-c + arguments may be given. The commands are run in the sequence given, +-then the program exits. This is the mechanism used to implement +-.BR xfs_check (8). ++then the program exits. + .TP + .B \-f + Specifies that the filesystem image to be processed is stored in a +@@ -56,14 +55,11 @@ an ordinary file with + .B \-F + Specifies that we want to continue even if the superblock magic is not + correct. For use in +-.BR xfs_check +-and + .BR xfs_metadump . + .TP + .B \-i + Allows execution on a mounted filesystem, provided it is mounted read-only. +-Useful for shell scripts such as +-.BR xfs_check (8), ++Useful for shell scripts + which must only operate on filesystems in a guaranteed consistent state + (either unmounted or mounted read-only). These semantics are slightly + different to that of the +@@ -204,9 +200,7 @@ command can be given, presumably with different arguments than the previous one. + Get block usage and check filesystem consistency. + The information is saved for use by a subsequent + .BR blockuse ", " ncheck ", or " blocktrash +-command. See +-.BR xfs_check (8) +-for more information. ++command. + .RS 1.0i + .TP 0.4i + .B \-b +@@ -244,7 +238,7 @@ Trashing occurs to randomly selected bits in the chosen blocks. + This command is available only in debugging versions of + .BR xfs_db . + It is useful for testing +-.BR xfs_repair "(8) and " xfs_check (8). ++.BR xfs_repair "(8). + .RS 1.0i + .TP 0.4i + .BR \-0 " | " -1 " | " -2 " | " -3 +@@ -1856,12 +1850,60 @@ and printable ASCII chars. + Many messages can come from the + .B check + .RB ( blockget ) +-command; these are documented in +-.BR xfs_check (8). ++command. ++If the filesystem is completely corrupt, a core dump might ++be produced instead of the message ++.RS ++.I device ++.B is not a valid filesystem ++.RE ++.PP ++If the filesystem is very large (has many files) then ++.B check ++might run out of memory. In this case the message ++.RS ++.B out of memory ++.RE ++is printed. ++.PP ++The following is a description of the most likely problems and the associated ++messages. ++Most of the diagnostics produced are only meaningful with an understanding ++of the structure of the filesystem. ++.TP ++.BI "agf_freeblks " n ", counted " m " in ag " a ++The freeblocks count in the allocation group header for allocation group ++.I a ++doesn't match the number of blocks counted free. ++.TP ++.BI "agf_longest " n ", counted " m " in ag " a ++The longest free extent in the allocation group header for allocation group ++.I a ++doesn't match the longest free extent found in the allocation group. ++.TP ++.BI "agi_count " n ", counted " m " in ag " a ++The allocated inode count in the allocation group header for allocation group ++.I a ++doesn't match the number of inodes counted in the allocation group. ++.TP ++.BI "agi_freecount " n ", counted " m " in ag " a ++The free inode count in the allocation group header for allocation group ++.I a ++doesn't match the number of inodes counted free in the allocation group. ++.TP ++.BI "block " a/b " expected inum 0 got " i ++The block number is specified as a pair ++(allocation group number, block in the allocation group). ++The block is used multiple times (shared), between multiple inodes. ++This message usually follows a message of the next type. ++.TP ++.BI "block " a/b " expected type unknown got " y ++The block is used multiple times (shared). ++.TP ++.BI "block " a/b " type unknown not expected + .SH SEE ALSO + .BR mkfs.xfs (8), + .BR xfs_admin (8), +-.BR xfs_check (8), + .BR xfs_copy (8), + .BR xfs_logprint (8), + .BR xfs_metadump (8), +diff --git a/man/man8/xfs_mdrestore.8 b/man/man8/xfs_mdrestore.8 +index 51297c4..0957d81 100644 +--- a/man/man8/xfs_mdrestore.8 ++++ b/man/man8/xfs_mdrestore.8 +@@ -48,7 +48,6 @@ returns an exit code of 0 if all the metadata is successfully restored or + .SH SEE ALSO + .BR xfs_metadump (8), + .BR xfs_repair (8), +-.BR xfs_check (8), + .BR xfs (5) + .SH BUGS + Email bug reports to +diff --git a/man/man8/xfs_ncheck.8 b/man/man8/xfs_ncheck.8 +index 4099772..5ae72b2 100644 +--- a/man/man8/xfs_ncheck.8 ++++ b/man/man8/xfs_ncheck.8 +@@ -63,13 +63,12 @@ May be given multiple times to select multiple inode numbers. + Prints the version number and exits. + .PP + If the filesystem is seriously corrupted, or very busy and looks +-like it is corrupt, a message of the form that would be generated by +-.BR xfs_check (8) +-may appear. ++like it is corrupt, a message of the form that would be generated by the ++.BR xfs_db (8) ++"check" command may appear. + .PP + .B xfs_ncheck + is only useful with XFS filesystems. + .SH SEE ALSO + .BR mkfs.xfs (8), +-.BR xfs_check (8), + .BR xfs (5). +diff --git a/man/man8/xfs_repair.8 b/man/man8/xfs_repair.8 +index b7c2d8c..0394c50 100644 +--- a/man/man8/xfs_repair.8 ++++ b/man/man8/xfs_repair.8 +@@ -548,6 +548,5 @@ fixed and/or improved. + .BR mkfs.xfs (8), + .BR umount (8), + .BR xfs_admin (8), +-.BR xfs_check (8), + .BR xfs_metadump (8), + .BR xfs (5). +diff --git a/mkfs/proto.c b/mkfs/proto.c +index 5a47e27..72068f0 100644 +--- a/mkfs/proto.c ++++ b/mkfs/proto.c +@@ -197,7 +197,6 @@ rsvfile( + tp = libxfs_trans_alloc(mp, 0); + + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + + ip->i_d.di_mode &= ~S_ISUID; + +@@ -464,7 +463,6 @@ parseproto( + libxfs_trans_ijoin(tp, pip, 0); + xname.type = XFS_DIR3_FT_REG_FILE; + newdirent(mp, tp, pip, &xname, ip->i_ino, &first, &flist); +- libxfs_trans_ihold(tp, pip); + break; + + case IF_RESERVED: /* pre-allocated space only */ +@@ -481,7 +479,6 @@ parseproto( + + xname.type = XFS_DIR3_FT_REG_FILE; + newdirent(mp, tp, pip, &xname, ip->i_ino, &first, &flist); +- libxfs_trans_ihold(tp, pip); + libxfs_trans_log_inode(tp, ip, flags); + + error = libxfs_bmap_finish(&tp, &flist, &committed); +@@ -489,6 +486,7 @@ parseproto( + fail(_("Pre-allocated file creation failed"), error); + libxfs_trans_commit(tp, 0); + rsvfile(mp, ip, llen); ++ IRELE(ip); + return; + + case IF_BLOCK: +@@ -503,7 +501,6 @@ parseproto( + libxfs_trans_ijoin(tp, pip, 0); + xname.type = XFS_DIR3_FT_BLKDEV; + newdirent(mp, tp, pip, &xname, ip->i_ino, &first, &flist); +- libxfs_trans_ihold(tp, pip); + flags |= XFS_ILOG_DEV; + break; + +@@ -518,7 +515,6 @@ parseproto( + libxfs_trans_ijoin(tp, pip, 0); + xname.type = XFS_DIR3_FT_CHRDEV; + newdirent(mp, tp, pip, &xname, ip->i_ino, &first, &flist); +- libxfs_trans_ihold(tp, pip); + flags |= XFS_ILOG_DEV; + break; + +@@ -531,7 +527,6 @@ parseproto( + libxfs_trans_ijoin(tp, pip, 0); + xname.type = XFS_DIR3_FT_FIFO; + newdirent(mp, tp, pip, &xname, ip->i_ino, &first, &flist); +- libxfs_trans_ihold(tp, pip); + break; + case IF_SYMLINK: + buf = getstr(pp); +@@ -545,7 +540,6 @@ parseproto( + libxfs_trans_ijoin(tp, pip, 0); + xname.type = XFS_DIR3_FT_SYMLINK; + newdirent(mp, tp, pip, &xname, ip->i_ino, &first, &flist); +- libxfs_trans_ihold(tp, pip); + break; + case IF_DIRECTORY: + getres(tp, 0); +@@ -565,7 +559,6 @@ parseproto( + newdirent(mp, tp, pip, &xname, ip->i_ino, + &first, &flist); + pip->i_d.di_nlink++; +- libxfs_trans_ihold(tp, pip); + libxfs_trans_log_inode(tp, pip, XFS_ILOG_CORE); + } + newdirectory(mp, tp, ip, pip); +@@ -573,7 +566,6 @@ parseproto( + error = libxfs_bmap_finish(&tp, &flist, &committed); + if (error) + fail(_("Directory creation failed"), error); +- libxfs_trans_ihold(tp, ip); + libxfs_trans_commit(tp, 0); + /* + * RT initialization. Do this here to ensure that +@@ -590,7 +582,7 @@ parseproto( + break; + parseproto(mp, ip, fsxp, pp, name); + } +- libxfs_iput(ip, 0); ++ IRELE(ip); + return; + default: + ASSERT(0); +@@ -603,6 +595,7 @@ parseproto( + error); + } + libxfs_trans_commit(tp, 0); ++ IRELE(ip); + } + + void +@@ -665,7 +658,6 @@ rtinit( + *(__uint64_t *)&rbmip->i_d.di_atime = 0; + libxfs_trans_log_inode(tp, rbmip, XFS_ILOG_CORE); + libxfs_mod_sb(tp, XFS_SB_RBMINO); +- libxfs_trans_ihold(tp, rbmip); + mp->m_rbmip = rbmip; + error = libxfs_inode_alloc(&tp, NULL, S_IFREG, 1, 0, + &creds, &fsxattrs, &rsumip); +@@ -676,7 +668,6 @@ rtinit( + rsumip->i_d.di_size = mp->m_rsumsize; + libxfs_trans_log_inode(tp, rsumip, XFS_ILOG_CORE); + libxfs_mod_sb(tp, XFS_SB_RSUMINO); +- libxfs_trans_ihold(tp, rsumip); + libxfs_trans_commit(tp, 0); + mp->m_rsumip = rsumip; + /* +@@ -689,7 +680,6 @@ rtinit( + res_failed(i); + + libxfs_trans_ijoin(tp, rbmip, 0); +- libxfs_trans_ihold(tp, rbmip); + bno = 0; + xfs_bmap_init(&flist, &first); + while (bno < mp->m_sb.sb_rbmblocks) { +@@ -726,7 +716,6 @@ rtinit( + if (i) + res_failed(i); + libxfs_trans_ijoin(tp, rsumip, 0); +- libxfs_trans_ihold(tp, rsumip); + bno = 0; + xfs_bmap_init(&flist, &first); + while (bno < nsumblocks) { +@@ -762,7 +751,6 @@ rtinit( + if (i) + res_failed(i); + libxfs_trans_ijoin(tp, rbmip, 0); +- libxfs_trans_ihold(tp, rbmip); + xfs_bmap_init(&flist, &first); + ebno = XFS_RTMIN(mp->m_sb.sb_rextents, + bno + NBBY * mp->m_sb.sb_blocksize); +diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c +index 37c05a9..c85258a 100644 +--- a/mkfs/xfs_mkfs.c ++++ b/mkfs/xfs_mkfs.c +@@ -183,6 +183,8 @@ char *sopts[] = { + char *mopts[] = { + #define M_CRC 0 + "crc", ++#define M_FINOBT 1 ++ "finobt", + NULL + }; + +@@ -455,11 +457,30 @@ static void get_topology( + int force_overwrite) + { + if (!xi->disfile) { +- const char *dfile = xi->volname ? xi->volname : xi->dname; ++ char *dfile = xi->volname ? xi->volname : xi->dname; ++ struct stat statbuf; + +- blkid_get_topology(dfile, &ft->dsunit, &ft->dswidth, +- &ft->lsectorsize, &ft->psectorsize, +- force_overwrite); ++ /* ++ * If our target is a regular file, and xi->disfile isn't ++ * set (i.e. no "-d file" invocation), use platform_findsizes ++ * to try to obtain the underlying filesystem's requirements ++ * for direct IO; we'll set our sector size to that if possible. ++ */ ++ if (!stat(dfile, &statbuf) && S_ISREG(statbuf.st_mode)) { ++ int fd; ++ long long dummy; ++ ++ fd = open(dfile, O_RDONLY); ++ if (fd >= 0) { ++ platform_findsizes(dfile, fd, &dummy, ++ &ft->lsectorsize); ++ close(fd); ++ } ++ } else { ++ blkid_get_topology(dfile, &ft->dsunit, &ft->dswidth, ++ &ft->lsectorsize, &ft->psectorsize, ++ force_overwrite); ++ } + } + + if (xi->rtname && !xi->risfile) { +@@ -962,6 +983,7 @@ main( + struct fs_topology ft; + int lazy_sb_counters; + int crcs_enabled; ++ int finobt; + + progname = basename(argv[0]); + setlocale(LC_ALL, ""); +@@ -995,6 +1017,7 @@ main( + worst_freelist = 0; + lazy_sb_counters = 1; + crcs_enabled = 0; ++ finobt = 0; + memset(&fsx, 0, sizeof(fsx)); + + memset(&xi, 0, sizeof(xi)); +@@ -1486,6 +1509,14 @@ _("cannot specify both crc and ftype\n")); + usage(); + } + break; ++ case M_FINOBT: ++ if (!value || *value == '\0') ++ reqval('m', mopts, M_CRC); ++ c = atoi(value); ++ if (c < 0 || c > 1) ++ illegal(value, "m finobt"); ++ finobt = c; ++ break; + default: + unknown('m', value); + } +@@ -1827,6 +1858,16 @@ _("32 bit Project IDs always enabled on CRC enabled filesytems\n")); + } + } + ++ /* ++ * The kernel doesn't currently support crc=0,finobt=1 filesystems. ++ * Catch it here, disable finobt and warn the user. ++ */ ++ if (finobt && !crcs_enabled) { ++ fprintf(stderr, ++_("warning: finobt not supported without CRC support, disabled.\n")); ++ finobt = 0; ++ } ++ + if (nsflag || nlflag) { + if (dirblocksize < blocksize || + dirblocksize > XFS_MAX_BLOCKSIZE) { +@@ -2413,6 +2454,30 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT; + mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; + ++ /* ++ * sb_versionnum and finobt flags must be set before we use ++ * XFS_PREALLOC_BLOCKS(). ++ */ ++ sbp->sb_features2 = XFS_SB_VERSION2_MKFS(crcs_enabled, lazy_sb_counters, ++ attrversion == 2, !projid16bit, 0, ++ (!crcs_enabled && dirftype)); ++ sbp->sb_versionnum = XFS_SB_VERSION_MKFS(crcs_enabled, iaflag, ++ dsunit != 0, ++ logversion == 2, attrversion == 1, ++ (sectorsize != BBSIZE || ++ lsectorsize != BBSIZE), ++ nci, sbp->sb_features2 != 0); ++ /* ++ * Due to a structure alignment issue, sb_features2 ended up in one ++ * of two locations, the second "incorrect" location represented by ++ * the sb_bad_features2 field. To avoid older kernels mounting ++ * filesystems they shouldn't, set both field to the same value. ++ */ ++ sbp->sb_bad_features2 = sbp->sb_features2; ++ ++ if (finobt) ++ sbp->sb_features_ro_compat = XFS_SB_FEAT_RO_COMPAT_FINOBT; ++ + if (loginternal) { + /* + * Readjust the log size to fit within an AG if it was sized +@@ -2475,7 +2540,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + printf(_( + "meta-data=%-22s isize=%-6d agcount=%lld, agsize=%lld blks\n" + " =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" +- " =%-22s crc=%u\n" ++ " =%-22s crc=%-8u finobt=%u\n" + "data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" + " =%-22s sunit=%-6u swidth=%u blks\n" + "naming =version %-14u bsize=%-6u ascii-ci=%d ftype=%d\n" +@@ -2484,7 +2549,7 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + "realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n"), + dfile, isize, (long long)agcount, (long long)agsize, + "", sectorsize, attrversion, !projid16bit, +- "", crcs_enabled, ++ "", crcs_enabled, finobt, + "", blocksize, (long long)dblocks, imaxpct, + "", dsunit, dswidth, + dirversion, dirblocksize, nci, dirftype, +@@ -2553,23 +2618,6 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + sbp->sb_logsectsize = 0; + } + +- sbp->sb_features2 = XFS_SB_VERSION2_MKFS(crcs_enabled, lazy_sb_counters, +- attrversion == 2, !projid16bit, 0, +- (!crcs_enabled && dirftype)); +- sbp->sb_versionnum = XFS_SB_VERSION_MKFS(crcs_enabled, iaflag, +- dsunit != 0, +- logversion == 2, attrversion == 1, +- (sectorsize != BBSIZE || +- lsectorsize != BBSIZE), +- nci, sbp->sb_features2 != 0); +- /* +- * Due to a structure alignment issue, sb_features2 ended up in one +- * of two locations, the second "incorrect" location represented by +- * the sb_bad_features2 field. To avoid older kernels mounting +- * filesystems they shouldn't, set both field to the same value. +- */ +- sbp->sb_bad_features2 = sbp->sb_features2; +- + if (force_overwrite) + zero_old_xfs_structures(&xi, sbp); + +@@ -2726,6 +2774,10 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + agi->agi_count = 0; + agi->agi_root = cpu_to_be32(XFS_IBT_BLOCK(mp)); + agi->agi_level = cpu_to_be32(1); ++ if (finobt) { ++ agi->agi_free_root = cpu_to_be32(XFS_FIBT_BLOCK(mp)); ++ agi->agi_free_level = cpu_to_be32(1); ++ } + agi->agi_freecount = 0; + agi->agi_newino = cpu_to_be32(NULLAGINO); + agi->agi_dirino = cpu_to_be32(NULLAGINO); +@@ -2851,6 +2903,26 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), + xfs_btree_init_block(mp, buf, XFS_IBT_MAGIC, 0, 0, + agno, 0); + libxfs_writebuf(buf, LIBXFS_EXIT_ON_FAILURE); ++ ++ /* ++ * Free INO btree root block ++ */ ++ if (!finobt) ++ continue; ++ ++ buf = libxfs_getbuf(mp->m_ddev_targp, ++ XFS_AGB_TO_DADDR(mp, agno, XFS_FIBT_BLOCK(mp)), ++ bsize); ++ buf->b_ops = &xfs_inobt_buf_ops; ++ block = XFS_BUF_TO_BLOCK(buf); ++ memset(block, 0, blocksize); ++ if (xfs_sb_version_hascrc(&mp->m_sb)) ++ xfs_btree_init_block(mp, buf, XFS_FIBT_CRC_MAGIC, 0, 0, ++ agno, XFS_BTREE_CRC_BLOCKS); ++ else ++ xfs_btree_init_block(mp, buf, XFS_FIBT_MAGIC, 0, 0, ++ agno, 0); ++ libxfs_writebuf(buf, LIBXFS_EXIT_ON_FAILURE); + } + + /* +@@ -3087,7 +3159,7 @@ usage( void ) + { + fprintf(stderr, _("Usage: %s\n\ + /* blocksize */ [-b log=n|size=num]\n\ +-/* metadata */ [-m crc=[0|1]\n\ ++/* metadata */ [-m crc=0|1,finobt=0|1]\n\ + /* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,\n\ + (sunit=value,swidth=value|su=num,sw=num|noalign),\n\ + sectlog=n|sectsize=num\n\ +diff --git a/po/pl.po b/po/pl.po +index ebd1884..80a09a8 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -1,13 +1,13 @@ + # Polish translation for xfsprogs. + # This file is distributed under the same license as the xfsprogs package. +-# Jakub Bogusz , 2006-2012. ++# Jakub Bogusz , 2006-2014. + # + msgid "" + msgstr "" +-"Project-Id-Version: xfsprogs 3.1.8\n" ++"Project-Id-Version: xfsprogs 3.2.0\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2012-03-04 06:24+0100\n" +-"PO-Revision-Date: 2012-03-04 07:30+0100\n" ++"POT-Creation-Date: 2014-05-21 18:34+0200\n" ++"PO-Revision-Date: 2014-05-21 18:41+0200\n" + "Last-Translator: Jakub Bogusz \n" + "Language-Team: Polish \n" + "Language: pl\n" +@@ -15,6611 +15,6890 @@ msgstr "" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: .././rtcp/xfs_rtcp.c:30 ++#: .././copy/xfs_copy.c:102 + #, c-format +-msgid "%s [-e extsize] [-p] source target\n" +-msgstr "%s [-e rozm_fragmentu] [-p] źródło cel\n" ++msgid "Check logfile \"%s\" for more details\n" ++msgstr "Więcej szczegółów w pliku logu \"%s\"\n" + +-#: .././rtcp/xfs_rtcp.c:55 .././repair/xfs_repair.c:317 .././quota/init.c:131 +-#: .././mkfs/xfs_mkfs.c:1623 .././logprint/logprint.c:196 .././io/init.c:183 +-#: .././growfs/xfs_growfs.c:182 .././fsr/xfs_fsr.c:302 +-#: .././estimate/xfs_estimate.c:141 .././db/init.c:93 .././copy/xfs_copy.c:543 ++#: .././copy/xfs_copy.c:108 + #, c-format +-msgid "%s version %s\n" +-msgstr "%s wersja %s\n" ++msgid "%s: could not write to logfile \"%s\".\n" ++msgstr "%s: nie udało się zapisać pliku logu \"%s\".\n" + +-#: .././rtcp/xfs_rtcp.c:69 ++#: .././copy/xfs_copy.c:111 + #, c-format +-msgid "%s: must specify files to copy\n" +-msgstr "%s: trzeba podać pliki do skopiowania\n" ++msgid "Aborting XFS copy -- logfile error -- reason: %s\n" ++msgstr "Przerwano XFS copy - błąd pliku logu - przyczyna: %s\n" + +-#: .././rtcp/xfs_rtcp.c:84 +-#, c-format +-msgid "%s: stat64 of %s failed\n" +-msgstr "%s: stat64 na %s nie powiodło się\n" ++#: .././copy/xfs_copy.c:126 .././copy/xfs_copy.c:286 .././copy/xfs_copy.c:566 ++#: .././copy/xfs_copy.c:573 ++msgid "Aborting XFS copy - reason" ++msgstr "Przerwano XFS copy - przyczyna" + +-#: .././rtcp/xfs_rtcp.c:91 +-#, c-format +-msgid "%s: final argument is not directory\n" +-msgstr "%s: ostatni argument nie jest katalogiem\n" ++#: .././copy/xfs_copy.c:140 ++msgid "THE FOLLOWING COPIES FAILED TO COMPLETE\n" ++msgstr "NASTĘPUJĄCYCH KOPII NIE UDAŁO SIĘ UKOŃCZYĆ\n" + +-#: .././rtcp/xfs_rtcp.c:138 +-#, c-format +-msgid "%s: failed stat64 on %s: %s\n" +-msgstr "%s: nie udało się wykonać stat64 na %s: %s\n" ++#: .././copy/xfs_copy.c:144 ++msgid "write error" ++msgstr "błąd zapisu" + +-#: .././rtcp/xfs_rtcp.c:159 +-#, c-format +-msgid "%s: %s filesystem has no realtime partition\n" +-msgstr "%s: system plików %s nie ma partycji realtime\n" ++#: .././copy/xfs_copy.c:146 ++msgid "lseek64 error" ++msgstr "błąd lseek64" + +-#: .././rtcp/xfs_rtcp.c:180 .././rtcp/xfs_rtcp.c:208 ++#: .././copy/xfs_copy.c:147 + #, c-format +-msgid "%s: open of %s failed: %s\n" +-msgstr "%s: otwarcie %s nie powiodło się: %s\n" ++msgid " at offset %lld\n" ++msgstr " pod offsetem %lld\n" + +-#: .././rtcp/xfs_rtcp.c:197 ++#: .././copy/xfs_copy.c:151 + #, c-format +-msgid "%s: set attributes on %s failed: %s\n" +-msgstr "%s: ustawienie atrybutów dla %s nie powiodło się: %s\n" ++msgid "All copies completed.\n" ++msgstr "Wszystkie kopie ukończone.\n" + +-#: .././rtcp/xfs_rtcp.c:215 ++#: .././copy/xfs_copy.c:154 + #, c-format +-msgid "%s: get attributes of %s failed: %s\n" +-msgstr "%s: pobranie atrybutów %s nie powiodło się: %s\n" ++msgid "See \"%s\" for more details.\n" ++msgstr "Więcej szczegółów w \"%s\".\n" + +-#: .././rtcp/xfs_rtcp.c:225 .././rtcp/xfs_rtcp.c:260 ++#: .././copy/xfs_copy.c:255 + #, c-format +-msgid "%s: %s is not a realtime file.\n" +-msgstr "%s: %s nie jest plikiem realtime.\n" ++msgid "%s: write error on target %d \"%s\" at offset %lld\n" ++msgstr "%s: błąd zapisu przy celu %d \"%s\" pod offsetem %lld\n" + +-#: .././rtcp/xfs_rtcp.c:234 ++#: .././copy/xfs_copy.c:260 + #, c-format +-msgid "%s: %s file extent size is %d, instead of %d.\n" +-msgstr "%s: plik %s ma rozmiar ekstentu %d zamiast %d.\n" ++msgid "%s: lseek64 error on target %d \"%s\" at offset %lld\n" ++msgstr "%s: błąd lseek64 przy celu %d \"%s\" pod offsetem %lld\n" + +-#: .././rtcp/xfs_rtcp.c:246 .././rtcp/xfs_rtcp.c:269 ++#: .././copy/xfs_copy.c:266 + #, c-format +-msgid "%s: open of %s source failed: %s\n" +-msgstr "%s: otwarcie źródła %s nie powiodło się: %s\n" ++msgid "Aborting target %d - reason" ++msgstr "Przerywano zapis celu %d - przyczyna" + +-#: .././rtcp/xfs_rtcp.c:283 +-#, c-format +-msgid "%s: couldn't get direct I/O information: %s\n" +-msgstr "%s: nie udało się uzyskać informacji o bezpośrednim we/wy: %s\n" ++#: .././copy/xfs_copy.c:270 ++msgid "Aborting XFS copy - no more targets.\n" ++msgstr "Przerwano XFS copy - nie ma więcej celów.\n" + +-#: .././rtcp/xfs_rtcp.c:293 ++#: .././copy/xfs_copy.c:281 + #, c-format +-msgid "%s: extent size %d not a multiple of %d.\n" +-msgstr "%s: rozmiar ekstentu %d nie jest wielokrotnością %d.\n" ++msgid "%s: thread %d died unexpectedly, target \"%s\" incomplete\n" ++msgstr "%s: wątek %d zmarł nieoczekiwanie, cel \"%s\" niekompletny\n" + +-#: .././rtcp/xfs_rtcp.c:307 ++#: .././copy/xfs_copy.c:283 + #, c-format +-msgid "The size of %s is not a multiple of %d.\n" +-msgstr "Rozmiar %s nie jest wielokrotnością %d.\n" ++msgid "%s: offset was probably %lld\n" ++msgstr "%s: offset prawdopodobnie %lld\n" + +-#: .././rtcp/xfs_rtcp.c:310 ++#: .././copy/xfs_copy.c:294 + #, c-format +-msgid "%s will be padded to %lld bytes.\n" +-msgstr "%s: zostanie dopełniony do %lld bajtów.\n" ++msgid "%s: Unknown child died (should never happen!)\n" ++msgstr "%s: Nieznany potomek zmarł (nie powinno się zdarzyć!)\n" + +-#: .././rtcp/xfs_rtcp.c:316 ++#: .././copy/xfs_copy.c:304 + #, c-format +-msgid "Use the -p option to pad %s to a size which is a multiple of %d bytes.\n" +-msgstr "Można użyć opcji -p do dopełnienia %s do rozmiaru będącego wielokrotnością %d bajtów.\n" ++msgid "Usage: %s [-bdV] [-L logfile] source target [target ...]\n" ++msgstr "Składnia: %s [-bdV] [-L plik_logu] źródło cel [cel ...]\n" + +-#: .././rtcp/xfs_rtcp.c:358 ++#: .././copy/xfs_copy.c:386 + #, c-format +-msgid "%s: write error: %s\n" +-msgstr "%s: błąd zapisu: %s\n" ++msgid "%s: lseek64 failure at offset %lld\n" ++msgstr "%s: niepowodzenie lseek64 pod offsetem %lld\n" + +-#: .././rtcp/xfs_rtcp.c:386 ++#: .././copy/xfs_copy.c:401 + #, c-format +-msgid "%s: could not open %s: %s\n" +-msgstr "%s: nie udało się otworzyć %s: %s\n" ++msgid "assert error: buf->length = %d, buf->size = %d\n" ++msgstr "błąd zapewnienia: buf->length = %d, buf->size = %d\n" + +-#: .././repair/xfs_repair.c:81 ++#: .././copy/xfs_copy.c:408 + #, c-format +-msgid "" +-"Usage: %s [options] device\n" +-"\n" +-"Options:\n" +-" -f The device is a file\n" +-" -L Force log zeroing. Do this as a last resort.\n" +-" -l logdev Specifies the device where the external log resides.\n" +-" -m maxmem Maximum amount of memory to be used in megabytes.\n" +-" -n No modify mode, just checks the filesystem for damage.\n" +-" -P Disables prefetching.\n" +-" -r rtdev Specifies the device where the realtime section resides.\n" +-" -v Verbose output.\n" +-" -c subopts Change filesystem parameters - use xfs_admin.\n" +-" -o subopts Override default behaviour, refer to man page.\n" +-" -t interval Reporting interval in minutes.\n" +-" -d Repair dangerously.\n" +-" -V Reports version and exits.\n" +-msgstr "" +-"Składnia: %s [opcje] urządzenie\n" +-"\n" +-"Opcje:\n" +-" -f Urządzenie jest plikiem\n" +-" -L Wymuszenie wyzerowania logu. Wykonywać tylko w ostateczności.\n" +-" -l urz_logu Określenie urządzenia z zewnętrznym logiem.\n" +-" -m maks_pam Maksymalna ilość pamięci do użycia w megabajtach.\n" +-" -n Tryb bez modyfikacji, tylko sprawdzenie systemu plików.\n" +-" -P Wyłączenie prefetch.\n" +-" -r urz_rt Określenie urządzenia z sekcją realtime.\n" +-" -v Szczegółowe wyjście.\n" +-" -c podopcje Zmiana parametrów systemu plików przy użyciu xfs_admina.\n" +-" -o podopcje Zmiana domyślnego zachowania, więcej na stronie manuala.\n" +-" -t czas Okres informowania o postępach w minutach.\n" +-" -d Naprawianie w sposób niebezpieczny.\n" +-" -V Wypisanie informacji o wersji i zakończenie.\n" +- +-#: .././repair/xfs_repair.c:107 +-msgid "no error" +-msgstr "brak błędu" +- +-#: .././repair/xfs_repair.c:108 +-msgid "bad magic number" +-msgstr "błędna liczba magiczna" +- +-#: .././repair/xfs_repair.c:109 +-msgid "bad blocksize field" +-msgstr "błędne pole blocksize" +- +-#: .././repair/xfs_repair.c:110 +-msgid "bad blocksize log field" +-msgstr "błędne pole logu blocksize" +- +-#: .././repair/xfs_repair.c:111 +-msgid "bad or unsupported version" +-msgstr "błędna lub nie obsługiwana wersja" +- +-#: .././repair/xfs_repair.c:113 +-msgid "filesystem mkfs-in-progress bit set" +-msgstr "ustawiony bit mkfs-in-progress systemu plików" ++msgid "%s: read failure at offset %lld\n" ++msgstr "%s: błąd odczytu pod offsetem %lld\n" + +-#: .././repair/xfs_repair.c:115 +-msgid "inconsistent filesystem geometry information" +-msgstr "niespójne informacje o geometrii systemu plików" ++#: .././copy/xfs_copy.c:438 ++msgid "ag header buffer invalid!\n" ++msgstr "błędny bufor nagłówka ag!\n" + +-#: .././repair/xfs_repair.c:117 +-msgid "bad inode size or inconsistent with number of inodes/block" +-msgstr "błędny rozmiar i-węzła lub niespójność z liczbą i-węzłów/blok" ++#: .././copy/xfs_copy.c:546 .././db/init.c:94 .././estimate/xfs_estimate.c:144 ++#: .././fsr/xfs_fsr.c:300 .././growfs/xfs_growfs.c:180 .././io/init.c:190 ++#: .././logprint/logprint.c:203 .././mkfs/xfs_mkfs.c:1672 ++#: .././quota/init.c:131 .././repair/xfs_repair.c:319 .././rtcp/xfs_rtcp.c:55 ++#, c-format ++msgid "%s version %s\n" ++msgstr "%s wersja %s\n" + +-#: .././repair/xfs_repair.c:118 +-msgid "bad sector size" +-msgstr "błędny rozmiar sektora" ++#: .././copy/xfs_copy.c:564 ++#, c-format ++msgid "%s: couldn't open log file \"%s\"\n" ++msgstr "%s: nie udało się otworzyć pliku logu \"%s\"\n" + +-#: .././repair/xfs_repair.c:120 +-msgid "AGF geometry info conflicts with filesystem geometry" +-msgstr "informacje o geometrii AGF są w konflikcie z geometrią systemu plików" ++#: .././copy/xfs_copy.c:571 ++#, c-format ++msgid "%s: couldn't set up logfile stream\n" ++msgstr "%s: nie udało się ustanowić strumienia pliku logu\n" + +-#: .././repair/xfs_repair.c:122 +-msgid "AGI geometry info conflicts with filesystem geometry" +-msgstr "informacje o geometrii AGI są w konflikcie z geometrią systemu plików" ++#: .././copy/xfs_copy.c:583 ++msgid "Couldn't allocate target array\n" ++msgstr "Nie udało się przydzielić tablicy celów\n" + +-#: .././repair/xfs_repair.c:124 +-msgid "AG superblock geometry info conflicts with filesystem geometry" +-msgstr "informacje o geometrii superbloku AG są w konflikcie z geometrią systemu plików" ++#: .././copy/xfs_copy.c:598 ++#, c-format ++msgid "%s: couldn't register atexit function.\n" ++msgstr "%s: nie udało się zarejestrować funkcji atexit.\n" + +-#: .././repair/xfs_repair.c:125 +-msgid "attempted to perform I/O beyond EOF" +-msgstr "próbowano wykonać operację we/wy poza końcem pliku" ++#: .././copy/xfs_copy.c:607 ++#, c-format ++msgid "%s: couldn't open source \"%s\"\n" ++msgstr "%s: nie udało się otworzyć źródła \"%s\"\n" + +-#: .././repair/xfs_repair.c:127 +-msgid "inconsistent filesystem geometry in realtime filesystem component" +-msgstr "niespójna geometria systemu plików w składniku realtime" ++#: .././copy/xfs_copy.c:613 ++#, c-format ++msgid "%s: couldn't stat source \"%s\"\n" ++msgstr "%s: nie udało się wykonać stat na źródle \"%s\"\n" + +-#: .././repair/xfs_repair.c:129 +-msgid "maximum indicated percentage of inodes > 100%" +-msgstr "określono maksymalny procent i-węzłów > 100%" ++#: .././copy/xfs_copy.c:623 ++#, c-format ++msgid "%s: Cannot set direct I/O flag on \"%s\".\n" ++msgstr "%s: Nie można ustawić flagi bezpośredniego we/wy na \"%s\".\n" + +-#: .././repair/xfs_repair.c:131 +-msgid "inconsistent inode alignment value" +-msgstr "niespójna wartość wyrównania i-węzła" ++#: .././copy/xfs_copy.c:628 ++#, c-format ++msgid "%s: xfsctl on file \"%s\" failed.\n" ++msgstr "%s: xfsctl na pliku \"%s\" nie powiodło się.\n" + +-#: .././repair/xfs_repair.c:133 +-msgid "not enough secondary superblocks with matching geometry" +-msgstr "za mało zapasowych superbloków o pasującej geometrii" ++#: .././copy/xfs_copy.c:651 ++#, c-format ++msgid "%s: Warning -- a filesystem is mounted on the source device.\n" ++msgstr "%s: Uwaga - system plików jest podmontowany na urządzeniu źródłowym.\n" + +-#: .././repair/xfs_repair.c:135 +-msgid "bad stripe unit in superblock" +-msgstr "błędna jednostka pasa w superbloku" ++#: .././copy/xfs_copy.c:654 ++msgid "\t\tGenerated copies may be corrupt unless the source is\n" ++msgstr "\t\tWygenerowane kopie mogą być uszkodzone o ile źródło nie jest\n" + +-#: .././repair/xfs_repair.c:137 +-msgid "bad stripe width in superblock" +-msgstr "błędna szerokość pasa w superbloku" ++#: .././copy/xfs_copy.c:656 ++msgid "\t\tunmounted or mounted read-only. Copy proceeding...\n" ++msgstr "\t\todmontowane lub podmontowane tylko do odczytu. Kopiowanie w trakcie...\n" + +-#: .././repair/xfs_repair.c:139 +-msgid "bad shared version number in superblock" +-msgstr "błędny numer wersji współdzielenia w superbloku" ++#: .././copy/xfs_copy.c:673 ++#, c-format ++msgid "" ++"%s: couldn't initialize XFS library\n" ++"%s: Aborting.\n" ++msgstr "" ++"%s: nie udało się zainicjować biblioteki XFS\n" ++"%s: Przerwano.\n" + +-#: .././repair/xfs_repair.c:144 ++#: .././copy/xfs_copy.c:693 + #, c-format +-msgid "bad error code - %d\n" +-msgstr "błędny kod błędu - %d\n" ++msgid "%s: Cannot yet copy V5 fs without '-d'\n" ++msgstr "%s: Nie można jeszcze kopiować systemu plików V5 bez '-d'\n" + +-#: .././repair/xfs_repair.c:152 ++#: .././copy/xfs_copy.c:699 + #, c-format +-msgid "-%c %s option cannot have a value\n" +-msgstr "opcja -%c %s nie przyjmuje wartości\n" ++msgid "" ++"%s: %s filesystem failed to initialize\n" ++"%s: Aborting.\n" ++msgstr "" ++"%s: Nie powiodła się inicjalizacja systemu plików %s\n" ++"%s: Przerwano.\n" + +-#: .././repair/xfs_repair.c:162 .././mkfs/xfs_mkfs.c:2801 ++#: .././copy/xfs_copy.c:703 + #, c-format +-msgid "option respecified\n" +-msgstr "ponownie podana opcja\n" ++msgid "" ++"%s %s filesystem failed to initialize\n" ++"%s: Aborting.\n" ++msgstr "" ++"%s: Nie powiodła się inicjalizacja systemu plików %s\n" ++"%s: Przerwano.\n" + +-#: .././repair/xfs_repair.c:169 .././mkfs/xfs_mkfs.c:2810 ++#: .././copy/xfs_copy.c:707 + #, c-format +-msgid "unknown option -%c %s\n" +-msgstr "nieznana opcja -%c %s\n" +- +-#: .././repair/xfs_repair.c:248 +-msgid "-o bhash option cannot be used with -m option\n" +-msgstr "opcja -o bhash nie może być użyta wraz z opcją -m\n" +- +-#: .././repair/xfs_repair.c:300 +-msgid "-m option cannot be used with -o bhash option\n" +-msgstr "opcja -m nie może być użyta wraz z opcją -o bhash\n" ++msgid "" ++"%s: %s has an external log.\n" ++"%s: Aborting.\n" ++msgstr "" ++"%s: %s ma zewnętrzny log.\n" ++"%s: Przerwano.\n" + +-#: .././repair/xfs_repair.c:342 ++#: .././copy/xfs_copy.c:711 + #, c-format + msgid "" +-"\n" +-"fatal error -- " ++"%s: %s has a real-time section.\n" ++"%s: Aborting.\n" + msgstr "" +-"\n" +-"błąd krytyczny - " ++"%s: %s ma sekcję real-time.\n" ++"%s: Przerwano.\n" + +-#: .././repair/xfs_repair.c:454 +-#, c-format +-msgid "sb root inode value % %sinconsistent with calculated value %u\n" +-msgstr "wartość i-węzła głównego superbloku % %sniespójna z obliczoną wartością %u\n" ++#: .././copy/xfs_copy.c:736 ++msgid "" ++"Error: filesystem block size is smaller than the disk sectorsize.\n" ++"Aborting XFS copy now.\n" ++msgstr "" ++"Błąd: rozmiar bloku systemu plików jest mniejszy niż rozmiar sektora dysku.\n" ++"Przerwano XFS copy.\n" + +-#: .././repair/xfs_repair.c:461 ++#: .././copy/xfs_copy.c:757 + #, c-format +-msgid "resetting superblock root inode pointer to %u\n" +-msgstr "przestawiono wskaźnik i-węzła głównego superbloku na %u\n" ++msgid "Creating file %s\n" ++msgstr "Tworzenie pliku %s\n" + +-#: .././repair/xfs_repair.c:465 ++#: .././copy/xfs_copy.c:775 + #, c-format +-msgid "would reset superblock root inode pointer to %u\n" +-msgstr "wskaźnik i-węzła głównego superbloku zostałby przestawiony na %u\n" ++msgid "" ++"%s: a filesystem is mounted on target device \"%s\".\n" ++"%s cannot copy to mounted filesystems. Aborting\n" ++msgstr "" ++"%s: na urządzeniu docelowym \"%s\" jest podmontowany system plików.\n" ++"%s nie może kopiować na podmontowane systemy plików. Przerwano.\n" + +-#: .././repair/xfs_repair.c:477 ++#: .././copy/xfs_copy.c:786 + #, c-format +-msgid "sb realtime bitmap inode % %sinconsistent with calculated value %u\n" +-msgstr "i-węzeł bitmapy realtime superbloku % %sniespójny z obliczoną wartością %u\n" ++msgid "%s: couldn't open target \"%s\"\n" ++msgstr "%s: nie udało się otworzyć celu \"%s\"\n" + +-#: .././repair/xfs_repair.c:484 ++#: .././copy/xfs_copy.c:796 + #, c-format +-msgid "resetting superblock realtime bitmap ino pointer to %u\n" +-msgstr "przestawiono wskaźnik i-węzła bitmapy realtime superbloku na %u\n" ++msgid "%s: cannot grow data section.\n" ++msgstr "%s: nie można powiększyć sekcji danych.\n" + +-#: .././repair/xfs_repair.c:488 ++#: .././copy/xfs_copy.c:804 + #, c-format +-msgid "would reset superblock realtime bitmap ino pointer to %u\n" +-msgstr "wskaźnik i-węzła bitmapy realtime superbloku zostałby przestawiony na %u\n" ++msgid "%s: xfsctl on \"%s\" failed.\n" ++msgstr "%s: xfsctl na \"%s\" nie powiodło się.\n" + +-#: .././repair/xfs_repair.c:500 ++#: .././copy/xfs_copy.c:823 + #, c-format +-msgid "sb realtime summary inode % %sinconsistent with calculated value %u\n" +-msgstr "i-węzeł opisu realtime superbloku % %sniespójny z obliczoną wartością %u\n" ++msgid "%s: failed to write last block\n" ++msgstr "%s: nie udało się zapisać ostatniego bloku\n" + +-#: .././repair/xfs_repair.c:507 ++#: .././copy/xfs_copy.c:825 + #, c-format +-msgid "resetting superblock realtime summary ino pointer to %u\n" +-msgstr "przestawiono wskaźnik i-węzła opisu realtime superbloku na %u\n" ++msgid "\tIs target \"%s\" too small?\n" ++msgstr "\tCzy cel \"%s\" jest zbyt mały?\n" + +-#: .././repair/xfs_repair.c:511 +-#, c-format +-msgid "would reset superblock realtime summary ino pointer to %u\n" +-msgstr "wskaźnik i-węzła opisu realtime superbloku zostałby przestawiony na %u\n" ++#: .././copy/xfs_copy.c:835 ++msgid "Couldn't initialize global thread mask\n" ++msgstr "Nie udało się zainicjować globalnej maski wątków\n" + +-#: .././repair/xfs_repair.c:554 +-msgid "" +-"Primary superblock would have been modified.\n" +-"Cannot proceed further in no_modify mode.\n" +-"Exiting now.\n" +-msgstr "" +-"Główny superblok zostałby zmodyfikowany.\n" +-"Nie można kontynuować w trybie bez modyfikacji.\n" +-"Zakończono.\n" ++#: .././copy/xfs_copy.c:842 ++msgid "Error initializing wbuf 0\n" ++msgstr "Błąd inicjalizacji wbuf 0\n" + +-#: .././repair/xfs_repair.c:577 +-msgid "" +-"Cannot get host filesystem geometry.\n" +-"Repair may fail if there is a sector size mismatch between\n" +-"the image and the host filesystem.\n" +-msgstr "" +-"Nie można pobrać geometrii systemu plików hosta.\n" +-"Naprawienie może się nie powieść, jeśli istnieje niespójność rozmiaru\n" +-"sektora między obrazem a systemem plików hosta.\n" ++#: .././copy/xfs_copy.c:850 ++msgid "Error initializing btree buf 1\n" ++msgstr "Błąd inicjalizacji btree buf 1\n" + +-#: .././repair/xfs_repair.c:589 +-msgid "" +-"Sector size on host filesystem larger than image sector size.\n" +-"Cannot turn off direct IO, so exiting.\n" +-msgstr "" +-"Rozmiar sektora na systemie plików hosta większy niż rozmiar sektora obrazu.\n" +-"Nie można wyłączyć bezpośredniego we/wy - zakończono działanie.\n" ++#: .././copy/xfs_copy.c:855 ++msgid "Error creating first semaphore.\n" ++msgstr "Błąd tworzenia pierwszego semafora.\n" + +-#: .././repair/xfs_repair.c:599 +-#, c-format +-msgid "%s: cannot repair this filesystem. Sorry.\n" +-msgstr "%s: niestety nie można naprawić tego systemu plików.\n" ++#: .././copy/xfs_copy.c:870 ++msgid "Couldn't malloc space for thread args\n" ++msgstr "Nie udało się przydzielić miejsca na argumenty wątku\n" + +-#: .././repair/xfs_repair.c:624 ++#: .././copy/xfs_copy.c:882 + #, c-format +-msgid " - reporting progress in intervals of %s\n" +-msgstr " - informowanie o postępie w odstępach %s\n" ++msgid "Error creating thread mutex %d\n" ++msgstr "Błąd podczas tworzenia sekcji krytycznej %d wątku\n" + +-#: .././repair/xfs_repair.c:671 ++#: .././copy/xfs_copy.c:899 + #, c-format +-msgid " - max_mem = %lu, icount = %, imem = %, dblock = %, dmem = %\n" +-msgstr " - max_mem = %lu, icount = %, imem = %, dblock = %, dmem = %\n" ++msgid "Error creating thread for target %d\n" ++msgstr "Błąd podczas tworzenia wątku dla celu %d\n" + +-#: .././repair/xfs_repair.c:684 ++#: .././copy/xfs_copy.c:953 + #, c-format +-msgid "" +-"Required memory for repair is greater that the maximum specified\n" +-"with the -m option. Please increase it to at least %lu.\n" +-msgstr "" +-"Pamięć wymagana do naprawy przekracza maksimum określone opcją -m.\n" +-"Proszę ją zwiększyć do co najmniej %lu.\n" ++msgid "Error: current level %d >= btree levels %d\n" ++msgstr "Błąd: bieżący poziom %d >= poziomów b-drzewa %d\n" + +-#: .././repair/xfs_repair.c:689 ++#: .././copy/xfs_copy.c:972 + #, c-format ++msgid "Bad btree magic 0x%x\n" ++msgstr "Niewłaściwa liczba magiczna b-drzewa 0x%x\n" ++ ++#: .././copy/xfs_copy.c:999 ++msgid "WARNING: source filesystem inconsistent.\n" ++msgstr "UWAGA: źródłowy system plików niespójny.\n" ++ ++#: .././copy/xfs_copy.c:1001 ++msgid " A leaf btree rec isn't a leaf. Aborting now.\n" ++msgstr " Liść rekordu b-drzewa nie jest liściem. Przerwano.\n" ++ ++#: .././db/addr.c:35 ++msgid "[field-expression]" ++msgstr "[wyrażenie-pól]" ++ ++#: .././db/addr.c:36 ++msgid "set current address" ++msgstr "ustawienie bieżącego adresu" ++ ++#: .././db/addr.c:42 + msgid "" +-"Not enough RAM available for repair to enable prefetching.\n" +-"This will be _slow_.\n" +-"You need at least %luMB RAM to run with prefetching enabled.\n" ++"\n" ++" 'addr' uses the given field to set the filesystem address and type\n" ++"\n" ++" Examples:\n" ++"\n" ++" sb\n" ++" a rootino - set the type to inode and set position to the root inode\n" ++" a u.bmx[0].startblock (for inode with blockmap)\n" ++"\n" + msgstr "" +-"Zbyt mało dostępnej pamięci RAM, żeby naprawiać z włączonym prefetch.\n" +-"To będzie _wolne_.\n" +-"Do włączenia prefetch potrzeba przynajmniej %luMB RAM.\n" +- +-#: .././repair/xfs_repair.c:707 +-#, c-format +-msgid " - block cache size set to %d entries\n" +-msgstr " - rozmiar bufora bloku ustawiony na %d wpisów\n" ++"\n" ++" 'addr' wykorzystuje podane pole do ustawienia adresu w systemie plików i typu\n" ++"\n" ++" Przykłady:\n" ++"\n" ++" sb\n" ++" a rootino - ustawienie typu na i-węzeł i pozycji na i-węzeł główny\n" ++" a u.bmx[0].startblock (dla i-węzła z mapą bloków)\n" ++"\n" + +-#: .././repair/xfs_repair.c:736 +-msgid "Found unsupported filesystem features. Exiting now.\n" +-msgstr "Znaleziono nie obsługiwane cechy systemu plików. Zakończono.\n" ++#: .././db/addr.c:72 .././db/attrset.c:86 .././db/attrset.c:189 ++#: .././db/print.c:74 .././db/type.c:142 .././db/write.c:101 ++msgid "no current type\n" ++msgstr "brak bieżącego typu\n" + +-#: .././repair/xfs_repair.c:754 ++#: .././db/addr.c:82 + #, c-format +-msgid "No modify flag set, skipping phase 5\n" +-msgstr "Ustawiono flagę braku modyfikacji, pominięto fazę 5\n" +- +-#: .././repair/xfs_repair.c:773 +-msgid "Inode allocation btrees are too corrupted, skipping phases 6 and 7\n" +-msgstr "B-drzewa alokacji i-węzłów są zbyt uszkodzone, pominięto fazy 6 i 7\n" ++msgid "no fields for type %s\n" ++msgstr "brak pól dla typu %s\n" + +-#: .././repair/xfs_repair.c:779 +-msgid "Warning: no quota inodes were found. Quotas disabled.\n" +-msgstr "Uwaga: nie znaleziono i-węzłów limitów (quot). Limity wyłączone.\n" ++#: .././db/addr.c:94 ++msgid "array not allowed for addr command\n" ++msgstr "tablica nie jest dozwolona dla polecenia addr\n" + +-#: .././repair/xfs_repair.c:782 +-msgid "Warning: no quota inodes were found. Quotas would be disabled.\n" +-msgstr "Uwaga: nie znaleziono i-węzłów limitów (quot). Limity zostałyby wyłączone.\n" ++#: .././db/addr.c:103 ++#, c-format ++msgid "no next type for field %s\n" ++msgstr "brak następnego typu dla pola %s\n" + +-#: .././repair/xfs_repair.c:787 +-msgid "Warning: quota inodes were cleared. Quotas disabled.\n" +-msgstr "Uwaga: i-węzły limitów (quot) były wyczyszczone. Limity wyłączone.\n" ++#: .././db/addr.c:110 ++#, c-format ++msgid "no addr function for field %s (type %s)\n" ++msgstr "brak funkcji addr dla pola %s (typu %s)\n" + +-#: .././repair/xfs_repair.c:790 +-msgid "Warning: quota inodes would be cleared. Quotas would be disabled.\n" +-msgstr "Uwaga: i-węzły limitów (quot) zostałyby wyczyszczone. Limity zostałyby wyłączone.\n" ++#: .././db/agf.c:35 .././db/agfl.c:36 .././db/agi.c:35 .././db/sb.c:42 ++msgid "[agno]" ++msgstr "[agno]" + +-#: .././repair/xfs_repair.c:796 +-msgid "" +-"Warning: user quota information was cleared.\n" +-"User quotas can not be enforced until limit information is recreated.\n" +-msgstr "" +-"Uwaga: informacje o limitach użytkowników były wyczyszczone.\n" +-"Limity użytkowników nie mogą być wymuszone do czasu odtworzenia informacji.\n" ++#: .././db/agf.c:36 ++msgid "set address to agf header" ++msgstr "ustawienie adresu na nagłówek agf" + +-#: .././repair/xfs_repair.c:800 ++#: .././db/agf.c:82 + msgid "" +-"Warning: user quota information would be cleared.\n" +-"User quotas could not be enforced until limit information was recreated.\n" ++"\n" ++" set allocation group free block list\n" ++"\n" ++" Example:\n" ++"\n" ++" agf 2 - move location to AGF in 2nd filesystem allocation group\n" ++"\n" ++" Located in the second sector of each allocation group, the AGF\n" ++" contains the root of two different freespace btrees:\n" ++" The 'cnt' btree keeps track freespace indexed on section size.\n" ++" The 'bno' btree tracks sections of freespace indexed on block number.\n" + msgstr "" +-"Uwaga: informacje o limitach użytkowników zostałyby wyczyszczone.\n" +-"Limity użytkowników nie mogłyby być wymuszone do czasu odtworzenia informacji.\n" ++"\n" ++" ustawienie listy wolnych bloków grupy alokacji\n" ++"\n" ++" Przykład:\n" ++"\n" ++" agf 2 - zmiana pozycji na AGF w 2. grupie alokacji systemu plików\n" ++"\n" ++" Położony w drugim sektorze każdej grupy alokacji AGF zawiera korzeń\n" ++" dwóch różnych b-drzew wolnej przestrzeni:\n" ++" b-drzewo 'cnt' śledzi wolne miejsce indeksowane rozmiarem sekcji\n" ++" b-drzewo 'bno' śledzi sekcje wolnego miejsca indeksowane numerem bloku.\n" + +-#: .././repair/xfs_repair.c:808 +-msgid "" +-"Warning: group quota information was cleared.\n" +-"Group quotas can not be enforced until limit information is recreated.\n" +-msgstr "" +-"Uwaga: informacje o limitach grup były wyczyszczone.\n" +-"Limity grup nie mogą być wymuszone do czasu odtworzenia informacji.\n" ++#: .././db/agf.c:107 .././db/agfl.c:106 .././db/agi.c:92 .././db/sb.c:163 ++#, c-format ++msgid "bad allocation group number %s\n" ++msgstr "błędny numer grupy alokacji %s\n" + +-#: .././repair/xfs_repair.c:812 +-msgid "" +-"Warning: group quota information would be cleared.\n" +-"Group quotas could not be enforced until limit information was recreated.\n" +-msgstr "" +-"Uwaga: informacje o limitach grup zostałyby wyczyszczone.\n" +-"Limity grup nie mogłyby być wymuszone do czasu odtworzenia informacji.\n" ++#: .././db/agfl.c:37 ++msgid "set address to agfl block" ++msgstr "ustawienie adresu na blok agfl" + +-#: .././repair/xfs_repair.c:820 ++#: .././db/agfl.c:79 + msgid "" +-"Warning: project quota information was cleared.\n" +-"Project quotas can not be enforced until limit information is recreated.\n" ++"\n" ++" set allocation group freelist\n" ++"\n" ++" Example:\n" ++"\n" ++" agfl 5\n" ++" Located in the fourth sector of each allocation group,\n" ++" the agfl freelist for internal btree space allocation is maintained\n" ++" for each allocation group. This acts as a reserved pool of space\n" ++" separate from the general filesystem freespace (not used for user data).\n" ++"\n" + msgstr "" +-"Uwaga: informacje o limitach projektów były wyczyszczone.\n" +-"Limity projektów nie mogą być wymuszone do czasu odtworzenia informacji.\n" ++"\n" ++" ustawienie listy wolnego miejsca grupy alokacji\n" ++"\n" ++" Przykład:\n" ++"\n" ++" agfl 5\n" ++" Położona w 4. sektorze każdej grupy alokacji lista wolnego miejsca agfl\n" ++" służąca do wewnętrznego przydzielania miejsca dla b-drzew jest utrzymywana\n" ++" dla każdej grupy alokacji. Działa jako zarezerwowana pula miejsca oddzielona\n" ++" od ogólnego wolnego miejsca w systemie plików (nie używana dla danych\n" ++" użytkownika).\n" ++"\n" ++ ++#: .././db/agi.c:36 ++msgid "set address to agi header" ++msgstr "ustawienie adresu na nagłówek agi" + +-#: .././repair/xfs_repair.c:824 ++#: .././db/agi.c:67 + msgid "" +-"Warning: project quota information would be cleared.\n" +-"Project quotas could not be enforced until limit information was recreated.\n" ++"\n" ++" set allocation group inode btree\n" ++"\n" ++" Example:\n" ++"\n" ++" agi 3 (set location to 3rd allocation group inode btree and type to 'agi')\n" ++"\n" ++" Located in the 3rd 512 byte block of each allocation group,\n" ++" the agi inode btree tracks all used/free inodes in the allocation group.\n" ++" Inodes are allocated in 16k 'chunks', each btree entry tracks a 'chunk'.\n" ++"\n" + msgstr "" +-"Uwaga: informacje o limitach projektów zostałyby wyczyszczone.\n" +-"Limity projektów nie mogłyby być wymuszone do czasu odtworzenia informacji.\n" ++"\n" ++" ustawienie b-drzewa i-węzła grupy alokacji\n" ++"\n" ++" Przykład:\n" ++"\n" ++" agi 3 (ustawienie położenia na b-drzewo i-węzła 3. grupy alokacji i typu na 'agi')\n" ++"\n" ++" Położone w 3. 512-bajtowym bloku każdej grupy alokacji, b-drzewo i-węzła agi\n" ++" śledzi wszystkie używane i wolne i-węzły w grupie alokacji.\n" ++" I-węzły są przydzielane w 16k porcjach (chunk), każdy wpis b-drzewa śledzi\n" ++" jedną.\n" ++"\n" + +-#: .././repair/xfs_repair.c:835 +-msgid "No modify flag set, skipping filesystem flush and exiting.\n" +-msgstr "Flaga braku modyfikacji ustawiona, pominięto zrzucanie systemu plików, zakończono.\n" ++#: .././db/attr.c:556 ++msgid "Unknown attribute buffer type!\n" ++msgstr "Nieznany typ bufora atrybutów!\n" + +-#: .././repair/xfs_repair.c:849 .././repair/phase5.c:1360 +-msgid "couldn't get superblock\n" +-msgstr "nie udało się pobrać superbloku\n" ++#: .././db/attr.c:568 ++msgid "Writing unknown attribute buffer type!\n" ++msgstr "Zapis nieznanego typu bufora atrybutów!\n" + +-#: .././repair/xfs_repair.c:854 +-msgid "Note - quota info will be regenerated on next quota mount.\n" +-msgstr "Uwaga - informacje o limitach zostaną ponownie wygenerowane przy następnym montowaniu.\n" ++#: .././db/attrset.c:38 ++msgid "[-r|-s|-p|-u] [-n] [-R|-C] [-v n] name" ++msgstr "[-r|-s|-p|-u] [-n] [-R|-C] [-v n] nazwa" + +-#: .././repair/xfs_repair.c:862 +-#, c-format ++#: .././db/attrset.c:39 ++msgid "set the named attribute on the current inode" ++msgstr "ustawienie atrybutu o podanej nazwie w bieżącym i-węźle" ++ ++#: .././db/attrset.c:42 ++msgid "[-r|-s|-p|-u] [-n] name" ++msgstr "[-r|-s|-p|-u] [-n] nazwa" ++ ++#: .././db/attrset.c:43 ++msgid "remove the named attribute from the current inode" ++msgstr "usunięcie atrybutu o podanej nazwie z bieżącego i-węzła" ++ ++#: .././db/attrset.c:49 + msgid "" +-"Note - stripe unit (%d) and width (%d) fields have been reset.\n" +-"Please set with mount -o sunit=,swidth=\n" ++"\n" ++" The 'attr_set' and 'attr_remove' commands provide interfaces for debugging\n" ++" the extended attribute allocation and removal code.\n" ++" Both commands require an attribute name to be specified, and the attr_set\n" ++" command allows an optional value length (-v) to be provided as well.\n" ++" There are 4 namespace flags:\n" ++" -r -- 'root'\n" ++" -u -- 'user'\t\t(default)\n" ++" -s -- 'secure'\n" ++"\n" ++" For attr_set, these options further define the type of set operation:\n" ++" -C -- 'create' - create attribute, fail if it already exists\n" ++" -R -- 'replace' - replace attribute, fail if it does not exist\n" ++" The backward compatibility mode 'noattr2' can be emulated (-n) also.\n" ++"\n" + msgstr "" +-"Uwaga - pola jednostki pasa (%d) i szerokości pasa (%d) zostały przestawione.\n" +-"Proszę ustawić przy użyciu mount -o sunit=,swidth=\n" +- +-#: .././repair/xfs_repair.c:885 +-msgid "done\n" +-msgstr "gotowe\n" ++"\n" ++" Polecenia 'attr_set' i 'attr_remove' udostępniają interfejsy do diagnostyki\n" ++" kodu przydzielania i usuwania rozszerzonych atrybutów.\n" ++" Oba polecenia wymagają podania nazwy atrybutu, a polecenie attr_set\n" ++" pozwala dodatkowo podać opcjonalną długość wartości (-v).\n" ++" Są 4 flagi przestrzeni nazw:\n" ++" -r - 'root'\n" ++" -u - 'user' (domyślna)\n" ++" -s - 'secure'\n" ++"\n" ++" Dla attr_set poniższe opcje określają rodzaj operacji ustawiania:\n" ++" -C - 'create' - utworzenie atrybutu; nie powiedzie się, jeśli już istnieje\n" ++" -R - 'replace' - zastąpienie atrybutu; nie powiedzie się, jeśli nie istnieje\n" ++" Możliwa jest także emulacja trybu kompatybilności wstecznej 'noattr2' (-n).\n" ++"\n" + +-#: .././repair/avl64.c:1032 .././repair/avl.c:1011 +-#, c-format +-msgid "avl_insert: Warning! duplicate range [%llu,%llu]\n" +-msgstr "avl_insert: Uwaga! powtórzony przedział [%llu,%llu]\n" ++#: .././db/attrset.c:90 .././db/attrset.c:193 ++msgid "current type is not inode\n" ++msgstr "bieżący typ nie jest i-węzłem\n" + +-#: .././repair/avl64.c:1227 .././repair/avl.c:1206 ++#: .././db/attrset.c:125 + #, c-format +-msgid "Command [fpdir] : " +-msgstr "Polecenie [fpdir] : " ++msgid "bad attr_set valuelen %s\n" ++msgstr "błędna długość wartości %s dla attr_set\n" + +-#: .././repair/avl64.c:1236 .././repair/avl.c:1215 +-#, c-format +-msgid "end of range ? " +-msgstr "koniec przedziału? " ++#: .././db/attrset.c:131 ++msgid "bad option for attr_set command\n" ++msgstr "błędna opcja dla polecenia attr_set\n" + +-#: .././repair/avl64.c:1247 .././repair/avl.c:1226 +-#, c-format +-msgid "Cannot find %d\n" +-msgstr "Nie można odnaleźć %d\n" ++#: .././db/attrset.c:137 ++msgid "too few options for attr_set (no name given)\n" ++msgstr "za mało opcji dla attr_set (nie podano nazwy)\n" + +-#: .././repair/avl64.c:1260 .././repair/avl.c:1239 ++#: .././db/attrset.c:146 + #, c-format +-msgid "size of range ? " +-msgstr "rozmiar przedziału? " ++msgid "cannot allocate buffer (%d)\n" ++msgstr "nie udało się przydzielić bufora (%d)\n" + +-#: .././repair/avl64.c:1271 .././repair/avl.c:1250 ++#: .././db/attrset.c:155 .././db/attrset.c:230 + #, c-format +-msgid "End of range ? " +-msgstr "Koniec przedziału? " ++msgid "failed to iget inode %llu\n" ++msgstr "operacja iget na i-węźle %llu nie powiodła się\n" + +-#: .././repair/avl64.c:1275 .././repair/avl.c:1254 ++#: .././db/attrset.c:162 + #, c-format +-msgid "checklen 0/1 ? " +-msgstr "checklen 0/1 ? " ++msgid "failed to set attr %s on inode %llu\n" ++msgstr "ustawianie atrybutu %s w i-węźle %llu nie powiodło się\n" + +-#: .././repair/avl64.c:1282 .././repair/avl.c:1261 +-#, c-format +-msgid "Found something\n" +-msgstr "Znaleziono coś\n" ++#: .././db/attrset.c:217 ++msgid "bad option for attr_remove command\n" ++msgstr "błędna opcja dla polecenia attr_remove\n" + +-#: .././repair/phase7.c:43 +-#, c-format +-msgid "resetting inode % nlinks from %u to %u\n" +-msgstr "przestawiono nlinks i-węzła % z %u na %u\n" ++#: .././db/attrset.c:223 ++msgid "too few options for attr_remove (no name given)\n" ++msgstr "za mało opcji dla attr_remove (nie podano nazwy)\n" + +-#: .././repair/phase7.c:49 ++#: .././db/attrset.c:236 + #, c-format +-msgid "nlinks %u will overflow v1 ino, ino % will be converted to version 2\n" +-msgstr "nlinks %u przepełni i-węzeł v1, i-węzeł % będzie skonwertowany do wersji 2\n" ++msgid "failed to remove attr %s from inode %llu\n" ++msgstr "usunięcie atrybutu %s z i-węzła %llu nie powiodło się\n" + +-#: .././repair/phase7.c:56 +-#, c-format +-msgid "would have reset inode % nlinks from %u to %u\n" +-msgstr "nlinks i-węzła % zostałoby przestawione z %u na %u\n" ++#: .././db/block.c:43 .././db/block.c:49 ++msgid "filoff" ++msgstr "filoff" + +-#: .././repair/phase7.c:85 .././repair/phase6.c:3267 .././repair/phase6.c:3271 +-#, c-format +-msgid "couldn't map inode %, err = %d\n" +-msgstr "nie udało się odwzorować i-węzła %, błąd = %d\n" ++#: .././db/block.c:44 ++msgid "set address to file offset (attr fork)" ++msgstr "ustawienie adresu na offset w pliku (gałąź atrybutów)" + +-#: .././repair/phase7.c:89 +-#, c-format +-msgid "couldn't map inode %, err = %d, can't compare link counts\n" +-msgstr "nie udało się odwzorować i-węzła %, błąd %d, nie można porównać liczby dowiązań\n" ++#: .././db/block.c:46 ++msgid "[d]" ++msgstr "[d]" + +-#: .././repair/phase7.c:128 +-msgid "Phase 7 - verify and correct link counts...\n" +-msgstr "Faza 7 - sprawdzanie i poprawianie liczby dowiązań...\n" ++#: .././db/block.c:47 ++msgid "set address to daddr value" ++msgstr "ustawienie adresu na wartość daddr" + +-#: .././repair/phase7.c:130 +-msgid "Phase 7 - verify link counts...\n" +-msgstr "Faza 7 - sprawdzanie liczby dowiązań...\n" ++#: .././db/block.c:50 ++msgid "set address to file offset (data fork)" ++msgstr "ustawienie adresu na offset w pliku (gałąź danych)" + +-#: .././repair/threads.c:90 +-#, c-format +-msgid "cannot create worker threads, error = [%d] %s\n" +-msgstr "nie można utworzyć wątków pracujących, błąd: [%d] %s\n" ++#: .././db/block.c:52 ++msgid "[fsb]" ++msgstr "[fsb]" + +-#: .././repair/threads.c:108 +-#, c-format +-msgid "cannot allocate worker item, error = [%d] %s\n" +-msgstr "nie można przydzielić elementu pracującego, błąd: [%d] %s\n" ++#: .././db/block.c:53 ++msgid "set address to fsblock value" ++msgstr "ustawienie adresu na wartość fsblock" + +-#: .././repair/prefetch.c:465 +-msgid "prefetch corruption\n" +-msgstr "uszkodzenie prefetch\n" ++#: .././db/block.c:59 ++msgid "" ++"\n" ++" Example:\n" ++"\n" ++" 'ablock 23' - sets the file position to the 23rd filesystem block in\n" ++" the inode's attribute fork. The filesystem block size is specified in\n" ++" the superblock.\n" ++"\n" ++msgstr "" ++"\n" ++" Przykład:\n" ++"\n" ++" 'ablock 23' ustawia pozycję w pliku na 23. blok systemu plików w gałęzi\n" ++" atrybutów i-węzła. Rozmiar bloku systemu plików jest określony w superbloku.\n" ++"\n" + +-#: .././repair/prefetch.c:611 .././repair/prefetch.c:711 ++#: .././db/block.c:82 .././db/block.c:177 + #, c-format +-msgid "failed to create prefetch thread: %s\n" +-msgstr "nie udało się utworzyć wątku prefetch: %s\n" +- +-#: .././repair/prefetch.c:748 +-msgid "failed to initialize prefetch mutex\n" +-msgstr "nie udało się zainicjować muteksu prefetch\n" ++msgid "bad block number %s\n" ++msgstr "błędny numer bloku %s\n" + +-#: .././repair/prefetch.c:750 .././repair/prefetch.c:752 +-msgid "failed to initialize prefetch cond var\n" +-msgstr "nie udało się zainicjować zmiennej warunkowej prefetch\n" ++#: .././db/block.c:90 ++msgid "no attribute data for file\n" ++msgstr "brak danych atrybutów dla pliku\n" + +-#: .././repair/phase5.c:211 +-msgid "could not set up btree block array\n" +-msgstr "nie udało się utworzyć tablicy bloków b-drzewa\n" ++#: .././db/block.c:96 ++msgid "file attr block is unmapped\n" ++msgstr "blok atrybutów pliku nie ma odwzorowania\n" + +-#: .././repair/phase5.c:223 +-msgid "error - not enough free space in filesystem\n" +-msgstr "błąd - za mało wolnego miejsca w systemie plików\n" ++#: .././db/block.c:119 ++msgid "" ++"\n" ++" Example:\n" ++"\n" ++" 'daddr 102' - sets position to the 102nd absolute disk block\n" ++" (512 byte block).\n" ++msgstr "" ++"\n" ++" Przykład:\n" ++"\n" ++" 'daddr 102' ustawia pozycję na 102. (bezwzględnie) blok dysku\n" ++" (blok 512-bajtowy).\n" + +-#: .././repair/phase5.c:438 ++#: .././db/block.c:135 + #, c-format +-msgid "can't rebuild fs trees -- not enough free space on ag %u\n" +-msgstr "nie można przebudować drzew systemu plików - za mało wolnego miejsca w ag %u\n" ++msgid "current daddr is %lld\n" ++msgstr "bieżący daddr to %lld\n" + +-#: .././repair/phase5.c:462 ++#: .././db/block.c:141 + #, c-format +-msgid "ag %u - not enough free space to build freespace btrees\n" +-msgstr "ag %u - za mało wolnego miejsca na przebudowanie b-drzew wolnego miejsca\n" ++msgid "bad daddr %s\n" ++msgstr "błędny daddr %s\n" + +-#: .././repair/phase5.c:497 +-#, c-format +-msgid "not enough free blocks left to describe all free blocks in AG %u\n" +-msgstr "za mało wolnych bloków na opisanie wszystkich wolnych bloków w AG %u\n" ++#: .././db/block.c:153 ++msgid "" ++"\n" ++" Example:\n" ++"\n" ++" 'dblock 23' - sets the file position to the 23rd filesystem block in\n" ++" the inode's data fork. The filesystem block size is specified in the\n" ++" superblock.\n" ++"\n" ++msgstr "" ++"\n" ++" Przykład:\n" ++"\n" ++" 'dblock 23' ustawia pozycję w pliku na 23. blok systemu plików w gałęzi\n" ++" danych i-węzła. Rozmiar bloku systemu plików jest określony w superbloku.\n" ++"\n" + +-#: .././repair/phase5.c:1310 +-#, c-format +-msgid "lost %d blocks in ag %u\n" +-msgstr "utracono %d bloków w ag %u\n" ++#: .././db/block.c:185 ++msgid "no type for file data\n" ++msgstr "brak typu dla danych pliku\n" ++ ++#: .././db/block.c:192 ++msgid "file data block is unmapped\n" ++msgstr "blok danych plików nie ma odwzorowania\n" ++ ++#: .././db/block.c:210 ++msgid "" ++"\n" ++" Example:\n" ++"\n" ++" 'fsblock 1023' - sets the file position to the 1023rd filesystem block.\n" ++" The filesystem block size is specified in the superblock and set during\n" ++" mkfs time. Offset is absolute (not AG relative).\n" ++"\n" ++msgstr "" ++"\n" ++" Przykład:\n" ++"\n" ++" 'fsblock 1023' ustawia pozycję w pliku na 1023. blok systemu plików.\n" ++" Rozmiar bloku systemu plików jest określony w superbloku i ustawiany w\n" ++" trakcie wykonywania mkfs. Offset jest bezwzględny (nie względem AG).\n" ++"\n" + +-#: .././repair/phase5.c:1313 ++#: .././db/block.c:229 + #, c-format +-msgid "thought we were going to lose %d blocks in ag %u, actually lost %d\n" +-msgstr "przewidywano utracenie %d bloków w ag %u, a utracono %d\n" ++msgid "current fsblock is %lld\n" ++msgstr "bieżący fsblock to %lld\n" + +-#: .././repair/phase5.c:1409 .././repair/phase3.c:76 .././repair/phase4.c:125 +-#: .././repair/phase6.c:3624 ++#: .././db/block.c:235 .././db/block.c:241 + #, c-format +-msgid " - agno = %d\n" +-msgstr " - agno = %d\n" ++msgid "bad fsblock %s\n" ++msgstr "błędny fsblock %s\n" + +-#: .././repair/phase5.c:1432 ++#: .././db/bmap.c:39 ++msgid "[-ad] [block [len]]" ++msgstr "[-ad] [blok [długość]]" ++ ++#: .././db/bmap.c:40 ++msgid "show block map for current file" ++msgstr "pokazanie mapy bloków dla bieżącego pliku" ++ ++#: .././db/bmap.c:152 .././db/inode.c:417 ++msgid "no current inode\n" ++msgstr "brak bieżącego i-węzła\n" ++ ++#: .././db/bmap.c:165 ++msgid "bad option for bmap command\n" ++msgstr "błędna opcja dla polecenia bmap\n" ++ ++#: .././db/bmap.c:182 + #, c-format +-msgid "unable to rebuild AG %u. Not enough free space in on-disk AG.\n" +-msgstr "nie udało się przebudować AG %u. Za mało wolnego miejsca w AG na dysku.\n" ++msgid "bad block number for bmap %s\n" ++msgstr "błędny numer bloku dla bmap %s\n" + +-#: .././repair/phase5.c:1467 ++#: .././db/bmap.c:190 + #, c-format +-msgid "unable to rebuild AG %u. No free space.\n" +-msgstr "nie udało się przebudować AG %u. Brak wolnego miejsca.\n" ++msgid "bad len for bmap %s\n" ++msgstr "błędna długość dla bmap %s\n" + +-#: .././repair/phase5.c:1494 ++#: .././db/bmap.c:213 + #, c-format +-msgid "lost %d blocks in agno %d, sorry.\n" +-msgstr "niestety utracono %d bloków w agno %d.\n" ++msgid "%s offset %lld startblock %llu (%u/%u) count %llu flag %u\n" ++msgstr "%s oofset %lld blok-pocz %llu (%u/%u) liczba %llu flaga %u\n" + +-#: .././repair/phase5.c:1563 +-msgid "Phase 5 - rebuild AG headers and trees...\n" +-msgstr "Faza 5 - przebudowywanie nagłówków i drzew AG...\n" ++#: .././db/bmap.c:215 .././db/check.c:2136 .././db/check.c:2148 ++#: .././db/check.c:2175 .././repair/dinode.c:50 ++msgid "data" ++msgstr "danych" + +-#: .././repair/phase5.c:1593 +-msgid "cannot alloc sb_icount_ag buffers\n" +-msgstr "nie można przydzielić buforów sb_icount_ag\n" ++#: .././db/bmap.c:215 .././db/check.c:2136 .././db/check.c:2148 ++#: .././db/check.c:2175 .././repair/dinode.c:51 ++msgid "attr" ++msgstr "atrybutów" + +-#: .././repair/phase5.c:1597 +-msgid "cannot alloc sb_ifree_ag buffers\n" +-msgstr "nie można przydzielić buforów sb_ifree_ag\n" ++#: .././db/check.c:362 ++msgid "free block usage information" ++msgstr "informacje o wykorzystaniu wolnych bloków" + +-#: .././repair/phase5.c:1601 +-msgid "cannot alloc sb_fdblocks_ag buffers\n" +-msgstr "nie można przydzielić buforów sb_fdblocks_ag\n" ++#: .././db/check.c:365 ++msgid "[-s|-v] [-n] [-t] [-b bno]... [-i ino] ..." ++msgstr "[-s|-v] [-n] [-t] [-b bno]... [-i ino] ..." + +-#: .././repair/phase5.c:1620 +-msgid " - generate realtime summary info and bitmap...\n" +-msgstr " - generowanie opisu i bitmapy realtime...\n" ++#: .././db/check.c:366 ++msgid "get block usage and check consistency" ++msgstr "uzyskanie informacji o wykorzystaniu bloków i sprawdzenie spójności" + +-#: .././repair/phase5.c:1625 +-msgid " - reset superblock...\n" +-msgstr " - przestawianie superbloku...\n" ++#: .././db/check.c:369 ++msgid "[-n count] [-x minlen] [-y maxlen] [-s seed] [-0123] [-t type] ..." ++msgstr "[-n liczba] [-x minlen] [-y maxlen] [-s seed] [-0123] [-t typ] ..." ++ ++#: .././db/check.c:370 ++msgid "trash randomly selected block(s)" ++msgstr "zaśmiecenie losowo wybranych bloków" ++ ++#: .././db/check.c:373 ++msgid "[-n] [-c blockcount]" ++msgstr "[-n] [-c liczba-bloków]" ++ ++#: .././db/check.c:374 ++msgid "print usage for current block(s)" ++msgstr "wypisanie wykorzystania bieżących bloków" ++ ++#: .././db/check.c:377 ++msgid "[-s] [-i ino] ..." ++msgstr "[-s] [-i ino] ..." ++ ++#: .././db/check.c:378 ++msgid "print inode-name pairs" ++msgstr "wypisanie par i-węzeł - nazwa" + +-#: .././repair/agheader.c:35 ++#: .././db/check.c:398 + #, c-format +-msgid "bad magic # 0x%x for agf %d\n" +-msgstr "błędna liczba magiczna 0x%x dla agf %d\n" ++msgid "-i %lld bad inode number\n" ++msgstr "-i %lld - błędny numer i-węzła\n" + +-#: .././repair/agheader.c:44 ++#: .././db/check.c:410 + #, c-format +-msgid "bad version # %d for agf %d\n" +-msgstr "błędny numer wersji %d dla agf %d\n" ++msgid "inode %lld add link, now %u\n" ++msgstr "i-węzeł %lld - dodano dowiązanie, teraz %u\n" + +-#: .././repair/agheader.c:53 ++#: .././db/check.c:437 + #, c-format +-msgid "bad sequence # %d for agf %d\n" +-msgstr "błędny numer sekwencji %d dla agf %d\n" ++msgid "inode %lld parent %lld\n" ++msgstr "i-węzeł %lld - rodzic %lld\n" ++ ++#: .././db/check.c:750 ++msgid "block usage information not allocated\n" ++msgstr "informacja o wykorzystaniu bloków nie przydzielona\n" + +-#: .././repair/agheader.c:63 ++#: .././db/check.c:788 ++msgid "already have block usage information\n" ++msgstr "już istnieje informacja o wykorzystaniu bloków\n" ++ ++#: .././db/check.c:818 .././db/check.c:926 ++msgid "WARNING: this may be a newer XFS filesystem.\n" ++msgstr "UWAGA: to może być nowszy system plików XFS.\n" ++ ++#: .././db/check.c:854 + #, c-format +-msgid "bad length %d for agf %d, should be %d\n" +-msgstr "błędna długość %d dla agf %d, powinno być %d\n" ++msgid "sb_icount %lld, counted %lld\n" ++msgstr "sb_icount %lld, naliczono %lld\n" + +-#: .././repair/agheader.c:76 ++#: .././db/check.c:860 + #, c-format +-msgid "bad length %d for agf %d, should be %\n" +-msgstr "błędna długość %d dla agf %d, powinno być %\n" ++msgid "sb_ifree %lld, counted %lld\n" ++msgstr "sb_ifree %lld, naliczono %lld\n" + +-#: .././repair/agheader.c:90 ++#: .././db/check.c:866 + #, c-format +-msgid "flfirst %d in agf %d too large (max = %zu)\n" +-msgstr "flfirst %d w agf %d zbyt duże (maksimum = %zu)\n" ++msgid "sb_fdblocks %lld, counted %lld\n" ++msgstr "sb_fdblocks %lld, naliczono %lld\n" + +-#: .././repair/agheader.c:98 ++#: .././db/check.c:872 + #, c-format +-msgid "fllast %d in agf %d too large (max = %zu)\n" +-msgstr "fllast %d w agf %d zbyt duże (maksimum = %zu)\n" ++msgid "sb_fdblocks %lld, aggregate AGF count %lld\n" ++msgstr "sb_fdblocks %lld, łączny licznik AGF %lld\n" + +-#: .././repair/agheader.c:120 ++#: .././db/check.c:878 + #, c-format +-msgid "bad magic # 0x%x for agi %d\n" +-msgstr "błędna liczba magiczna 0x%x dla agi %d\n" ++msgid "sb_frextents %lld, counted %lld\n" ++msgstr "sb_frextents %lld, naliczono %lld\n" + +-#: .././repair/agheader.c:129 ++#: .././db/check.c:885 + #, c-format +-msgid "bad version # %d for agi %d\n" +-msgstr "błędny numer wersji %d dla agi %d\n" ++msgid "sb_features2 (0x%x) not same as sb_bad_features2 (0x%x)\n" ++msgstr "sb_features2 (0x%x) różni się od sb_bad_features2 (0x%x)\n" + +-#: .././repair/agheader.c:138 ++#: .././db/check.c:894 + #, c-format +-msgid "bad sequence # %d for agi %d\n" +-msgstr "błędny numer sekwencji %d dla agi %d\n" ++msgid "sb versionnum missing attr bit %x\n" ++msgstr "sb versionnum - brak bitu atrybutu %x\n" + +-#: .././repair/agheader.c:148 ++#: .././db/check.c:901 + #, c-format +-msgid "bad length # %d for agi %d, should be %d\n" +-msgstr "błędna długość %d dla agi %d, powinno być %d\n" ++msgid "sb versionnum missing nlink bit %x\n" ++msgstr "sb versionnum - brak bitu nlink %x\n" + +-#: .././repair/agheader.c:161 ++#: .././db/check.c:908 + #, c-format +-msgid "bad length # %d for agi %d, should be %\n" +-msgstr "błędna długość %d dla agi %d, powinno być %\n" ++msgid "sb versionnum missing quota bit %x\n" ++msgstr "sb versionnum - brak bitu quota %x\n" + +-#: .././repair/agheader.c:271 ++#: .././db/check.c:915 + #, c-format +-msgid "zeroing unused portion of %s superblock (AG #%u)\n" +-msgstr "zerowanie nieużywanej części superbloku %s (AG #%u)\n" ++msgid "sb versionnum extra align bit %x\n" ++msgstr "sb versionnum - nadmiarowy bit align %x\n" + +-#: .././repair/agheader.c:272 .././repair/agheader.c:278 +-msgid "primary" +-msgstr "głównego" ++#: .././db/check.c:955 ++msgid "zeroed" ++msgstr "wyzerowano" + +-#: .././repair/agheader.c:272 .././repair/agheader.c:278 +-msgid "secondary" +-msgstr "zapasowego" ++#: .././db/check.c:955 ++msgid "set" ++msgstr "ustawiono" + +-#: .././repair/agheader.c:277 +-#, c-format +-msgid "would zero unused portion of %s superblock (AG #%u)\n" +-msgstr "nieużywana część superbloku %s (AG #%u) zostałaby wyzerowana\n" ++#: .././db/check.c:955 ++msgid "flipped" ++msgstr "przełączono" + +-#: .././repair/agheader.c:296 +-#, c-format +-msgid "bad flags field in superblock %d\n" +-msgstr "błędne pole flag w superbloku %d\n" ++#: .././db/check.c:955 ++msgid "randomized" ++msgstr "ulosowiono" + +-#: .././repair/agheader.c:313 ++#: .././db/check.c:965 + #, c-format +-msgid "non-null user quota inode field in superblock %d\n" +-msgstr "niezerowe pole i-węzła limitów użytkowników w superbloku %d\n" ++msgid "can't read block %u/%u for trashing\n" ++msgstr "nie można odczytać bloku %u/%u w celu zaśmiecenia\n" + +-#: .././repair/agheader.c:326 ++#: .././db/check.c:995 + #, c-format +-msgid "non-null group quota inode field in superblock %d\n" +-msgstr "niezerowe pole i-węzła limitów grup w superbloku %d\n" ++msgid "blocktrash: %u/%u %s block %d bit%s starting %d:%d %s\n" ++msgstr "blocktrash: %u/%u %s blok %d bit%s początek %d:%d %s\n" + +-#: .././repair/agheader.c:338 +-#, c-format +-msgid "non-null quota flags in superblock %d\n" +-msgstr "niezerowe flagi limitów w superbloku %d\n" ++#: .././db/check.c:1027 .././db/check.c:1185 ++msgid "must run blockget first\n" ++msgstr "najpierw trzeba wykonać blockget\n" + +-#: .././repair/agheader.c:356 ++#: .././db/check.c:1071 + #, c-format +-msgid "bad shared version number in superblock %d\n" +-msgstr "błędny numer wersji dzielonej w superbloku %d\n" ++msgid "bad blocktrash count %s\n" ++msgstr "błędna liczba bloków do zaśmiecenia %s\n" + +-#: .././repair/agheader.c:368 ++#: .././db/check.c:1085 + #, c-format +-msgid "bad inode alignment field in superblock %d\n" +-msgstr "błędne pole wyrównania i-węzłów w superbloku %d\n" ++msgid "bad blocktrash type %s\n" ++msgstr "błędny typ zaśmiecania %s\n" + +-#: .././repair/agheader.c:381 ++#: .././db/check.c:1094 + #, c-format +-msgid "bad stripe unit/width fields in superblock %d\n" +-msgstr "błędne pola jednostki/szerokości pasa w superbloku %d\n" ++msgid "bad blocktrash min %s\n" ++msgstr "błędny początek zaśmiecania %s\n" + +-#: .././repair/agheader.c:399 ++#: .././db/check.c:1102 + #, c-format +-msgid "bad log/data device sector size fields in superblock %d\n" +-msgstr "błędne pola rozmiaru sektora urządzenia logu/danych w superbloku %d\n" ++msgid "bad blocktrash max %s\n" ++msgstr "błędny koniec zaśmiecania %s\n" + +-#: .././repair/agheader.c:430 +-#, c-format +-msgid "bad on-disk superblock %d - %s\n" +-msgstr "błędny superblok %d na dysku - %s\n" ++#: .././db/check.c:1107 ++msgid "bad option for blocktrash command\n" ++msgstr "błędna opcja polecenia blocktrash\n" + +-#: .././repair/agheader.c:437 +-#, c-format +-msgid "primary/secondary superblock %d conflict - %s\n" +-msgstr "konflikt głównego/zapasowego superbloku %d - %s\n" ++#: .././db/check.c:1112 ++msgid "bad min/max for blocktrash command\n" ++msgstr "błędny początek/koniec polecenia blocktrash\n" + +-#: .././repair/versions.c:73 +-#, c-format +-msgid "bogus quota flags 0x%x set in superblock" +-msgstr "niepoprawne flagi limitów 0x%x ustawione w superbloku" ++#: .././db/check.c:1138 ++msgid "blocktrash: no matching blocks\n" ++msgstr "blocktrash: brak pasujących bloków\n" + +-#: .././repair/versions.c:86 +-msgid ", bogus flags will be cleared\n" +-msgstr ", błędne flagi zostaną wyczyszczone\n" ++#: .././db/check.c:1142 ++#, c-format ++msgid "blocktrash: seed %u\n" ++msgstr "blocktash: zarodek %u\n" + +-#: .././repair/versions.c:88 +-msgid ", bogus flags would be cleared\n" +-msgstr ", błędne flagi zostałyby wyczyszczone\n" ++#: .././db/check.c:1200 ++#, c-format ++msgid "bad blockuse count %s\n" ++msgstr "błędna liczba bloków dla blockuse: %s\n" + +-#: .././repair/versions.c:141 +-msgid "This filesystem has uninitialized extent flags.\n" +-msgstr "Ten system plików ma niezainicjowane flagi ekstentów.\n" ++#: .././db/check.c:1206 .././db/check.c:1892 ++msgid "must run blockget -n first\n" ++msgstr "najpierw trzeba wykonać blockget -n\n" + +-#: .././repair/versions.c:149 +-msgid "This filesystem is marked shared.\n" +-msgstr "Ten system plików jest oznaczony jako współdzielony.\n" ++#: .././db/check.c:1212 ++msgid "bad option for blockuse command\n" ++msgstr "błędna opcja dla polecenia blockuse\n" + +-#: .././repair/versions.c:155 +-msgid "" +-"This filesystem uses feature(s) not yet supported in this release.\n" +-"Please run a more recent version of xfs_repair.\n" +-msgstr "" +-"Ten system plików używa możliwości jeszcze nie obsługiwanych w tym wydaniu.\n" +-"Proszę uruchomić nowszą wersję xfs_repair.\n" ++#: .././db/check.c:1219 ++#, c-format ++msgid "block %llu (%u/%u) type %s" ++msgstr "blok %llu (%u/%u) typu %s" + +-#: .././repair/versions.c:161 ++#: .././db/check.c:1223 + #, c-format +-msgid "WARNING: unknown superblock version %d\n" +-msgstr "UWAGA: nieznana wersja superbloku %d\n" ++msgid " inode %lld" ++msgstr " i-węzeł %lld" + +-#: .././repair/versions.c:164 +-msgid "This filesystem contains features not understood by this program.\n" +-msgstr "Ten system plików zawiera cechę nie rozumianą przez ten program.\n" ++#: .././db/check.c:1261 ++#, c-format ++msgid "block %u/%u expected type %s got %s\n" ++msgstr "blok %u/%u: oczekiwano typu %s, otrzymano %s\n" + +-#: .././repair/versions.c:172 +-msgid "" +-"WARNING: you have disallowed superblock-feature-bits-allowed\n" +-"\tbut this superblock has feature bits. The superblock\n" +-"\twill be downgraded. This may cause loss of filesystem meta-data\n" +-msgstr "" +-"UWAGA: zabroniono superblock-feature-bits-allowed, ale ten\n" +-"\tsuperblok ma ustawione bity cech. Superblok zostanie zdegradowany.\n" +-"\tMoże to spowodować utratę metadanych systemu plików.\n" ++#: .././db/check.c:1293 ++#, c-format ++msgid "blocks %u/%u..%u claimed by inode %lld\n" ++msgstr "blok %u/%u..%u przypisany do i-węzła %lld\n" + +-#: .././repair/versions.c:177 +-msgid "" +-"WARNING: you have disallowed superblock-feature-bits-allowed\n" +-"\tbut this superblock has feature bits. The superblock\n" +-"\twould be downgraded. This might cause loss of filesystem\n" +-"\tmeta-data.\n" +-msgstr "" +-"UWAGA: zabroniono superblock-feature-bits-allowed, ale ten\n" +-"\tsuperblok ma ustawione bity cech. Superblok zostałby zdegradowany.\n" +-"\tMogłoby to spowodować utratę metadanych systemu plików.\n" ++#: .././db/check.c:1301 ++#, c-format ++msgid "block %u/%u claimed by inode %lld, previous inum %lld\n" ++msgstr "blok %u/%u przypisany do i-węzła %lld, poprzedni inum %lld\n" + +-#: .././repair/versions.c:191 +-msgid "" +-"WARNING: you have disallowed attributes but this filesystem\n" +-"\thas attributes. The filesystem will be downgraded and\n" +-"\tall attributes will be removed.\n" +-msgstr "" +-"UWAGA: zabroniono używania atrybutów, ale ten system plików zawiera\n" +-"\tatrybuty. System plików zostanie zdegradowany, a wszystkie\n" +-"\tatrybuty usunięte.\n" ++#: .././db/check.c:1330 ++#, c-format ++msgid "link count mismatch for inode %lld (name %s), nlink %d, counted %d\n" ++msgstr "niezgodność liczby dowiązań dla i-węzła %lld (nazwa %s), nlink %d, naliczono %d\n" + +-#: .././repair/versions.c:196 +-msgid "" +-"WARNING: you have disallowed attributes but this filesystem\n" +-"\thas attributes. The filesystem would be downgraded and\n" +-"\tall attributes would be removed.\n" +-msgstr "" +-"UWAGA: zabroniono używania atrybutów, ale ten system plików zawiera\n" +-"\tatrybuty. System plików zostałby zdegradowany, a wszystkie\n" +-"\tatrybuty usunięte.\n" ++#: .././db/check.c:1338 ++#, c-format ++msgid "disconnected inode %lld, nlink %d\n" ++msgstr "odłączony i-węzeł %lld, nlink %d\n" + +-#: .././repair/versions.c:209 +-msgid "" +-"WARNING: you have disallowed attr2 attributes but this filesystem\n" +-"\thas attributes. The filesystem will be downgraded and\n" +-"\tall attr2 attributes will be removed.\n" +-msgstr "" +-"UWAGA: zabroniono używania atrybutów attr2, ale ten system plików\n" +-"\tzawiera atrybuty. System plików zostanie zdegradowany, a wszystkie\n" +-"\tatrybuty attr2 usunięte.\n" ++#: .././db/check.c:1342 ++#, c-format ++msgid "allocated inode %lld has 0 link count\n" ++msgstr "przydzielony i-węzeł %lld ma zerową liczbę dowiązań\n" + +-#: .././repair/versions.c:214 +-msgid "" +-"WARNING: you have disallowed attr2 attributes but this filesystem\n" +-"\thas attributes. The filesystem would be downgraded and\n" +-"\tall attr2 attributes would be removed.\n" +-msgstr "" +-"UWAGA: zabroniono używania atrybutów attr2, ale ten system plików\n" +-"\tzawiera atrybuty. System plików zostałby zdegradowany, a wszystkie\n" +-"\tatrybuty attr2 usunięte.\n" ++#: .././db/check.c:1352 ++#, c-format ++msgid "inode %lld name %s\n" ++msgstr "i-węzeł %lld o nazwie %s\n" + +-#: .././repair/versions.c:227 +-msgid "" +-"WARNING: you have disallowed version 2 inodes but this filesystem\n" +-"\thas version 2 inodes. The filesystem will be downgraded and\n" +-"\tall version 2 inodes will be converted to version 1 inodes.\n" +-"\tThis may cause some hard links to files to be destroyed\n" +-msgstr "" +-"UWAGA: zabroniono używania i-węzłów w wersji 2, ale ten system plików\n" +-"\tzawiera i-węzły w wersji 2. System plików zostanie zdegradowany,\n" +-"\ta wszystkie i-węzły w wersji 2 zostaną przekonwertowane do wersji 1.\n" +-"\tMoże to spowodować zniszczenie niektórych twardych dowiązań do\n" +-"\tplików.\n" ++#: .././db/check.c:1386 .././db/check.c:1401 ++#, c-format ++msgid "block %u/%u out of range\n" ++msgstr "blok %u/%u poza zakresem\n" + +-#: .././repair/versions.c:233 +-msgid "" +-"WARNING: you have disallowed version 2 inodes but this filesystem\n" +-"\thas version 2 inodes. The filesystem would be downgraded and\n" +-"\tall version 2 inodes would be converted to version 1 inodes.\n" +-"\tThis might cause some hard links to files to be destroyed\n" +-msgstr "" +-"UWAGA: zabroniono używania i-węzłów w wersji 2, ale ten system plików\n" +-"\tzawiera i-węzły w wersji 2. System plików zostałby zdegradowany,\n" +-"\ta wszystkie i-węzły w wersji 2 zostałyby przekonwertowane do\n" +-"\twersji 1. Mogłoby to spowodować zniszczenie niektórych twardych\n" +-"\tdowiązań do plików.\n" ++#: .././db/check.c:1389 .././db/check.c:1404 ++#, c-format ++msgid "blocks %u/%u..%u out of range\n" ++msgstr "bloki %u/%u..%u poza zakresem\n" + +-#: .././repair/versions.c:247 +-msgid "" +-"WARNING: you have disallowed quotas but this filesystem\n" +-"\thas quotas. The filesystem will be downgraded and\n" +-"\tall quota information will be removed.\n" +-msgstr "" +-"UWAGA: zabroniono używania limitów (quot), ale ten system plików\n" +-"\tzawiera limity. System plików zostanie zdegradowany, a wszystkie\n" +-"\tinformacje o limitach usunięte.\n" ++#: .././db/check.c:1427 ++#, c-format ++msgid "rtblock %llu expected type %s got %s\n" ++msgstr "rtblok %llu - oczekiwano typu %s, otrzymano %s\n" + +-#: .././repair/versions.c:252 +-msgid "" +-"WARNING: you have disallowed quotas but this filesystem\n" +-"\thas quotas. The filesystem would be downgraded and\n" +-"\tall quota information would be removed.\n" +-msgstr "" +-"UWAGA: zabroniono używania limitów (quot), ale ten system plików\n" +-"\tzawiera limity. System plików zostałby zdegradowany, a wszystkie\n" +-"\tinformacje o limitach usunięte.\n" ++#: .././db/check.c:1447 ++#, c-format ++msgid "rtblocks %llu..%llu claimed by inode %lld\n" ++msgstr "rtbloki %llu..%llu przypisane do i-węzła %lld\n" + +-#: .././repair/versions.c:276 +-msgid "" +-"WARNING: you have disallowed aligned inodes but this filesystem\n" +-"\thas aligned inodes. The filesystem will be downgraded.\n" +-"\tThis will permanently degrade the performance of this filesystem.\n" +-msgstr "" +-"UWAGA: zabroniono używania wyrównanych i-węzłów, ale ten system plików\n" +-"\tzawiera wyrównane i-węzły. System plików zostanie zdegradowany.\n" +-"\tTrwale zdegraduje to wydajność tego systemu plików.\n" ++#: .././db/check.c:1456 ++#, c-format ++msgid "rtblock %llu claimed by inode %lld, previous inum %lld\n" ++msgstr "rtblok %llu przypisany do i-węzłą %lld, poprzedni inum %lld\n" + +-#: .././repair/versions.c:281 +-msgid "" +-"WARNING: you have disallowed aligned inodes but this filesystem\n" +-"\thas aligned inodes. The filesystem would be downgraded.\n" +-"\tThis would permanently degrade the performance of this filesystem.\n" +-msgstr "" +-"UWAGA: zabroniono używania wyrównanych i-węzłów, ale ten system plików\n" +-"\tzawiera wyrównane i-węzły. System plików zostałby zdegradowany.\n" +-"\tTrwale zdegradowałoby to wydajność tego systemu plików.\n" ++#: .././db/check.c:1474 ++#, c-format ++msgid "root inode %lld is missing\n" ++msgstr "brak głównego i-węzła %lld\n" + +-#: .././repair/init.c:47 ++#: .././db/check.c:1479 + #, c-format +-msgid "getrlimit(RLIMIT_FSIZE) failed!\n" +-msgstr "getrlimit(RLIMIT_FSIZE) nie powiodło się!\n" ++msgid "root inode %lld is not a directory\n" ++msgstr "główny i-węzeł %lld nie jest katalogiem\n" + +-#: .././repair/init.c:55 ++#: .././db/check.c:1495 + #, c-format +-msgid "setrlimit failed - current: %lld, max: %lld\n" +-msgstr "setrlimit nie powiodło się - bieżący: %lld, max: %lld\n" ++msgid "rtblock %llu out of range\n" ++msgstr "rtblok %llu poza zakresem\n" + +-#: .././repair/init.c:102 +-msgid "couldn't initialize XFS library\n" +-msgstr "nie udało się zainicjować biblioteki XFS\n" ++#: .././db/check.c:1519 ++#, c-format ++msgid "blocks %u/%u..%u claimed by block %u/%u\n" ++msgstr "bloki %u/%u..%u przypisane do bloku %u/%u\n" + +-#: .././repair/phase1.c:28 +-msgid "Sorry, could not find valid secondary superblock\n" +-msgstr "Niestety nie znaleziono poprawnego zapasowego superbloku\n" ++#: .././db/check.c:1528 ++#, c-format ++msgid "setting block %u/%u to %s\n" ++msgstr "ustawianie bloku %u/%u na %s\n" + +-#: .././repair/phase1.c:29 +-msgid "Exiting now.\n" +-msgstr "Zakończono.\n" ++#: .././db/check.c:1551 ++#, c-format ++msgid "setting rtblock %llu to %s\n" ++msgstr "ustawianie rtbloku %llu na %s\n" + +-#: .././repair/phase1.c:40 ++#: .././db/check.c:1572 .././repair/rt.c:151 + #, c-format +-msgid "could not allocate ag header buffer (%d bytes)\n" +-msgstr "nie udało się przydzielić bufora nagłówka ag (%d bajtów)\n" ++msgid "rt summary mismatch, size %d block %llu, file: %d, computed: %d\n" ++msgstr "opis rt nie zgadza się, rozmiar %d bloku %llu, plik: %d, obliczono: %d\n" + +-#: .././repair/phase1.c:58 +-msgid "Phase 1 - find and verify superblock...\n" +-msgstr "Faza 1 - szukanie i sprawdzanie superbloku...\n" ++#: .././db/check.c:1597 ++#, c-format ++msgid "block %u/%u type %s not expected\n" ++msgstr "blok %u/%u typu %s nie oczekiwany\n" + +-#: .././repair/phase1.c:74 +-msgid "error reading primary superblock\n" +-msgstr "błąd podczas odczytu głównego superbloku\n" ++#: .././db/check.c:1618 ++#, c-format ++msgid "rtblock %llu type %s not expected\n" ++msgstr "rtblok %llu typu %s nie oczekiwany\n" + +-#: .././repair/phase1.c:80 ++#: .././db/check.c:1655 + #, c-format +-msgid "bad primary superblock - %s !!!\n" +-msgstr "błędny główny superblok - %s!!!\n" ++msgid "dir ino %lld missing leaf entry for %x/%x\n" ++msgstr "i-węzeł katalogu %lld - brak wpisu liścia dla %x/%x\n" + +-#: .././repair/phase1.c:87 ++#: .././db/check.c:1774 + #, c-format +-msgid "couldn't verify primary superblock - %s !!!\n" +-msgstr "nie udało się sprawdzić głównego superbloku - %s!!!\n" ++msgid "bad superblock magic number %x, giving up\n" ++msgstr "błędna liczba magiczna superbloku %x, poddaję się\n" + +-#: .././repair/phase1.c:105 +-msgid "superblock has a features2 mismatch, correcting\n" +-msgstr "superblok ma niepasujące features2, poprawianie\n" ++#: .././db/check.c:1828 ++msgid "bad option for blockget command\n" ++msgstr "błędna opcja dla polecenia blockget\n" + +-#: .././repair/phase1.c:122 ++#: .././db/check.c:1909 + #, c-format +-msgid "Enabling lazy-counters\n" +-msgstr "Włączanie leniwych liczników\n" ++msgid "bad option -%c for ncheck command\n" ++msgstr "błędna opcja -%c dla polecenia ncheck\n" + +-#: .././repair/phase1.c:127 ++#: .././db/check.c:1983 + #, c-format +-msgid "Disabling lazy-counters\n" +-msgstr "Wyłączanie leniwych liczników\n" ++msgid "block 0 for directory inode %lld is missing\n" ++msgstr "brak bloku 0 dla i-węzła katalogu %lld\n" + +-#: .././repair/phase1.c:130 ++#: .././db/check.c:2003 + #, c-format +-msgid "Lazy-counters are already %s\n" +-msgstr "Leniwe liczniki już są %s\n" +- +-#: .././repair/phase1.c:131 +-msgid "enabled" +-msgstr "włączone" +- +-#: .././repair/phase1.c:131 +-msgid "disabled" +-msgstr "wyłączone" +- +-#: .././repair/phase1.c:138 +-msgid "writing modified primary superblock\n" +-msgstr "zapisano zmodyfikowany główny superblok\n" +- +-#: .././repair/phase1.c:141 +-msgid "would write modified primary superblock\n" +-msgstr "zmodyfikowany główny superblok zostałby zapisany\n" ++msgid "can't read block 0 for directory inode %lld\n" ++msgstr "nie można odczytać bloku 0 dla i-węzła katalogu %lld\n" + +-#: .././repair/incore.c:230 ++#: .././db/check.c:2049 + #, c-format +-msgid "couldn't allocate realtime block map, size = %\n" +-msgstr "nie udało się przydzielić mapy bloków realtime, size = %\n" +- +-#: .././repair/incore.c:295 +-msgid "couldn't allocate block map btree roots\n" +-msgstr "nie udało się przydzielić korzeni b-drzewa mapy bloków\n" +- +-#: .././repair/incore.c:299 +-msgid "couldn't allocate block map locks\n" +-msgstr "nie udało się przydzielić blokad mapy bloków\n" ++msgid "inode %lld extent [%lld,%lld,%lld,%d]\n" ++msgstr "ekstent i-węzła %lld [%lld,%lld,%lld,%d]\n" + +-#: .././repair/dino_chunks.c:58 ++#: .././db/check.c:2052 + #, c-format +-msgid "cannot read agbno (%u/%u), disk block %\n" +-msgstr "nie można odczytać agbno (%u/%u), blok dysku %\n" ++msgid "bmap rec out of order, inode %lld entry %d\n" ++msgstr "błędna kolejność bmap rec - i-węzeł %lld, wpis %d\n" + +-#: .././repair/dino_chunks.c:149 ++#: .././db/check.c:2058 + #, c-format +-msgid "uncertain inode block %d/%d already known\n" +-msgstr "niepewny blok i-węzła %d/%d już znany\n" ++msgid "inode %lld bad rt block number %lld, offset %lld\n" ++msgstr "i-węzeł %lld - błędny numer bloku rt %lld, offset %lld\n" + +-#: .././repair/dino_chunks.c:165 .././repair/dino_chunks.c:437 +-#: .././repair/dino_chunks.c:496 ++#: .././db/check.c:2068 .././db/check.c:2074 + #, c-format +-msgid "inode block %d/%d multiply claimed, (state %d)\n" +-msgstr "blok i-węzła %d/%d już przypisany (stan %d)\n" ++msgid "inode %lld bad block number %lld [%d,%d], offset %lld\n" ++msgstr "i-węzeł %lld - błędny numer bloku %lld [%d,%d], offset %lld\n" + +-#: .././repair/dino_chunks.c:172 .././repair/dino_chunks.c:501 ++#: .././db/check.c:2092 .././db/check.c:2106 + #, c-format +-msgid "inode block %d/%d bad state, (state %d)\n" +-msgstr "blok i-węzła (%d/%d) w błędnym stanie (stan %d)\n" ++msgid "inode %lld block %lld at offset %lld\n" ++msgstr "i-węzeł %lld: blok %lld pod offsetem %lld\n" + +-#: .././repair/dino_chunks.c:444 ++#: .././db/check.c:2133 + #, c-format +-msgid "uncertain inode block overlap, agbno = %d, ino = %\n" +-msgstr "niepewny blok i-węzła pokrywa się, agbno = %d, i-węzeł %\n" ++msgid "level for ino %lld %s fork bmap root too large (%u)\n" ++msgstr "i-węzeł %lld: poziom bmap root odgałęzienia %s zbyt duży (%u)\n" + +-#: .././repair/dino_chunks.c:483 ++#: .././db/check.c:2145 + #, c-format +-msgid "uncertain inode block % already known\n" +-msgstr "niepewny blok i-węzła % już znany\n" ++msgid "numrecs for ino %lld %s fork bmap root too large (%u)\n" ++msgstr "i-węzeł %lld: liczba rekordów bmap root odgałęzienia %s zbyt duża (%u)\n" + +-#: .././repair/dino_chunks.c:620 ++#: .././db/check.c:2172 + #, c-format +-msgid "failed to allocate %zd bytes of memory\n" +-msgstr "nie udało się przydzielić %zd bajtów pamięci\n" ++msgid "extent count for ino %lld %s fork too low (%d) for file format\n" ++msgstr "i-węzeł %lld: liczba ekstentów dla odgałęzienia %s zbyt mała (%d) dla formatu pliku\n" + +-#: .././repair/dino_chunks.c:631 ++#: .././db/check.c:2222 .././db/check.c:3153 + #, c-format +-msgid "cannot read inode %, disk block %, cnt %d\n" +-msgstr "nie można odczytać i-węzła %, blok dysku %, cnt %d\n" ++msgid "bad directory data magic # %#x for dir ino %lld block %d\n" ++msgstr "błędna liczba magiczna danych katalogu %#x dla i-węzła katalogu %lld, blok %d\n" + +-#: .././repair/dino_chunks.c:747 .././repair/dino_chunks.c:922 ++#: .././db/check.c:2239 + #, c-format +-msgid "bad state in block map %d\n" +-msgstr "błędny stan w mapie bloku %d\n" ++msgid "bad block directory tail for dir ino %lld\n" ++msgstr "błędny koniec katalogu bloku dla i-węzła katalogu %lld\n" + +-#: .././repair/dino_chunks.c:751 .././repair/dino_chunks.c:928 ++#: .././db/check.c:2284 + #, c-format +-msgid "inode block % multiply claimed, state was %d\n" +-msgstr "blok i-węzła % wielokrotnie przydzielony, stan był %d\n" ++msgid "dir %lld block %d bad free entry at %d\n" ++msgstr "katalog %lld, blok %d: błędny wolny wpis pod %d\n" + +-#: .././repair/dino_chunks.c:788 ++#: .././db/check.c:2308 + #, c-format +-msgid "imap claims in-use inode % is free, " +-msgstr "imap twierdzi, że używany i-węzeł % jest wolny, " +- +-#: .././repair/dino_chunks.c:793 +-msgid "correcting imap\n" +-msgstr "poprawiono imap\n" +- +-#: .././repair/dino_chunks.c:795 +-msgid "would correct imap\n" +-msgstr "imap zostałoby poprawione\n" ++msgid "dir %lld block %d zero length entry at %d\n" ++msgstr "katalog %lld, blok %d: wpis zerowej długości pod %d\n" + +-#: .././repair/dino_chunks.c:841 ++#: .././db/check.c:2317 + #, c-format +-msgid "cleared root inode %\n" +-msgstr "wyczyszczono główny i-węzeł %\n" ++msgid "dir %lld block %d bad entry at %d\n" ++msgstr "katalog %lld, blok %d: błędny wpis pod %d\n" + +-#: .././repair/dino_chunks.c:845 ++#: .././db/check.c:2335 + #, c-format +-msgid "would clear root inode %\n" +-msgstr "główny węzeł % zostałby wyczyszczony\n" ++msgid "dir %lld block %d entry %*.*s %lld\n" ++msgstr "katalog %lld, blok %d, wpis %*.*s %lld\n" + +-#: .././repair/dino_chunks.c:853 ++#: .././db/check.c:2342 + #, c-format +-msgid "cleared realtime bitmap inode %\n" +-msgstr "wyczyszczono i-węzeł bitmapy realtime %\n" ++msgid "dir %lld block %d entry %*.*s bad inode number %lld\n" ++msgstr "katalog %lld, blokd %d, epis %*.*s: błędny number i-węzła %lld\n" + +-#: .././repair/dino_chunks.c:857 ++#: .././db/check.c:2352 + #, c-format +-msgid "would clear realtime bitmap inode %\n" +-msgstr "i-węzeł bitmapy realtime % zostałby wyczyszczony\n" ++msgid "multiple .. entries in dir %lld (%lld, %lld)\n" ++msgstr "wiele wpisów .. w katalogu %lld (%lld, %lld)\n" + +-#: .././repair/dino_chunks.c:865 ++#: .././db/check.c:2369 + #, c-format +-msgid "cleared realtime summary inode %\n" +-msgstr "wyczyszczono i-węzeł opisu realtime %\n" ++msgid "dir %lld entry . inode number mismatch (%lld)\n" ++msgstr "katalog %lld, wpis .: niezgodność numeru i-węzła (%lld)\n" + +-#: .././repair/dino_chunks.c:869 ++#: .././db/check.c:2382 + #, c-format +-msgid "would clear realtime summary inode %\n" +-msgstr "i-węzeł opisu realtime % zostałby wyczyszczony\n" ++msgid "dir %lld block %d bad count %u\n" ++msgstr "katalog %lld, blok %d: błędny licznik %u\n" + +-#: .././repair/dino_chunks.c:873 ++#: .././db/check.c:2393 .././db/check.c:3167 + #, c-format +-msgid "cleared inode %\n" +-msgstr "wyczyszczono i-węzeł %\n" ++msgid "dir %lld block %d extra leaf entry %x %x\n" ++msgstr "katalog %lld, blok %d: nadmiarowy wpis liścia %x %x\n" + +-#: .././repair/dino_chunks.c:876 ++#: .././db/check.c:2405 + #, c-format +-msgid "would have cleared inode %\n" +-msgstr "i-węzeł % zostałby wyczyszczony\n" +- +-#: .././repair/dino_chunks.c:1083 .././repair/dino_chunks.c:1118 +-#: .././repair/dino_chunks.c:1232 +-msgid "found inodes not in the inode allocation tree\n" +-msgstr "znaleziono i-węzły nieobecne w drzewie alokacji i-węzłów\n" ++msgid "dir %lld block %d bad bestfree data\n" ++msgstr "katalog %lld, blok %d: błędne dane bestfree\n" + +-#: .././repair/dinode.c:46 ++#: .././db/check.c:2412 + #, c-format +-msgid "clearing inode % attributes\n" +-msgstr "wyczyszczono atrybuty i-węzła %\n" ++msgid "dir %lld block %d bad block tail count %d (stale %d)\n" ++msgstr "katalog %lld, blok %d: błędny licznik końca bloku %d (stale %d)\n" + +-#: .././repair/dinode.c:49 ++#: .././db/check.c:2421 + #, c-format +-msgid "would have cleared inode % attributes\n" +-msgstr "atrybuty i-węzła % zostałyby wyczyszczone\n" ++msgid "dir %lld block %d bad stale tail count %d\n" ++msgstr "katalog %lld, blok %d: błędny licznik końca stale %d\n" + +-#: .././repair/dinode.c:424 ++#: .././db/check.c:2427 + #, c-format +-msgid "inode % - bad rt extent start block number %, offset %\n" +-msgstr "i-węzeł % - błędny numer bloku początkowego ekstentu rt %, offset %\n" ++msgid "dir %lld block %d consecutive free entries\n" ++msgstr "katalog %lld, blok %d: kolejne wolne wpisy\n" + +-#: .././repair/dinode.c:432 ++#: .././db/check.c:2433 + #, c-format +-msgid "inode % - bad rt extent last block number %, offset %\n" +-msgstr "i-węzeł % - błędny numer bloku końcowego ekstentu rt %, offset %\n" ++msgid "dir %lld block %d entry/unused tag mismatch\n" ++msgstr "katalog %lld, blok %d: niezgodność znacznika wpis/nieużywany\n" + +-#: .././repair/dinode.c:440 ++#: .././db/check.c:2482 + #, c-format +-msgid "inode % - bad rt extent overflows - start %, end %, offset %\n" +-msgstr "i-węzeł % - błędne przepełnienie ekstentu rt - początek %, koniec %, offset %\n" ++msgid "no . entry for directory %lld\n" ++msgstr "brak wpisu . dla katalogu %lld\n" + +-#: .././repair/dinode.c:457 ++#: .././db/check.c:2487 + #, c-format +-msgid "malformed rt inode extent [% %] (fs rtext size = %u)\n" +-msgstr "zniekształcony ekstent i-węzła rt [% %] (rozmiar fs rtext = %u)\n" ++msgid "no .. entry for directory %lld\n" ++msgstr "brak wpisu .. dla katalogu %lld\n" + +-#: .././repair/dinode.c:478 ++#: .././db/check.c:2491 + #, c-format +-msgid "data fork in rt ino % claims dup rt extent,off - %, start - %, count %\n" +-msgstr "gałąź danych w i-węźle rt % odwołuje się do powtórzonego ekstentu rt, offset %, początek %, liczba %\n" ++msgid ". and .. same for non-root directory %lld\n" ++msgstr ". i .. są takie same dla katalogu %lld (nie będącego głównym)\n" + +-#: .././repair/dinode.c:497 ++#: .././db/check.c:2496 + #, c-format +-msgid "bad state in rt block map %\n" +-msgstr "błędny stan w mapie bloku rt %\n" ++msgid "root directory %lld has .. %lld\n" ++msgstr "główny katalog %lld ma .. %lld\n" + +-#: .././repair/dinode.c:503 ++#: .././db/check.c:2529 + #, c-format +-msgid "data fork in rt inode % found metadata block % in rt bmap\n" +-msgstr "gałąź danych w i-węźle rt % - znaleziono blok metadanych % w bmapie rt\n" ++msgid "bad size (%lld) or format (%d) for directory inode %lld\n" ++msgstr "błędny rozmiar (%lld) lub format (%d) dla i-węzła katalogu %lld\n" + +-#: .././repair/dinode.c:511 ++#: .././db/check.c:2557 + #, c-format +-msgid "data fork in rt inode % claims used rt block %\n" +-msgstr "gałąź danych w i-węźle rt % odwołuje się do używanego bloku rt %\n" ++msgid "bad number of extents %d for inode %lld\n" ++msgstr "błędna liczba ekstentów %d dla i-węzła %lld\n" + +-#: .././repair/dinode.c:517 ++#: .././db/check.c:2629 + #, c-format +-msgid "illegal state %d in rt block map %\n" +-msgstr "niedozwolony stan %d w mapie bloku rt %\n" +- +-#: .././repair/dinode.c:568 .././repair/dinode.c:1135 .././repair/scan.c:184 +-#: .././db/check.c:2130 .././db/check.c:2142 .././db/check.c:2169 +-#: .././db/bmap.c:216 +-msgid "data" +-msgstr "danych" +- +-#: .././repair/dinode.c:570 .././repair/dinode.c:1137 .././repair/scan.c:186 +-#: .././db/check.c:2130 .././db/check.c:2142 .././db/check.c:2169 +-#: .././db/bmap.c:216 +-msgid "attr" +-msgstr "atrybutów" +- +-#: .././repair/dinode.c:573 +-msgid "real-time" +-msgstr "realtime" +- +-#: .././repair/dinode.c:575 +-msgid "regular" +-msgstr "zwykłym" ++msgid "bad magic number %#x for inode %lld\n" ++msgstr "błędna liczba magiczna %#x dla i-węzła %lld\n" + +-#: .././repair/dinode.c:585 ++#: .././db/check.c:2636 + #, c-format +-msgid "bmap rec out of order, inode % entry %d [o s c] [% % %], %d [% % %]\n" +-msgstr "rekord bmap uszkodzony, i-węzeł % wpis %d [o s c] [% % %], %d [% % %]\n" ++msgid "bad version number %#x for inode %lld\n" ++msgstr "błędny numer wersji %#x dla i-węzła %lld\n" + +-#: .././repair/dinode.c:601 ++#: .././db/check.c:2644 + #, c-format +-msgid "zero length extent (off = %, fsbno = %) in ino %\n" +-msgstr "ekstent zerowej długości (off = %, fsbno = %) w i-węźle %\n" ++msgid "bad nblocks %lld for free inode %lld\n" ++msgstr "błędna liczba bloków %lld dla wolnego i-węzła %lld\n" + +-#: .././repair/dinode.c:632 ++#: .././db/check.c:2655 + #, c-format +-msgid "inode % - bad extent starting block number %, offset %\n" +-msgstr "i-węzeł % - błędny numer bloku początkowego ekstentu %, offset %\n" ++msgid "bad nlink %d for free inode %lld\n" ++msgstr "błądna liczba dowiązań %d dla wolnego i-węzła %lld\n" + +-#: .././repair/dinode.c:640 ++#: .././db/check.c:2661 + #, c-format +-msgid "inode % - bad extent last block number %, offset %\n" +-msgstr "i-węzeł % - błędny numer bloku końcowego ekstentu %, offset %\n" ++msgid "bad mode %#o for free inode %lld\n" ++msgstr "błędne uprawnienia %#o dla wolnego i-węzła %lld\n" + +-#: .././repair/dinode.c:648 ++#: .././db/check.c:2670 + #, c-format +-msgid "inode % - bad extent overflows - start %, end %, offset %\n" +-msgstr "i-węzeł % - błędne przepełnienie ekstentu - początek %, koniec %, offset %\n" ++msgid "bad next unlinked %#x for inode %lld\n" ++msgstr "błędny następny niedowiązany %#x dla i-węzła %lld\n" + +-#: .././repair/dinode.c:658 ++#: .././db/check.c:2680 + #, c-format +-msgid "inode % - extent offset too large - start %, count %, offset %\n" +-msgstr "i-węzeł % - offset ekstentu zbyt duży - początek %, liczba %, offset %\n" ++msgid "bad format %d for inode %lld type %#o\n" ++msgstr "błędny format %d dla i-węzła %lld typu %#o\n" + +-#: .././repair/dinode.c:678 ++#: .././db/check.c:2688 + #, c-format +-msgid "" +-"Fatal error: inode % - blkmap_set_ext(): %s\n" +-"\t%s fork, off - %, start - %, cnt %\n" +-msgstr "" +-"Błąd krytyczny: i-węzeł % - blkmap_set_ext(): %s\n" +-"\tgałąź %s, offset %, początek %, liczba %\n" ++msgid "bad fork offset %d for inode %lld\n" ++msgstr "błędny offset odgałęzienia %d dla i-węzła %lld\n" + +-#: .././repair/dinode.c:709 ++#: .././db/check.c:2695 + #, c-format +-msgid "%s fork in ino % claims dup extent, off - %, start - %, cnt %\n" +-msgstr "gałąź %s w i-węźle % odwołuje się do powtórzonego ekstentu, offset %, początek %, liczba %\n" ++msgid "bad attribute format %d for inode %lld\n" ++msgstr "błędny format atrybutu %d dla i-węzła %lld\n" + +-#: .././repair/dinode.c:728 ++#: .././db/check.c:2701 + #, c-format +-msgid "%s fork in ino % claims free block %\n" +-msgstr "gałąź %s w i-węźle % odwołuje się do wolnego bloku %\n" ++msgid "inode %lld mode %#o fmt %s afmt %s nex %d anex %d nblk %lld sz %lld%s%s%s%s%s%s%s\n" ++msgstr "i-węzeł %lld mode %#o fmt %s afmt %s nex %d anex %d nblk %lld sz %lld%s%s%s%s%s%s%s\n" + +-#: .././repair/dinode.c:736 ++#: .././db/check.c:2822 + #, c-format +-msgid "bad state in block map %\n" +-msgstr "błędny stan w mapie bloku %\n" ++msgid "bad nblocks %lld for inode %lld, counted %lld\n" ++msgstr "błędna liczba bloków %lld dla i-węzła %lld, naliczono %lld\n" + +-#: .././repair/dinode.c:742 ++#: .././db/check.c:2829 + #, c-format +-msgid "%s fork in inode % claims metadata block %\n" +-msgstr "gałąź %s w i-węźle % odwołuje się do bloku metadanych %\n" ++msgid "bad nextents %d for inode %lld, counted %d\n" ++msgstr "błędna liczba ekstentów %d dla i-węzła %lld, naliczono %d\n" + +-#: .././repair/dinode.c:750 ++#: .././db/check.c:2835 + #, c-format +-msgid "%s fork in %s inode % claims used block %\n" +-msgstr "gałąź %s w i-węźle %s % odwołuje się do używanego bloku %\n" ++msgid "bad anextents %d for inode %lld, counted %d\n" ++msgstr "błędne anextents %d dla i-węzła %lld, naliczono %d\n" + +-#: .././repair/dinode.c:756 ++#: .././db/check.c:2887 + #, c-format +-msgid "illegal state %d in block map %\n" +-msgstr "niedozwolony stan %d w mapie bloku %\n" ++msgid "local inode %lld data is too large (size %lld)\n" ++msgstr "dane lokalnego i-węzła %lld zbyt duże (rozmiar %lld)\n" + +-#: .././repair/dinode.c:769 ++#: .././db/check.c:2896 + #, c-format +-msgid "correcting nextents for inode %\n" +-msgstr "poprawiono nextents dla i-węzła %\n" ++msgid "local inode %lld attr is too large (size %d)\n" ++msgstr "atrybuty lokalnego i-węzła %lld zbyt duże (rozmiar %d)\n" + +-#: .././repair/dinode.c:841 ++#: .././db/check.c:2945 + #, c-format +-msgid "cannot read inode (%u/%u), disk block %\n" +-msgstr "nie można odczytać i-węzła (%u/%u), blok dysku %\n" ++msgid "dir inode %lld block %u=%llu\n" ++msgstr "i-węzeł katalogu %lld, blok %u=%llu\n" + +-#: .././repair/dinode.c:952 .././repair/dinode.c:1009 ++#: .././db/check.c:2957 + #, c-format +-msgid "cannot read bmap block %\n" +-msgstr "nie można odczytać bloku bmap %\n" ++msgid "can't read block %u for directory inode %lld\n" ++msgstr "nie można odczytać bloku %u dla i-węzła katalogu %lld\n" + +-#: .././repair/dinode.c:973 ++#: .././db/check.c:2971 + #, c-format +-msgid "# of bmap records in inode % exceeds max (%u, max - %u)\n" +-msgstr "liczba rekordów bmap w i-węźle % przekracza maksimum (%u, maksimum %u)\n" ++msgid "multiple .. entries in dir %lld\n" ++msgstr "wiele wpisów .. w katalogu %lld\n" + +-#: .././repair/dinode.c:981 ++#: .././db/check.c:2993 + #, c-format +-msgid "- # of bmap records in inode % less than minimum (%u, min - %u), proceeding ...\n" +-msgstr "- liczba rekordów bmap w i-węźle % mniejsza niż minimum (%u, minimum %u), kontynuacja...\n" ++msgid "missing free index for data block %d in dir ino %lld\n" ++msgstr "brak indeksu wolnego miejsca dla bloku danych %d w i-węźle katalogu %lld\n" + +-#: .././repair/dinode.c:1023 ++#: .././db/check.c:3019 + #, c-format +-msgid "# of bmap records in inode % greater than maximum (%u, max - %u)\n" +-msgstr "liczba rekordów bmap w i-węźle % większa niż maksimum (%u, maksimum %u)\n" ++msgid "bad free block magic # %#x for dir ino %lld block %d\n" ++msgstr "błędna liczba magiczna wolnego bloku %#x dla i-węzła katalogu %lld, blok %d\n" + +-#: .././repair/dinode.c:1030 ++#: .././db/check.c:3029 + #, c-format +-msgid "- # of bmap records in inode % less than minimum (%u, min - %u), continuing...\n" +-msgstr "- liczba rekordów bmap w i-węźle % mniejsza niż minimum (%u, minimum %u), kontynuacja...\n" ++msgid "bad free block firstdb %d for dir ino %lld block %d\n" ++msgstr "błędne firstdb wolnego bloku %d dla i-węzła katalogu %lld, blok %d\n" + +-#: .././repair/dinode.c:1046 ++#: .././db/check.c:3042 + #, c-format +-msgid "could not map block %\n" +-msgstr "nie udało się odwzorować bloku %\n" ++msgid "bad free block nvalid/nused %d/%d for dir ino %lld block %d\n" ++msgstr "błędne liczby nvalid/nused (%d/%d) wolnych bloków w i-węźle katalogu %lld, blok %d\n" + +-#: .././repair/dinode.c:1080 ++#: .././db/check.c:3056 + #, c-format +-msgid "get_bmapi() called for local inode %\n" +-msgstr "get_bmapi() wywołano dla lokalnego i-węzła %\n" ++msgid "bad free block ent %d is %d should be %d for dir ino %lld block %d\n" ++msgstr "błędna liczba ent %d (równa %d, powinna być %d) wolnego bloku w i-węźle katalogu %lld, blok %d\n" + +-#: .././repair/dinode.c:1088 ++#: .././db/check.c:3070 + #, c-format +-msgid "bad inode format for inode %\n" +-msgstr "błędny format i-węzła dla i-węzła %\n" ++msgid "bad free block nused %d should be %d for dir ino %lld block %d\n" ++msgstr "błędna liczba nused (%d, powinna być %d) wolnego bloku w i-węźle katalogu %lld, blok %d\n" + +-#: .././repair/dinode.c:1152 ++#: .././db/check.c:3100 + #, c-format +-msgid "bad level %d in inode % bmap btree root block\n" +-msgstr "błędny poziom %d w bloku głównym bmap btree i-węzła %\n" +- +-#: .././repair/dinode.c:1158 +-#, c-format +-msgid "bad numrecs 0 in inode % bmap btree root block\n" +-msgstr "błędne numrecs 0 w bloku głównym bmap btree i-węzła %\n" ++msgid "bad leaf block forw/back pointers %d/%d for dir ino %lld block %d\n" ++msgstr "błędne wskaźniki przód/tył (%d/%d) bloku liścia w i-węźle katalogu %lld, blok %d\n" + +-#: .././repair/dinode.c:1167 ++#: .././db/check.c:3109 + #, c-format +-msgid "indicated size of %s btree root (%d bytes) greater than space in inode % %s fork\n" +-msgstr "oznaczony rozmiar korzenia b-drzewa %s (%d bajtów) większy niż miejsce w i-węźle % gałęzi %s\n" ++msgid "single leaf block for dir ino %lld block %d should be at block %d\n" ++msgstr "blok pojedynczego liścia dla i-węzłu katalogu %lld, blok %d powinien być w bloku %d\n" + +-#: .././repair/dinode.c:1187 .././repair/scan.c:406 ++#: .././db/check.c:3121 + #, c-format +-msgid "bad bmap btree ptr 0x%llx in ino %\n" +-msgstr "błędny wskaźnik bmap btree 0x%llx w i-węźle %\n" ++msgid "bestfree %d for dir ino %lld block %d doesn't match table value %d\n" ++msgstr "bestfree %d dla i-węzła katalogu %lld, blok %d nie zgadza się z wartością w tablicy %d\n" + +-#: .././repair/dinode.c:1206 ++#: .././db/check.c:3144 + #, c-format +-msgid "correcting key in bmbt root (was %llu, now %) in inode % %s fork\n" +-msgstr "poprawiono klucz w korzeniu bmbt (był %llu, jest %) w i-węźle % gałęzi %s\n" ++msgid "bad node block level %d for dir ino %lld block %d\n" ++msgstr "błędny poziom bloku węzła %d dla i-węzła katalogu %lld, blok %d\n" + +-#: .././repair/dinode.c:1218 ++#: .././db/check.c:3176 + #, c-format +-msgid "bad key in bmbt root (is %llu, would reset to %) in inode % %s fork\n" +-msgstr "błędny klucz w korzeniu bmbt (jest %llu, zostałby przestawiony na %) w i-węźle % gałęzi %s\n" ++msgid "dir %lld block %d stale mismatch %d/%d\n" ++msgstr "katalog %lld, blok %d: niezgodność liczby stale %d/%d\n" + +-#: .././repair/dinode.c:1235 ++#: .././db/check.c:3232 + #, c-format +-msgid "out of order bmbt root key % in inode % %s fork\n" +-msgstr "niepoprawny klucz korzenia bmbt % w i-węźle % gałęzi %s\n" ++msgid "can't read block %lld for %s quota inode (fsblock %lld)\n" ++msgstr "nie można odczytać bloku %lld i-węzła limitów %s (blok fs %lld)\n" + +-#: .././repair/dinode.c:1252 ++#: .././db/check.c:3242 + #, c-format +-msgid "extent count for ino % %s fork too low (%) for file format\n" +-msgstr "i-węzeł %: liczba ekstentów dla odgałęzienia %s zbyt mała (%) dla formatu pliku\n" ++msgid "%s dqblk %lld entry %d id %u bc %lld ic %lld rc %lld\n" ++msgstr "%s dqblk %lld wpis %d id %u bc %lld ic %lld rc %lld\n" + +-#: .././repair/dinode.c:1263 ++#: .././db/check.c:3250 + #, c-format +-msgid "bad fwd (right) sibling pointer (saw % should be NULLDFSBNO)\n" +-msgstr "błędny wskaźnik fwd (prawy) (widziano %, powinno być NULLDFSBNO)\n" ++msgid "bad magic number %#x for %s dqblk %lld entry %d id %u\n" ++msgstr "błędna liczba magiczna %#x dla dqblk %s %lld, wpis %d, id %u\n" + +-#: .././repair/dinode.c:1266 ++#: .././db/check.c:3259 + #, c-format +-msgid "\tin inode % (%s fork) bmap btree block %\n" +-msgstr "\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" ++msgid "bad version number %#x for %s dqblk %lld entry %d id %u\n" ++msgstr "błędny numer wersji %#x dla dqblk %s %lld, wpis %d, id %u\n" + +-#: .././repair/dinode.c:1339 ++#: .././db/check.c:3269 + #, c-format +-msgid "local inode % data fork is too large (size = %lld, max = %d)\n" +-msgstr "gałąź danych lokalnego i-węzła % zbyt duża (rozmiar = %lld, maksimum = %d)\n" ++msgid "bad flags %#x for %s dqblk %lld entry %d id %u\n" ++msgstr "błędne flagi %#x dla dqblk %s %lld, wpis %d, id %u\n" + +-#: .././repair/dinode.c:1347 ++#: .././db/check.c:3278 + #, c-format +-msgid "local inode % attr fork too large (size %d, max = %d)\n" +-msgstr "gałąź atrybutów lokalnego i-węzła % zbyt duża (rozmiar %d, maksimum = %d)\n" ++msgid "bad id %u for %s dqblk %lld entry %d id %u\n" ++msgstr "błędne id %u dla dqblk %s %lld, wpis %d, id %u\n" + +-#: .././repair/dinode.c:1354 ++#: .././db/check.c:3324 + #, c-format +-msgid "local inode % attr too small (size = %d, min size = %zd)\n" +-msgstr "gałąź atrybutów lokalnego i-węzła % zbyt mała (rozmiar = %d, minimum = %zd)\n" ++msgid "block %lld for rtbitmap inode is missing\n" ++msgstr "brak bloku %lld dla i-węzła rtbitmapy\n" + +-#: .././repair/dinode.c:1378 ++#: .././db/check.c:3335 + #, c-format +-msgid "mismatch between format (%d) and size (%) in symlink ino %\n" +-msgstr "niezgodność między formatem (%d) a rozmiarem (%) w i-węźle dowiązania symbolicznego %\n" ++msgid "can't read block %lld for rtbitmap inode\n" ++msgstr "nie można odczytać bloku %lld dla i-węzła rtbitmapy\n" + +-#: .././repair/dinode.c:1385 ++#: .././db/check.c:3391 + #, c-format +-msgid "mismatch between format (%d) and size (%) in symlink inode %\n" +-msgstr "niezgodność między formatem (%d) a rozmiarem (%) w i-węźle dowiązania symbolicznego %\n" ++msgid "block %lld for rtsummary inode is missing\n" ++msgstr "brak bloku %lld dla i-węzła rtsummary\n" + +-#: .././repair/dinode.c:1400 ++#: .././db/check.c:3402 + #, c-format +-msgid "bad number of extents (%d) in symlink % data fork\n" +-msgstr "błędna liczba ekstentów (%d) w gałęzi danych dowiązania symbolicznego %\n" ++msgid "can't read block %lld for rtsummary inode\n" ++msgstr "nie można odczytać bloku %lld dla i-węzła rtsummary\n" + +-#: .././repair/dinode.c:1413 ++#: .././db/check.c:3435 + #, c-format +-msgid "bad extent #%d offset (%) in symlink % data fork\n" +-msgstr "błędny offset ekstentu %d (%) w gałęzi danych dowiązania symbolicznego %\n" ++msgid "dir %lld entry . %lld\n" ++msgstr "katalog %lld, wpis . %lld\n" + +-#: .././repair/dinode.c:1419 ++#: .././db/check.c:3443 + #, c-format +-msgid "bad extent #%d count (%) in symlink % data fork\n" +-msgstr "błędna liczba ekstentów #%d (%) w gałęzi danych dowiązania symbolicznego %\n" ++msgid "dir %llu bad size in entry at %d\n" ++msgstr "katalog %llu: błędny rozmiar we wpisie przy %d\n" + +-#: .././repair/dinode.c:1474 ++#: .././db/check.c:3455 + #, c-format +-msgid "symlink in inode % too long (%llu chars)\n" +-msgstr "dowiązanie symboliczne w i-węźle % zbyt długie (%llu znaków)\n" ++msgid "dir %lld entry %*.*s bad inode number %lld\n" ++msgstr "katalog %lld wpis %*.*s: błędny numer i-węzła %lld\n" + +-#: .././repair/dinode.c:1507 ++#: .././db/check.c:3467 + #, c-format +-msgid "cannot read inode %, file block %d, disk block %\n" +-msgstr "nie można odczytać i-węzła %, blok pliku %d, blok dysku %\n" ++msgid "dir %lld entry %*.*s offset %d %lld\n" ++msgstr "katalog %lld wpis %*.*s offset %d %lld\n" + +-#: .././repair/dinode.c:1529 ++#: .././db/check.c:3472 + #, c-format +-msgid "found illegal null character in symlink inode %\n" +-msgstr "znaleziono niedozwolony znak null w i-węźle dowiązania symbolicznego %\n" ++msgid "dir %lld entry %*.*s bad offset %d\n" ++msgstr "katalog %lld wpis %*.*s błędny offset %d\n" + +-#: .././repair/dinode.c:1543 .././repair/dinode.c:1553 ++#: .././db/check.c:3485 + #, c-format +-msgid "component of symlink in inode % too long\n" +-msgstr "składnik dowiązania symbolicznego w i-węźle % zbyt długi\n" ++msgid "dir %llu size is %lld, should be %u\n" ++msgstr "katalog %llu: rozmiar %lld, powinien być %u\n" + +-#: .././repair/dinode.c:1579 ++#: .././db/check.c:3493 + #, c-format +-msgid "inode % has bad inode type (IFMNT)\n" +-msgstr "i-węzeł % ma błędny typ i-węzła (IFMNT)\n" ++msgid "dir %llu offsets too high\n" ++msgstr "katalog %llu: offsety zbyt duże\n" + +-#: .././repair/dinode.c:1590 ++#: .././db/check.c:3504 + #, c-format +-msgid "size of character device inode % != 0 (% bytes)\n" +-msgstr "rozmiar i-węzła urządzenia znakowego % != 0 (% bajtów)\n" ++msgid "dir %lld entry .. bad inode number %lld\n" ++msgstr "katalog %lld wpis .. - błędny numer i-węzła %lld\n" + +-#: .././repair/dinode.c:1595 ++#: .././db/check.c:3509 + #, c-format +-msgid "size of block device inode % != 0 (% bytes)\n" +-msgstr "rozmiar i-węzła urządzenia blokowego % != 0 (% bajtów)\n" ++msgid "dir %lld entry .. %lld\n" ++msgstr "katalog %lld wpis .. %lld\n" + +-#: .././repair/dinode.c:1600 ++#: .././db/check.c:3512 + #, c-format +-msgid "size of socket inode % != 0 (% bytes)\n" +-msgstr "rozmiar i-węzła gniazda % != 0 (% bajtów)\n" ++msgid "dir %lld i8count mismatch is %d should be %d\n" ++msgstr "katalog %lld: niezgodność i8count: jest %d, powinno być %d\n" + +-#: .././repair/dinode.c:1605 ++#: .././db/check.c:3594 + #, c-format +-msgid "size of fifo inode % != 0 (% bytes)\n" +-msgstr "rozmiar i-węzła potoku % != 0 (% bajtów)\n" ++msgid "%s quota id %u, have/exp" ++msgstr "limit %s id %u: jest/exp" + +-#: .././repair/dinode.c:1609 ++#: .././db/check.c:3597 + #, c-format +-msgid "Internal error - process_misc_ino_types, illegal type %d\n" +-msgstr "Błąd wewnętrzny - process_misc_ino_types, niedozwolony typ %d\n" ++msgid " bc %lld/%lld" ++msgstr " bc %lld/%lld" + +-#: .././repair/dinode.c:1636 ++#: .././db/check.c:3601 + #, c-format +-msgid "size of character device inode % != 0 (% blocks)\n" +-msgstr "rozmiar i-węzła urządzenia znakowego % != 0 (% bloków)\n" ++msgid " ic %lld/%lld" ++msgstr " ic %lld/%lld" + +-#: .././repair/dinode.c:1641 ++#: .././db/check.c:3605 + #, c-format +-msgid "size of block device inode % != 0 (% blocks)\n" +-msgstr "rozmiar i-węzła urządzenia blokowego % != 0 (% bloków)\n" ++msgid " rc %lld/%lld" ++msgstr " rc %lld/%lld" + +-#: .././repair/dinode.c:1646 ++#: .././db/check.c:3661 + #, c-format +-msgid "size of socket inode % != 0 (% blocks)\n" +-msgstr "rozmiar i-węzła gniazda % != 0 (% bloków)\n" ++msgid "can't read superblock for ag %u\n" ++msgstr "nie można odczytać superbloku dla ag %u\n" + +-#: .././repair/dinode.c:1651 ++#: .././db/check.c:3670 + #, c-format +-msgid "size of fifo inode % != 0 (% blocks)\n" +-msgstr "rozmiar i-węzła potoku % != 0 (% bloków)\n" ++msgid "bad sb magic # %#x in ag %u\n" ++msgstr "błędna liczba magiczna %#x superbloku w ag %u\n" + +-#: .././repair/dinode.c:1729 ++#: .././db/check.c:3676 + #, c-format +-msgid "root inode % has bad type 0x%x\n" +-msgstr "i-węzeł główny % ma błędny typ 0x%x\n" +- +-#: .././repair/dinode.c:1733 +-msgid "resetting to directory\n" +-msgstr "przestawiono na katalog\n" ++msgid "bad sb version # %#x in ag %u\n" ++msgstr "błędny numer wersji %#x superbloku w ag %u\n" + +-#: .././repair/dinode.c:1737 +-msgid "would reset to directory\n" +-msgstr "zostałby przestawiony na katalog\n" ++#: .././db/check.c:3686 .././db/sb.c:213 ++msgid "mkfs not completed successfully\n" ++msgstr "mkfs nie zakończony pomyślnie\n" + +-#: .././repair/dinode.c:1743 ++#: .././db/check.c:3698 .././db/frag.c:366 + #, c-format +-msgid "user quota inode % has bad type 0x%x\n" +-msgstr "i-węzeł limitu użytkownika % ma błędny typ 0x%x\n" ++msgid "can't read agf block for ag %u\n" ++msgstr "nie można odczytać bloku agf dla ag %u\n" + +-#: .././repair/dinode.c:1752 ++#: .././db/check.c:3704 + #, c-format +-msgid "group quota inode % has bad type 0x%x\n" +-msgstr "i-węzeł limitu grupy % ma błędny typ 0x%x\n" ++msgid "bad agf magic # %#x in ag %u\n" ++msgstr "błędna liczba magiczna agf %#x w ag %u\n" + +-#: .././repair/dinode.c:1762 ++#: .././db/check.c:3710 + #, c-format +-msgid "realtime summary inode % has bad type 0x%x, " +-msgstr "i-węzeł opisu realtime % ma błędny typ 0x%x, " ++msgid "bad agf version # %#x in ag %u\n" ++msgstr "błędny numer wersji agf %#x w ag %u\n" + +-#: .././repair/dinode.c:1765 .././repair/dinode.c:1786 +-msgid "resetting to regular file\n" +-msgstr "przestawiono na zwykły plik\n" ++#: .././db/check.c:3726 .././db/frag.c:375 ++#, c-format ++msgid "can't read agi block for ag %u\n" ++msgstr "nie można odczytać bloku agi w ag %u\n" + +-#: .././repair/dinode.c:1769 .././repair/dinode.c:1790 +-msgid "would reset to regular file\n" +-msgstr "zostałby przestawiony na zwykły plik\n" ++#: .././db/check.c:3732 ++#, c-format ++msgid "bad agi magic # %#x in ag %u\n" ++msgstr "błędna liczba magiczna agi %#x w ag %u\n" + +-#: .././repair/dinode.c:1774 ++#: .././db/check.c:3738 + #, c-format +-msgid "bad # of extents (%u) for realtime summary inode %\n" +-msgstr "błędna liczba ekstentów (%u) dla i-węzłą opisu realtime %\n" ++msgid "bad agi version # %#x in ag %u\n" ++msgstr "błędny numer wersji agi # %#x w ag %u\n" + +-#: .././repair/dinode.c:1783 ++#: .././db/check.c:3763 .././repair/scan.c:1163 + #, c-format +-msgid "realtime bitmap inode % has bad type 0x%x, " +-msgstr "i-węzeł bitmapy realtime % ma błędny typ 0x%x, " ++msgid "agf_freeblks %u, counted %u in ag %u\n" ++msgstr "agf_freeblks %u, naliczono %u w ag %u\n" + +-#: .././repair/dinode.c:1795 ++#: .././db/check.c:3770 .././repair/scan.c:1168 + #, c-format +-msgid "bad # of extents (%u) for realtime bitmap inode %\n" +-msgstr "błędna liczba ekstentów (%u) dla i-węzłą bitmapy realtime %\n" ++msgid "agf_longest %u, counted %u in ag %u\n" ++msgstr "agf_longest %u, naliczono %u w ag %u\n" + +-#: .././repair/dinode.c:1830 ++#: .././db/check.c:3778 + #, c-format +-msgid "mismatch between format (%d) and size (%) in directory ino %\n" +-msgstr "niezgodność między formatem (%d) a rozmiarem (%) w i-węźle katalogu %\n" ++msgid "agf_btreeblks %u, counted %u in ag %u\n" ++msgstr "agf_btreeblks %u, naliczono %u w ag %u\n" + +-#: .././repair/dinode.c:1836 ++#: .././db/check.c:3786 .././repair/scan.c:1202 + #, c-format +-msgid "directory inode % has bad size %\n" +-msgstr "i-węzeł katalogu % ma błędny rozmiar %\n" ++msgid "agi_count %u, counted %u in ag %u\n" ++msgstr "agi_count %u, naliczono %u w ag %u\n" + +-#: .././repair/dinode.c:1844 ++#: .././db/check.c:3793 .././repair/scan.c:1207 + #, c-format +-msgid "bad data fork in symlink %\n" +-msgstr "błędna gałąź danych w dowiązaniu symbolicznym %\n" ++msgid "agi_freecount %u, counted %u in ag %u\n" ++msgstr "agi_freecount %u, naliczono %u w ag %u\n" + +-#: .././repair/dinode.c:1865 ++#: .././db/check.c:3802 + #, c-format +-msgid "found inode % claiming to be a real-time file\n" +-msgstr "znaleziono i-węzeł % twierdzący, że należy do pliku realtime\n" ++msgid "agi unlinked bucket %d is %u in ag %u (inode=%lld)\n" ++msgstr "agi unlinked bucket %d is %u in ag %u (inode=%lld)\n" + +-#: .././repair/dinode.c:1874 ++#: .././db/check.c:3840 + #, c-format +-msgid "realtime bitmap inode % has bad size % (should be %)\n" +-msgstr "i-węzeł bitmapy realtime % ma błędny rozmiar % (powinien być %)\n" ++msgid "can't read agfl block for ag %u\n" ++msgstr "nie można odczytać bloku agfl dla ag %u\n" + +-#: .././repair/dinode.c:1885 ++#: .././db/check.c:3850 .././db/freesp.c:255 .././repair/scan.c:1099 + #, c-format +-msgid "realtime summary inode % has bad size % (should be %d)\n" +-msgstr "i-węzeł opisu realtime % ma błędny rozmiar % (powinien być %d)\n" ++msgid "agf %d freelist blocks bad, skipping freelist scan\n" ++msgstr "błędne bloki listy wolnych agf %d, pominięto przeszukanie listy wolnych\n" + +-#: .././repair/dinode.c:1913 ++#: .././db/check.c:3872 + #, c-format +-msgid "bad attr fork offset %d in dev inode %, should be %d\n" +-msgstr "błędny offset gałęzi atrybutów %d w i-węźle urządzenia %, powinien być %d\n" ++msgid "freeblk count %u != flcount %u in ag %u\n" ++msgstr "liczba freeblk %u != flcount %u w ag %u\n" + +-#: .././repair/dinode.c:1924 ++#: .././db/check.c:3901 .././db/check.c:3929 .././db/frag.c:398 ++#: .././db/frag.c:421 .././db/freesp.c:289 + #, c-format +-msgid "bad attr fork offset %d in inode %, max=%d\n" +-msgstr "błędny offset gałęzi atrybutów %d w i-węźle %, maksimum=%d\n" ++msgid "can't read btree block %u/%u\n" ++msgstr "nie można odczytać bloku b-drzewa %u/%u\n" + +-#: .././repair/dinode.c:1931 ++#: .././db/check.c:3962 + #, c-format +-msgid "unexpected inode format %d\n" +-msgstr "nieoczekiwany format i-węzła %d\n" ++msgid "bad magic # %#x in inode %lld bmbt block %u/%u\n" ++msgstr "błędna liczba magiczna %#x w i-węźle %lld, blok bmbt %u/%u\n" + +-#: .././repair/dinode.c:1952 ++#: .././db/check.c:3969 + #, c-format +-msgid "correcting nblocks for inode %, was %llu - counted %\n" +-msgstr "poprawiono nblocks dla i-węzła % - było %llu, naliczono %\n" ++msgid "expected level %d got %d in inode %lld bmbt block %u/%u\n" ++msgstr "oczekiwano poziomu %d, a uzyskano %d w i-węźle %lld, blok bmbt %u/%u\n" + +-#: .././repair/dinode.c:1959 ++#: .././db/check.c:3981 .././db/check.c:3998 + #, c-format +-msgid "bad nblocks %llu for inode %, would reset to %\n" +-msgstr "błędne nblocks %llu dla i-węzła %, zostałoby przestawione na %\n" ++msgid "bad btree nrecs (%u, min=%u, max=%u) in inode %lld bmap block %lld\n" ++msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w i-węźle %lld, blok bitmapy %lld\n" + +-#: .././repair/dinode.c:1967 ++#: .././db/check.c:4026 + #, c-format +-msgid "too many data fork extents (%) in inode %\n" +-msgstr "zbyt dużo ekstentów gałęzi danych (%) w i-węźle %\n" ++msgid "bad magic # %#x in btbno block %u/%u\n" ++msgstr "błędna liczba magiczna %#x w bloku btbno %u/%u\n" + +-#: .././repair/dinode.c:1974 ++#: .././db/check.c:4035 + #, c-format +-msgid "correcting nextents for inode %, was %d - counted %\n" +-msgstr "poprawiono nextents dla i-węzła % - było %d, naliczono %\n" ++msgid "expected level %d got %d in btbno block %u/%u\n" ++msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku btbno %u/%u\n" + +-#: .././repair/dinode.c:1982 ++#: .././db/check.c:4044 .././db/check.c:4072 .././db/check.c:4117 ++#: .././db/check.c:4148 + #, c-format +-msgid "bad nextents %d for inode %, would reset to %\n" +-msgstr "błędne nextents %d dla i-węzła %, zostałoby przestawione na %\n" ++msgid "bad btree nrecs (%u, min=%u, max=%u) in btbno block %u/%u\n" ++msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w bloku btbno %u/%u\n" + +-#: .././repair/dinode.c:1990 ++#: .././db/check.c:4059 .././repair/scan.c:629 + #, c-format +-msgid "too many attr fork extents (%) in inode %\n" +-msgstr "zbyt dużo ekstentów gałęzi atrybutów (%) w i-węźle %\n" ++msgid "out-of-order bno btree record %d (%u %u) block %u/%u\n" ++msgstr "rekord b-drzewa bno poza kolejnością: %d (%u %u), blok %u/%u\n" + +-#: .././repair/dinode.c:1997 ++#: .././db/check.c:4099 + #, c-format +-msgid "correcting anextents for inode %, was %d - counted %\n" +-msgstr "poprawiono anextents dla i-węzła % - było %d, naliczono %\n" ++msgid "bad magic # %#x in btcnt block %u/%u\n" ++msgstr "błędna liczba magiczna %#x w bloku btcbt %u/%u\n" + +-#: .././repair/dinode.c:2004 ++#: .././db/check.c:4108 + #, c-format +-msgid "bad anextents %d for inode %, would reset to %\n" +-msgstr "błędne anextents %d dla i-węzła %, zostałoby przestawione na %\n" ++msgid "expected level %d got %d in btcnt block %u/%u\n" ++msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku btcnt %u/%u\n" + +-#: .././repair/dinode.c:2016 ++#: .././db/check.c:4136 .././repair/scan.c:641 + #, c-format +-msgid "nblocks (%) smaller than nextents for inode %\n" +-msgstr "nblocks (%) mniejsze niż nextents dla i-węzła %\n" ++msgid "out-of-order cnt btree record %d (%u %u) block %u/%u\n" ++msgstr "rekord b-drzewa cnt poza kolejnością: %d (%u %u), blok %u/%u\n" + +-#: .././repair/dinode.c:2069 .././repair/dinode.c:2107 ++#: .././db/check.c:4179 + #, c-format +-msgid "unknown format %d, ino % (mode = %d)\n" +-msgstr "nieznany format %d, i-węzeł % (tryb = %d)\n" ++msgid "bad magic # %#x in inobt block %u/%u\n" ++msgstr "błędna liczba magiczna %#x w bloku inobt %u/%u\n" + +-#: .././repair/dinode.c:2074 ++#: .././db/check.c:4186 + #, c-format +-msgid "bad data fork in inode %\n" +-msgstr "błędna gałąź danych w i-węźle %\n" ++msgid "expected level %d got %d in inobt block %u/%u\n" ++msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku inobt %u/%u\n" + +-#: .././repair/dinode.c:2145 ++#: .././db/check.c:4195 .././db/check.c:4261 + #, c-format +-msgid "bad attribute format %d in inode %, " +-msgstr "błędny format atrybutów %d w i-węźle %, " +- +-#: .././repair/dinode.c:2148 +-msgid "resetting value\n" +-msgstr "przestawiono wartość\n" +- +-#: .././repair/dinode.c:2152 +-msgid "would reset value\n" +-msgstr "wartość zostałaby przestawiona\n" ++msgid "bad btree nrecs (%u, min=%u, max=%u) in inobt block %u/%u\n" ++msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w bloku inobt %u/%u\n" + +-#: .././repair/dinode.c:2182 .././repair/attr_repair.c:994 ++#: .././db/check.c:4230 .././db/frag.c:490 + #, c-format +-msgid "illegal attribute format %d, ino %\n" +-msgstr "niedozwolony format atrybutu %d, i-węzeł %\n" ++msgid "can't read inode block %u/%u\n" ++msgstr "nie można odczytać bloku i-węzła %u/%u\n" + +-#: .././repair/dinode.c:2197 ++#: .././db/check.c:4248 + #, c-format +-msgid "bad attribute fork in inode %" +-msgstr "błędna gałąź atrybutów w i-węźle %" +- +-#: .././repair/dinode.c:2201 +-msgid ", clearing attr fork\n" +-msgstr ", wyczyszczono gałąź atrybutów\n" +- +-#: .././repair/dinode.c:2210 +-msgid ", would clear attr fork\n" +-msgstr ", gałąź atrybutów zostałaby wyczyszczona\n" ++msgid "ir_freecount/free mismatch, inode chunk %u/%u, freecount %d nfree %d\n" ++msgstr "niezgodność ir_freecount/free, porcja i-węzłów %u/%u, freecount %d nfree %d\n" + +-#: .././repair/dinode.c:2238 ++#: .././db/check.c:4303 + #, c-format +-msgid "illegal attribute fmt %d, ino %\n" +-msgstr "niedozwolony format atrybutów %d, i-węzeł %\n" ++msgid "setting inode to %lld for block %u/%u\n" ++msgstr "ustawianie i-węzła na %lld dla bloku %u/%u\n" + +-#: .././repair/dinode.c:2258 ++#: .././db/check.c:4335 + #, c-format +-msgid "problem with attribute contents in inode %\n" +-msgstr "problem z zawartością atrybutu w i-węźle %\n" +- +-#: .././repair/dinode.c:2266 +-msgid "would clear attr fork\n" +-msgstr "gałąź atrybutów zostałaby wyczyszczona\n" ++msgid "setting inode to %lld for rtblock %llu\n" ++msgstr "ustawianie i-węzła na %lld dla rtbloku %llu\n" + +-#: .././repair/dinode.c:2309 ++#: .././db/check.c:4351 + #, c-format +-msgid "version 2 inode % claims > %u links, " +-msgstr "i-węzeł % w wersji 2 odwołuje się do > %u dowiązań, " +- +-#: .././repair/dinode.c:2313 +-msgid "updating superblock version number\n" +-msgstr "uaktualniono numer wersji superbloku\n" +- +-#: .././repair/dinode.c:2316 +-msgid "would update superblock version number\n" +-msgstr "numer wersji superbloku zostałby uaktualniony\n" ++msgid "inode %lld nlink %u %s dir\n" ++msgstr "i-węzeł %lld nlink %u katalog %s\n" + +-#: .././repair/dinode.c:2324 ++#: .././db/command.c:82 .././db/help.c:56 .././libxcmd/help.c:49 + #, c-format +-msgid "WARNING: version 2 inode % claims > %u links, " +-msgstr "UWAGA: i-węzeł % w wersji 2 odwołuje się do > %u dowiązań, " ++msgid "command %s not found\n" ++msgstr "nie znaleziono polecenia %s\n" + +-#: .././repair/dinode.c:2327 ++#: .././db/command.c:86 + #, c-format +-msgid "" +-"converting back to version 1,\n" +-"this may destroy %d links\n" +-msgstr "" +-"przekształcanie z powrotem do wersji 1,\n" +-"może to zniszczyć %d dowiązań\n" ++msgid "bad argument count %d to %s, expected " ++msgstr "błędny argument liczby %d dla %s, oczekiwano " + +-#: .././repair/dinode.c:2337 ++#: .././db/command.c:88 + #, c-format +-msgid "" +-"would convert back to version 1,\n" +-"\tthis might destroy %d links\n" +-msgstr "" +-"zostałby przekształcony z powrotem do wersji 1,\n" +-"\tco mogłoby zniszczyć %d dowiązań\n" ++msgid "at least %d" ++msgstr "przynajmniej %d" + +-#: .././repair/dinode.c:2352 ++#: .././db/command.c:92 + #, c-format +-msgid "found version 2 inode %, " +-msgstr "znaleziono i-węzeł % w wersji 2, " ++msgid "between %d and %d" ++msgstr "od %d do %d" + +-#: .././repair/dinode.c:2354 +-msgid "converting back to version 1\n" +-msgstr "przekształcono z powrotem do wersji 1\n" ++#: .././db/command.c:93 ++msgid " arguments\n" ++msgstr " argumentów\n" + +-#: .././repair/dinode.c:2360 +-msgid "would convert back to version 1\n" +-msgstr "zostałby przekształcony z powrotem do wersji 1\n" ++#: .././db/convert.c:171 ++#, c-format ++msgid "bad argument count %d to convert, expected 3,5,7,9 arguments\n" ++msgstr "błędna liczba argumentów %d do konwersji, oczekiwano 3,5,7,9 argumentów\n" + +-#: .././repair/dinode.c:2374 ++#: .././db/convert.c:176 .././db/convert.c:183 + #, c-format +-msgid "clearing obsolete nlink field in version 2 inode %, was %d, now 0\n" +-msgstr "wyczyszczono przestarzałe pole nlink w i-węźle % w wersji 2 - było %d, jest 0\n" ++msgid "unknown conversion type %s\n" ++msgstr "nieznany rodzaj konwersji %s\n" + +-#: .././repair/dinode.c:2380 ++#: .././db/convert.c:187 ++msgid "result type same as argument\n" ++msgstr "typ wyniku taki sam jak argument\n" ++ ++#: .././db/convert.c:191 + #, c-format +-msgid "would clear obsolete nlink field in version 2 inode %, currently %d\n" +-msgstr "przestarzałe pole nlink w i-węźle % w wersji 2 zostałoby wyczyszczone, aktualnie %d\n" ++msgid "conflicting conversion type %s\n" ++msgstr "konflikt typu konwersji %s\n" + +-#: .././repair/dinode.c:2449 ++#: .././db/convert.c:269 + #, c-format +-msgid "bad magic number 0x%x on inode %%c" +-msgstr "błędna liczba magiczna 0x%x w i-węźle %%c" ++msgid "%s is not a number\n" ++msgstr "%s nie jest liczbą\n" + +-#: .././repair/dinode.c:2454 +-msgid " resetting magic number\n" +-msgstr " przestawiono liczbę magiczną\n" ++#: .././db/debug.c:27 ++msgid "[flagbits]" ++msgstr "[bity flag]" + +-#: .././repair/dinode.c:2458 +-msgid " would reset magic number\n" +-msgstr " liczba magiczna zostałaby przestawiona\n" ++#: .././db/debug.c:28 ++msgid "set debug option bits" ++msgstr "ustawienie bitów opcji diagnostycznych" + +-#: .././repair/dinode.c:2466 ++#: .././db/debug.c:42 + #, c-format +-msgid "bad version number 0x%x on inode %%c" +-msgstr "błędny numer wersji 0x%x w i-węźle %%c" ++msgid "bad value for debug %s\n" ++msgstr "błędna wartość diagnostyki %s\n" + +-#: .././repair/dinode.c:2471 +-msgid " resetting version number\n" +-msgstr " przestawiono numer wersji\n" ++#: .././db/dir2.c:1019 ++msgid "Unknown directory buffer type!\n" ++msgstr "Nieznany typ bufora katalogu!\n" + +-#: .././repair/dinode.c:2475 +-msgid " would reset version number\n" +-msgstr " numer wersji zostałby przestawiony\n" ++#: .././db/dir2.c:1031 ++msgid "Writing unknown directory buffer type!\n" ++msgstr "Zapis nieznanego typu bufora katalogu!\n" + +-#: .././repair/dinode.c:2485 +-#, c-format +-msgid "bad (negative) size % on inode %\n" +-msgstr "błędny (ujemny) rozmiar % w i-węźle %\n" ++#: .././db/dquot.c:37 ++msgid "[projid|gid|uid]" ++msgstr "[projid|gid|uid]" + +-#: .././repair/dinode.c:2518 +-#, c-format +-msgid "imap claims a free inode % is in use, " +-msgstr "imap odwołuje się do wolnego bloku %, który jest w użyciu, " ++#: .././db/dquot.c:38 ++msgid "set current address to project, group or user quota block" ++msgstr "ustawienie bieżącego adresu na blok limitu projektu, grupy lub użytkownika" + +-#: .././repair/dinode.c:2520 +-msgid "correcting imap and clearing inode\n" +-msgstr "poprawiono imap i wyczyszczono i-węzeł\n" ++#: .././db/dquot.c:127 ++msgid "bad option for dquot command\n" ++msgstr "błędna opcja dla polecenia dquot\n" + +-#: .././repair/dinode.c:2524 +-msgid "would correct imap and clear inode\n" +-msgstr "poprawiono by imap i wyczyszczono by i-węzeł\n" ++#: .././db/dquot.c:131 ++msgid "project" ++msgstr "projekt" + +-#: .././repair/dinode.c:2541 +-#, c-format +-msgid "bad inode format in inode %\n" +-msgstr "błędny format i-węzła w i-węźle %\n" ++#: .././db/dquot.c:131 ++msgid "group" ++msgstr "grupę" + +-#: .././repair/dinode.c:2557 +-#, c-format +-msgid "Bad flags set in inode %\n" +-msgstr "Błędne flagi ustawione w i-węźle %\n" ++#: .././db/dquot.c:131 ++msgid "user" ++msgstr "użytkownika" + +-#: .././repair/dinode.c:2568 ++#: .././db/dquot.c:133 + #, c-format +-msgid "inode % has RT flag set but there is no RT device\n" +-msgstr "i-węzeł % ma ustawioną flagę RT, ale nie ma urządzenia RT\n" ++msgid "dquot command requires one %s id argument\n" ++msgstr "polecenie dquot wymaga jednego argumentu identyfikującego %s\n" + +-#: .././repair/dinode.c:2580 ++#: .././db/dquot.c:143 + #, c-format +-msgid "inode % not rt bitmap\n" +-msgstr "i-węzeł % nie jest bitmapą rt\n" ++msgid "no %s quota inode present\n" ++msgstr "i-węzeł limitów na %s nie jest dostępny\n" + +-#: .././repair/dinode.c:2594 ++#: .././db/dquot.c:148 + #, c-format +-msgid "directory flags set on non-directory inode %\n" +-msgstr "flagi katalogu ustawione dla nie będącego katalogiem i-węzła %\n" ++msgid "bad %s id for dquot %s\n" ++msgstr "błędna liczba identyfikująca %s dla dquot %s\n" + +-#: .././repair/dinode.c:2608 ++#: .././db/dquot.c:160 + #, c-format +-msgid "file flags set on non-file inode %\n" +-msgstr "flagi pliku ustawione dla nie będącego plikiem i-węzła %\n" ++msgid "no %s quota data for id %d\n" ++msgstr "brak danych limitów na %s dla id %d\n" + +-#: .././repair/dinode.c:2617 +-msgid ", fixing bad flags.\n" +-msgstr ", poprawiono błędne flagi.\n" ++#: .././db/echo.c:27 ++msgid "[args]..." ++msgstr "[argumenty]..." + +-#: .././repair/dinode.c:2621 +-msgid ", would fix bad flags.\n" +-msgstr ", poprawionoby błędne flagi.\n" ++#: .././db/echo.c:28 ++msgid "echo arguments" ++msgstr "wypisanie argumentów" + +-#: .././repair/dinode.c:2672 +-#, c-format +-msgid "bad inode type %#o inode %\n" +-msgstr "błędny typ i-węzła %#o w i-węźle %\n" ++#: .././db/faddr.c:40 .././db/faddr.c:63 ++msgid "no current allocation group, cannot set new addr\n" ++msgstr "brak bieżącej grupy alokacji, nie można ustawić nowego adresu\n" + +-#: .././repair/dinode.c:2696 +-#, c-format +-msgid "bad non-zero extent size %u for non-realtime/extsize inode %, " +-msgstr "błędny niezerowy rozmiar ekstentu %u dla extsize i-węzła nie-realtime %, " ++#: .././db/faddr.c:45 .././db/faddr.c:117 .././db/faddr.c:148 ++#: .././db/faddr.c:180 .././db/faddr.c:202 .././db/faddr.c:232 ++#: .././db/faddr.c:262 .././db/faddr.c:316 .././db/faddr.c:335 ++msgid "null block number, cannot set new addr\n" ++msgstr "pusty numer bloku, nie można ustawić nowego adresu\n" + +-#: .././repair/dinode.c:2699 +-msgid "resetting to zero\n" +-msgstr "przestawiono na zero\n" ++#: .././db/faddr.c:68 .././db/faddr.c:353 .././db/faddr.c:371 ++#: .././db/faddr.c:389 ++msgid "null inode number, cannot set new addr\n" ++msgstr "pusty numer i-węzła, nie można ustawić nowego adresu\n" + +-#: .././repair/dinode.c:2703 +-msgid "would reset to zero\n" +-msgstr "zostałby przestawiony na zero\n" ++#: .././db/faddr.c:88 ++msgid "null attribute block number, cannot set new addr\n" ++msgstr "pusty number bloku atrybutów, nie można ustawić nowego adresu\n" ++ ++#: .././db/faddr.c:94 ++msgid "attribute block is unmapped\n" ++msgstr "blok atrybutów jest nieodwzorowany\n" ++ ++#: .././db/faddr.c:123 .././db/faddr.c:155 .././db/faddr.c:208 ++#: .././db/faddr.c:239 ++msgid "file block is unmapped\n" ++msgstr "blok pliku jest nieodwzorowany\n" ++ ++#: .././db/faddr.c:285 ++msgid "null directory block number, cannot set new addr\n" ++msgstr "pusty numer bloku katalogu, nie można ustawić nowego adresu\n" ++ ++#: .././db/faddr.c:292 ++msgid "directory block is unmapped\n" ++msgstr "blok katalogu jest nieodwzorowany\n" + +-#: .././repair/dinode.c:2759 ++#: .././db/flist.c:149 + #, c-format +-msgid "problem with directory contents in inode %\n" +-msgstr "problem z zawartością katalogu w i-węźle %\n" ++msgid "field %s not found\n" ++msgstr "nie znaleziono pola %s\n" + +-#: .././repair/dinode.c:2767 ++#: .././db/flist.c:159 + #, c-format +-msgid "problem with symbolic link in inode %\n" +-msgstr "problem z dowiązaniem symbolicznym w i-węźle %\n" ++msgid "no elements in %s\n" ++msgstr "brak elementów w %s\n" + +-#: .././repair/dinode.c:2862 ++#: .././db/flist.c:165 + #, c-format +-msgid "processing inode %d/%d\n" +-msgstr "analiza i-węzła %d/%d\n" ++msgid "indices %d-%d for field %s out of range %d-%d\n" ++msgstr "indeksy %d-%d dla pola %s są poza zakresem %d-%d\n" + +-#: .././repair/sb.c:100 +-msgid "" +-"\n" +-"attempting to find secondary superblock...\n" +-msgstr "" +-"\n" +-"próba odnalezienia zapasowego superbloku...\n" ++#: .././db/flist.c:173 ++#, c-format ++msgid "index %d for field %s out of range %d-%d\n" ++msgstr "indeks %d dla pola %s jest poza zakresem %d-%d\n" + +-#: .././repair/sb.c:105 +-msgid "error finding secondary superblock -- failed to memalign buffer\n" +-msgstr "błąd podczas szukania zapasowego superbloku - nie udało się memalign bufora\n" ++#: .././db/flist.c:187 ++#, c-format ++msgid "field %s is not an array\n" ++msgstr "pole %s nie jest tablicą\n" + +-#: .././repair/sb.c:142 +-msgid "found candidate secondary superblock...\n" +-msgstr "znaleziono potencjalny zapasowy superblok...\n" ++#: .././db/flist.c:200 ++#, c-format ++msgid "field %s has no subfields\n" ++msgstr "pole %s nie ma podpól\n" + +-#: .././repair/sb.c:154 +-msgid "verified secondary superblock...\n" +-msgstr "sprawdzono zapasowy superblok...\n" +- +-#: .././repair/sb.c:159 +-msgid "unable to verify superblock, continuing...\n" +-msgstr "nie udało się sprawdzić superbloku, kontynuacja...\n" +- +-#: .././repair/sb.c:457 +-msgid "failed to memalign superblock buffer\n" +-msgstr "nie udało się wykonać memalign dla bufora superbloku\n" +- +-#: .././repair/sb.c:464 +-msgid "couldn't seek to offset 0 in filesystem\n" +-msgstr "nie udało się wykonać seek na offset 0 w systemie plików\n" +- +-#: .././repair/sb.c:472 +-msgid "primary superblock write failed!\n" +-msgstr "zapis głównego superbloku nie powiódł się!\n" +- +-#: .././repair/sb.c:490 ++#: .././db/flist.c:220 + #, c-format +-msgid "error reading superblock %u -- failed to memalign buffer\n" +-msgstr "błąd podczas odczytu superbloku %u - nie udało się wykonać memalign dla bufora\n" ++msgid "fl@%p:\n" ++msgstr "fl@%p:\n" + +-#: .././repair/sb.c:500 ++#: .././db/flist.c:221 + #, c-format +-msgid "error reading superblock %u -- seek to offset % failed\n" +-msgstr "błąd podczas odczytu superbloku %u - seek na offset % nie powiódł się\n" ++msgid "\tname=%s, fld=%p, child=%p, sibling=%p\n" ++msgstr "\tnazwa=%s, fld=%p, child=%p, sibling=%p\n" + +-#: .././repair/sb.c:508 ++#: .././db/flist.c:223 + #, c-format +-msgid "superblock read failed, offset %, size %d, ag %u, rval %d\n" +-msgstr "odczyt superbloku nie powiódł się, offset %, rozmiar %d, ag %u, rval %d\n" +- +-#: .././repair/sb.c:554 +-msgid "couldn't malloc geometry structure\n" +-msgstr "nie udało się przydzielić struktury geometrii\n" +- +-#: .././repair/sb.c:706 +-msgid "calloc failed in verify_set_primary_sb\n" +-msgstr "calloc nie powiodło się w verify_set_primary_sb\n" ++msgid "\tlow=%d, high=%d, flags=%d (%s%s), offset=%d\n" ++msgstr "\tlow=%d, high=%d, flagi=%d (%s%s), offset=%d\n" + +-#: .././repair/sb.c:777 +-msgid "" +-"Only two AGs detected and they do not match - cannot validate filesystem geometry.\n" +-"Use the -o force_geometry option to proceed.\n" +-msgstr "" +-"Wykryto tylko dwie AG i nie zgadzają się - nie można sprawdzić poprawności geometrii systemu plików.\n" +-"Proszę użyć opcji -o force_geometry, aby kontynuować.\n" ++#: .././db/flist.c:225 ++msgid "oklow " ++msgstr "oklow " + +-#: .././repair/sb.c:793 +-msgid "" +-"Only one AG detected - cannot validate filesystem geometry.\n" +-"Use the -o force_geometry option to proceed.\n" +-msgstr "" +-"Wykryto tylko dwie AG - nie można sprawdzić poprawności geometrii systemu plików.\n" +-"Proszę użyć opcji -o force_geometry, aby kontynuować.\n" ++#: .././db/flist.c:226 ++msgid "okhigh" ++msgstr "okhigh" + +-#: .././repair/sb.c:808 +-msgid "Not enough matching superblocks - cannot proceed.\n" +-msgstr "Za mało pasujących superbloków - nie można kontynuować.\n" ++#: .././db/flist.c:227 ++#, c-format ++msgid "\tfld->name=%s, fld->ftyp=%d (%s)\n" ++msgstr "\tfld->name=%s, fld->ftyp=%d (%s)\n" + +-#: .././repair/sb.c:823 +-msgid "could not read superblock\n" +-msgstr "nie udało się odczytać superbloku\n" ++#: .././db/flist.c:230 ++#, c-format ++msgid "\tfld->flags=%d (%s%s%s%s%s)\n" ++msgstr "\tfld->flags=%d (%s%s%s%s%s)\n" + +-#: .././repair/phase3.c:45 ++#: .././db/flist.c:322 + #, c-format +-msgid "cannot read agi block % for ag %u\n" +-msgstr "nie można odczytać bloku agi % dla ag %u\n" ++msgid "bad syntax in field name %s\n" ++msgstr "błędna składnia w nazwie pola %s\n" + +-#: .././repair/phase3.c:127 +-msgid "Phase 3 - for each AG...\n" +-msgstr "Faza 3 - dla każdej AG...\n" ++#: .././db/flist.c:378 ++#, c-format ++msgid "missing closing quote %s\n" ++msgstr "brak cudzysłowu zamykającego %s\n" + +-#: .././repair/phase3.c:129 +-msgid " - scan and clear agi unlinked lists...\n" +-msgstr " - przeszukiwanie i czyszczenie odłączonych list agi...\n" ++#: .././db/flist.c:395 ++#, c-format ++msgid "bad character in field %s\n" ++msgstr "błędny znak w polu %s\n" + +-#: .././repair/phase3.c:131 +-msgid " - scan (but don't clear) agi unlinked lists...\n" +-msgstr " - przeszukiwanie (ale nie czyszczenie) odłączonych list agi...\n" ++#: .././db/fprint.c:99 ++msgid "null" ++msgstr "nic" + +-#: .././repair/phase3.c:151 +-msgid " - process known inodes and perform inode discovery...\n" +-msgstr " - przetwarzanie znanych i-węzłów i rozpoznawanie i-węzłów...\n" ++#: .././db/frag.c:173 ++#, c-format ++msgid "actual %llu, ideal %llu, fragmentation factor %.2f%%\n" ++msgstr "obecnie %llu, idealnie %llu, współczynnik fragmentacji %.2f%%\n" + +-#: .././repair/phase3.c:162 +-msgid " - process newly discovered inodes...\n" +-msgstr " - przetwarzanie nowo rozpoznanych i-węzłów...\n" ++#: .././db/frag.c:214 ++msgid "bad option for frag command\n" ++msgstr "błędna opcja dla polecenia frag\n" + +-#: .././repair/scan.c:90 .././repair/scan.c:135 ++#: .././db/frag.c:350 + #, c-format +-msgid "can't read btree block %d/%d\n" +-msgstr "nie można odczytać bloku b-drzewa %d/%d\n" ++msgid "inode %lld actual %lld ideal %lld\n" ++msgstr "i-węzeł %lld obecnie %lld idealnie %lld\n" + +-#: .././repair/scan.c:197 ++#: .././db/frag.c:444 .././db/frag.c:454 + #, c-format +-msgid "bad magic # %#x in inode % (%s fork) bmbt block %\n" +-msgstr "błędna liczba magiczna %#x w i-węźle % (gałąź %s) blok bmbt %\n" ++msgid "invalid numrecs (%u) in %s block\n" ++msgstr "błędne numrecs (%u) w bloku %s\n" + +-#: .././repair/scan.c:203 ++#: .././db/freesp.c:110 + #, c-format +-msgid "expected level %d got %d in inode %, (%s fork) bmbt block %\n" +-msgstr "oczekiwano poziomu %d, a uzyskano %d w i-węźle %, (gałęzi %s) blok bmbt %\n" ++msgid "total free extents %lld\n" ++msgstr "razem wolnych ekstentów: %lld\n" + +-#: .././repair/scan.c:223 ++#: .././db/freesp.c:111 + #, c-format +-msgid "" +-"bad fwd (right) sibling pointer (saw % parent block says %)\n" +-"\tin inode % (%s fork) bmap btree block %\n" +-msgstr "" +-"błędny wskaźnik w przód (prawy) (widziano %, blok nadrzędny mówi %)\n" +-"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" ++msgid "total free blocks %lld\n" ++msgstr "razem wolnych bloków: %lld\n" + +-#: .././repair/scan.c:233 ++#: .././db/freesp.c:112 + #, c-format +-msgid "" +-"bad back (left) sibling pointer (saw %llu parent block says %)\n" +-"\tin inode % (%s fork) bmap btree block %\n" +-msgstr "" +-"błędny wskaźnik wstecz (lewy) (widziano %llu, blok nadrzędny mówi %)\n" +-"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" ++msgid "average free extent size %g\n" ++msgstr "średni rozmiar wolnego ekstentu: %g\n" + +-#: .././repair/scan.c:248 +-#, c-format +-msgid "" +-"bad back (left) sibling pointer (saw %llu should be NULL (0))\n" +-"\tin inode % (%s fork) bmap btree block %\n" +-msgstr "" +-"błędny wskaźnik wstecz (lewy) (widziano %llu, powinien być NULL (0))\n" +-"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" ++#: .././db/freesp.c:203 ++msgid "freesp arguments: [-bcds] [-a agno] [-e binsize] [-h h1]... [-m binmult]\n" ++msgstr "argumenty freesp: [-bcds] [-a agno] [-e binsize] [-h h1]... [-m binmult]\n" + +-#: .././repair/scan.c:289 +-#, c-format +-msgid "inode 0x%bmap block 0x% claimed, state is %d\n" +-msgstr "i-węzeł 0x% blok bmap 0x% przypisany, stan to %d\n" ++#: .././db/freesp.c:427 ++msgid "from" ++msgstr "od" + +-#: .././repair/scan.c:296 +-#, c-format +-msgid "inode 0x% bmap block 0x% claimed, state is %d\n" +-msgstr "i-węzeł 0x% blok bmap 0x% przypisany, stan to %d\n" ++#: .././db/freesp.c:427 ++msgid "to" ++msgstr "do" + +-#: .././repair/scan.c:311 +-#, c-format +-msgid "bad state %d, inode % bmap block 0x%\n" +-msgstr "błędny stan %d, i-węzeł % blok bmap 0x%\n" ++#: .././db/freesp.c:427 .././repair/progress.c:26 ++msgid "extents" ++msgstr "ekstentów" + +-#: .././repair/scan.c:338 .././repair/scan.c:389 +-#, c-format +-msgid "inode % bad # of bmap records (%u, min - %u, max - %u)\n" +-msgstr "błędna liczba rekordów bmap w i-węźle % (%u, minimum - %u, maksimum - %u)\n" ++#: .././db/freesp.c:427 .././repair/progress.c:18 ++msgid "blocks" ++msgstr "bloków" + +-#: .././repair/scan.c:368 +-#, c-format +-msgid "out-of-order bmap key (file offset) in inode %, %s fork, fsbno %\n" +-msgstr "uszkodzony klucz bmap (offset pliku) w i-węźle %, gałęzi %s, fsbno %\n" ++#: .././db/freesp.c:427 ++msgid "pct" ++msgstr "proc." + +-#: .././repair/scan.c:433 +-#, c-format +-msgid "" +-"correcting bt key (was %llu, now %) in inode %\n" +-"\t\t%s fork, btree block %\n" +-msgstr "" +-"poprawiono klucz bt (było %llu, jest %) w i-węźle %\n" +-"\t\tgałąź %s, blok b-drzewa %\n" ++#: .././db/hash.c:30 ++msgid "string" ++msgstr "łańcuch" + +-#: .././repair/scan.c:445 +-#, c-format ++#: .././db/hash.c:31 ++msgid "calculate hash value" ++msgstr "obliczenie wartości skrótu" ++ ++#: .././db/hash.c:37 + msgid "" +-"bad btree key (is %llu, should be %) in inode %\n" +-"\t\t%s fork, btree block %\n" ++"\n" ++" 'hash' prints out the calculated hash value for a string using the\n" ++"directory/attribute code hash function.\n" ++"\n" ++" Usage: \"hash \"\n" ++"\n" + msgstr "" +-"błędny klucz b-drzewa (jest %llu, powinno być %) w i-węźle %\n" +-"\t\tgałąź %s, blok b-drzewa %\n" ++"\n" ++" 'hash' wypisuje wartość skrótu dla łańcucha obliczoną przy użyciu funkcji\n" ++" haszującej dla katalogów/atrybutów.\n" ++"\n" ++" Składnia: \"hash <łańcuch>\"\n" ++"\n" ++ ++#: .././db/help.c:30 .././db/io.c:48 .././libxcmd/help.c:92 ++msgid "[command]" ++msgstr "[polecenie]" ++ ++#: .././db/help.c:31 .././libxcmd/help.c:93 ++msgid "help for one or all commands" ++msgstr "opis dla jednego lub wszystkich poleceń" + +-#: .././repair/scan.c:463 ++#: .././db/help.c:40 .././libxcmd/help.c:33 + #, c-format + msgid "" +-"bad fwd (right) sibling pointer (saw % should be NULLDFSBNO)\n" +-"\tin inode % (%s fork) bmap btree block %\n" ++"\n" ++"Use 'help commandname' for extended help.\n" + msgstr "" +-"błędny wskaźnik w przód (prawy) (widziano %, powinien być NULLDFSBNO)\n" +-"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" ++"\n" ++"Rozszerzony opis można uzyskać przez 'help nazwa_polecenia'.\n" + +-#: .././repair/scan.c:537 ++#: .././db/help.c:89 + #, c-format +-msgid "bad magic # %#x in bt%s block %d/%d\n" +-msgstr "błędna liczba magiczna %#x w bloku bt%s %d/%d\n" ++msgid "(or %s) " ++msgstr "(lub %s) " + +-#: .././repair/scan.c:555 ++#: .././db/init.c:47 + #, c-format +-msgid "expected level %d got %d in bt%s block %d/%d\n" +-msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku bt%s %d/%d\n" ++msgid "Usage: %s [-ifFrxV] [-p prog] [-l logdev] [-c cmd]... device\n" ++msgstr "Składnia: %s [-ifFrxV] [-p prog] [-l urz-log] [-c polecenie]... urządzenie\n" + +-#: .././repair/scan.c:569 +-#, c-format +-msgid "%s freespace btree block claimed (state %d), agno %d, bno %d, suspect %d\n" +-msgstr "blok b-drzewa wolnego miejsca %s przypisany (stan %d), agno %d, bno %d, podejrzany %d\n" ++#: .././db/init.c:114 ++msgid "" ++"\n" ++"fatal error -- couldn't initialize XFS library\n" ++msgstr "" ++"\n" ++"błąd krytyczny - nie udało się zainicjować biblioteki XFS\n" + +-#: .././repair/scan.c:589 .././repair/scan.c:688 ++#: .././db/init.c:129 + #, c-format +-msgid "bad btree nrecs (%u, min=%u, max=%u) in bt%s block %u/%u\n" +-msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w bt%s, blok %u/%u\n" ++msgid "%s: %s is invalid (cannot read first 512 bytes)\n" ++msgstr "%s: %s jest nieprawidłowy (nie można odczytać pierwszych 512 bajtów)\n" + +-#: .././repair/scan.c:607 ++#: .././db/init.c:141 + #, c-format +-msgid "invalid start block %u in record %u of %s btree block %u/%u\n" +-msgstr "błędny blok początkowy %u w rekordzie %u bloku b-drzewa %s %u/%u\n" ++msgid "%s: %s is not a valid XFS filesystem (unexpected SB magic number 0x%08x)\n" ++msgstr "%s: %s nie jest poprawnym systemem plików XFS (nieoczekiwana liczba magiczna SB 0x%08x)\n" + +-#: .././repair/scan.c:613 ++#: .././db/init.c:144 + #, c-format +-msgid "invalid length %u in record %u of %s btree block %u/%u\n" +-msgstr "błędna długość %u w rekordzie %u bloku b-drzewa %s %u/%u\n" ++msgid "Use -F to force a read attempt.\n" ++msgstr "Opcja -F pozwala wymusić próbę odczytu.\n" + +-#: .././repair/scan.c:621 .././db/check.c:4315 ++#: .././db/init.c:153 + #, c-format +-msgid "out-of-order bno btree record %d (%u %u) block %u/%u\n" +-msgstr "rekord b-drzewa bno poza kolejnością: %d (%u %u), blok %u/%u\n" ++msgid "%s: device %s unusable (not an XFS filesystem?)\n" ++msgstr "%s: urządzenie %s nie nadaje się do użycia (to nie jest system plików XFS?)\n" + +-#: .././repair/scan.c:633 .././db/check.c:4392 ++#: .././db/init.c:167 + #, c-format +-msgid "out-of-order cnt btree record %d (%u %u) block %u/%u\n" +-msgstr "rekord b-drzewa cnt poza kolejnością: %d (%u %u), blok %u/%u\n" ++msgid "%s: cannot init perag data (%d). Continuing anyway.\n" ++msgstr "%s: nie można zainicjować danych perag (%d). Kontynuacja mimo wszystko.\n" + +-#: .././repair/scan.c:658 ++#: .././db/inode.c:412 + #, c-format +-msgid "block (%d,%d-%d) multiply claimed by %s space tree, state - %d\n" +-msgstr "blok (%d,%d-%d) wielokrotnie przypisany do drzewa miejsca %s, stan - %d\n" ++msgid "bad value for inode number %s\n" ++msgstr "błędna wartość numeru i-węzła %s\n" + +-#: .././repair/scan.c:755 ++#: .././db/inode.c:419 + #, c-format +-msgid "badly aligned inode rec (starting inode = %)\n" +-msgstr "błędnie wyrównany rekord i-węzła (początkowy i-węzeł = %)\n" ++msgid "current inode number is %lld\n" ++msgstr "numer bieżącego i-węzła to %lld\n" + +-#: .././repair/scan.c:771 ++#: .././db/inode.c:654 + #, c-format +-msgid "bad starting inode # (% (0x%x 0x%x)) in ino rec, skipping rec\n" +-msgstr "błędny numer początkowego i-węzła (% (0x%x 0x%x)) w rekordzie i-węzła, pominięto rekord\n" ++msgid "bad inode number %lld\n" ++msgstr "błędny numer i-węzła %lld\n" + +-#: .././repair/scan.c:779 +-#, c-format +-msgid "bad ending inode # (% (0x%x 0x%zx)) in ino rec, skipping rec\n" +-msgstr "błędny numer końcowego i-węzła (% (0x%x 0x%zx)) w rekordzie i-węzła, pominięto rekord\n" ++#: .././db/input.c:43 ++msgid "source-file" ++msgstr "plik-źródłowy" + +-#: .././repair/scan.c:804 +-#, c-format +-msgid "inode chunk claims used block, inobt block - agno %d, bno %d, inopb %d\n" +-msgstr "część i-węzła odwołuje się do używanego bloku, blok inobt - agno %d, bno %d, inopb %d\n" ++#: .././db/input.c:44 ++msgid "get commands from source-file" ++msgstr "odczyt poleceń z pliku-źródłowego" + +-#: .././repair/scan.c:826 ++#: .././db/input.c:320 + #, c-format +-msgid "inode rec for ino % (%d/%d) overlaps existing rec (start %d/%d)\n" +-msgstr "rekord i-węzła dla i-węzła % (%d/%d) nachodzi na istniejący rekord (początek %d/%d)\n" ++msgid "can't open %s\n" ++msgstr "nie można otworzyć %s\n" + +-#: .././repair/scan.c:873 +-#, c-format +-msgid "ir_freecount/free mismatch, inode chunk %d/%u, freecount %d nfree %d\n" +-msgstr "niezgodność ir_freecount/free, porcja i-węzłów %d/%u, freecount %d nfree %d\n" ++#: .././db/io.c:46 ++msgid "pop location from the stack" ++msgstr "odtworzenie pozycji ze stosu" + +-#: .././repair/scan.c:919 +-#, c-format +-msgid "bad magic # %#x in inobt block %d/%d\n" +-msgstr "błędna liczba magiczna %#x w bloku inobt %d/%d\n" ++#: .././db/io.c:49 ++msgid "push location to the stack" ++msgstr "zapisanie pozycji na stos" + +-#: .././repair/scan.c:927 +-#, c-format +-msgid "expected level %d got %d in inobt block %d/%d\n" +-msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku inobt %d/%d\n" ++#: .././db/io.c:52 ++msgid "view the location stack" ++msgstr "podejrzenie stosu pozycji" + +-#: .././repair/scan.c:949 +-#, c-format +-msgid "inode btree block claimed (state %d), agno %d, bno %d, suspect %d\n" +-msgstr "blok b-drzewa i-węzłów przypisany (stan %d), agno %d, bno %d, podejrzany %d\n" ++#: .././db/io.c:55 ++msgid "move forward to next entry in the position ring" ++msgstr "przejście na następną pozycję w kręgu" + +-#: .././repair/scan.c:972 +-#, c-format +-msgid "dubious inode btree block header %d/%d\n" +-msgstr "wątpliwy nagłówek bloku b-drzewa i-węzłów %d/%d\n" ++#: .././db/io.c:58 ++msgid "move to the previous location in the position ring" ++msgstr "przejście na poprzednią pozycję w kręgu" + +-#: .././repair/scan.c:1065 +-#, c-format +-msgid "can't read agfl block for ag %d\n" +-msgstr "nie można odczytać bloku agfl dla ag %d\n" ++#: .././db/io.c:61 ++msgid "show position ring or move to a specific entry" ++msgstr "pokazanie kręgu pozycji lub przejście do określonego wpisu" + +-#: .././repair/scan.c:1076 ++#: .././db/io.c:91 + #, c-format +-msgid "bad agbno %u in agfl, agno %d\n" +-msgstr "błędne agbno %u w agfl, agno %d\n" ++msgid "can't set block offset to %d\n" ++msgstr "nie można ustawić offsetu bloku na %d\n" + +-#: .././repair/scan.c:1085 +-#, c-format +-msgid "freeblk count %d != flcount %d in ag %d\n" +-msgstr "liczba freeblk %d != flcount %d w ag %d\n" ++#: .././db/io.c:104 ++msgid "can't pop anything from I/O stack\n" ++msgstr "nie można pobrać nic ze stosu we/wy\n" + +-#: .././repair/scan.c:1107 +-#, c-format +-msgid "bad agbno %u for btbno root, agno %d\n" +-msgstr "błędne agbno %u dla głównego btbno, agno %d\n" ++#: .././db/io.c:138 ++msgid "" ++"\n" ++" Changes the address and data type to the first entry on the stack.\n" ++"\n" ++msgstr "" ++"\n" ++" Zmiana adresu i typu danych na pierwszy wpis ze stosu.\n" ++"\n" + +-#: .././repair/scan.c:1116 ++#: .././db/io.c:152 + #, c-format +-msgid "bad agbno %u for btbcnt root, agno %d\n" +-msgstr "błędne agbno %u dla głównego btbcnt, agno %d\n" ++msgid "\tbyte offset %lld, length %d\n" ++msgstr "\toffset w bajtach %lld, długość %d\n" + +-#: .././repair/scan.c:1121 .././db/check.c:4033 ++#: .././db/io.c:153 + #, c-format +-msgid "agf_freeblks %u, counted %u in ag %u\n" +-msgstr "agf_freeblks %u, naliczono %u w ag %u\n" ++msgid "\tbuffer block %lld (fsbno %lld), %d bb%s\n" ++msgstr "\tblok bufora %lld (fsbno %lld), %d bb%s\n" + +-#: .././repair/scan.c:1126 .././db/check.c:4040 ++#: .././db/io.c:157 .././db/io.c:508 + #, c-format +-msgid "agf_longest %u, counted %u in ag %u\n" +-msgstr "agf_longest %u, naliczono %u w ag %u\n" ++msgid "\tblock map" ++msgstr "\tmapa bloków" + +-#: .././repair/scan.c:1132 ++#: .././db/io.c:163 + #, c-format +-msgid "agf_btreeblks %u, counted % in ag %u\n" +-msgstr "agf_btreeblks %u, naliczono % w ag %u\n" ++msgid "\tinode %lld, dir inode %lld, type %s\n" ++msgstr "\ti-węzeł %lld, i-węzeł katalogu %lld, typ %s\n" + +-#: .././repair/scan.c:1151 ++#: .././db/io.c:164 .././growfs/xfs_growfs.c:82 .././logprint/log_misc.c:151 ++#: .././mkfs/xfs_mkfs.c:2085 + #, c-format +-msgid "bad agbno %u for inobt root, agno %d\n" +-msgstr "błędne agbno %u dla głównego inobt, agno %d\n" ++msgid "none" ++msgstr "brak" + +-#: .././repair/scan.c:1156 .././db/check.c:4056 +-#, c-format +-msgid "agi_count %u, counted %u in ag %u\n" +-msgstr "agi_count %u, naliczono %u w ag %u\n" ++#: .././db/io.c:174 ++msgid "no entries in location ring.\n" ++msgstr "brak wpisów w kręgu pozycji.\n" + +-#: .././repair/scan.c:1161 .././db/check.c:4063 +-#, c-format +-msgid "agi_freecount %u, counted %u in ag %u\n" +-msgstr "agi_freecount %u, naliczono %u w ag %u\n" ++#: .././db/io.c:178 ++msgid " type bblock bblen fsbno inode\n" ++msgstr " typ bblok bblen fsbno i-węzeł\n" + +-#: .././repair/scan.c:1170 ++#: .././db/io.c:232 + #, c-format +-msgid "agi unlinked bucket %d is %u in ag %u (inode=%)\n" +-msgstr "niedowiązany kubełek agi %d to %u w ag %u (i-węzeł=%)\n" ++msgid "no such command %s\n" ++msgstr "nieznane polecenie %s\n" + +-#: .././repair/scan.c:1201 ++#: .././db/io.c:236 + #, c-format +-msgid "can't get root superblock for ag %d\n" +-msgstr "nie można uzyskać głównego superbloku dla ag %d\n" ++msgid "no push form allowed for %s\n" ++msgstr "forma push niedozwolona dla %s\n" + +-#: .././repair/scan.c:1207 +-msgid "can't allocate memory for superblock\n" +-msgstr "nie można przydzielić pamięci dla superbloku\n" ++#: .././db/io.c:260 ++msgid "" ++"\n" ++" Allows you to push the current address and data type on the stack for\n" ++" later return. 'push' also accepts an additional command to execute after\n" ++" storing the current address (ex: 'push a rootino' from the superblock).\n" ++"\n" ++msgstr "" ++"\n" ++" Pozwala zapisać bieżący adres i typ danych na stos w celu późniejszego\n" ++" powrotu. 'push' akceptuje także dodatkowe polecenie do wykonania po zapisaniu\n" ++" bieżącego adresu (np. 'push a rootino' z superbloku).\n" ++"\n" + +-#: .././repair/scan.c:1217 +-#, c-format +-msgid "can't read agf block for ag %d\n" +-msgstr "nie można odczytać bloku agf dla ag %d\n" ++#: .././db/io.c:276 .././db/io.c:316 ++msgid "ring is empty\n" ++msgstr "krąg jest pusty\n" + +-#: .././repair/scan.c:1228 +-#, c-format +-msgid "can't read agi block for ag %d\n" +-msgstr "nie można odczytać bloku agi dla ag %d\n" ++#: .././db/io.c:280 ++msgid "no further entries\n" ++msgstr "brak dalszych wpisów\n" + +-#: .././repair/scan.c:1252 +-#, c-format +-msgid "reset bad sb for ag %d\n" +-msgstr "przestawiono błędny superbloku dla ag %d\n" ++#: .././db/io.c:299 ++msgid "" ++"\n" ++" The 'forward' ('f') command moves to the next location in the position\n" ++" ring, updating the current position and data type. If the current location\n" ++" is the top entry in the ring, then the 'forward' command will have\n" ++" no effect.\n" ++"\n" ++msgstr "" ++"\n" ++" Polecenie 'forward' ('f') przechodzi do następnej pozycji w kręgu,\n" ++" uaktualniając bieżącą pozycję i typ danych. Jeśli bieżąca pozycja\n" ++" jest szczytowym wpisem w kręgu, polecenie nie przyniesie efektu.\n" ++"\n" + +-#: .././repair/scan.c:1255 +-#, c-format +-msgid "would reset bad sb for ag %d\n" +-msgstr "błędny superblok dla ag %d zostałby przestawiony\n" ++#: .././db/io.c:320 ++msgid "no previous entries\n" ++msgstr "brak poprzednich wpisów\n" + +-#: .././repair/scan.c:1260 +-#, c-format +-msgid "reset bad agf for ag %d\n" +-msgstr "przestawiono błędne agf dla ag %d\n" ++#: .././db/io.c:339 ++msgid "" ++"\n" ++" The 'back' ('b') command moves to the previous location in the position\n" ++" ring, updating the current position and data type. If the current location\n" ++" is the last entry in the ring, then the 'back' command will have no effect.\n" ++"\n" ++msgstr "" ++"\n" ++" Polecenie 'back' ('b') przechodzi do poprzedniej pozycji w kręgu,\n" ++" uaktualniając bieżącą pozycję i typ danych. Jeśli bieżąca pozycja\n" ++" jest ostatnim wpisem w kręgu, polecenie nie przyniesie efektu.\n" ++"\n" + +-#: .././repair/scan.c:1263 ++#: .././db/io.c:362 + #, c-format +-msgid "would reset bad agf for ag %d\n" +-msgstr "błędne agf dla ag %d zostałoby przestawione\n" ++msgid "invalid entry: %d\n" ++msgstr "błędny wpis: %d\n" + +-#: .././repair/scan.c:1268 ++#: .././db/io.c:381 + #, c-format +-msgid "reset bad agi for ag %d\n" +-msgstr "przestawiono błędne agi dla ag %d\n" ++msgid "" ++"\n" ++" The position ring automatically keeps track of each disk location and\n" ++" structure type for each change of position you make during your xfs_db\n" ++" session. The last %d most recent entries are kept in the ring.\n" ++"\n" ++" To display the current list of ring entries type 'ring' by itself on\n" ++" the command line. The entry highlighted by an asterisk ('*') is the\n" ++" current entry.\n" ++"\n" ++" To move to another entry in the ring type 'ring ' where is\n" ++" your desired entry from the ring position list.\n" ++"\n" ++" You may also use the 'forward' ('f') or 'back' ('b') commands to move\n" ++" to the previous or next entry in the ring, respectively.\n" ++"\n" ++" Note: Unlike the 'stack', 'push' and 'pop' commands, the ring tracks your\n" ++" location implicitly. Use the 'push' and 'pop' commands if you wish to\n" ++" store a specific location explicitly for later return.\n" ++"\n" ++msgstr "" ++"\n" ++" Krąg pozycji automatycznie śledzi każde położenie na dysku i typ struktury\n" ++" dla każdej zmiany pozycji wykonywanej podczas sesji xfs_db. Ostatenie %d\n" ++" pozycji jest trzymane w kręgu.\n" ++"\n" ++" Aby wyświetlić bieżącą listę wpisów w kręgu należy napisać w linii poleceń\n" ++" po prostu 'ring'. Wpis oznaczony gwiazdką ('*') jest wpisem bieżącym.\n" ++"\n" ++" Aby przejść do innego wpisu w kręgu, należy wpisać 'ring ', gdzie\n" ++" jest numerem pożądanego wpisu na liście pozycji.\n" ++"\n" ++" Można także używać poleceń 'forward' ('f') i 'back' ('b'), aby przenieść\n" ++" się odpowiednio na poprzedni lub następny wpis w kręgu.\n" ++"\n" ++" Uwaga: w przeciwieństwie do poleceń 'stack', 'push' i 'pop', krąg śledzi\n" ++" pozycje niejawnie. Aby zapisać jawnie dane położenie w celu późniejszego\n" ++" powrotu, należy użyć poleceń 'push' i 'pop'.\n" ++"\n" + +-#: .././repair/scan.c:1271 ++#: .././db/io.c:434 .././db/io.c:450 + #, c-format +-msgid "would reset bad agi for ag %d\n" +-msgstr "błędna agi dla ag %d zostałoby przestawione\n" ++msgid "write error: %s\n" ++msgstr "błąd zapisu: %s\n" + +-#: .././repair/scan.c:1281 ++#: .././db/io.c:440 .././db/io.c:456 + #, c-format +-msgid "bad uncorrected agheader %d, skipping ag...\n" +-msgstr "błędny nie poprawiony agheader %d, pominięto ag...\n" ++msgid "read error: %s\n" ++msgstr "błąd odczytu: %s\n" + +-#: .././repair/scan.c:1340 +-msgid "no memory for ag header counts\n" +-msgstr "brak pamięci na liczniki nagłówków ag\n" ++#: .././db/io.c:463 ++msgid "nothing to write\n" ++msgstr "nie ma nic do zapisania\n" + +-#: .././repair/scan.c:1363 +-#, c-format +-msgid "sb_icount %, counted %\n" +-msgstr "sb_icount %, naliczono %\n" ++#: .././db/io.c:493 ++msgid "set_cur no stack element to set\n" ++msgstr "set_cur: brak elementu stosu do ustawienia\n" + +-#: .././repair/scan.c:1368 ++#: .././db/io.c:507 + #, c-format +-msgid "sb_ifree %, counted %\n" +-msgstr "sb_ifree %, naliczono %\n" ++msgid "xfs_db got a bbmap for %lld\n" ++msgstr "xfs_db ma bbmap dla %lld\n" ++ ++#: .././db/io.c:583 ++msgid "" ++"\n" ++" The stack is used to explicitly store your location and data type\n" ++" for later return. The 'push' operation stores the current address\n" ++" and type on the stack, the 'pop' operation returns you to the\n" ++" position and datatype of the top entry on the stack.\n" ++"\n" ++" The 'stack' allows explicit location saves, see 'ring' for implicit\n" ++" position tracking.\n" ++"\n" ++msgstr "" ++"\n" ++" Stos służy do jawnego zapisania pozycji i typu danych w celu późniejszego\n" ++" powrotu. Operacja 'push' zapisuje bieżący adres i typ na stosie, a operacja\n" ++" 'pop' odtwarza bieżący adres i typ danych z wierzchu stosu.\n" ++"\n" ++" Stos ('stack') pozwala na jawne zapisywanie pozycji; domyślnie pozycje są\n" ++" śledzone poprzez krąg (p. 'ring').\n" ++"\n" + +-#: .././repair/scan.c:1373 ++#: .././db/malloc.c:27 + #, c-format +-msgid "sb_fdblocks %, counted %\n" +-msgstr "sb_fdblocks %, naliczono %\n" ++msgid "%s: out of memory\n" ++msgstr "%s: brak pamięci\n" + +-#: .././repair/incore_ext.c:135 .././repair/incore_ext.c:562 +-msgid "couldn't allocate new extent descriptor.\n" +-msgstr "nie udało się przydzielić nowego deskryptora ekstentu.\n" +- +-#: .././repair/incore_ext.c:232 +-msgid "duplicate bno extent range\n" +-msgstr "powtórzony przedział ekstentów bno\n" +- +-#: .././repair/incore_ext.c:369 +-msgid ": duplicate bno extent range\n" +-msgstr ": powtórzony przedział ekstentów bno\n" +- +-#: .././repair/incore_ext.c:644 .././repair/incore_ext.c:699 +-msgid "duplicate extent range\n" +-msgstr "powtórzony przedział ekstentów\n" +- +-#: .././repair/incore_ext.c:752 .././repair/incore_ext.c:756 +-msgid "couldn't malloc dup extent tree descriptor table\n" +-msgstr "nie udało się przydzielić tablicy deskryptorów drzewa powtórzonych ekstentów\n" +- +-#: .././repair/incore_ext.c:761 +-msgid "couldn't malloc free by-bno extent tree descriptor table\n" +-msgstr "nie udało się przydzielić tablicy deskryptorów drzewa wolnych ekstentów wg bno\n" +- +-#: .././repair/incore_ext.c:766 +-msgid "couldn't malloc free by-bcnt extent tree descriptor table\n" +-msgstr "nie udało się przydzielić tablicy deskryptorów drzewa wolnych ekstentów wg bcnt\n" +- +-#: .././repair/incore_ext.c:772 +-msgid "couldn't malloc bno extent tree descriptor\n" +-msgstr "nie udało się przydzielić deskryptora drzewa ekstentów wg bno\n" +- +-#: .././repair/incore_ext.c:776 +-msgid "couldn't malloc bcnt extent tree descriptor\n" +-msgstr "nie udało się przydzielić deskryptora drzewa ekstentów wg bcnt\n" ++#: .././db/metadump.c:59 ++msgid "[-e] [-g] [-m max_extent] [-w] [-o] filename" ++msgstr "[-e] [-g] [-m max_extent] [-w] [-o] nazwa-pliku" + +-#: .././repair/incore_ext.c:787 +-msgid "couldn't malloc dup rt extent tree descriptor\n" +-msgstr "nie udało się przydzielić deskryptora drzewa powtórzonych ekstentów rt\n" ++#: .././db/metadump.c:60 ++msgid "dump metadata to a file" ++msgstr "zrzut metadanych do pliku" + +-#: .././repair/bmap.c:53 ++#: .././db/metadump.c:90 + #, c-format + msgid "" +-"Number of extents requested in blkmap_alloc (%d) overflows 32 bits.\n" +-"If this is not a corruption, then you will need a 64 bit system\n" +-"to repair this filesystem.\n" ++"\n" ++" The 'metadump' command dumps the known metadata to a compact file suitable\n" ++" for compressing and sending to an XFS maintainer for corruption analysis \n" ++" or xfs_repair failures.\n" ++"\n" ++" Options:\n" ++" -e -- Ignore read errors and keep going\n" ++" -g -- Display dump progress\n" ++" -m -- Specify max extent size in blocks to copy (default = %d blocks)\n" ++" -o -- Don't obfuscate names and extended attributes\n" ++" -w -- Show warnings of bad metadata information\n" ++"\n" + msgstr "" +-"Liczba ekstentów żądanych w blkmap_alloc (%d) przepełnia 32 bity.\n" +-"Jeśli nie jest to efekt uszkodzenia, do naprawy tego systemu plików\n" +-"niezbędny jest system 64-bitowy.\n" ++"\n" ++" Polecenie 'metadump' zrzuca znane metadane do zwięzłego pliku nadającego się\n" ++" do skompresowania i wysłania prowadzącym projekt XFS w celu analizy uszkodzeń\n" ++" lub błędów xfs_repair.\n" ++"\n" ++" Opcje:\n" ++" -e - ignorowanie błędów odczytu i kontynuowanie\n" ++" -g - wyświetlanie postępu\n" ++" -m - określenie maksymalnego rozmiaru ekstentu (w blokach) do skopiowania\n" ++" (domyślnie %d bloków)\n" ++" -o - bez zaciemniania nazw i rozszerzonych atrybutów\n" ++" -w - wyświetlanie ostrzeżeń o błędnych metadanych\n" ++"\n" + +-#: .././repair/bmap.c:66 +-#, c-format +-msgid "malloc failed in blkmap_alloc (%zu bytes)\n" +-msgstr "malloc nie powiodło się w blkmap_alloc (%zu bajtów)\n" ++#: .././db/output.c:30 ++msgid "[stop|start ]" ++msgstr "[stop|start ]" + +-#: .././repair/bmap.c:173 +-#, c-format +-msgid "blkmap_getn malloc failed (% bytes)\n" +-msgstr "malloc w blkmap_getn nie powiodło się (% bajtów)\n" ++#: .././db/output.c:31 ++msgid "start or stop logging to a file" ++msgstr "rozpoczęcie lub zakończenie logowania do pliku" + +-#: .././repair/bmap.c:253 ++#: .././db/output.c:68 + #, c-format +-msgid "" +-"Number of extents requested in blkmap_grow (%d) overflows 32 bits.\n" +-"You need a 64 bit system to repair this filesystem.\n" +-msgstr "" +-"Liczba ekstentów żądanych w blkmap_grow (%d) przepełnia 32 bity.\n" +-"Do naprawy tego systemu plików niezbędny jest system 64-bitowy.\n" ++msgid "logging to %s\n" ++msgstr "logowanie do %s\n" + +-#: .././repair/bmap.c:261 ++#: .././db/output.c:70 .././db/output.c:77 ++msgid "no log file\n" ++msgstr "brak pliku logu\n" ++ ++#: .././db/output.c:80 + #, c-format +-msgid "" +-"Number of extents requested in blkmap_grow (%d) overflowed the\n" +-"maximum number of supported extents (%d).\n" +-msgstr "" +-"Liczba ekstentów żądanych w blkmap_grow (%d) przepełniła maksymalną\n" +-"liczbę obsługiwanych ekstentów (%d).\n" ++msgid "already logging to %s\n" ++msgstr "już ustawiono logowanie do %s\n" + +-#: .././repair/bmap.c:269 +-msgid "realloc failed in blkmap_grow\n" +-msgstr "realloc nie powiodło się w blkmap_grow\n" ++#: .././db/output.c:84 ++#, c-format ++msgid "can't open %s for writing\n" ++msgstr "nie można otworzyć %s do zapisu\n" + +-#: .././repair/attr_repair.c:105 +-msgid "entry contains illegal value in attribute named SGI_ACL_FILE or SGI_ACL_DEFAULT\n" +-msgstr "wpis zawiera niedozwoloną wartość w atrybucie SGI_ACL_FILE lub SGI_ACL_DEFAULT\n" ++#: .././db/output.c:90 ++msgid "bad log command, ignored\n" ++msgstr "błędne polecenie logowania, zignorowano\n" + +-#: .././repair/attr_repair.c:127 +-msgid "entry contains illegal value in attribute named SGI_MAC_LABEL\n" +-msgstr "wpis zawiera niedozwoloną wartość w atrybucie SGI_MAC_LABEL\n" ++#: .././db/print.c:41 ++msgid "[value]..." ++msgstr "[wartość]..." + +-#: .././repair/attr_repair.c:133 +-msgid "entry contains illegal value in attribute named SGI_CAP_FILE\n" +-msgstr "wpis zawiera niedozwoloną wartość w atrybucie SGI_CAP_FILE\n" ++#: .././db/print.c:42 ++msgid "print field values" ++msgstr "wypisanie wartości pól" + +-#: .././repair/attr_repair.c:172 ++#: .././db/print.c:79 + #, c-format +-msgid "there are no attributes in the fork for inode %\n" +-msgstr "nie ma atrybutów w gałęzi dla i-węzła %\n" ++msgid "no print function for type %s\n" ++msgstr "brak funkcji wypisującej dla typu %s\n" + +-#: .././repair/attr_repair.c:180 +-#, c-format +-msgid "would junk the attribute fork since count is 0 for inode %\n" +-msgstr "gałąź atrybutów zostałaby usunięta ponieważ licznik wynosi 0 dla i-węzła %\n" ++#: .././db/print.c:153 ++msgid "(empty)\n" ++msgstr "(puste)\n" + +-#: .././repair/attr_repair.c:200 +-msgid "zero length name entry in attribute fork," +-msgstr "wpis nazwy zerowej długości w gałęzi atrybutów," ++#: .././db/print.c:215 ++msgid "(empty)" ++msgstr "(puste)" + +-#: .././repair/attr_repair.c:203 .././repair/attr_repair.c:223 +-#, c-format +-msgid " truncating attributes for inode % to %d\n" +-msgstr " ucięto atrybuty dla i-węzła % do %d\n" ++#: .././db/print.c:275 ++msgid "no arguments allowed\n" ++msgstr "argumenty nie są dozwolone\n" + +-#: .././repair/attr_repair.c:208 .././repair/attr_repair.c:229 +-#, c-format +-msgid " would truncate attributes for inode % to %d\n" +-msgstr " atrybuty dla i-węzła % zostałyby ucięte do %d\n" ++#: .././db/quit.c:27 ++msgid "exit xfs_db" ++msgstr "zakończenie xfs_db" + +-#: .././repair/attr_repair.c:220 +-msgid "name or value attribute lengths are too large,\n" +-msgstr "długości nazwy lub wartości atrybutów są zbyt duże,\n" ++#: .././db/sb.c:43 ++msgid "set current address to sb header" ++msgstr "ustawienie bieżącego adresu na nagłówek sb" + +-#: .././repair/attr_repair.c:242 +-msgid "entry contains illegal character in shortform attribute name\n" +-msgstr "wpis zawiera niedozwolony znak w nazwie atrybutu krótkiego\n" ++#: .././db/sb.c:45 ++msgid "[uuid]" ++msgstr "[uuid]" + +-#: .././repair/attr_repair.c:248 +-msgid "entry has INCOMPLETE flag on in shortform attribute\n" +-msgstr "wpis ma flagę NIEPEŁNY w atrybucie krótkim\n" ++#: .././db/sb.c:46 ++msgid "write/print FS uuid" ++msgstr "zapisanie/wypisanie uuida FS" + +-#: .././repair/attr_repair.c:265 +-#, c-format +-msgid "removing attribute entry %d for inode %\n" +-msgstr "usunięto wpis atrybutu %d dla i-węzła %\n" ++#: .././db/sb.c:48 ++msgid "[label]" ++msgstr "[etykieta]" + +-#: .././repair/attr_repair.c:277 +-#, c-format +-msgid "would remove attribute entry %d for inode %\n" +-msgstr "wpis atrybutu %d dla i-węzła % zostałby usunięty\n" ++#: .././db/sb.c:49 ++msgid "write/print FS label" ++msgstr "zapisanie/wypisanie etykiety FS" + +-#: .././repair/attr_repair.c:292 +-#, c-format +-msgid "would have corrected attribute entry count in inode % from %d to %d\n" +-msgstr "liczba wpisów atrybutów w i-węźle % zostałaby poprawiona z %d na %d\n" ++#: .././db/sb.c:51 ++msgid "[feature | [vnum fnum]]" ++msgstr "[cecha | [vnum fnum]]" + +-#: .././repair/attr_repair.c:296 +-#, c-format +-msgid "corrected attribute entry count in inode %, was %d, now %d\n" +-msgstr "poprawiono liczbę wpisów atrybutów w i-węźle % - było %d, jest %d\n" ++#: .././db/sb.c:52 ++msgid "set feature bit(s) in the sb version field" ++msgstr "ustawienie bitów cech w polu wersji sb" + +-#: .././repair/attr_repair.c:307 +-#, c-format +-msgid "would have corrected attribute totsize in inode % from %d to %d\n" +-msgstr "totsize atrybutów w i-węźle % zostałby poprawiony z %d na %d\n" ++#: .././db/sb.c:136 ++msgid "" ++"\n" ++" set allocation group superblock\n" ++"\n" ++" Example:\n" ++"\n" ++" 'sb 7' - set location to 7th allocation group superblock, set type to 'sb'\n" ++"\n" ++" Located in the first sector of each allocation group, the superblock\n" ++" contains the base information for the filesystem.\n" ++" The superblock in allocation group 0 is the primary. The copies in the\n" ++" remaining allocation groups only serve as backup for filesystem recovery.\n" ++" The icount/ifree/fdblocks/frextents are only updated in superblock 0.\n" ++"\n" ++msgstr "" ++"\n" ++" ustawienie superbloku grupy alokacji\n" ++"\n" ++" Przykład:\n" ++"\n" ++" 'sb 7' - ustawienie pozycji na superblok 7. grupy alokacji i typu na 'sb'\n" ++"\n" ++" Położony w 1. sektorze każdej grupy alokacji superblok zawiera podstawowe\n" ++" informacje o systemie plików.\n" ++" Superblok w grupie alokacji 0 jest główny. Kopie w pozostałych grupach\n" ++" alokacji służą tylko jako kopie zapasowe do odtwarzania systemu plików.\n" ++" Liczby icount/ifree/fdblocks/frextents są uaktualniane tylko w superbloku 0.\n" ++"\n" + +-#: .././repair/attr_repair.c:312 ++#: .././db/sb.c:195 + #, c-format +-msgid "corrected attribute entry totsize in inode %, was %d, now %d\n" +-msgstr "poprawiono totsize wpisu atrybutów w i-węźle % - było %d, jest %d\n" ++msgid "can't read superblock for AG %u\n" ++msgstr "nie można odczytać superbloku dla AG %u\n" + +-#: .././repair/attr_repair.c:342 ++#: .././db/sb.c:203 + #, c-format +-msgid "remote block for attributes of inode % is missing\n" +-msgstr "brak odległego bloku dla atrybutów i-węzła %\n" ++msgid "bad sb magic # %#x in AG %u\n" ++msgstr "błędna liczba magiczna superbloku %#x w AG %u\n" + +-#: .././repair/attr_repair.c:350 ++#: .././db/sb.c:208 + #, c-format +-msgid "can't read remote block for attributes of inode %\n" +-msgstr "nie można odczytać odległego bloku dla atrybutów i-węzła %\n" ++msgid "bad sb version # %#x in AG %u\n" ++msgstr "błędny numer wersji superbloku %#x w AG %u\n" + +-#: .././repair/attr_repair.c:388 +-#, c-format +-msgid "attribute entry %d in attr block %u, inode % has bad name (namelen = %d)\n" +-msgstr "wpis atrybutu %d w bloku atrybutów %u, i-węźle % ma błędną nazwę (namelen = %d)\n" ++#: .././db/sb.c:233 ++msgid "aborting - external log specified for FS with an internal log\n" ++msgstr "przerwano - podano log zewnętrzny dla systemu plików z logiem wewnętrznym\n" + +-#: .././repair/attr_repair.c:405 +-#, c-format +-msgid "bad hashvalue for attribute entry %d in attr block %u, inode %\n" +-msgstr "błędna wartość hasza dla wpisu atrybutu %d w bloku atrybutów %u, i-węźle %\n" ++#: .././db/sb.c:239 ++msgid "aborting - no external log specified for FS with an external log\n" ++msgstr "przerwano - nie podano logu zewnętrznego dla systemu plików z logiem zewnętrznym\n" + +-#: .././repair/attr_repair.c:415 +-#, c-format +-msgid "bad security value for attribute entry %d in attr block %u, inode %\n" +-msgstr "błędna wartość bezpieczeństwa dla wpisu atrybutu %d w bloku atrybutów %u, i-węźle %\n" ++#: .././db/sb.c:261 ++msgid "ERROR: cannot find log head/tail, run xfs_repair\n" ++msgstr "BŁĄD: nie odnaleziono początku/końca logu, proszę uruchomić xfs_repair\n" + +-#: .././repair/attr_repair.c:448 ++#: .././db/sb.c:266 + #, c-format +-msgid "inconsistent remote attribute entry %d in attr block %u, ino %\n" +-msgstr "niespójny wpis odległego atrybutu %d w bloku atrybutów %u, i-węźle %\n" +- +-#: .././repair/attr_repair.c:458 +-#, c-format +-msgid "cannot malloc enough for remotevalue attribute for inode %\n" +-msgstr "nie można przydzielić wystarczająco dużo dla atrybutu remotevalue dla i-węzła %\n" +- +-#: .././repair/attr_repair.c:460 +-msgid "SKIPPING this remote attribute\n" +-msgstr "POMINIĘTO ten atrybut odległy\n" ++msgid "" ++"ERROR: The filesystem has valuable metadata changes in a log which needs to\n" ++"be replayed. Mount the filesystem to replay the log, and unmount it before\n" ++"re-running %s. If you are unable to mount the filesystem, then use\n" ++"the xfs_repair -L option to destroy the log and attempt a repair.\n" ++"Note that destroying the log may cause corruption -- please attempt a mount\n" ++"of the filesystem before doing this.\n" ++msgstr "" ++"BŁĄD: system plików zawiera wartościowe zmiany metadanych w logu, który\n" ++"musi być odtworzony. Należy podmontować system plików, aby odtworzyć log,\n" ++"a następnie odmontować go przed ponownym uruchomieniem %s. Jeśli\n" ++"systemu plików nie da się podmontować, można użyć opcji -L, aby zniszczyć\n" ++"log i spróbować naprawić system plików.\n" ++"Należy zauważyć, że zniszczenie logu może spowodować uszkodzenia danych -\n" ++"proszę najpierw spróbować podmontować system plików.\n" + +-#: .././repair/attr_repair.c:466 +-#, c-format +-msgid "remote attribute get failed for entry %d, inode %\n" +-msgstr "pobranie odległego atrybutu nie powiodło się dla wpisu %d, i-węzła %\n" ++#: .././db/sb.c:283 ++msgid "Clearing log and setting UUID\n" ++msgstr "Czyszczenei logu i ustawianie UUID-a\n" + +-#: .././repair/attr_repair.c:473 +-#, c-format +-msgid "remote attribute value check failed for entry %d, inode %\n" +-msgstr "sprawdzenie wartości odległego atrybutu nie powiodło się dla wpisu %d, i-węzła %\n" ++#: .././db/sb.c:291 ++msgid "ERROR: cannot clear the log\n" ++msgstr "BŁĄD: nie można wyczyścić logu\n" + +-#: .././repair/attr_repair.c:510 +-#, c-format +-msgid "bad attribute count %d in attr block %u, inode %\n" +-msgstr "błędna liczba atrybutów %d w bloku atrybutów %u, i-węźle %\n" ++#: .././db/sb.c:302 ++msgid "" ++"\n" ++" write/print FS uuid\n" ++"\n" ++" Example:\n" ++"\n" ++" 'uuid' - print UUID\n" ++" 'uuid 01234567-0123-0123-0123-0123456789ab' - write UUID\n" ++" 'uuid generate' - generate and write\n" ++" 'uuid rewrite' - copy UUID from SB 0\n" ++"\n" ++"The print function checks the UUID in each SB and will warn if the UUIDs\n" ++"differ between AGs (the log is not checked). The write commands will\n" ++"set the uuid in all AGs to either a specified value, a newly generated\n" ++"value or the value found in the first superblock (SB 0) respectively.\n" ++"As a side effect of writing the UUID, the log is cleared (which is fine\n" ++"on a CLEANLY unmounted FS).\n" ++"\n" ++msgstr "" ++"\n" ++" zapisanie/wypisanie uuida systemu plików\n" ++"\n" ++"Przykład:\n" ++"\n" ++" 'uuid' - wypisanie UUID-a\n" ++" 'uuid 01234567-0123-0123-0123-0123456789ab' - zapisanie UUID-a\n" ++" 'uuid generate' - wygenerowanie i zapisanie\n" ++" 'uuid rewrite' - skopiowanie UUID-a z sb 0\n" ++"\n" ++"Funkcja wypisująca sprawdza UUID w każdym superbloku i ostrzega, jeśli UUID-y\n" ++"się różnią między AG (log nie jest sprawdzany). Polecenia zapisu ustawiają\n" ++"UUID we wszystkich AG odpowiednio na określoną wartość, nowo wygenerowaną\n" ++"wartość lub wartość znalezioną w pierwszym superbloku (SB 0).\n" ++"Jako efekt uboczny zapisu UUID-a czyszczony jest log (co nie jest problemem\n" ++"przy CZYSTO odmontowanym systemie plików).\n" ++"\n" + +-#: .././repair/attr_repair.c:525 +-#, c-format +-msgid "bad attribute nameidx %d in attr block %u, inode %\n" +-msgstr "błędny nameidx atrybutu %d w bloku atrybutów %u, i-węźle %\n" ++#: .././db/sb.c:354 .././db/sb.c:506 ++msgid "invalid parameters\n" ++msgstr "błędne parametry\n" + +-#: .././repair/attr_repair.c:534 ++#: .././db/sb.c:361 .././db/sb.c:513 .././db/sb.c:670 + #, c-format +-msgid "attribute entry #%d in attr block %u, inode % is INCOMPLETE\n" +-msgstr "wpis atrybutu #%d w bloku atrybutów %u, i-węźle % jest NIEPEŁNY\n" ++msgid "%s: not in expert mode, writing disabled\n" ++msgstr "%s: nie w trybie expert, zapis wyłączony\n" + +-#: .././repair/attr_repair.c:545 +-#, c-format +-msgid "attribute entry %d in attr block %u, inode % claims already used space\n" +-msgstr "wpis atrybutu %d w bloku atrybutów %u, i-węźle % odwołuje się do już użytego miejsca\n" ++#: .././db/sb.c:373 ++msgid "failed to read UUID from AG 0\n" ++msgstr "nie udało się odczytać UUID-a z AG 0\n" + +-#: .././repair/attr_repair.c:568 ++#: .././db/sb.c:378 + #, c-format +-msgid "attribute entry %d in attr block %u, inode % claims used space\n" +-msgstr "wpis atrybutu %d w bloku atrybutów %u, i-węźle % odwołuje się do używanego miejsca\n" ++msgid "old UUID = %s\n" ++msgstr "stary UUID = %s\n" + +-#: .././repair/attr_repair.c:592 +-#, c-format +-msgid "- resetting first used heap value from %d to %d in block %u of attribute fork of inode %\n" +-msgstr "- przestawiono pierwszą używaną wartość sterty z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" ++#: .././db/sb.c:381 ++msgid "invalid UUID\n" ++msgstr "błędny UUID\n" + +-#: .././repair/attr_repair.c:600 +-#, c-format +-msgid "- would reset first used value from %d to %d in block %u of attribute fork of inode %\n" +-msgstr "- pierwsza używana wartość zostałaby przestawiona z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" ++#: .././db/sb.c:390 .././db/sb.c:518 .././db/sb.c:756 ++msgid "writing all SBs\n" ++msgstr "zapisywanie wszystkich superbloków\n" + +-#: .././repair/attr_repair.c:610 ++#: .././db/sb.c:393 + #, c-format +-msgid "- resetting usedbytes cnt from %d to %d in block %u of attribute fork of inode %\n" +-msgstr "- przestawiono liczbę użytych bajtów z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" ++msgid "failed to set UUID in AG %d\n" ++msgstr "nie udało się ustawić UUID-a w AG %d\n" + +-#: .././repair/attr_repair.c:618 ++#: .././db/sb.c:398 + #, c-format +-msgid "- would reset usedbytes cnt from %d to %d in block %u of attribute fork of %\n" +-msgstr "- liczba użytych bajtów zostałaby przestawiona z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" ++msgid "new UUID = %s\n" ++msgstr "nowy UUID = %s\n" + +-#: .././repair/attr_repair.c:670 ++#: .././db/sb.c:406 + #, c-format +-msgid "can't map block %u for attribute fork for inode %\n" +-msgstr "nie można odwzorować bloku %u dla gałęzi atrybutów dla i-węzła %\n" ++msgid "failed to read UUID from AG %d\n" ++msgstr "nie udało się odczytać UUID-a z AG %d\n" + +-#: .././repair/attr_repair.c:679 ++#: .././db/sb.c:412 + #, c-format +-msgid "can't read file block %u (fsbno %) for attribute fork of inode %\n" +-msgstr "nie można odczytać bloku pliku %u (fsbno %) dla gałęzi atrybutów i-węzła %\n" ++msgid "warning: UUID in AG %d differs to the primary SB\n" ++msgstr "uwaga: UUID w AG %d różni się od głównego SB\n" + +-#: .././repair/attr_repair.c:689 +-#, c-format +-msgid "bad attribute leaf magic %#x for inode %\n" +-msgstr "błędna liczba magiczna liścia atrybutu %#x dla i-węzła %\n" ++#: .././db/sb.c:423 ++msgid "warning - external log specified for FS with an internal log\n" ++msgstr "uwaga: podano log zewnętrzny dla systemu plików z logiem wewnętrznym\n" + +-#: .././repair/attr_repair.c:720 +-#, c-format +-msgid "bad sibling back pointer for block %u in attribute fork for inode %\n" +-msgstr "błędny wskaźnik wsteczny dla bloku %u w gałęzi atrybutów dla i-węzła %\n" ++#: .././db/sb.c:426 ++msgid "warning - no external log specified for FS with an external log\n" ++msgstr "uwaga: nie podano logu zewnętrznego dla systemu plików z logiem zewnętrznym\n" + +-#: .././repair/attr_repair.c:747 ++#: .././db/sb.c:431 + #, c-format +-msgid "bad hash path in attribute fork for inode %\n" +-msgstr "błędna ścieżka hasza w gałęzi atrybutów dla i-węzła %\n" ++msgid "UUID = %s\n" ++msgstr "UUID = %s\n" + +-#: .././repair/attr_repair.c:846 +-#, c-format +-msgid "block 0 of inode % attribute fork is missing\n" +-msgstr "brak bloku 0 i-węzła % gałęzi atrybutów\n" ++#: .././db/sb.c:442 ++msgid "" ++"\n" ++" write/print FS label\n" ++"\n" ++" Example:\n" ++"\n" ++" 'label' - print label\n" ++" 'label 123456789012' - write label\n" ++" 'label --' - write an empty label\n" ++"\n" ++"The print function checks the label in each SB and will warn if the labels\n" ++"differ between AGs. The write commands will set the label in all AGs to the\n" ++"specified value. The maximum length of a label is 12 characters - use of a\n" ++"longer label will result in truncation and a warning will be issued.\n" ++"\n" ++msgstr "" ++"\n" ++" zapisanie/wypisanie etykiety systemu plików\n" ++"\n" ++" Przykład:\n" ++"\n" ++" 'label' - wypisanie etykiety\n" ++" 'label 123456789012' - zapisanie etykiety\n" ++" 'label --' - zapisanie etykiety pustej\n" ++"\n" ++"Funkcja wypisująca sprawdza etykietę w każdym superbloku i ostrzega, jeśli\n" ++"etykiety różnią się między AG. Polecenia zapisu ustawiają etykietw we\n" ++"wszystkich AG na określoną wartość. Maksymalna długość etykiety to 12 znaków;\n" ++"użycie etykiety dłuższej zaskutkuje ucięciem jej i wypisaniem ostrzeżenia.\n" ++"\n" + +-#: .././repair/attr_repair.c:853 ++#: .././db/sb.c:479 + #, c-format +-msgid "agno of attribute fork of inode % out of regular partition\n" +-msgstr "agno gałęzi atrybutów i-węzła % spoza zwykłej partycji\n" ++msgid "%s: truncating label length from %d to %d\n" ++msgstr "%s: skrócono długość etykiety z %d do %d\n" + +-#: .././repair/attr_repair.c:861 ++#: .././db/sb.c:521 + #, c-format +-msgid "can't read block 0 of inode % attribute fork\n" +-msgstr "nie można odczytać bloku 0 i-węzła % gałęzi atrybutów\n" ++msgid "failed to set label in AG %d\n" ++msgstr "nie udało się ustawić etykiety w AG %d\n" + +-#: .././repair/attr_repair.c:876 ++#: .././db/sb.c:524 + #, c-format +-msgid "clearing forw/back pointers in block 0 for attributes in inode %\n" +-msgstr "wyczyszczono wskaźniki forw/back w bloku 0 dla atrybutów w i-węźle %\n" ++msgid "new label = \"%s\"\n" ++msgstr "nowa etykieta = \"%s\"\n" + +-#: .././repair/attr_repair.c:883 ++#: .././db/sb.c:531 + #, c-format +-msgid "would clear forw/back pointers in block 0 for attributes in inode %\n" +-msgstr "wskaźniki forw/back w bloku 0 dla atrybutów w i-węźle % zostałyby wyczyszczone\n" ++msgid "failed to read label in AG %d\n" ++msgstr "nie udało się odczytać etykiety w AG %d\n" + +-#: .././repair/attr_repair.c:913 ++#: .././db/sb.c:537 + #, c-format +-msgid "bad attribute leaf magic # %#x for dir ino %\n" +-msgstr "błędna liczba magiczna liścia atrybutu %#x dla i-węzła katalogu %\n" ++msgid "warning: AG %d label differs\n" ++msgstr "uwaga: etykieta w AG %d różni się\n" + +-#: .././repair/attr_repair.c:938 ++#: .././db/sb.c:539 + #, c-format +-msgid "Too many ACL entries, count %d\n" +-msgstr "Za dużo wpisów ACL, liczba %d\n" ++msgid "label = \"%s\"\n" ++msgstr "etykieta = \"%s\"\n" + +-#: .././repair/attr_repair.c:947 +-msgid "cannot malloc enough for ACL attribute\n" +-msgstr "nie można wykonać wystarczającego malloc dla atrybutu ACL\n" ++#: .././db/sb.c:549 ++msgid "" ++"\n" ++" set/print feature bits in sb version\n" ++"\n" ++" Example:\n" ++"\n" ++" 'version' - print current feature bits\n" ++" 'version extflg' - enable unwritten extents\n" ++" 'version attr1' - enable v1 inline extended attributes\n" ++" 'version attr2' - enable v2 inline extended attributes\n" ++" 'version log2' - enable v2 log format\n" ++"\n" ++"The version function prints currently enabled features for a filesystem\n" ++"according to the version field of its primary superblock.\n" ++"It can also be used to enable selected features, such as support for\n" ++"unwritten extents. The updated version is written into all AGs.\n" ++"\n" ++msgstr "" ++"\n" ++" ustawienie/wypisanie bitów cech w wersji superbloku\n" ++"\n" ++" Przykład:\n" ++"\n" ++" 'version' - wypisanie bieżących bitów cech\n" ++" 'version extflg' - włączenie nie zapisanych ekstentów\n" ++" 'version attr1' - włączenie rozszerzonych atrybutów inline v1\n" ++" 'version attr2' - włączenie rozszerzonych atrybutów inline v2\n" ++" 'version log2' - włączenie formatu logu v2\n" ++"\n" ++"Funkcja 'version' wypisuje aktualnie włączone cechy dla systemu plików\n" ++"zgodnie z polem wersji w głównym superbloku.\n" ++"Może być używana także do włączania wybranych cech, takich jak obsługa\n" ++"nie zapisanych ekstentów. Uaktualniona wersja jest zapisywana we wszystkich\n" ++"AG.\n" ++"\n" + +-#: .././repair/attr_repair.c:948 +-msgid "SKIPPING this ACL\n" +-msgstr "POMINIĘTO ten ACL\n" ++#: .././db/sb.c:578 ++msgid "Superblock has mismatched features2 fields, skipping modification\n" ++msgstr "Superblok ma niepasujące pola features2, pominięto modyfikację\n" + +-#: .././repair/incore_ino.c:47 +-msgid "could not allocate nlink array\n" +-msgstr "Nie udało się przydzielić tablicy nlink\n" ++#: .././db/sb.c:690 ++msgid "unwritten extents flag is already enabled\n" ++msgstr "flaga nie zapisanych ekstentów jest już włączona\n" + +-#: .././repair/incore_ino.c:233 +-msgid "inode map malloc failed\n" +-msgstr "przydzielenie mapy i-węzłów nie powiodło się\n" ++#: .././db/sb.c:697 ++msgid "unwritten extents always enabled for v5 superblocks.\n" ++msgstr "nie zapisane ekstenty są zawsze włączone dla superbloków v5.\n" + +-#: .././repair/incore_ino.c:340 +-msgid "add_aginode_uncertain - duplicate inode range\n" +-msgstr "add_aginode_uncertain - powtórzony przedział i-węzłów\n" ++#: .././db/sb.c:714 ++msgid "version 2 log format is already in use\n" ++msgstr "format logu w wersji 2 jest już w użyciu\n" + +-#: .././repair/incore_ino.c:435 +-msgid "add_inode - duplicate inode range\n" +-msgstr "add_inode - powtórzony przedział i-węzłów\n" ++#: .././db/sb.c:721 ++msgid "Version 2 logs always enabled for v5 superblocks.\n" ++msgstr "Logi w wersji 2 są zawsze włączone dla superbloków v5.\n" + +-#: .././repair/incore_ino.c:529 ++#: .././db/sb.c:726 + #, c-format +-msgid "good inode list is --\n" +-msgstr "lista dobrych i-węzłów to:\n" ++msgid "%s: Cannot change %s on v5 superblocks.\n" ++msgstr "%s: Nie można zmienić %s przy superblokach v5.\n" + +-#: .././repair/incore_ino.c:532 ++#: .././db/sb.c:750 + #, c-format +-msgid "uncertain inode list is --\n" +-msgstr "lista niepewnych i-węzłów to:\n" ++msgid "%s: invalid version change command \"%s\"\n" ++msgstr "%s: błędne polecenie zmiany wersji \"%s\"\n" + +-#: .././repair/incore_ino.c:537 ++#: .././db/sb.c:759 + #, c-format +-msgid "agno %d -- no inodes\n" +-msgstr "agno %d - brak i-węzłów\n" ++msgid "failed to set versionnum in AG %d\n" ++msgstr "nie udało się ustawić versionnum w AG %d\n" + +-#: .././repair/incore_ino.c:541 ++#: .././db/sb.c:777 + #, c-format +-msgid "agno %d\n" +-msgstr "agno %d\n" +- +-#: .././repair/incore_ino.c:545 +-#, c-format +-msgid "\tptr = %lx, start = 0x%x, free = 0x%llx, confirmed = 0x%llx\n" +-msgstr "\tptr = %lx, start = 0x%x, wolne = 0x%llx, potwierdzone = 0x%llx\n" ++msgid "versionnum [0x%x+0x%x] = %s\n" ++msgstr "versionnum [0x%x+0x%x] = %s\n" + +-#: .././repair/incore_ino.c:596 +-msgid "couldn't malloc parent list table\n" +-msgstr "nie udało się przydzielić tablicy listy rodziców\n" ++#: .././db/type.c:49 ++msgid "[newtype]" ++msgstr "[nowy-typ]" + +-#: .././repair/incore_ino.c:607 .././repair/incore_ino.c:653 +-msgid "couldn't memalign pentries table\n" +-msgstr "nie udało się memalign na tablicy pentries\n" ++#: .././db/type.c:50 ++msgid "set/show current data type" ++msgstr "ustawienie/wyświetlenie bieżącego typu danych" + +-#: .././repair/incore_ino.c:711 +-msgid "could not malloc inode extra data\n" +-msgstr "nie udało się przydzielić dodatkowych danych i-węzła\n" ++#: .././db/type.c:144 ++#, c-format ++msgid "current type is \"%s\"\n" ++msgstr "bieżący typ to \"%s\"\n" + +-#: .././repair/incore_ino.c:777 +-msgid "couldn't malloc inode tree descriptor table\n" +-msgstr "nie udało się przydzielić tablicy deskryptorów drzewa i-węzłów\n" ++#: .././db/type.c:146 ++msgid "" ++"\n" ++" supported types are:\n" ++" " ++msgstr "" ++"\n" ++" obsługiwane typy to:\n" ++" " + +-#: .././repair/incore_ino.c:781 +-msgid "couldn't malloc uncertain ino tree descriptor table\n" +-msgstr "nie udało się przydzielić tablicy deskryptorów drzewa i-węzłów niepewnych\n" ++#: .././db/type.c:163 ++#, c-format ++msgid "no such type %s\n" ++msgstr "nie ma typu %s\n" + +-#: .././repair/incore_ino.c:786 +-msgid "couldn't malloc inode tree descriptor\n" +-msgstr "nie udało się przydzielić deskryptora drzewa i-węzłów\n" ++#: .././db/type.c:166 ++msgid "no current object\n" ++msgstr "brak bieżącego obiektu\n" + +-#: .././repair/incore_ino.c:790 +-msgid "couldn't malloc uncertain ino tree descriptor\n" +-msgstr "nie udało się przydzielić deskryptora drzewa i-węzłów niepewnych\n" ++#: .././db/write.c:41 ++msgid "[field or value]..." ++msgstr "[pole lub wartość]..." + +-#: .././repair/incore_ino.c:798 +-msgid "couldn't malloc uncertain inode cache area\n" +-msgstr "nie udało się przydzielić obszaru pamięci podręcznej i-węzłów niepewnych\n" ++#: .././db/write.c:42 ++msgid "write value to disk" ++msgstr "zapis wartości na dysk" + +-#: .././repair/dir.c:152 +-#, c-format +-msgid "invalid inode number % in directory %\n" +-msgstr "błędny numer i-węzła % w katalogu %\n" ++#: .././db/write.c:58 ++msgid "" ++"\n" ++" The 'write' command takes on different personalities depending on the\n" ++" type of object being worked with.\n" ++"\n" ++" Write has 3 modes:\n" ++" 'struct mode' - is active anytime you're looking at a filesystem object\n" ++" which contains individual fields (ex: an inode).\n" ++" 'data mode' - is active anytime you set a disk address directly or set\n" ++" the type to 'data'.\n" ++" 'string mode' - only used for writing symlink blocks.\n" ++"\n" ++" Examples:\n" ++" Struct mode: 'write core.uid 23' - set an inode uid field to 23.\n" ++" 'write fname \"hello\\000\"' - write superblock fname.\n" ++" (note: in struct mode strings are not null terminated)\n" ++" 'write fname #6669736800' - write superblock fname with hex.\n" ++" 'write uuid 00112233-4455-6677-8899-aabbccddeeff'\n" ++" - write superblock uuid.\n" ++" Data mode: 'write fill 0xff' - fill the entire block with 0xff's\n" ++" 'write lshift 3' - shift the block 3 bytes to the left\n" ++" 'write sequence 1 5' - write a cycle of number [1-5] through\n" ++" the entire block.\n" ++" String mode: 'write \"This_is_a_filename\" - write null terminated string.\n" ++"\n" ++" In data mode type 'write' by itself for a list of specific commands.\n" ++"\n" ++msgstr "" ++"\n" ++" Polecenie 'write' ma różne osobowości w zależności od rodzaju obiektu,\n" ++" na jakim pracuje.\n" ++"\n" ++" Zapis ma trzy tryby:\n" ++" 'struct' (strukturalny) - aktywny w przypadku oglądania obiektu systemu\n" ++" plików zawierającego poszczególne pola (np. i-węzeł).\n" ++" 'data' (danych) - aktywny w przypadku bezpośredniego ustawienia adresu\n" ++" na dysku lub ustawienia typu na 'data'.\n" ++" 'string' (znakowy) - używany tylko przy zapisie bloków dowiązań\n" ++" symbolicznych.\n" ++"\n" ++" Przykłady:\n" ++" Tryb strukturalny: 'write core.uid 23' - ustawienie pola uid i-węzła na 23\n" ++" 'write fname \"hello\\000\"' - zapis nazwy pliku sb\n" ++" (uwaga: w trybie strukturalnym łańcuchy nie są zakańczane)\n" ++" 'write fname #6669736800' - zapis nazwy pliku sb w hex.\n" ++" 'write uuid 00112233-4455-6677-8899-aabbccddeeff'\n" ++" - zapis UUID-a superbloku.\n" ++" Tryb danych: 'write fill 0xff' - wypełnienie bloku bajtam 0xff\n" ++" 'write lshift 3' - przesunięcie bloku o 3 bajty w lewo\n" ++" 'write sequence 1 5' zapis cyklicznie liczb [1-5] przez\n" ++" cały blok.\n" ++" Tryb znakowy: 'write \"To_jest_nazwa_pliku\" - zapis łańcucha\n" ++" zakończonego znakiem NUL.\n" ++"\n" ++" W trybie danych samo 'write' wypisze listę bardziej specyficznych poleceń.\n" ++"\n" + +-#: .././repair/dir.c:157 ++#: .././db/write.c:95 + #, c-format +-msgid "entry in shortform dir % references rt bitmap inode %\n" +-msgstr "wpis w krótkim katalogu % odwołuje się do i-węzła bitmapy rt %\n" ++msgid "%s started in read only mode, writing disabled\n" ++msgstr "%s uruchomiono w trybie tylko do odczytu, zapis wyłączony\n" + +-#: .././repair/dir.c:162 ++#: .././db/write.c:107 + #, c-format +-msgid "entry in shortform dir % references rt summary inode %\n" +-msgstr "wpis w krótkim katalogu % odwołuje się do i-węzła opisu rt %\n" ++msgid "no handler function for type %s, write unsupported.\n" ++msgstr "brak funkcji obsługującej dla typu %s, zapis nie obsługiwany.\n" + +-#: .././repair/dir.c:167 ++#: .././db/write.c:167 .././db/write.c:196 .././db/write.c:226 ++#: .././db/write.c:259 .././db/write.c:295 .././db/write.c:344 ++#: .././db/write.c:373 + #, c-format +-msgid "entry in shortform dir % references user quota inode %\n" +-msgstr "wpis w krótkim katalogu % odwołuje się do i-węzła limitu użytkownika %\n" ++msgid "length (%d) too large for data block size (%d)" ++msgstr "długość (%d) zbyt duża dla rozmiaru bloku danych (%d)" + +-#: .././repair/dir.c:172 +-#, c-format +-msgid "entry in shortform dir % references group quota inode %\n" +-msgstr "wpis w krótkim katalogu % odwołuje się do i-węzła limitu grupy %\n" ++#: .././db/write.c:615 ++msgid "usage: write fieldname value\n" ++msgstr "składnia: write nazwa-pola wartość\n" + +-#: .././repair/dir.c:193 ++#: .././db/write.c:621 + #, c-format +-msgid "entry references free inode % in shortform directory %\n" +-msgstr "wpis odwołuje się do wolnego i-węzła % w krótkim katalogu %\n" ++msgid "unable to parse '%s'.\n" ++msgstr "nie można przeanalizować '%s'.\n" + +-#: .././repair/dir.c:212 +-#, c-format +-msgid "entry references non-existent inode % in shortform dir %\n" +-msgstr "wpis odwołuje się do nie istniejącego i-węzła % w krótkim katalogu %\n" ++#: .././db/write.c:635 ++msgid "parsing error\n" ++msgstr "błąd składni\n" + +-#: .././repair/dir.c:236 .././repair/dir2.c:995 ++#: .././db/write.c:654 + #, c-format +-msgid "zero length entry in shortform dir %, resetting to %d\n" +-msgstr "wpis zerowej długości w krótkim katalogu %, przestawiono na %d\n" ++msgid "unable to convert value '%s'.\n" ++msgstr "nie można przekonwertować wartości '%s'.\n" + +-#: .././repair/dir.c:241 .././repair/dir2.c:1000 +-#, c-format +-msgid "zero length entry in shortform dir %, would set to %d\n" +-msgstr "wpis zerowej długości w krótkim katalogu %, zostałby przestawiony na %d\n" ++#: .././db/write.c:677 ++msgid "usage (in string mode): write \"string...\"\n" ++msgstr "składnia (w trybie znakowym): write \"łańcuch...\"\n" + +-#: .././repair/dir.c:246 +-#, c-format +-msgid "zero length entry in shortform dir %, " +-msgstr "wpis zerowej długości w krótkim katalogu %, " ++#: .././db/write.c:719 ++msgid "write: invalid subcommand\n" ++msgstr "write: błędne podpolecenie\n" + +-#: .././repair/dir.c:249 .././repair/dir.c:292 .././repair/dir2.c:1051 ++#: .././db/write.c:724 + #, c-format +-msgid "junking %d entries\n" +-msgstr "wyrzucono %d wpisów\n" ++msgid "write %s: invalid number of arguments\n" ++msgstr "write %s: błędna liczba argumentów\n" + +-#: .././repair/dir.c:252 .././repair/dir.c:301 .././repair/dir2.c:1060 +-#, c-format +-msgid "would junk %d entries\n" +-msgstr "%d wpisów zostałoby wyrzuconych\n" ++#: .././db/write.c:748 ++msgid "usage: write (in data mode)\n" ++msgstr "składnia: write (w trybie danych)\n" + +-#: .././repair/dir.c:270 .././repair/dir2.c:1029 ++#: .././estimate/xfs_estimate.c:78 + #, c-format +-msgid "size of last entry overflows space left in in shortform dir %, " +-msgstr "rozmiar ostatniego wpisu przekracza miejsce pozostałe w krótkim katalogu %, " ++msgid "" ++"Usage: %s [opts] directory [directory ...]\n" ++"\t-b blocksize (fundamental filesystem blocksize)\n" ++"\t-i logsize (internal log size)\n" ++"\t-e logsize (external log size)\n" ++"\t-v prints more verbose messages\n" ++"\t-V prints version and exits\n" ++"\t-h prints this usage message\n" ++"\n" ++"Note:\tblocksize may have 'k' appended to indicate x1024\n" ++"\tlogsize may also have 'm' appended to indicate (1024 x 1024)\n" ++msgstr "" ++"Składnia: %s [opcje] katalog [katalog ...]\n" ++"\t-b rozmiar_bloku (rozmiar bloku zasadniczego systemu plików)\n" ++"\t-i rozmiar_logu (rozmiar logu wewnętrznego)\n" ++"\t-e rozmiar_logu (rozmiar logu zewnętrznego)\n" ++"\t-v wypisywanie bardziej szczegółowych komunikatów\n" ++"\t-V wypisanie informacji o wersji i zakończenie\n" ++"\t-h wypisanie tej informacji o sposobie użycia\n" ++"\n" + +-#: .././repair/dir.c:273 .././repair/dir2.c:1032 ++#: .././estimate/xfs_estimate.c:109 + #, c-format +-msgid "resetting to %d\n" +-msgstr "przestawiono na %d\n" ++msgid "blocksize %llu too small\n" ++msgstr "rozmiar bloku %llu jest zbyt mały\n" + +-#: .././repair/dir.c:278 .././repair/dir2.c:1037 ++#: .././estimate/xfs_estimate.c:114 + #, c-format +-msgid "would reset to %d\n" +-msgstr "zostałby przestawiony na %d\n" ++msgid "blocksize %llu too large\n" ++msgstr "rozmiar bloku %llu jest zbyt duży\n" + +-#: .././repair/dir.c:283 .././repair/dir2.c:1042 ++#: .././estimate/xfs_estimate.c:121 + #, c-format +-msgid "size of entry #%d overflows space left in in shortform dir %\n" +-msgstr "rozmiar wpisu #%d przekracza miejsce pozostałe w krótkim katalogu %\n" ++msgid "already have external log noted, can't have both\n" ++msgstr "już jest przypisany zewnętrzny log, nie mogą istnieć oba\n" + +-#: .././repair/dir.c:288 .././repair/dir2.c:1047 ++#: .././estimate/xfs_estimate.c:130 + #, c-format +-msgid "junking entry #%d\n" +-msgstr "wyrzucono wpis #%d\n" ++msgid "already have internal log noted, can't have both\n" ++msgstr "już jest przypisany wewnętrzny log, nie mogą istnieć oba\n" + +-#: .././repair/dir.c:297 .././repair/dir2.c:1056 ++#: .././estimate/xfs_estimate.c:160 + #, c-format +-msgid "would junk entry #%d\n" +-msgstr "wpis #%d zostałby wyrzucony\n" ++msgid "directory bsize blocks megabytes logsize\n" ++msgstr "katalog rozmb bloków megabajtów rozm.logu\n" + +-#: .././repair/dir.c:320 .././repair/dir2.c:1079 ++#: .././estimate/xfs_estimate.c:174 + #, c-format +-msgid "entry contains illegal character in shortform dir %\n" +-msgstr "wpis zawiera niedozwolony znak w krótkim katalogu %\n" ++msgid "dirsize=%llu\n" ++msgstr "dirsize=%llu\n" + +-#: .././repair/dir.c:374 .././repair/dir2.c:1143 ++#: .././estimate/xfs_estimate.c:175 + #, c-format +-msgid "junking entry \"%s\" in directory inode %\n" +-msgstr "wyrzucono wpis \"%s\" w i-węźle katalogu %\n" ++msgid "fullblocks=%llu\n" ++msgstr "fullblocks=%llu\n" + +-#: .././repair/dir.c:378 .././repair/dir2.c:1147 ++#: .././estimate/xfs_estimate.c:176 + #, c-format +-msgid "would have junked entry \"%s\" in directory inode %\n" +-msgstr "wpis \"%s\" w i-węźle katalogu % zostałby wyrzucony\n" ++msgid "isize=%llu\n" ++msgstr "isize=%llu\n" + +-#: .././repair/dir.c:404 .././repair/dir2.c:1174 ++#: .././estimate/xfs_estimate.c:178 + #, c-format +-msgid "would have corrected entry count in directory % from %d to %d\n" +-msgstr "liczba wpisów w katalogu % zostałaby poprawiona z %d na %d\n" ++msgid "%llu regular files\n" ++msgstr "%llu plików zwykłych\n" + +-#: .././repair/dir.c:408 .././repair/dir2.c:1178 ++#: .././estimate/xfs_estimate.c:179 + #, c-format +-msgid "corrected entry count in directory %, was %d, now %d\n" +-msgstr "poprawiono liczbę wpisów w katalogu % - było %d, jest %d\n" ++msgid "%llu symbolic links\n" ++msgstr "%llu dowiązań symbolicznych\n" + +-#: .././repair/dir.c:419 ++#: .././estimate/xfs_estimate.c:180 + #, c-format +-msgid "would have corrected directory % size from %to %\n" +-msgstr "rozmiar katalogu % zostałby poprawiony z % na %\n" ++msgid "%llu directories\n" ++msgstr "%llu katalogów\n" + +-#: .././repair/dir.c:424 .././repair/dir2.c:1212 ++#: .././estimate/xfs_estimate.c:181 + #, c-format +-msgid "corrected directory % size, was %, now %\n" +-msgstr "poprawiono rozmiar katalogu % - było %, jest %\n" ++msgid "%llu special files\n" ++msgstr "%llu plików specjalnych\n" + +-#: .././repair/dir.c:446 .././repair/dir2.c:1253 ++#: .././estimate/xfs_estimate.c:194 + #, c-format +-msgid "bogus .. inode number (%) in directory inode %, " +-msgstr "błędny numer i-węzła .. (%) w i-węźle katalogu %, " +- +-#: .././repair/dir.c:449 .././repair/dir.c:483 .././repair/dir2.c:1257 +-#: .././repair/dir2.c:1292 +-msgid "clearing inode number\n" +-msgstr "wyczyszczono numer i-węzła\n" +- +-#: .././repair/dir.c:455 .././repair/dir.c:489 .././repair/dir2.c:1263 +-#: .././repair/dir2.c:1298 +-msgid "would clear inode number\n" +-msgstr "numer i-węzła zostałby wyczyszczony\n" ++msgid "%s will take about %.1f megabytes\n" ++msgstr "%s zajmie około %.1f megabajtów\n" + +-#: .././repair/dir.c:463 .././repair/dir2.c:1271 ++#: .././estimate/xfs_estimate.c:201 + #, c-format +-msgid "corrected root directory % .. entry, was %, now %\n" +-msgstr "poprawiono wpis .. głównego katalogu % - było %, jest %\n" ++msgid "%-39s %5llu %8llu %10.1fMB %10llu\n" ++msgstr "%-39s %5llu %8llu %10.1fMB %10llu\n" + +-#: .././repair/dir.c:471 .././repair/dir2.c:1279 ++#: .././estimate/xfs_estimate.c:207 + #, c-format +-msgid "would have corrected root directory % .. entry from % to %\n" +-msgstr "wpis .. głównego katalogu % zostałby poprawiony z % na %\n" ++msgid "\twith the external log using %llu blocks " ++msgstr "\tz zewnętrznym logiem zajmującym %llu bloków " + +-#: .././repair/dir.c:480 ++#: .././estimate/xfs_estimate.c:209 + #, c-format +-msgid "bad .. entry in dir ino %, points to self, " +-msgstr "błędny wpis .. w i-węźle katalogu %, wskazuje na siebie, " ++msgid "or about %.1f megabytes\n" ++msgstr "lub około %.1f megabajtów\n" + +-#: .././repair/dir.c:524 ++#: .././fsr/xfs_fsr.c:194 + #, c-format +-msgid "bad range claimed [%d, %d) in da block\n" +-msgstr "błędny przedział [%d, %d) przypisany w bloku da\n" ++msgid "%s: cannot read %s\n" ++msgstr "%s: nie można odczytać %s\n" + +-#: .././repair/dir.c:531 ++#: .././fsr/xfs_fsr.c:273 + #, c-format +-msgid "byte range end [%d %d) in da block larger than blocksize %d\n" +-msgstr "koniec przedziału bajtów [%d %d) w bloku da większy niż rozmiar bloku %d\n" ++msgid "%s: Stats not yet supported for XFS\n" ++msgstr "%s: statystyki nie są jeszcze obsługiwane dla XFS-a\n" + +-#: .././repair/dir.c:538 ++#: .././fsr/xfs_fsr.c:337 + #, c-format +-msgid "multiply claimed byte %d in da block\n" +-msgstr "wielokrotnie użyty bajt %d w bloku da\n" ++msgid "%s: could not stat: %s: %s\n" ++msgstr "%s: nie można wykonać stat: %s: %s\n" + +-#: .././repair/dir.c:568 ++#: .././fsr/xfs_fsr.c:356 + #, c-format +-msgid "hole (start %d, len %d) out of range, block %d, dir ino %\n" +-msgstr "dziura (początek %d, długość %d) poza zakresem, blok %d, i-węzeł katalogu %\n" ++msgid "%s: char special not supported: %s\n" ++msgstr "%s: urządzenia znakowe nie są obsługiwane: %s\n" + +-#: .././repair/dir.c:579 ++#: .././fsr/xfs_fsr.c:362 + #, c-format +-msgid "hole claims used byte %d, block %d, dir ino %\n" +-msgstr "dziura odwołuje się do używanego bajtu %d, blok %d, i-węzeł katalogu %\n" ++msgid "%s: cannot defragment: %s: Not XFS\n" ++msgstr "%s: nie można zdefragmentować: %s: to nie jest XFS\n" + +-#: .././repair/dir.c:693 ++#: .././fsr/xfs_fsr.c:372 + #, c-format +-msgid "- derived hole value %d, saw %d, block %d, dir ino %\n" +-msgstr "- wyprowadzona wartość dziury %d, widziano %d, blok %d, i-węzeł katalogu %\n" ++msgid "%s: not fsys dev, dir, or reg file, ignoring\n" ++msgstr "%s: nie jest urządzeniem z systemem plików, katalogiem ani zwykłym plikiem, zignorowano\n" + +-#: .././repair/dir.c:712 ++#: .././fsr/xfs_fsr.c:387 + #, c-format +-msgid "- derived hole (base %d, size %d) in block %d, dir inode % not found\n" +-msgstr "- wyprowadzona dziura (podstawa %d, rozmiar %d) w bloku %d, i-węzeł katalogu % nie znaleziona\n" ++msgid "" ++"Usage: %s [-d] [-v] [-g] [-t time] [-p passes] [-f leftf] [-m mtab]\n" ++" %s [-d] [-v] [-g] xfsdev | dir | file ...\n" ++" %s -V\n" ++"\n" ++"Options:\n" ++" -g Print to syslog (default if stdout not a tty).\n" ++" -t time How long to run in seconds.\n" ++" -p passes Number of passes before terminating global re-org.\n" ++" -f leftoff Use this instead of %s.\n" ++" -m mtab Use something other than /etc/mtab.\n" ++" -d Debug, print even more.\n" ++" -v Verbose, more -v's more verbose.\n" ++" -V Print version number and exit.\n" ++msgstr "" ++"Składnia: %s [-d] [-v] [-g] [-t czas] [-p przebiegi] [-f leftf] [-m mtab]\n" ++" %s [-d] [-v] [-g] xfsdev | katalog | plik ...\n" ++" %s -V\n" ++"\n" ++"Opcje:\n" ++" -g Pisanie do sysloga (domyślne jeśli stdout to nie tty).\n" ++" -t czas Czas działania w sekundach.\n" ++" -p przebiegi Liczba przebiegów przed zakończeniem reorganizacji.\n" ++" -f leftoff Użycie tego pliku zamiast %s.\n" ++" -m mtab Użycie pliku innego niż /etc/mtab.\n" ++" -d Diagnostyka, dużo więcej informacji.\n" ++" -v Tym więcej szczegółów, im więcej opcji -v.\n" ++" -V Wypisanie informacji o wersji i zakończenie.\n" + +-#: .././repair/dir.c:767 .././repair/phase6.c:1214 .././repair/phase6.c:1583 ++#: .././fsr/xfs_fsr.c:417 + #, c-format +-msgid "can't read block %u (fsbno %) for directory inode %\n" +-msgstr "nie można odczytać bloku %u (fsbno %) dla i-węzła katalogu %\n" ++msgid "could not open mtab file: %s\n" ++msgstr "nie udało się otworzyć pliku mtab: %s\n" + +-#: .././repair/dir.c:771 ++#: .././fsr/xfs_fsr.c:423 .././fsr/xfs_fsr.c:455 + #, c-format +-msgid "can't read block %u (fsbno %) for attrbute fork of inode %\n" +-msgstr "nie można odczytać bloku %u (fsbno %) dla gałęzi atrybutów i-węzła %\n" ++msgid "out of memory: %s\n" ++msgstr "brak pamięci: %s\n" + +-#: .././repair/dir.c:779 .././repair/phase6.c:1224 ++#: .././fsr/xfs_fsr.c:446 + #, c-format +-msgid "bad dir/attr magic number in inode %, file bno = %u, fsbno = %\n" +-msgstr "błędna liczba magiczna katalogu/atrybutu w i-węźle %, bno pliku = %u, fsbno = %\n" ++msgid "Skipping %s: not mounted rw\n" ++msgstr "Pominięto %s: nie zamontowany rw\n" + +-#: .././repair/dir.c:787 .././repair/dir2.c:333 ++#: .././fsr/xfs_fsr.c:460 + #, c-format +-msgid "bad record count in inode %, count = %d, max = %d\n" +-msgstr "błędna liczba rekordów w i-węźle %, liczba = %d, maksimum = %d\n" ++msgid "out of memory on realloc: %s\n" ++msgstr "brak pamięci przy realloc: %s\n" + +-#: .././repair/dir.c:806 .././repair/dir2.c:356 ++#: .././fsr/xfs_fsr.c:471 .././fsr/xfs_fsr.c:475 + #, c-format +-msgid "bad directory btree for directory inode %\n" +-msgstr "błędne b-drzewo katalogu dla i-węzła katalogu %\n" ++msgid "strdup(%s) failed\n" ++msgstr "strdup(%s) nie powiodło się\n" + +-#: .././repair/dir.c:810 ++#: .././fsr/xfs_fsr.c:485 + #, c-format +-msgid "bad attribute fork btree for inode %\n" +-msgstr "błędne b-drzewo gałęzi atrybutów dla i-węzła %\n" ++msgid "no rw xfs file systems in mtab: %s\n" ++msgstr "brak w pliku mtab systemów plików xfs w trybie rw: %s\n" + +-#: .././repair/dir.c:864 ++#: .././fsr/xfs_fsr.c:489 + #, c-format +-msgid "release_da_cursor_int got unexpected non-null bp, dabno = %u\n" +-msgstr "release_da_cursor_int otrzymało nieoczekiwany niepusty bp, dabno = %u\n" ++msgid "Found %d mounted, writable, XFS filesystems\n" ++msgstr "Liczba znalezionych zamontowanych, zapisywalnych systemów plików XFS: %d\n" + +-#: .././repair/dir.c:931 ++#: .././fsr/xfs_fsr.c:519 + #, c-format +-msgid "directory/attribute block used/count inconsistency - %d/%hu\n" +-msgstr "niespójność wartości used/count bloku katalogu/atrybutu - %d/%hu\n" ++msgid "%s: open failed\n" ++msgstr "%s: open nie powiodło się\n" + +-#: .././repair/dir.c:941 .././repair/dir2.c:478 ++#: .././fsr/xfs_fsr.c:534 + #, c-format +-msgid "directory/attribute block hashvalue inconsistency, expected > %u / saw %u\n" +-msgstr "niespójność wartości hasza bloku katalogu/atrybutu - oczekiwano > %u, widziano %u\n" ++msgid "Can't use %s: mode=0%o own=%d nlink=%d\n" ++msgstr "Nie można użyć %s: mode=0%o own=%d nlink=%d\n" + +-#: .././repair/dir.c:948 .././repair/dir2.c:485 ++#: .././fsr/xfs_fsr.c:554 + #, c-format +-msgid "bad directory/attribute forward block pointer, expected 0, saw %u\n" +-msgstr "błędny wskaźnik bloku w przód katalogu/atrybutu - oczekiwano 0, widziano %u\n" ++msgid "could not read %s, starting with %s\n" ++msgstr "nie można odczytać %s, rozpoczęcie z %s\n" + +-#: .././repair/dir.c:954 ++#: .././fsr/xfs_fsr.c:591 + #, c-format +-msgid "bad directory block in dir ino %\n" +-msgstr "błędny blok katalogu w i-węźle katalogu %\n" ++msgid "START: pass=%d ino=%llu %s %s\n" ++msgstr "START: przebieg=%d i-węzeł=%llu %s %s\n" + +-#: .././repair/dir.c:984 ++#: .././fsr/xfs_fsr.c:608 + #, c-format +-msgid "" +-"correcting bad hashval in non-leaf dir/attr block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"poprawiono błędne hashval w bloku katalogu/atrybutu nie będącego liściem\n" +-"\tw i-węźle (poziomu %d) %.\n" ++msgid "Completed all %d passes\n" ++msgstr "Zakończono wszystkie przebiegi w liczbie %d\n" + +-#: .././repair/dir.c:992 +-#, c-format +-msgid "" +-"would correct bad hashval in non-leaf dir/attr block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"błędne hashval zostałoby poprawione w bloku katalogu/atrybutu nie będącego liściem\n" +-"\tw i-węźle (poziomu %d) %.\n" ++#: .././fsr/xfs_fsr.c:618 ++msgid "couldn't fork sub process:" ++msgstr "nie udało się uruchomić podprocesu:" + +-#: .././repair/dir.c:1130 .././repair/dir2.c:652 ++#: .././fsr/xfs_fsr.c:653 + #, c-format +-msgid "can't get map info for block %u of directory inode %\n" +-msgstr "nie można uzyskać informacji o mapie dla bloku %u i-węzła katalogu %\n" ++msgid "%s startpass %d, endpass %d, time %d seconds\n" ++msgstr "%s pocz. przebieg %d, końc. przebieg %d, czas %d sekund\n" + +-#: .././repair/dir.c:1140 ++#: .././fsr/xfs_fsr.c:660 + #, c-format +-msgid "can't read block %u (%) for directory inode %\n" +-msgstr "nie można odczytać bloku %u (%) dla i-węzła katalogu %\n" ++msgid "open(%s) failed: %s\n" ++msgstr "open(%s) nie powiodło się: %s\n" + +-#: .././repair/dir.c:1153 ++#: .././fsr/xfs_fsr.c:666 + #, c-format +-msgid "bad magic number %x in block %u (%) for directory inode %\n" +-msgstr "błędna liczba magiczna %x w bloku %u (%) dla i-węzła katalogu %\n" ++msgid "write(%s) failed: %s\n" ++msgstr "write(%s) nie powiodło się: %s\n" + +-#: .././repair/dir.c:1161 ++#: .././fsr/xfs_fsr.c:690 + #, c-format +-msgid "bad back pointer in block %u (%) for directory inode %\n" +-msgstr "błędny wskaźnik wstecz w bloku %u (%) dla i-węzła katalogu %\n" ++msgid "%s start inode=%llu\n" ++msgstr "%s pocz. i-węzeł=%llu\n" + +-#: .././repair/dir.c:1167 ++#: .././fsr/xfs_fsr.c:695 + #, c-format +-msgid "entry count %d too large in block %u (%) for directory inode %\n" +-msgstr "liczba wpisów %d zbyt duża w bloku %u (%) dla i-węzła katalogu %\n" ++msgid "unable to get handle: %s: %s\n" ++msgstr "nie udało się uzyskać uchwytu: %s: %s\n" + +-#: .././repair/dir.c:1174 ++#: .././fsr/xfs_fsr.c:701 + #, c-format +-msgid "bad level %d in block %u (%) for directory inode %\n" +-msgstr "błędny poziom %d w bloku %u (%) dla i-węzła katalogu %\n" ++msgid "unable to open: %s: %s\n" ++msgstr "nie udało się otworzyć: %s: %s\n" + +-#: .././repair/dir.c:1231 ++#: .././fsr/xfs_fsr.c:707 + #, c-format +-msgid "" +-"correcting bad hashval in interior dir/attr block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"poprawiono błędne hashval w wewnętrznym bloku katalogu/atrybutu\n" +-"\tw i-węźle (poziomu %d) %.\n" ++msgid "Skipping %s: could not get XFS geometry\n" ++msgstr "Pominięto %s: nie można odczytać geometrii XFS\n" + +-#: .././repair/dir.c:1239 ++#: .././fsr/xfs_fsr.c:741 + #, c-format +-msgid "" +-"would correct bad hashval in interior dir/attr block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"błędne hashval zostałoby poprawione w wewnętrznym bloku katalogu/atrybutu\n" +-"\tw i-węźle (poziomu %d) %.\n" ++msgid "could not open: inode %llu\n" ++msgstr "nie udało się otworzyć: i-węzeł %llu\n" + +-#: .././repair/dir.c:1347 ++#: .././fsr/xfs_fsr.c:771 + #, c-format +-msgid "directory block header conflicts with used space in directory inode %\n" +-msgstr "nagłówek bloku katalogu jest w konflikcie z użytym miejscem w i-węźle katalogu %\n" ++msgid "%s: xfs_bulkstat: %s\n" ++msgstr "%s: xfs_bulkstat: %s\n" + +-#: .././repair/dir.c:1377 ++#: .././fsr/xfs_fsr.c:797 + #, c-format +-msgid "nameidx %d for entry #%d, bno %d, ino % > fs blocksize, deleting entry\n" +-msgstr "nameidx %d dla wpisu #%d, bno %d, i-węzeł % > rozmiaru bloku fs, usunięto wpis\n" ++msgid "%s: Directory defragmentation not supported\n" ++msgstr "%s: Defragmentacja katalogów nie jest obsługiwana\n" + +-#: .././repair/dir.c:1414 ++#: .././fsr/xfs_fsr.c:816 + #, c-format +-msgid "nameidx %d, entry #%d, bno %d, ino % > fs blocksize, marking entry bad\n" +-msgstr "nameidx %d, wpis #%d, bno %d, i-węzeł % > rozmiaru bloku fs, zaznaczono wpis jako błędny\n" ++msgid "unable to construct sys handle for %s: %s\n" ++msgstr "nie udało się utworzyć uchwytu systemowego dla %s: %s\n" + +-#: .././repair/dir.c:1429 ++#: .././fsr/xfs_fsr.c:827 + #, c-format +-msgid "nameidx %d, entry #%d, bno %d, ino % > fs blocksize, would delete entry\n" +-msgstr "nameidx %d, wpis #%d, bno %d, i-węzeł % > rozmiaru bloku fs, wpis zostałby usunięty\n" ++msgid "unable to open sys handle for %s: %s\n" ++msgstr "nie udało się otworzyć uchwytu systemowego dla %s: %s\n" + +-#: .././repair/dir.c:1466 ++#: .././fsr/xfs_fsr.c:833 + #, c-format +-msgid "invalid ino number % in dir ino %, entry #%d, bno %d\n" +-msgstr "nieprawidłowy numer i-węzła % w i-węźle katalogu %, wpis #%d, bno %d\n" ++msgid "unable to get bstat on %s: %s\n" ++msgstr "nie udało się uzyskać bstat na %s: %s\n" + +-#: .././repair/dir.c:1470 .././repair/dir.c:1486 .././repair/dir.c:1503 +-#: .././repair/dir.c:1519 .././repair/dir.c:1536 ++#: .././fsr/xfs_fsr.c:841 + #, c-format +-msgid "\tclearing ino number in entry %d...\n" +-msgstr "\twyczyszczono numer i-węzła we wpisie %d...\n" ++msgid "unable to open handle %s: %s\n" ++msgstr "nie udało się otworzyć uchwytu %s: %s\n" + +-#: .././repair/dir.c:1477 .././repair/dir.c:1494 .././repair/dir.c:1510 +-#: .././repair/dir.c:1527 .././repair/dir.c:1544 ++#: .././fsr/xfs_fsr.c:849 + #, c-format +-msgid "\twould clear ino number in entry %d...\n" +-msgstr "\tnumer i-węzła we wpisie %d zostałby wyczyszczony...\n" ++msgid "Unable to get geom on fs for: %s\n" ++msgstr "Nie udało się odczytać geometrii systemu plików dla: %s\n" + +-#: .././repair/dir.c:1482 ++#: .././fsr/xfs_fsr.c:898 + #, c-format +-msgid "entry #%d, bno %d in directory % references realtime bitmap inode %\n" +-msgstr "wpis #%d, bno %d w katalogu % odwołuje się do i-węzła bitmapy realtime %\n" ++msgid "sync failed: %s: %s\n" ++msgstr "sync nie powiodło się: %s: %s\n" + +-#: .././repair/dir.c:1499 ++#: .././fsr/xfs_fsr.c:904 + #, c-format +-msgid "entry #%d, bno %d in directory % references realtime summary inode %\n" +-msgstr "wpis #%d, bno %d w katalogu % odwołuje się do i-węzła opisu realtime %\n" ++msgid "%s: zero size, ignoring\n" ++msgstr "%s: zerowy rozmiar, zignorowano\n" + +-#: .././repair/dir.c:1515 ++#: .././fsr/xfs_fsr.c:923 + #, c-format +-msgid "entry #%d, bno %d in directory % references user quota inode %\n" +-msgstr "wpis #%d, bno %d w katalogu % odwołuje się do i-węzła limitu użytkownika %\n" ++msgid "locking check failed: %s\n" ++msgstr "sprawdzenie blokowania nie powiodło się: %s\n" + +-#: .././repair/dir.c:1532 ++#: .././fsr/xfs_fsr.c:930 + #, c-format +-msgid "entry #%d, bno %d in directory % references group quota inode %\n" +-msgstr "wpis #%d, bno %d w katalogu % odwołuje się do i-węzła limitu grupy %\n" ++msgid "mandatory lock: %s: ignoring\n" ++msgstr "obowiązkowa blokada: %s: zignorowano\n" + +-#: .././repair/dir.c:1569 ++#: .././fsr/xfs_fsr.c:943 + #, c-format +-msgid "entry references free inode % in directory %, will clear entry\n" +-msgstr "wpis odwołuje się do wolnego i-węzła % w katalogu %, zostanie wyczyszczony\n" ++msgid "unable to get fs stat on %s: %s\n" ++msgstr "nie udało się uzyskać stat fs na %s: %s\n" + +-#: .././repair/dir.c:1577 ++#: .././fsr/xfs_fsr.c:950 + #, c-format +-msgid "entry references free inode % in directory %, would clear entry\n" +-msgstr "wpis odwołuje się do wolnego i-węzła % w katalogu %, zostałby wyczyszczony\n" ++msgid "insufficient freespace for: %s: size=%lld: ignoring\n" ++msgstr "niewystarczająca ilość miejsca dla: %s: rozmiar=%lld: zignorowano\n" + +-#: .././repair/dir.c:1585 ++#: .././fsr/xfs_fsr.c:957 + #, c-format +-msgid "bad ino number % in dir ino %, entry #%d, bno %d\n" +-msgstr "błędny numer i-węzła % w i-węźle katalogu %, wpis #%d, bno %d\n" +- +-#: .././repair/dir.c:1588 +-msgid "clearing inode number...\n" +-msgstr "wyczyszczono numer i-węzła...\n" +- +-#: .././repair/dir.c:1593 +-msgid "would clear inode number...\n" +-msgstr "numer i-węzła zostałby wyczyszczony\n" ++msgid "failed to get inode attrs: %s\n" ++msgstr "nie udało się uzyskać atrybutów i-węzła: %s\n" + +-#: .././repair/dir.c:1613 ++#: .././fsr/xfs_fsr.c:962 + #, c-format +-msgid "entry #%d, dir inode %, has zero-len name, deleting entry\n" +-msgstr "wpis #%d, i-węzeł katalogu % ma nazwę zerowej długości, usunięto\n" ++msgid "%s: immutable/append, ignoring\n" ++msgstr "%s: niezmienny/tylko do dołączania, zignorowano\n" + +-#: .././repair/dir.c:1651 ++#: .././fsr/xfs_fsr.c:967 + #, c-format +-msgid "entry #%d, dir inode %, has zero-len name, marking entry bad\n" +-msgstr "wpis #%d, i-węzeł katalogu % ma nazwę zerowej długości, zaznaczono jako błędny\n" ++msgid "%s: marked as don't defrag, ignoring\n" ++msgstr "%s: oznaczony jako nie do defragmentacji, zignorowano\n" + +-#: .././repair/dir.c:1664 ++#: .././fsr/xfs_fsr.c:973 + #, c-format +-msgid "bad size, entry #%d in dir inode %, block %u -- entry overflows block\n" +-msgstr "błędny rozmiar, wpis #%d w i-węźle katalogu %, blok %u - wpis wykracza poza blok\n" ++msgid "cannot get realtime geometry for: %s\n" ++msgstr "nie można uzyskać geometrii realtime dla: %s\n" + +-#: .././repair/dir.c:1675 ++#: .././fsr/xfs_fsr.c:978 + #, c-format +-msgid "dir entry slot %d in block %u conflicts with used space in dir inode %\n" +-msgstr "slot wpisu katalogu %d w bloku %u jest w konflikcie z użytym miejscem w i-węźle katalogu %\n" ++msgid "low on realtime free space: %s: ignoring file\n" ++msgstr "mało wolnego miejsca realtime: %s: plik zignorowany\n" + +-#: .././repair/dir.c:1715 ++#: .././fsr/xfs_fsr.c:985 + #, c-format +-msgid "illegal name \"%s\" in directory inode %, entry will be cleared\n" +-msgstr "niedozwolona nazwa \"%s\" w i-węźle katalogu %, wpis zostanie wyczyszczony\n" ++msgid "cannot open: %s: Permission denied\n" ++msgstr "nie można otworzyć: %s: brak uprawnień\n" + +-#: .././repair/dir.c:1721 +-#, c-format +-msgid "illegal name \"%s\" in directory inode %, entry would be cleared\n" +-msgstr "niedozwolona nazwa \"%s\" w i-węźle katalogu %, wpis zostałby wyczyszczony\n" ++#: .././fsr/xfs_fsr.c:1043 .././fsr/xfs_fsr.c:1093 .././fsr/xfs_fsr.c:1185 ++msgid "could not set ATTR\n" ++msgstr "nie udało się ustawić ATTR\n" + +-#: .././repair/dir.c:1731 ++#: .././fsr/xfs_fsr.c:1052 + #, c-format +-msgid "\tmismatched hash value for entry \"%s\"\n" +-msgstr "\tniedopasowana wartość hasza dla wpisu \"%s\"\n" ++msgid "unable to stat temp file: %s\n" ++msgstr "nie udało się wykonać stat na pliku tymczasowym: %s\n" + +-#: .././repair/dir.c:1735 ++#: .././fsr/xfs_fsr.c:1070 + #, c-format +-msgid "\t\tin directory inode %. resetting hash value.\n" +-msgstr "\t\tw i-węźle katalogu %. Przestawiono wartość hasza.\n" ++msgid "unable to get bstat on temp file: %s\n" ++msgstr "nie udało się uzyskać bstat pliku tymczasowego: %s\n" + +-#: .././repair/dir.c:1741 ++#: .././fsr/xfs_fsr.c:1075 + #, c-format +-msgid "\t\tin directory inode %. would reset hash value.\n" +-msgstr "\t\tw i-węźle katalogu %. Wartość hasza zostałaby przestawiona.\n" ++msgid "orig forkoff %d, temp forkoff %d\n" ++msgstr "orig forkoff %d, temp forkoff %d\n" + +-#: .././repair/dir.c:1771 +-#, c-format +-msgid "\tbad hash ordering for entry \"%s\"\n" +-msgstr "\tbłędny porządek hasza dla wpisu \"%s\"\n" ++#: .././fsr/xfs_fsr.c:1124 ++msgid "FSGETXATTRA failed on target\n" ++msgstr "FSGETXATTRA nie powiodło się na docelowym urządzeniu\n" + +-#: .././repair/dir.c:1775 +-#, c-format +-msgid "\t\tin directory inode %. will clear entry\n" +-msgstr "\t\tw i-węźle katalogu %. Wpis zostanie wyczyszczony.\n" ++#: .././fsr/xfs_fsr.c:1140 ++msgid "big ATTR set failed\n" ++msgstr "duży zbiór ATTR nie powiódł się\n" + +-#: .././repair/dir.c:1782 ++#: .././fsr/xfs_fsr.c:1161 + #, c-format +-msgid "\t\tin directory inode %. would clear entry\n" +-msgstr "\t\tw i-węźle katalogu %. Wpis zostałby wyczyszczony.\n" ++msgid "forkoff diff %d too large!\n" ++msgstr "różnica forkoff %d zbyt duża!\n" + +-#: .././repair/dir.c:1798 ++#: .././fsr/xfs_fsr.c:1178 + #, c-format +-msgid "name \"%s\" (block %u, slot %d) conflicts with used space in dir inode %\n" +-msgstr "nazwa \"%s\" (blok %u, slot %d) jest w konflikcie z użytym miejscem w i-węźle katalogu %\n" ++msgid "data fork growth unimplemented\n" ++msgstr "powiększanie odgałęzienia danych nie jest zaimplementowane\n" + +-#: .././repair/dir.c:1805 +-#, c-format +-msgid "will clear entry \"%s\" (#%d) in directory inode %\n" +-msgstr "wpis \"%s\" (#%d) zostanie wyczyszczony w i-węźle katalogu %\n" ++#: .././fsr/xfs_fsr.c:1193 ++msgid "set temp attr\n" ++msgstr "ustawianie atrybutów pliku tymczasowego\n" + +-#: .././repair/dir.c:1809 +-#, c-format +-msgid "would clear entry \"%s\" (#%d)in directory inode %\n" +-msgstr "wpis \"%s\" (#%d) zostałby wyczyszczony w i-węźle katalogu %\n" ++#: .././fsr/xfs_fsr.c:1196 ++msgid "failed to match fork offset\n" ++msgstr "nie udało się dopasować offsetu odgałęzienia\n" + +-#: .././repair/dir.c:1845 ++#: .././fsr/xfs_fsr.c:1236 + #, c-format +-msgid "bad .. entry in dir ino %, points to self" +-msgstr "błędny wpis .. w i-węźle katalogu %, wskazuje na siebie" +- +-#: .././repair/dir.c:1849 .././repair/dir.c:1946 +-msgid "will clear entry\n" +-msgstr "wpis zostanie wyczyszczony\n" +- +-#: .././repair/dir.c:1854 .././repair/dir.c:1950 .././repair/dir2.c:1642 +-msgid "would clear entry\n" +-msgstr "wpis zostałby wyczyszczony\n" ++msgid "%s already fully defragmented.\n" ++msgstr "%s jest już całkowicie zdefragmentowany.\n" + +-#: .././repair/dir.c:1864 ++#: .././fsr/xfs_fsr.c:1241 + #, c-format +-msgid "correcting .. entry in root inode %, was %\n" +-msgstr "poprawiono wpis .. w głównym i-węźle %, było %\n" ++msgid "%s extents=%d can_save=%d tmp=%s\n" ++msgstr "%s extents=%d can_save=%d tmp=%s\n" + +-#: .././repair/dir.c:1871 ++#: .././fsr/xfs_fsr.c:1247 + #, c-format +-msgid "bad .. entry (%) in root inode % should be %\n" +-msgstr "błędny wpis .. (%) w głównym i-węźle %, powinno być %\n" ++msgid "could not open tmp file: %s: %s\n" ++msgstr "nie udało się otworzyć pliku tymczasowego: %s: %s\n" + +-#: .././repair/dir.c:1888 ++#: .././fsr/xfs_fsr.c:1255 + #, c-format +-msgid "multiple .. entries in directory inode %, will clear second entry\n" +-msgstr "wiele wpisów .. w i-węźle katalogu %, drugi wpis zostanie wyczyszczony\n" ++msgid "failed to set ATTR fork on tmp: %s:\n" ++msgstr "nie udało się ustawić odgałęzienia ATTR na tmp: %s\n" + +-#: .././repair/dir.c:1894 ++#: .././fsr/xfs_fsr.c:1263 + #, c-format +-msgid "multiple .. entries in directory inode %, would clear second entry\n" +-msgstr "wiele wpisów .. w i-węźle katalogu %, drugi wpis zostałby wyczyszczony\n" ++msgid "could not set inode attrs on tmp: %s\n" ++msgstr "nie udało się ustawić atrybutów i-węzła na tmp: %s\n" + +-#: .././repair/dir.c:1907 ++#: .././fsr/xfs_fsr.c:1271 + #, c-format +-msgid ". in directory inode % has wrong value (%), fixing entry...\n" +-msgstr ". w i-węźle katalogu % ma niepoprawną wartość (%), poprawiono wpis...\n" ++msgid "could not get DirectIO info on tmp: %s\n" ++msgstr "nie udało się uzyskać informacji o bezpośrednim we/wy na tmp: %s\n" + +-#: .././repair/dir.c:1914 ++#: .././fsr/xfs_fsr.c:1287 + #, c-format +-msgid ". in directory inode % has wrong value (%)\n" +-msgstr ". w i-węźle katalogu % ma niepoprawną wartość (%)\n" ++msgid "DEBUG: fsize=%lld blsz_dio=%d d_min=%d d_max=%d pgsz=%d\n" ++msgstr "DEBUG: fsize=%lld blsz_dio=%d d_min=%d d_max=%d pgsz=%d\n" + +-#: .././repair/dir.c:1920 ++#: .././fsr/xfs_fsr.c:1294 + #, c-format +-msgid "multiple . entries in directory inode %\n" +-msgstr "wiele wpisów . w i-węźle katalogu %\n" ++msgid "could not allocate buf: %s\n" ++msgstr "nie udało się przydzielić bufora: %s\n" + +-#: .././repair/dir.c:1927 ++#: .././fsr/xfs_fsr.c:1305 + #, c-format +-msgid "will clear one . entry in directory inode %\n" +-msgstr "jeden wpis . w i-węźle katalogu % zostanie wyczyszczony\n" ++msgid "could not open fragfile: %s : %s\n" ++msgstr "nie udało się otworzyć pliku frag: %s: %s\n" + +-#: .././repair/dir.c:1933 ++#: .././fsr/xfs_fsr.c:1322 + #, c-format +-msgid "would clear one . entry in directory inode %\n" +-msgstr "jeden wpis . w i-węźle katalogu % zostałby wyczyszczony\n" ++msgid "could not trunc tmp %s\n" ++msgstr "nie udało się uciąć tmp %s\n" + +-#: .././repair/dir.c:1943 ++#: .././fsr/xfs_fsr.c:1337 + #, c-format +-msgid "entry \"%s\" in directory inode % points to self, " +-msgstr "wpis \"%s\" w i-węźle katalogu % wskazuje na siebie, " ++msgid "could not pre-allocate tmp space: %s\n" ++msgstr "nie udało się wstępnie przydzielić miejsca tmp: %s\n" + +-#: .././repair/dir.c:1968 +-#, c-format +-msgid "- resetting first used heap value from %d to %d in block %u of dir ino %\n" +-msgstr "- przestawiono pierwszą używaną wartość sterty z %d na %d w bloku %u i-węzła katalogu %\n" ++#: .././fsr/xfs_fsr.c:1348 ++msgid "Couldn't rewind on temporary file\n" ++msgstr "Nie udało się przewinąć pliku tymczasowego\n" + +-#: .././repair/dir.c:1976 ++#: .././fsr/xfs_fsr.c:1359 + #, c-format +-msgid "- would reset first used value from %d to %d in block %u of dir ino %\n" +-msgstr "- pierwsza używana wartość zostałaby przestawiona z %d na %d w bloku %u i-węzła katalogu %\n" ++msgid "Temporary file has %d extents (%d in original)\n" ++msgstr "Plik tymczasowy ma ekstentów: %d (%d w oryginale)\n" + +-#: .././repair/dir.c:1986 ++#: .././fsr/xfs_fsr.c:1362 + #, c-format +-msgid "- resetting namebytes cnt from %d to %d in block %u of dir inode %\n" +-msgstr "- przestawiono liczbę bajtów nazwy z %d na %d w bloku %u i-węzła katalogu %\n" ++msgid "No improvement will be made (skipping): %s\n" ++msgstr "Nie nastąpi poprawa (pominięto): %s\n" + +-#: .././repair/dir.c:1994 ++#: .././fsr/xfs_fsr.c:1408 + #, c-format +-msgid "- would reset namebytes cnt from %d to %d in block %u of dir inode %\n" +-msgstr "- liczba bajtów nazwy zostałaby przestawiona z %d na %d w bloku %u i-węzła katalogu %\n" ++msgid "bad read of %d bytes from %s: %s\n" ++msgstr "błędny odczyt %d bajtów z %s: %s\n" + +-#: .././repair/dir.c:2029 ++#: .././fsr/xfs_fsr.c:1412 .././fsr/xfs_fsr.c:1448 + #, c-format +-msgid "- found unexpected lost holes in block %u, dir inode %\n" +-msgstr "- znaleziono nieoczekiwane utracone dziury w bloku %u, i-węźle katalogu %\n" ++msgid "bad write of %d bytes to %s: %s\n" ++msgstr "błędny zapis %d bajtów do %s: %s\n" + +-#: .././repair/dir.c:2037 ++#: .././fsr/xfs_fsr.c:1429 + #, c-format +-msgid "- hole info non-optimal in block %u, dir inode %\n" +-msgstr "- nieoptymalna informacja o dziurze w bloku %u, i-węźle katalogu %\n" ++msgid "bad write2 of %d bytes to %s: %s\n" ++msgstr "błędny zapis 2 %d bajtów do %s: %s\n" + +-#: .././repair/dir.c:2044 ++#: .././fsr/xfs_fsr.c:1434 + #, c-format +-msgid "- hole info incorrect in block %u, dir inode %\n" +-msgstr "- niepoprawna informacja o dziurze w bloku %u, i-węźle katalogu %\n" ++msgid "bad copy to %s\n" ++msgstr "błędna kopia do %s\n" + +-#: .././repair/dir.c:2055 ++#: .././fsr/xfs_fsr.c:1472 + #, c-format +-msgid "- existing hole info for block %d, dir inode % (base, size) - \n" +-msgstr "- istniejąca informacja o dziurze dla bloku %d, i-węzła katalogu % (podstawa, rozmiar) - \n" ++msgid "failed to fchown tmpfile %s: %s\n" ++msgstr "nie udało się wykonać fchown na pliku tymczasowym %s: %s\n" + +-#: .././repair/dir.c:2063 ++#: .././fsr/xfs_fsr.c:1483 + #, c-format +-msgid "- holes flag = %d\n" +-msgstr "- flaga dziur = %d\n" ++msgid "%s: file type not supported\n" ++msgstr "%s: tym pliku nie obsługiwany\n" + +-#: .././repair/dir.c:2069 ++#: .././fsr/xfs_fsr.c:1487 + #, c-format +-msgid "- compacting block %u in dir inode %\n" +-msgstr "- zagęszczono blok %u w i-węźle katalogu %\n" ++msgid "%s: file modified defrag aborted\n" ++msgstr "%s: plik zmodyfikowany, defragmentacja przerwana\n" + +-#: .././repair/dir.c:2110 ++#: .././fsr/xfs_fsr.c:1492 + #, c-format +-msgid "not enough space in block %u of dir inode % for all entries\n" +-msgstr "zbyt mało miejsca dla wszystkich wpisów w bloku %u i-węzła katalogu %\n" ++msgid "%s: file busy\n" ++msgstr "%s: plik zajęty\n" + +-#: .././repair/dir.c:2180 ++#: .././fsr/xfs_fsr.c:1494 + #, c-format +-msgid "- would compact block %u in dir inode %\n" +-msgstr "- bloku %u w i-węźle katalogu % zostałby zagęszczony\n" ++msgid "XFS_IOC_SWAPEXT failed: %s: %s\n" ++msgstr "XFS_IOC_SWAPEXT nie powiodło się: %s: %s\n" + +-#: .././repair/dir.c:2245 .././repair/dir2.c:1828 ++#: .././fsr/xfs_fsr.c:1503 + #, c-format +-msgid "can't map block %u for directory inode %\n" +-msgstr "nie można odwzorować bloku %u dla i-węzła katalogu %\n" ++msgid "extents before:%d after:%d %s %s\n" ++msgstr "ekstentów przed: %d po: %d %s %s\n" + +-#: .././repair/dir.c:2256 ++#: .././fsr/xfs_fsr.c:1530 + #, c-format +-msgid "can't read file block %u (fsbno %, daddr %) for directory inode %\n" +-msgstr "nie można odczytać bloku pliku %u (fsbno %, daddr %) dla i-węzła katalogu %\n" ++msgid "tmp file name too long: %s\n" ++msgstr "nazwa pliku tymczasowego zbyt długa: %s\n" + +-#: .././repair/dir.c:2270 .././repair/dir.c:2529 ++#: .././fsr/xfs_fsr.c:1580 + #, c-format +-msgid "bad directory leaf magic # %#x for dir ino %\n" +-msgstr "błędna liczba magiczna liścia katalogu %#x dla i-węzła katalogu %\n" ++msgid "realloc failed: %s\n" ++msgstr "realloc nie powiodło się: %s\n" + +-#: .././repair/dir.c:2310 ++#: .././fsr/xfs_fsr.c:1593 + #, c-format +-msgid "bad sibling back pointer for directory block %u in directory inode %\n" +-msgstr "błędny wskaźnik wstecz dla bloku katalogu %u w i-węźle katalogu %\n" ++msgid "malloc failed: %s\n" ++msgstr "malloc nie powiodło się: %s\n" + +-#: .././repair/dir.c:2341 .././repair/dir2.c:1904 ++#: .././fsr/xfs_fsr.c:1623 + #, c-format +-msgid "bad hash path in directory %\n" +-msgstr "błędna ścieżka hasza w katalogu %\n" ++msgid "failed reading extents: inode %llu" ++msgstr "nie udało się odczytać ekstentów: i-węzeł %llu" + +-#: .././repair/dir.c:2450 +-#, c-format +-msgid "out of range internal directory block numbers (inode %)\n" +-msgstr "numery bloków wewnętrznego katalogu spoza zakresu (i-węzeł %)\n" ++#: .././fsr/xfs_fsr.c:1673 ++msgid "failed reading extents" ++msgstr "nie udało się odczytać ekstentów" + +-#: .././repair/dir.c:2456 ++#: .././fsr/xfs_fsr.c:1761 .././fsr/xfs_fsr.c:1775 + #, c-format +-msgid "setting directory inode (%) size to % bytes, was % bytes\n" +-msgstr "ustawiono rozmiar i-węzła katalogu (%) na % bajtów, było % bajtów\n" ++msgid "tmpdir already exists: %s\n" ++msgstr "katalog tymczasowy już istnieje: %s\n" + +-#: .././repair/dir.c:2509 ++#: .././fsr/xfs_fsr.c:1764 + #, c-format +-msgid "block 0 for directory inode % is missing\n" +-msgstr "brak bloku 0 dla i-węzła katalogu %\n" +- +-#: .././repair/dir.c:2516 +-#, c-format +-msgid "can't read block 0 for directory inode %\n" +-msgstr "nie można odczytać bloku 0 dla i-węzła katalogu %\n" +- +-#: .././repair/dir.c:2552 +-#, c-format +-msgid "clearing forw/back pointers for directory inode %\n" +-msgstr "wyczyszczono wskaźniki w przód/wstecz dla i-węzła katalogu %\n" +- +-#: .././repair/dir.c:2558 +-#, c-format +-msgid "would clear forw/back pointers for directory inode %\n" +-msgstr "wskaźniki w przód/wstecz dla i-węzła katalogu % zostałyby wyczyszczone\n" +- +-#: .././repair/dir.c:2623 .././repair/dir2.c:2109 +-#, c-format +-msgid "no . entry for directory %\n" +-msgstr "brak wpisu . dla katalogu %\n" +- +-#: .././repair/dir.c:2632 .././repair/dir2.c:2119 +-#, c-format +-msgid "no .. entry for directory %\n" +-msgstr "brak wpisu .. dla katalogu %\n" ++msgid "could not create tmpdir: %s: %s\n" ++msgstr "nie udało się utworzyć katalogu tymczasowego: %s: %s\n" + +-#: .././repair/dir.c:2634 .././repair/dir2.c:2121 ++#: .././fsr/xfs_fsr.c:1777 + #, c-format +-msgid "no .. entry for root directory %\n" +-msgstr "brak wpisu .. dla katalogu głównego %\n" ++msgid "cannot create tmpdir: %s: %s\n" ++msgstr "nie można utworzyć katalogu tymczasowego: %s: %s\n" + +-#: .././repair/dir2.c:57 ++#: .././fsr/xfs_fsr.c:1815 .././fsr/xfs_fsr.c:1823 + #, c-format +-msgid "malloc failed (%zu bytes) dir2_add_badlist:ino %\n" +-msgstr "malloc nie powiodło się (%zu bajtów) w dir2_add_badlist:ino %\n" +- +-#: .././repair/dir2.c:98 .././repair/dir2.c:209 .././repair/dir2.c:245 +-msgid "couldn't malloc dir2 buffer list\n" +-msgstr "nie można przydzielić listy bufora dir2\n" +- +-#: .././repair/dir2.c:125 +-msgid "couldn't malloc dir2 buffer header\n" +-msgstr "nie można przydzielić nagłówka bufora dir2\n" +- +-#: .././repair/dir2.c:142 +-msgid "couldn't malloc dir2 buffer data\n" +-msgstr "nie można przydzielić danych bufora dir2\n" ++msgid "could not remove tmpdir: %s: %s\n" ++msgstr "nie udało się usunąć katalogu tymczasowego: %s: %s\n" + +-#: .././repair/dir2.c:305 .././repair/dir2.c:663 .././repair/dir2.c:1709 +-#: .././repair/phase6.c:2290 ++#: .././growfs/xfs_growfs.c:26 + #, c-format +-msgid "can't read block %u for directory inode %\n" +-msgstr "nie można odczytać bloku %u dla i-węzła katalogu %\n" ++msgid "" ++"Usage: %s [options] mountpoint\n" ++"\n" ++"Options:\n" ++"\t-d grow data/metadata section\n" ++"\t-l grow log section\n" ++"\t-r grow realtime section\n" ++"\t-n don't change anything, just show geometry\n" ++"\t-i convert log from external to internal format\n" ++"\t-t alternate location for mount table (/etc/mtab)\n" ++"\t-x convert log from internal to external format\n" ++"\t-D size grow data/metadata section to size blks\n" ++"\t-L size grow/shrink log section to size blks\n" ++"\t-R size grow realtime section to size blks\n" ++"\t-e size set realtime extent size to size blks\n" ++"\t-m imaxpct set inode max percent to imaxpct\n" ++"\t-V print version information\n" ++msgstr "" ++"Składnia: %s [opcje] punkt_montowania\n" ++"\n" ++"Opcje:\n" ++"\t-d powiększenie sekcji danych/metadanych\n" ++"\t-l powiększenie sekcji logu\n" ++"\t-r powiększenie sekcji realtime\n" ++"\t-n bez zmian, tylko pokazanie geometrii\n" ++"\t-i przekształcenie logu z formatu zewnętrznego na wewnętrzny\n" ++"\t-t inne położenie tabeli montowań (/etc/mtab)\n" ++"\t-x przekształcenie logu z formatu wewnętrznego na zewnętrzny\n" ++"\t-D rozmiar powiększenie sekcji danych/metadanych do rozmiaru w blokach\n" ++"\t-L rozmiar powiększenie/zmniejszenie sekcji logu do rozmiaru w blokach\n" ++"\t-R rozmiar powiększenie sekcji realtime do rozmiaru w blokach\n" ++"\t-e rozmiar stawienie rozmiaru ekstentu realtime na rozmiar w blokach\n" ++"\t-m imaxpct ustawienie maksymalnego procentu i-węzłów na imaxpct\n" ++"\t-V wypisanie informacji o wersji\n" + +-#: .././repair/dir2.c:315 ++#: .././growfs/xfs_growfs.c:62 + #, c-format +-msgid "found non-root LEAFN node in inode % bno = %u\n" +-msgstr "znaleziono niegłówny węzeł LEAFN w i-węźle % bno = %u\n" ++msgid "" ++"meta-data=%-22s isize=%-6u agcount=%u, agsize=%u blks\n" ++" =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" ++" =%-22s crc=%u\n" ++"data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" ++" =%-22s sunit=%-6u swidth=%u blks\n" ++"naming =version %-14u bsize=%-6u ascii-ci=%d ftype=%d\n" ++"log =%-22s bsize=%-6u blocks=%u, version=%u\n" ++" =%-22s sectsz=%-5u sunit=%u blks, lazy-count=%u\n" ++"realtime =%-22s extsz=%-6u blocks=%llu, rtextents=%llu\n" ++msgstr "" ++"metadane=%-22s isize=%-6u agcount=%u, agsize=%u bloków\n" ++" =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" ++" =%-22s crc=%u\n" ++"dane =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" ++" =%-22s sunit=%-6u swidth=%u bloków\n" ++"nazwy =wersja %-14u bsize=%-6u ascii-ci=%d ftype=%d\n" ++"log =%-22s bsize=%-6u blocks=%u, wersja=%u\n" ++" =%-22s sectsz=%-5u sunit=%u bloków, lazy-count=%u\n" ++"realtime=%-22s extsz=%-6u blocks=%llu, rtextents=%llu\n" + +-#: .././repair/dir2.c:324 +-#, c-format +-msgid "bad dir magic number 0x%x in inode % bno = %u\n" +-msgstr "błędna liczba magiczna katalogu 0x%x w i-węźle % bno = %u\n" ++#: .././growfs/xfs_growfs.c:79 .././growfs/xfs_growfs.c:449 ++#: .././growfs/xfs_growfs.c:450 ++msgid "internal" ++msgstr "wewnętrzny" + +-#: .././repair/dir2.c:345 +-#, c-format +-msgid "bad header depth for directory inode %\n" +-msgstr "błędna głębokość nagłówka dla i-węzła katalogu %\n" ++#: .././growfs/xfs_growfs.c:79 .././growfs/xfs_growfs.c:82 ++#: .././growfs/xfs_growfs.c:449 .././growfs/xfs_growfs.c:450 ++msgid "external" ++msgstr "zewnętrzny" + +-#: .././repair/dir2.c:406 ++#: .././growfs/xfs_growfs.c:197 + #, c-format +-msgid "release_dir2_cursor_int got unexpected non-null bp, dabno = %u\n" +-msgstr "release_dir2_cursor_int otrzymał nieoczekiwany niezerowy bp, dabno = %u\n" ++msgid "%s: %s is not a mounted XFS filesystem\n" ++msgstr "%s: %s nie jest podmontowanym systemem plików XFS\n" + +-#: .././repair/dir2.c:469 ++#: .././growfs/xfs_growfs.c:214 + #, c-format +-msgid "directory block used/count inconsistency - %d / %hu\n" +-msgstr "niespójność wartości used/count bloku katalogu - %d / %hu\n" ++msgid "%s: specified file [\"%s\"] is not on an XFS filesystem\n" ++msgstr "%s: podany plik [\"%s\"] nie jest na systemie plików XFS\n" + +-#: .././repair/dir2.c:491 ++#: .././growfs/xfs_growfs.c:231 + #, c-format +-msgid "bad directory block in inode %\n" +-msgstr "błędny blok katalogu w i-węźle %\n" ++msgid "%s: cannot determine geometry of filesystem mounted at %s: %s\n" ++msgstr "%s: nie można określić geometrii systemu plików podmontowanego pod %s: %s\n" + +-#: .././repair/dir2.c:512 ++#: .././growfs/xfs_growfs.c:270 + #, c-format +-msgid "" +-"correcting bad hashval in non-leaf dir block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"poprawiono błędne hashval w bloku katalogu nie będącego liściem\n" +-"\tw i-węźle (poziomu %d) %.\n" ++msgid "%s: failed to access data device for %s\n" ++msgstr "%s: nie udało się uzyskać dostępu do urządzenia z danymi dla %s\n" + +-#: .././repair/dir2.c:520 ++#: .././growfs/xfs_growfs.c:275 + #, c-format +-msgid "" +-"would correct bad hashval in non-leaf dir block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"błędne hashval w bloku katalogu nie będącego liściem zostałoby poprawione\n" +-"\tw i-węźle (poziomu %d) %.\n" ++msgid "%s: failed to access external log for %s\n" ++msgstr "%s: nie udało się uzyskać dostępu do zewnętrznego logu dla %s\n" + +-#: .././repair/dir2.c:676 ++#: .././growfs/xfs_growfs.c:281 + #, c-format +-msgid "bad magic number %x in block %u for directory inode %\n" +-msgstr "błędna liczba magiczna %x w bloku %u dla i-węzła katalogu %\n" ++msgid "%s: failed to access realtime device for %s\n" ++msgstr "%s: nie udało się uzyskać dostępu do urządzenia realtime dla %s\n" + +-#: .././repair/dir2.c:684 ++#: .././growfs/xfs_growfs.c:319 + #, c-format +-msgid "bad back pointer in block %u for directory inode %\n" +-msgstr "błędny wskaźnik wstecz w bloku %u dla i-węzła katalogu %\n" ++msgid "data size %lld too large, maximum is %lld\n" ++msgstr "rozmiar danych %lld zbyt duży, maksymalny to %lld\n" + +-#: .././repair/dir2.c:690 ++#: .././growfs/xfs_growfs.c:326 + #, c-format +-msgid "entry count %d too large in block %u for directory inode %\n" +-msgstr "liczba wpisów %d zbyt duża w bloku %u dla i-węzła katalogu %\n" ++msgid "data size %lld too small, old size is %lld\n" ++msgstr "rozmiar danych %lld zbyt mały, stary rozmiar to %lld\n" + +-#: .././repair/dir2.c:697 ++#: .././growfs/xfs_growfs.c:334 + #, c-format +-msgid "bad level %d in block %u for directory inode %\n" +-msgstr "błędny poziom %d w bloku %u dla i-węzła katalogu %\n" ++msgid "data size unchanged, skipping\n" ++msgstr "rozmiar danych nie zmieniony, pominięto\n" + +-#: .././repair/dir2.c:740 ++#: .././growfs/xfs_growfs.c:337 + #, c-format +-msgid "" +-"correcting bad hashval in interior dir block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"poprawiono błędne hashval w wewnętrznym bloku katalogu\n" +-"\tw i-węźle (poziomu %d) %.\n" ++msgid "inode max pct unchanged, skipping\n" ++msgstr "maksymalny procent i-węzłów nie zmieniony, pominięto\n" + +-#: .././repair/dir2.c:748 ++#: .././growfs/xfs_growfs.c:344 .././growfs/xfs_growfs.c:383 ++#: .././growfs/xfs_growfs.c:418 + #, c-format +-msgid "" +-"would correct bad hashval in interior dir block\n" +-"\tin (level %d) in inode %.\n" +-msgstr "" +-"błędne hashval w wewnętrznym bloku katalogu zostałoby poprawione\n" +-"\tw i-węźle (poziomu %d) %.\n" +- +-#: .././repair/dir2.c:782 +-msgid "couldn't malloc dir2 shortform copy\n" +-msgstr "nie udało się przydzielić krótkiej kopii dir2\n" +- +-#: .././repair/dir2.c:920 +-msgid "current" +-msgstr "bieżącego i-węzła" +- +-#: .././repair/dir2.c:923 .././repair/dir2.c:1443 +-msgid "invalid" +-msgstr "nieprawidłowego i-węzła" +- +-#: .././repair/dir2.c:926 .././repair/dir2.c:1445 +-msgid "realtime bitmap" +-msgstr "i-węzła bitmapy realtime" +- +-#: .././repair/dir2.c:929 .././repair/dir2.c:1447 +-msgid "realtime summary" +-msgstr "i-węzła opisu realtime" +- +-#: .././repair/dir2.c:932 .././repair/dir2.c:1449 +-msgid "user quota" +-msgstr "i-węzła limitów użytkownika" +- +-#: .././repair/dir2.c:935 .././repair/dir2.c:1451 +-msgid "group quota" +-msgstr "i-węzła limitów grupy" +- +-#: .././repair/dir2.c:953 .././repair/dir2.c:1481 +-msgid "free" +-msgstr "free" +- +-#: .././repair/dir2.c:970 .././repair/dir2.c:1461 +-msgid "non-existent" +-msgstr "nie istniejącego i-węzła" ++msgid "%s: growfs operation in progress already\n" ++msgstr "%s: operacja growfs już trwa\n" + +-#: .././repair/dir2.c:975 ++#: .././growfs/xfs_growfs.c:348 + #, c-format +-msgid "entry \"%*.*s\" in shortform directory % references %s inode %\n" +-msgstr "wpis \"%*.*s\" w krótkim katalogu % odwołuje się do %s %\n" ++msgid "%s: XFS_IOC_FSGROWFSDATA xfsctl failed: %s\n" ++msgstr "%s: xfsctl XFS_IOC_FSGROWFSDATA nie powiodło się: %s\n" + +-#: .././repair/dir2.c:1005 ++#: .././growfs/xfs_growfs.c:364 + #, c-format +-msgid "zero length entry in shortform dir %" +-msgstr "wpis zerowej długości w krótkim katalogu %" ++msgid "realtime size %lld too large, maximum is %lld\n" ++msgstr "rozmiar realtime %lld zbyt duży, maksymalny to %lld\n" + +-#: .././repair/dir2.c:1008 ++#: .././growfs/xfs_growfs.c:370 + #, c-format +-msgid ", junking %d entries\n" +-msgstr ", wyrzucono %d wpisów\n" ++msgid "realtime size %lld too small, old size is %lld\n" ++msgstr "rozmiar realtime %lld zbyt mały, stary rozmiar to %lld\n" + +-#: .././repair/dir2.c:1011 ++#: .././growfs/xfs_growfs.c:376 + #, c-format +-msgid ", would junk %d entries\n" +-msgstr ", %d wpisów zostałoby wyrzucone\n" ++msgid "realtime size unchanged, skipping\n" ++msgstr "rozmiar realtime nie zmieniony, pominięto\n" + +-#: .././repair/dir2.c:1086 ++#: .././growfs/xfs_growfs.c:387 + #, c-format +-msgid "entry contains offset out of order in shortform dir %\n" +-msgstr "wpis zawiera uszkodzony offset w krótkim katalogu %\n" ++msgid "%s: realtime growth not implemented\n" ++msgstr "%s: powiększanie realtime nie jest zaimplementowane\n" + +-#: .././repair/dir2.c:1189 ++#: .././growfs/xfs_growfs.c:391 + #, c-format +-msgid "would have corrected i8 count in directory % from %d to %d\n" +-msgstr "liczba i8 zostałaby poprawiona w katalogu % z %d na %d\n" ++msgid "%s: XFS_IOC_FSGROWFSRT xfsctl failed: %s\n" ++msgstr "%s: xfsctl XFS_IOC_FSGROWFSRT nie powiodło się: %s\n" + +-#: .././repair/dir2.c:1193 ++#: .././growfs/xfs_growfs.c:412 + #, c-format +-msgid "corrected i8 count in directory %, was %d, now %d\n" +-msgstr "poprawiono liczbę i8 w katalogu % - było %d, jest %d\n" ++msgid "log size unchanged, skipping\n" ++msgstr "rozmiar logu nie zmieniony, pominięto\n" + +-#: .././repair/dir2.c:1207 ++#: .././growfs/xfs_growfs.c:422 + #, c-format +-msgid "would have corrected directory % size from % to %\n" +-msgstr "rozmiar katalogu % zostałby poprawiony z % na %\n" ++msgid "%s: log growth not supported yet\n" ++msgstr "%s: powiększanie logu nie jest jeszcze obsługiwane\n" + +-#: .././repair/dir2.c:1224 ++#: .././growfs/xfs_growfs.c:426 + #, c-format +-msgid "directory % offsets too high\n" +-msgstr "offsety zbyt duże w katalogu %\n" ++msgid "%s: XFS_IOC_FSGROWFSLOG xfsctl failed: %s\n" ++msgstr "%s: xfsctl XFS_IOC_FSGROWFSLOG nie powiodło się: %s\n" + +-#: .././repair/dir2.c:1230 ++#: .././growfs/xfs_growfs.c:434 + #, c-format +-msgid "would have corrected entry offsets in directory %\n" +-msgstr "offsety wpisów w katalogu % zostałyby poprawione\n" ++msgid "%s: XFS_IOC_FSGEOMETRY xfsctl failed: %s\n" ++msgstr "%s: xfsctl XFS_IOC_FSGEOMETRY nie powiodło się: %s\n" + +-#: .././repair/dir2.c:1234 ++#: .././growfs/xfs_growfs.c:439 + #, c-format +-msgid "corrected entry offsets in directory %\n" +-msgstr "poprawiono offsety wpisów w katalogu %\n" ++msgid "data blocks changed from %lld to %lld\n" ++msgstr "bloki danych zmienione z %lld na %lld\n" + +-#: .././repair/dir2.c:1289 ++#: .././growfs/xfs_growfs.c:442 + #, c-format +-msgid "bad .. entry in directory inode %, points to self, " +-msgstr "błędny wpis .. w i-węźle katalogu %, wskazuje na siebie, " ++msgid "inode max percent changed from %d to %d\n" ++msgstr "maksymalny procent i-węzłów zmieniony z %d na %d\n" + +-#: .././repair/dir2.c:1401 ++#: .././growfs/xfs_growfs.c:445 + #, c-format +-msgid "corrupt block %u in directory inode %\n" +-msgstr "uszkodzony blok %u w i-węźle katalogu %\n" +- +-#: .././repair/dir2.c:1404 +-msgid "\twill junk block\n" +-msgstr "\tblok zostanie wyrzucony\n" +- +-#: .././repair/dir2.c:1406 +-msgid "\twould junk block\n" +-msgstr "\tblok zostałby wyrzucony\n" ++msgid "log blocks changed from %d to %d\n" ++msgstr "bloki logu zmienione z %d na %d\n" + +-#: .././repair/dir2.c:1490 ++#: .././growfs/xfs_growfs.c:448 + #, c-format +-msgid "entry \"%*.*s\" at block %d offset % in directory inode % references %s inode %\n" +-msgstr "wpis \"%*.*s\" w bloku %d offsecie % w i-węźle katalogu % odwołuje się do %s %\n" ++msgid "log changed from %s to %s\n" ++msgstr "log zmieniony - był %s, jest %s\n" + +-#: .././repair/dir2.c:1501 ++#: .././growfs/xfs_growfs.c:452 + #, c-format +-msgid "entry at block %u offset % in directory inode %has 0 namelength\n" +-msgstr "wpis w bloku %u offsecie % w i-węźle katalogu % ma zerową długość nazwy\n" ++msgid "realtime blocks changed from %lld to %lld\n" ++msgstr "bloki realtime zmienione z %lld na %lld\n" + +-#: .././repair/dir2.c:1514 ++#: .././growfs/xfs_growfs.c:455 + #, c-format +-msgid "\tclearing inode number in entry at offset %...\n" +-msgstr "\twyczyszczono numer i-węzła we wpisie o offsecie %...\n" ++msgid "realtime extent size changed from %d to %d\n" ++msgstr "rozmiar ekstentu realtime zmieniony z %d na %d\n" + +-#: .././repair/dir2.c:1521 ++#: .././io/attr.c:59 + #, c-format +-msgid "\twould clear inode number in entry at offset %...\n" +-msgstr "\tnumer i-węzła we wpisie o offsecie % zostałby wyczyszczony...\n" +- +-#: .././repair/dir2.c:1534 +-#, c-format +-msgid "entry at block %u offset % in directory inode % has illegal name \"%*.*s\": " +-msgstr "wpis w bloku %u offsecie % w i-węźle katalogu % ma niedozwoloną nazwę \"%*.*s\": " ++msgid "" ++"\n" ++" displays the set of extended inode flags associated with the current file\n" ++"\n" ++" Each individual flag is displayed as a single character, in this order:\n" ++" r -- file data is stored in the realtime section\n" ++" p -- file has preallocated extents (cannot be changed using chattr)\n" ++" i -- immutable, file cannot be modified\n" ++" a -- append-only, file can only be appended to\n" ++" s -- all updates are synchronous\n" ++" A -- the access time is not updated for this inode\n" ++" d -- do not include this file in a dump of the filesystem\n" ++" t -- child created in this directory has realtime bit set by default\n" ++" P -- child created in this directory has parents project ID by default\n" ++" n -- symbolic links cannot be created in this directory\n" ++" e -- for non-realtime files, observe the inode extent size value\n" ++" E -- children created in this directory inherit the extent size value\n" ++" f -- do not include this file when defragmenting the filesystem\n" ++" S -- enable filestreams allocator for this directory\n" ++"\n" ++" Options:\n" ++" -R -- recursively descend (useful when current file is a directory)\n" ++" -D -- recursively descend, but only list attributes on directories\n" ++" -a -- show all flags which can be set alongside those which are set\n" ++" -v -- verbose mode; show long names of flags, not single characters\n" ++"\n" ++msgstr "" ++"\n" ++" wyświetlanie zbioru rozszerzonych flag i-węzłów związanych z bieżącym plikiem\n" ++"\n" ++" Każda flaga jest wyświetlana jako pojedynczy znak, w tej kolejności:\n" ++" r - dane pliku są zapisane w sekcji realtime\n" ++" p - plik ma już przydzielone ekstenty (nie do zmiany przez chattr)\n" ++" i - niezmienny, pliku nie można modyfikować\n" ++" a - tylko do dopisywania, do pliku można tylko dopisywać\n" ++" s - wszystkie uaktualnienia są synchroniczne\n" ++" A - czas dostępu nie jest uaktualniany dla tego i-węzła\n" ++" d - nie dołączanie pliku do zrzutu systemu plików\n" ++" t - wpisy tworzone w tym katalogu mają domyślnie ustawiony bit realtime\n" ++" P - wpisy tworzone w tym katalogu mają domyślnie ID projektu rodzica\n" ++" n - w tym katalogu nie można tworzyć dowiązań symbolicznych\n" ++" e - dla plików nie-realtime - przestrzeganie wartości rozmiaru ekstentu i-węzła\n" ++" E - wpisy tworzone w tym katalogu dziedziczą wartość rozmiaru ekstentu\n" ++" f - nie uwzględnianie tego pliku przy defragmentacji systemu plików\n" ++" S - włączenie przydzielania strumieni plikowych dla tego katalogu\n" ++"\n" ++" Opcje:\n" ++" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" ++" -D - rekurencyjne zagłębianie się, ale wypisywanie atrybutów tylko katalogów\n" ++" -a - pokazywanie wszystkich flag, które można ustawić, obok ustawionych\n" ++" -v - tryb szczegółowy; pokazywanie długich nazw flag zamiast pojedynczych znaków\n" ++"\n" + +-#: .././repair/dir2.c:1564 ++#: .././io/attr.c:90 + #, c-format +-msgid "bad .. entry in directory inode %, points to self: " +-msgstr "błędny wpis .. w i-węźle katalogu %, wskazuje na siebie: " ++msgid "" ++"\n" ++" modifies the set of extended inode flags associated with the current file\n" ++"\n" ++" Examples:\n" ++" 'chattr +a' - sets the append-only flag\n" ++" 'chattr -a' - clears the append-only flag\n" ++"\n" ++" -R -- recursively descend (useful when current file is a directory)\n" ++" -D -- recursively descend, only modifying attributes on directories\n" ++" +/-r -- set/clear the realtime flag\n" ++" +/-i -- set/clear the immutable flag\n" ++" +/-a -- set/clear the append-only flag\n" ++" +/-s -- set/clear the sync flag\n" ++" +/-A -- set/clear the no-atime flag\n" ++" +/-d -- set/clear the no-dump flag\n" ++" +/-t -- set/clear the realtime inheritance flag\n" ++" +/-P -- set/clear the project ID inheritance flag\n" ++" +/-n -- set/clear the no-symbolic-links flag\n" ++" +/-e -- set/clear the extent-size flag\n" ++" +/-E -- set/clear the extent-size inheritance flag\n" ++" +/-f -- set/clear the no-defrag flag\n" ++" +/-S -- set/clear the filestreams allocator flag\n" ++" Note1: user must have certain capabilities to modify immutable/append-only.\n" ++" Note2: immutable/append-only files cannot be deleted; removing these files\n" ++" requires the immutable/append-only flag to be cleared first.\n" ++" Note3: the realtime flag can only be set if the filesystem has a realtime\n" ++" section, and the (regular) file must be empty when the flag is set.\n" ++"\n" ++msgstr "" ++"\n" ++" zmiana zbioru rozszerzonych flag i-węzłów związanych z bieżącym plikiem\n" ++"\n" ++" Przykłady:\n" ++" 'chattr +a' - ustawia flagę tylko do dopisywania\n" ++" 'chattr -a' - zdejmuje flagę tylko do dopisywania\n" ++"\n" ++" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" ++" -D - rekurencyjne zagłębianie się, ale zmiana atrybutów tylko katalogów\n" ++" +/-r - ustawienie/zdjęcie flagi realtime\n" ++" +/-i - ustawienie/zdjęcie flagi immutable (niezmienności)\n" ++" +/-a - ustawienie/zdjęcie flagi append-only (tylko do dopisywania)\n" ++" +/-s - ustawienie/zdjęcie flagi sync (synchronicznego zapisu)\n" ++" +/-A - ustawienie/zdjęcie flagi no-atime\n" ++" +/-d - ustawienie/zdjęcie flagi no-dump\n" ++" +/-t - ustawienie/zdjęcie flagi dziedziczenia realtime\n" ++" +/-P - ustawienie/zdjęcie flagi dziedziczenia ID projektu\n" ++" +/-n - ustawienie/zdjęcie flagi braku dowiązań symbolicznych\n" ++" +/-e - ustawienie/zdjęcie flagi rozmiaru ekstentu\n" ++" +/-E - ustawienie/zdjęcie flagi dziedziczenia rozmiaru ekstentu\n" ++" +/-f - ustawienie/zdjęcie flagi no-defrag\n" ++" +/-S - ustawienie/zdjęcie flagi przydzielania strumieni plikowych\n" ++" Uwaga1: użytkownik musi mieć pewne uprawnienia do zmiany flag\n" ++" immutable/append-only\n" ++" Uwaga2: plików immutable/append-only nie można usuwać; usuwanie tych plików\n" ++" wymaga zdjęcia flag immutable/append-only przed usunięciem.\n" ++" Uwaga3: flagę realtime można ustawić tylko jeśli system plików ma sekcję\n" ++" realtime i (zwykły) plik musi być pusty przy ustawianiu flagi.\n" ++"\n" + +-#: .././repair/dir2.c:1575 ++#: .././io/attr.c:171 .././io/attr.c:247 .././io/open.c:424 .././io/open.c:496 ++#: .././io/open.c:620 .././io/open.c:642 .././libxfs/init.c:109 ++#: .././mkfs/proto.c:294 .././quota/project.c:118 .././quota/project.c:163 ++#: .././quota/project.c:210 + #, c-format +-msgid "bad .. entry in root directory inode %, was %: " +-msgstr "błędny wpis w i-węźle głównego katalogu %, było %: " +- +-#: .././repair/dir2.c:1578 .././repair/dir2.c:1610 .././repair/phase2.c:180 +-#: .././repair/phase2.c:189 .././repair/phase2.c:198 +-msgid "correcting\n" +-msgstr "poprawiono\n" +- +-#: .././repair/dir2.c:1582 .././repair/dir2.c:1614 .././repair/phase2.c:182 +-#: .././repair/phase2.c:191 .././repair/phase2.c:200 +-msgid "would correct\n" +-msgstr "zostałby poprawiony\n" ++msgid "%s: cannot open %s: %s\n" ++msgstr "%s: nie można otworzyć %s: %s\n" + +-#: .././repair/dir2.c:1594 ++#: .././io/attr.c:174 .././io/attr.c:221 .././io/attr.c:250 .././io/attr.c:321 ++#: .././quota/project.c:122 .././quota/project.c:168 .././quota/project.c:215 + #, c-format +-msgid "multiple .. entries in directory inode %: " +-msgstr "wiele wpisów .. w i-węźle katalogu %: " ++msgid "%s: cannot get flags on %s: %s\n" ++msgstr "%s: nie można pobrać flag %s: %s\n" + +-#: .././repair/dir2.c:1607 ++#: .././io/attr.c:256 .././io/attr.c:327 + #, c-format +-msgid "bad . entry in directory inode %, was %: " +-msgstr "błędny wpis . w i-węźle katalogu %, było %: " ++msgid "%s: cannot set flags on %s: %s\n" ++msgstr "%s: nie można ustawić flag %s: %s\n" + +-#: .././repair/dir2.c:1619 ++#: .././io/attr.c:291 .././io/attr.c:305 + #, c-format +-msgid "multiple . entries in directory inode %: " +-msgstr "wiele wpisów . w i-węźle katalogu %: " ++msgid "%s: unknown flag\n" ++msgstr "%s: nieznana flaga\n" + +-#: .././repair/dir2.c:1629 ++#: .././io/attr.c:311 + #, c-format +-msgid "entry \"%*.*s\" in directory inode % points to self: " +-msgstr "wpis \"%*.*s\" w i-węźle katalogu % wskazuje na siebie: " ++msgid "%s: bad chattr command, not +/-X\n" ++msgstr "%s: złe polecenie chattr - nie +/-X\n" + +-#: .././repair/dir2.c:1640 +-msgid "clearing entry\n" +-msgstr "wyczyszczono wpis\n" ++#: .././io/attr.c:338 ++msgid "[-R|-D] [+/-" ++msgstr "[-R|-D] [+/-" + +-#: .././repair/dir2.c:1655 +-#, c-format +-msgid "bad bestfree table in block %u in directory inode %: " +-msgstr "błędna tablica bestfree w bloku %u w i-węźle katalogu %: " ++#: .././io/attr.c:343 ++msgid "change extended inode flags on the currently open file" ++msgstr "zmiana rozszerzonych flag i-węzłów aktualnie otwartego pliku" + +-#: .././repair/dir2.c:1658 +-msgid "repairing table\n" +-msgstr "naprawiono tablicę\n" ++#: .././io/attr.c:348 ++msgid "[-R|-D|-a|-v]" ++msgstr "[-R|-D|-a|-v]" + +-#: .././repair/dir2.c:1662 +-msgid "would repair table\n" +-msgstr "tablica zostałaby naprawiona\n" ++#: .././io/attr.c:353 ++msgid "list extended inode flags set on the currently open file" ++msgstr "wypisanie rozszerzonych flag i-węzłów aktualnie otwartego pliku" + +-#: .././repair/dir2.c:1700 ++#: .././io/bmap.c:30 + #, c-format +-msgid "block %u for directory inode % is missing\n" +-msgstr "brak bloku %u dla i-węzła katalogu %\n" ++msgid "" ++"\n" ++" prints the block mapping for an XFS file's data or attribute forks\n" ++" Example:\n" ++" 'bmap -vp' - tabular format verbose map, including unwritten extents\n" ++"\n" ++" bmap prints the map of disk blocks used by the current file.\n" ++" The map lists each extent used by the file, as well as regions in the\n" ++" file that do not have any corresponding blocks (holes).\n" ++" By default, each line of the listing takes the following form:\n" ++" extent: [startoffset..endoffset]: startblock..endblock\n" ++" Holes are marked by replacing the startblock..endblock with 'hole'.\n" ++" All the file offsets and disk blocks are in units of 512-byte blocks.\n" ++" -a -- prints the attribute fork map instead of the data fork.\n" ++" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n" ++" -l -- also displays the length of each extent in 512-byte blocks.\n" ++" -n -- query n extents.\n" ++" -p -- obtain all unwritten extents as well (w/ -v show which are unwritten.)\n" ++" -v -- Verbose information, specify ag info. Show flags legend on 2nd -v\n" ++" Note: the bmap for non-regular files can be obtained provided the file\n" ++" was opened appropriately (in particular, must be opened read-only).\n" ++"\n" ++msgstr "" ++"\n" ++" wypisanie mapowania bloków dla danych lub atrybutów pliku na XFS-ie\n" ++" Przykład:\n" ++" 'bmap -vp' - szczegółowa mapa w formacie tabeli wraz z nie zapisanymi\n" ++" ekstentami\n" ++"\n" ++" bmap wypisuje mapę bloków dysku używanych przez bieżący plik.\n" ++" Mapa opisuje każdy ekstent użyty przez plik, a także regiony w pliku\n" ++" nie mające przypisanych bloków (dziury).\n" ++" Domyślnie każda linia listingu przyjmuje następującą postać:\n" ++" ekstent: [offsetpocz..offsetkońc]: blokpocz..blokkońc\n" ++" Dziury są oznaczane przez zastąpienie blokpocz..blokkońc przez 'dziura'.\n" ++" Wszystkie offsety w plikach i bloki dysku są w jednostkach 512-bajtowych.\n" ++" -a - wypisanie mapy gałęzi atrybutów zamiast gałęzi danych.\n" ++" -d - pominięcie zdarzenia odczytu DMAPI, pokazanie części offline jako dziur.\n" ++" -l - wyświetlenie także długości każdego fragmentu w 512-bajtowych blokach.\n" ++" -n - odpytanie n ekstentów.\n" ++" -p - wypisanie także nie zapisanych ekstentów (z -v pokazuje, które są nie\n" ++" zapisane).\n" ++" -v - szczegółowe informacje z podaniem informacji ag; legenda drugim -v\n" ++" Uwaga: bmap dla plików nie będących plikami zwykłymi można uzyskać pod\n" ++" warunkiem, że plik został otwarty odpowiednio (w szczególności musi być\n" ++" otwarty tylko do odczytu).\n" ++"\n" + +-#: .././repair/dir2.c:1719 ++#: .././io/bmap.c:123 + #, c-format +-msgid "bad directory block magic # %#x in block %u for directory inode %\n" +-msgstr "błędna liczba magiczna bloku katalogu %#x w bloku %u dla i-węzła katalogu %\n" ++msgid "%s: can't get geometry [\"%s\"]: %s\n" ++msgstr "%s: nie można uzyskać geometrii [\"%s\"]: %s\n" + +-#: .././repair/dir2.c:1763 ++#: .././io/bmap.c:131 + #, c-format +-msgid "bad entry count in block %u of directory inode %\n" +-msgstr "błędna liczba wpisów w bloku %u i-węzła katalogu %\n" ++msgid "%s: cannot read attrs on \"%s\": %s\n" ++msgstr "%s: nie można odczytać atrybutów \"%s\": %s\n" + +-#: .././repair/dir2.c:1771 ++#: .././io/bmap.c:149 .././io/fiemap.c:259 + #, c-format +-msgid "bad hash ordering in block %u of directory inode %\n" +-msgstr "błędna kolejność hasza w bloku %u i-węzła katalogu %\n" ++msgid "%s: malloc of %d bytes failed.\n" ++msgstr "%s: przydzielenie %d bajtów nie powiodło się.\n" + +-#: .././repair/dir2.c:1780 ++#: .././io/bmap.c:197 + #, c-format +-msgid "bad stale count in block %u of directory inode %\n" +-msgstr "błędna liczba stale %u i-węzła katalogu %\n" ++msgid "%s: xfsctl(XFS_IOC_GETBMAPX) iflags=0x%x [\"%s\"]: %s\n" ++msgstr "%s: xfsctl(XFS_IOC_GETBMAPX) iflags=0x%x [\"%s\"]: %s\n" + +-#: .././repair/dir2.c:1838 ++#: .././io/bmap.c:228 + #, c-format +-msgid "can't read file block %u for directory inode %\n" +-msgstr "nie można odczytać bloku pliku %u dla i-węzła katalogu %\n" ++msgid "%s: cannot realloc %d bytes\n" ++msgstr "%s: nie można wykonać realloc na %d bajtów\n" + +-#: .././repair/dir2.c:1849 ++#: .././io/bmap.c:237 + #, c-format +-msgid "bad directory leaf magic # %#x for directory inode % block %u\n" +-msgstr "błędna liczba magiczna liścia katalogu %#x dla i-węzła katalogu % bloku %u\n" ++msgid "%s: no extents\n" ++msgstr "%s: brak ekstentów\n" + +-#: .././repair/dir2.c:1879 ++#: .././io/bmap.c:251 .././io/bmap.c:379 .././io/fiemap.c:105 ++#: .././io/fiemap.c:340 .././io/fiemap.c:344 + #, c-format +-msgid "bad sibling back pointer for block %u in directory inode %\n" +-msgstr "błędny wskaźnik wstecz dla bloku %u w i-węźle katalogu %\n" ++msgid "hole" ++msgstr "dziura" + +-#: .././repair/dir2.c:2009 ++#: .././io/bmap.c:260 + #, c-format +-msgid "block % for directory inode % is missing\n" +-msgstr "brak bloku % dla i-węzła katalogu %\n" ++msgid " %lld blocks\n" ++msgstr " %lld bloków\n" + +-#: .././repair/dir2.c:2018 +-#, c-format +-msgid "can't read block % for directory inode %\n" +-msgstr "nie można odczytać bloku % dla i-węzła katalogu %\n" ++#: .././io/bmap.c:339 .././io/fiemap.c:94 ++msgid "EXT" ++msgstr "EXT" + +-#: .././repair/dir2.c:2025 +-#, c-format +-msgid "bad directory block magic # %#x in block % for directory inode %\n" +-msgstr "błędna liczba magiczna bloku katalogu %#x w bloku % dla i-węzła katalogu %\n" ++#: .././io/bmap.c:340 .././io/fiemap.c:95 ++msgid "FILE-OFFSET" ++msgstr "OFFSET-W-PLIKU" + +-#: .././repair/dir2.c:2102 +-#, c-format +-msgid "bad size/format for directory %\n" +-msgstr "błędny rozmiar/format dla katalogu %\n" ++#: .././io/bmap.c:341 ++msgid "RT-BLOCK-RANGE" ++msgstr "ZAKRES-BLOKÓW-RT" + +-#: .././repair/phase4.c:202 +-msgid "Phase 4 - check for duplicate blocks...\n" +-msgstr "Faza 4 - sprawdzanie powtórzonych bloków...\n" ++#: .././io/bmap.c:341 .././io/fiemap.c:96 ++msgid "BLOCK-RANGE" ++msgstr "ZAKRES-BLOKÓW" + +-#: .././repair/phase4.c:203 +-msgid " - setting up duplicate extent list...\n" +-msgstr " - tworzenie listy powtórzonych ekstentów...\n" ++#: .././io/bmap.c:342 ++msgid "AG" ++msgstr "AG" + +-#: .././repair/phase4.c:217 +-msgid "root inode would be lost\n" +-msgstr "główny i-węzeł zostałby utracony\n" ++#: .././io/bmap.c:343 ++msgid "AG-OFFSET" ++msgstr "OFFSET-AG" + +-#: .././repair/phase4.c:219 +-msgid "root inode lost\n" +-msgstr "główny i-węzeł utracony\n" ++#: .././io/bmap.c:344 .././io/fiemap.c:97 ++msgid "TOTAL" ++msgstr "RAZEM" + +-#: .././repair/phase4.c:236 +-#, c-format +-msgid "unknown block state, ag %d, block %d\n" +-msgstr "nieznany stan bloku, ag %d, blok %d\n" ++#: .././io/bmap.c:345 ++msgid " FLAGS" ++msgstr " FLAGI" + +-#: .././repair/phase4.c:269 ++#: .././io/bmap.c:413 + #, c-format +-msgid "unknown rt extent state, extent %\n" +-msgstr "nieznany stan ekstentu rt, ekstent %\n" +- +-#: .././repair/phase4.c:318 +-msgid " - check for inodes claiming duplicate blocks...\n" +-msgstr " - szukanie i-węzłów odwołujących się do powtórzonych bloków...\n" ++msgid " FLAG Values:\n" ++msgstr " Wartości FLAG:\n" + +-#: .././repair/phase6.c:63 ++#: .././io/bmap.c:414 + #, c-format +-msgid "malloc failed add_dotdot_update (%zu bytes)\n" +-msgstr "malloc nie powiodło się w add_dotdot_update (%zu bajtów)\n" ++msgid " %*.*o Unwritten preallocated extent\n" ++msgstr " %*.*o Nie zapisany, już przydzielony ekstent\n" + +-#: .././repair/phase6.c:174 ++#: .././io/bmap.c:416 + #, c-format +-msgid "malloc failed in dir_hash_add (%zu bytes)\n" +-msgstr "malloc nie powiodło się w dir_hash_add (%zu bajtów)\n" +- +-#: .././repair/phase6.c:228 +-msgid "ok" +-msgstr "ok" +- +-#: .././repair/phase6.c:229 +-msgid "duplicate leaf" +-msgstr "powtórzony liść" +- +-#: .././repair/phase6.c:230 +-msgid "hash value mismatch" +-msgstr "niezgodność wartości hasza" +- +-#: .././repair/phase6.c:231 +-msgid "no data entry" +-msgstr "brak wpisu danych" +- +-#: .././repair/phase6.c:232 +-msgid "no leaf entry" +-msgstr "brak wpisu liścia" +- +-#: .././repair/phase6.c:233 +-msgid "bad stale count" +-msgstr "błędna liczba stale" ++msgid " %*.*o Doesn't begin on stripe unit\n" ++msgstr " %*.*o Nie zaczyna się od jednostki pasa\n" + +-#: .././repair/phase6.c:241 ++#: .././io/bmap.c:418 + #, c-format +-msgid "bad hash table for directory inode % (%s): " +-msgstr "błędna tablica haszująca dla i-węzła katalogu % (%s): " ++msgid " %*.*o Doesn't end on stripe unit\n" ++msgstr " %*.*o Nie kończy się na jednostce pasa\n" + +-#: .././repair/phase6.c:244 +-msgid "rebuilding\n" +-msgstr "przebudowano\n" ++#: .././io/bmap.c:420 ++#, c-format ++msgid " %*.*o Doesn't begin on stripe width\n" ++msgstr " %*.*o Nie zaczyna się na szerokości pasa\n" + +-#: .././repair/phase6.c:246 +-msgid "would rebuild\n" +-msgstr "zostałaby przebudowana\n" ++#: .././io/bmap.c:422 ++#, c-format ++msgid " %*.*o Doesn't end on stripe width\n" ++msgstr " %*.*o Nie kończy się na szerokości pasa\n" + +-#: .././repair/phase6.c:282 +-msgid "calloc failed in dir_hash_init\n" +-msgstr "calloc nie powiodło się w dir_hash_init\n" ++#: .././io/bmap.c:438 ++msgid "[-adlpv] [-n nx]" ++msgstr "[-adlpv] [-n nx]" + +-#: .././repair/phase6.c:412 +-msgid "ran out of disk space!\n" +-msgstr "brak miejsca na dysku!\n" ++#: .././io/bmap.c:439 ++msgid "print block mapping for an XFS file" ++msgstr "wypisanie mapowania bloków dla pliku na XFS-ie" + +-#: .././repair/phase6.c:414 ++#: .././io/fadvise.c:31 + #, c-format +-msgid "xfs_trans_reserve returned %d\n" +-msgstr "xfs_trans_reserve zwróciło %d\n" ++msgid "" ++"\n" ++" advise the page cache about expected I/O patterns on the current file\n" ++"\n" ++" Modifies kernel page cache behaviour when operating on the current file.\n" ++" The range arguments are required by some advise commands ([*] below).\n" ++" With no arguments, the POSIX_FADV_NORMAL advice is implied.\n" ++" -d -- don't need these pages (POSIX_FADV_DONTNEED) [*]\n" ++" -n -- data will be accessed once (POSIX_FADV_NOREUSE) [*]\n" ++" -r -- expect random page references (POSIX_FADV_RANDOM)\n" ++" -s -- expect sequential page references (POSIX_FADV_SEQUENTIAL)\n" ++" -w -- will need these pages (POSIX_FADV_WILLNEED) [*]\n" ++" Notes: these interfaces are not supported in Linux kernels before 2.6.\n" ++" NORMAL sets the default readahead setting on the file.\n" ++" RANDOM sets the readahead setting on the file to zero.\n" ++" SEQUENTIAL sets double the default readahead setting on the file.\n" ++" WILLNEED and NOREUSE are equivalent, and force the maximum readahead.\n" ++"\n" ++msgstr "" ++"\n" ++" doradzenie buforowi stron w sprawie oczekiwanych schematów we/wy na bieżącym\n" ++" pliku\n" ++"\n" ++" fadvise modyfikuje zachowanie bufora stron przy operacjach na bieżącym pliku.\n" ++" Niektóre polecenia fadvise ([*] poniżej) wymagają podania zakresu.\n" ++" Bez argumentów zakłada się doradzenie POSIX_FADV_NORMAL.\n" ++" -d - podane strony nie są wymagane (POSIX_FADV_DONTNEED) [*]\n" ++" -n - dostęp do danych będzie jednokrotny (POSIX_FADV_NOREUSE) [*]\n" ++" -r - należy oczekiwać losowych odwołań do stron (POSIX_FADV_RANDOM)\n" ++" -s - należy oczekiwać sekwencyjnych odwołań do stron (POSIX_FADV_SEQUENTIAL)\n" ++" -w - podane strony będą potrzebne (POSIX_FADV_WILLNEED) [*]\n" ++" Uwagi: te interfejsy nie były obsługiwane przez jądra Linuksa przed 2.6.\n" ++" NORMAL ustawia domyślną wartość czytania z wyprzedzeniem dla pliku.\n" ++" RANDOM ustawia czytanie z wyprzedzeniem dla pliku na zero.\n" ++" SEQUENTIAL ustawia podwójną domyślną wartość czytania z wyprzedzeniem.\n" ++" WILLNEED i NOREUSE są równoznaczne i wymuszają maksymalne czytanie\n" ++" z wyprzedzeniem.\n" ++"\n" + +-#: .././repair/phase6.c:443 .././repair/phase6.c:536 ++#: .././io/fadvise.c:92 .././io/madvise.c:87 .././io/mincore.c:48 ++#: .././io/mmap.c:206 .././io/mmap.c:301 .././io/mmap.c:387 .././io/mmap.c:546 ++#: .././io/prealloc.c:65 .././io/pwrite.c:344 .././io/sendfile.c:126 ++#: .././io/sync_file_range.c:75 + #, c-format +-msgid "couldn't iget realtime bitmap inode -- error - %d\n" +-msgstr "nie udało się wykonać iget dla i-węzła bitmapy realtime - błąd %d\n" ++msgid "non-numeric offset argument -- %s\n" ++msgstr "nieliczbowy argument będący offsetem - %s\n" + +-#: .././repair/phase6.c:493 ++#: .././io/fadvise.c:99 .././io/madvise.c:94 .././io/mincore.c:54 ++#: .././io/mmap.c:212 .././io/mmap.c:308 .././io/mmap.c:394 .././io/mmap.c:553 ++#: .././io/pread.c:452 .././io/pread.c:460 .././io/prealloc.c:70 ++#: .././io/pwrite.c:350 .././io/sendfile.c:133 .././io/sync_file_range.c:82 + #, c-format +-msgid "couldn't allocate realtime bitmap, error = %d\n" +-msgstr "nie udało się przydzielić bitmapy realtime, błąd = %d\n" ++msgid "non-numeric length argument -- %s\n" ++msgstr "nieliczbowy argument będący długością - %s\n" + +-#: .././repair/phase6.c:506 +-#, c-format +-msgid "allocation of the realtime bitmap failed, error = %d\n" +-msgstr "przydzielenie bitmapy realtime nie powiodło się, błąd = %d\n" ++#: .././io/fadvise.c:122 ++msgid "[-dnrsw] [off len]" ++msgstr "[-dnrsw] [offset długość]" + +-#: .././repair/phase6.c:549 +-#, c-format +-msgid "couldn't map realtime bitmap block %, error = %d\n" +-msgstr "nie udało się odwzorować bloku bitmapy realtime %, błąd = %d\n" ++#: .././io/fadvise.c:123 ++msgid "advisory commands for sections of a file" ++msgstr "polecenia doradcze dla sekcji pliku" + +-#: .././repair/phase6.c:562 ++#: .././io/fiemap.c:32 + #, c-format +-msgid "can't access block % (fsbno %) of realtime bitmap inode %\n" +-msgstr "brak dostępu do bloku % (fsbno %) i-węzła bitmapy realtime %\n" ++msgid "" ++"\n" ++" prints the block mapping for a file's data or attribute forks\n" ++" Example:\n" ++" 'fiemap -v' - tabular format verbose map\n" ++"\n" ++" fiemap prints the map of disk blocks used by the current file.\n" ++" The map lists each extent used by the file, as well as regions in the\n" ++" file that do not have any corresponding blocks (holes).\n" ++" By default, each line of the listing takes the following form:\n" ++" extent: [startoffset..endoffset]: startblock..endblock\n" ++" Holes are marked by replacing the startblock..endblock with 'hole'.\n" ++" All the file offsets and disk blocks are in units of 512-byte blocks.\n" ++" -a -- prints the attribute fork map instead of the data fork.\n" ++" -l -- also displays the length of each extent in 512-byte blocks.\n" ++" -n -- query n extents.\n" ++" -v -- Verbose information\n" ++"\n" ++msgstr "" ++"\n" ++" wypisanie mapowania bloków dla danych lub atrybutów pliku\n" ++" Przykład:\n" ++" 'fiemap -v' - szczegółowa mapa w formacie tabeli\n" ++"\n" ++" fiemap wypisuje mapę bloków dysku używanych przez bieżący plik.\n" ++" Mapa opisuje każdy ekstent użyty przez plik, a także regiony w pliku\n" ++" nie mające przypisanych bloków (dziury).\n" ++" Domyślnie każda linia listingu przyjmuje następującą postać:\n" ++" ekstent: [offsetpocz..offsetkońc]: blokpocz..blokkońc\n" ++" Dziury są oznaczane przez zastąpienie blokpocz..blokkońc przez 'dziura'.\n" ++" Wszystkie offsety w plikach i bloki dysku są w jednostkach 512-bajtowych.\n" ++" -a - wypisanie mapy gałęzi atrybutów zamiast gałęzi danych.\n" ++" -l - wyświetlenie także długości każdego fragmentu w 512-bajtowych blokach.\n" ++" -n - odpytanie n ekstentów.\n" ++" -v - szczegółowe informacje\n" ++"\n" + +-#: .././repair/phase6.c:605 .././repair/phase6.c:676 +-#, c-format +-msgid "couldn't iget realtime summary inode -- error - %d\n" +-msgstr "nie udało się wykonać iget dla i-węzła opisu realtime - błąd %d\n" ++#: .././io/fiemap.c:98 ++msgid "FLAGS" ++msgstr "FLAGI" + +-#: .././repair/phase6.c:618 ++#: .././io/fiemap.c:147 .././io/fiemap.c:161 .././io/fiemap.c:346 + #, c-format +-msgid "couldn't map realtime summary inode block %, error = %d\n" +-msgstr "nie udało się odwzorować bloku i-węzła opisu realtime %, błąd = %d\n" ++msgid " %llu blocks\n" ++msgstr " %llu bloków\n" + +-#: .././repair/phase6.c:631 +-#, c-format +-msgid "can't access block % (fsbno %) of realtime summary inode %\n" +-msgstr "brak dostępu do bloku % (fsbno %) i-węzła opisu realtime %\n" ++#: .././io/fiemap.c:366 ++msgid "[-alv] [-n nx]" ++msgstr "[-alv] [-n nx]" + +-#: .././repair/phase6.c:732 +-#, c-format +-msgid "couldn't allocate realtime summary inode, error = %d\n" +-msgstr "nie udało się przydzielić i-węzła opisu realtime, błąd = %d\n" ++#: .././io/fiemap.c:367 ++msgid "print block mapping for a file" ++msgstr "wypisanie mapowania bloków dla pliku" + +-#: .././repair/phase6.c:745 ++#: .././io/file.c:39 + #, c-format +-msgid "allocation of the realtime summary ino failed, error = %d\n" +-msgstr "przydzielenie i-węzła opisu realtime nie powiodło się, błąd = %d\n" ++msgid "%c%03d%c %-14s (%s,%s,%s,%s%s%s%s%s)\n" ++msgstr "%c%03d%c %-14s (%s,%s,%s,%s%s%s%s%s)\n" + +-#: .././repair/phase6.c:775 +-#, c-format +-msgid "could not iget root inode -- error - %d\n" +-msgstr "nie udało się wykonać iget dla głównego i-węzła - błąd %d\n" ++#: .././io/file.c:41 ++msgid "foreign" ++msgstr "obcy" + +-#: .././repair/phase6.c:845 +-#, c-format +-msgid "%d - couldn't iget root inode to obtain %s\n" +-msgstr "%d - nie udało się wykonać iget dla głównego węzła, aby uzyskać %s\n" ++#: .././io/file.c:41 ++msgid "xfs" ++msgstr "xfs" + +-#: .././repair/phase6.c:876 +-#, c-format +-msgid "%s inode allocation failed %d\n" +-msgstr "przydzielenie i-węzłą %s nie powiodło się - %d\n" ++#: .././io/file.c:42 .././io/open.c:97 ++msgid "sync" ++msgstr "synchr" + +-#: .././repair/phase6.c:907 +-#, c-format +-msgid "can't make %s, createname error %d\n" +-msgstr "nie można zrobić %s, błąd createname %d\n" ++#: .././io/file.c:42 .././io/open.c:97 ++msgid "non-sync" ++msgstr "niesynchr" + +-#: .././repair/phase6.c:927 +-#, c-format +-msgid "%s directory creation failed -- bmapf error %d\n" +-msgstr "tworzenie katalogu %s nie powiodło się - błąd bmapf %d\n" ++#: .././io/file.c:43 .././io/open.c:98 ++msgid "direct" ++msgstr "bezpośredni" + +-#: .././repair/phase6.c:970 +-#, c-format +-msgid "%d - couldn't iget orphanage inode\n" +-msgstr "%d - nie udało się wykonać iget dla i-węzła sierocińca\n" ++#: .././io/file.c:43 .././io/open.c:98 ++msgid "non-direct" ++msgstr "niebezpośredni" + +-#: .././repair/phase6.c:983 +-#, c-format +-msgid "%d - couldn't iget disconnected inode\n" +-msgstr "%d - nie udało się wykonać iget dla odłączonego i-węzła\n" ++#: .././io/file.c:44 .././io/open.c:99 ++msgid "read-only" ++msgstr "tylko do odczytu" + +-#: .././repair/phase6.c:1003 .././repair/phase6.c:1047 +-#: .././repair/phase6.c:1104 .././repair/phase6.c:1747 +-#, c-format +-msgid "space reservation failed (%d), filesystem may be out of space\n" +-msgstr "nie udało się zarezerwować miejsca (%d), może brakować miejsca w systemie plików\n" ++#: .././io/file.c:44 .././io/open.c:99 ++msgid "read-write" ++msgstr "odczyt i zapis" + +-#: .././repair/phase6.c:1014 .././repair/phase6.c:1059 +-#: .././repair/phase6.c:1115 +-#, c-format +-msgid "name create failed in %s (%d), filesystem may be out of space\n" +-msgstr "tworzenie nazwy nie powiodło się w %s (%d), może brakować miejsca w systemie plików\n" ++#: .././io/file.c:45 .././io/open.c:100 ++msgid ",real-time" ++msgstr ",real-time" + +-#: .././repair/phase6.c:1027 +-#, c-format +-msgid "creation of .. entry failed (%d), filesystem may be out of space\n" +-msgstr "tworzenie wpisu .. nie powiodło się (%d), może brakować miejsca w systemie plików\n" ++#: .././io/file.c:46 .././io/open.c:101 ++msgid ",append-only" ++msgstr ",tylko dopisywanie" + +-#: .././repair/phase6.c:1036 +-#, c-format +-msgid "bmap finish failed (err - %d), filesystem may be out of space\n" +-msgstr "zakończenie bmap nie powiodło się (błąd %d), może brakować miejsca w systemie plików\n" ++#: .././io/file.c:47 .././io/open.c:102 ++msgid ",non-block" ++msgstr ",nieblokujący" + +-#: .././repair/phase6.c:1078 +-#, c-format +-msgid "name replace op failed (%d), filesystem may be out of space\n" +-msgstr "operacja zastąpienia nazwy nie powiodła się (%d), może brakować miejsca w systemie plików\n" ++#: .././io/file.c:48 .././io/open.c:103 ++msgid ",tmpfile" ++msgstr ",tmpfile" + +-#: .././repair/phase6.c:1085 .././repair/phase6.c:1125 +-#: .././repair/phase6.c:1770 ++#: .././io/file.c:82 .././io/sendfile.c:103 .././quota/path.c:112 + #, c-format +-msgid "bmap finish failed (%d), filesystem may be out of space\n" +-msgstr "zakończenie bmap nie powiodło się (%d), może brakować miejsca w systemie plików\n" ++msgid "value %d is out of range (0-%d)\n" ++msgstr "wartość %d jest spoza zakresu (0-%d)\n" + +-#: .././repair/phase6.c:1163 .././repair/phase6.c:1564 +-msgid "dir" +-msgstr "katalogu" ++#: .././io/file.c:95 .././quota/path.c:126 ++msgid "[N]" ++msgstr "[N]" + +-#: .././repair/phase6.c:1172 .././repair/phase6.c:1176 +-#, c-format +-msgid "can't map block %d in %s inode %, xfs_bmapi returns %d, nmap = %d\n" +-msgstr "nie można odwzorować bloku %d w i-węźle %s %, xfs_bmapi zwraca %d, nmap = %d\n" ++#: .././io/file.c:100 ++msgid "set the current file" ++msgstr "ustawienie bieżącego pliku" + +-#: .././repair/phase6.c:1185 .././repair/phase6.c:1189 +-#: .././repair/phase6.c:1643 .././repair/phase6.c:1647 +-#, c-format +-msgid "block %d in %s ino % doesn't exist\n" +-msgstr "blok %d w i-węźle %s % nie istnieje\n" ++#: .././io/file.c:109 ++msgid "list current open files and memory mappings" ++msgstr "wypisanie aktualnie otwartych plików i odwzorowań w pamięci" + +-#: .././repair/phase6.c:1244 .././repair/phase6.c:1248 ++#: .././io/freeze.c:37 + #, c-format +-msgid "can't map block %d in %s ino %, xfs_bmapi returns %d, nmap = %d\n" +-msgstr "nie można odwzorować bloku %d w i-węźle %s %, xfs_bmapi zwraca %d, nmap = %d\n" ++msgid "%s: cannot freeze filesystem at %s: %s\n" ++msgstr "%s: nie można zamrozić systemu plików na %s: %s\n" + +-#: .././repair/phase6.c:1256 .././repair/phase6.c:1260 ++#: .././io/freeze.c:54 + #, c-format +-msgid "block %d in %s inode % doesn't exist\n" +-msgstr "blok %d w i-węźle %s % nie istnieje\n" ++msgid "%s: cannot unfreeze filesystem mounted at %s: %s\n" ++msgstr "%s: nie można odmrozić systemu plików podmontowanego pod %s: %s\n" + +-#: .././repair/phase6.c:1283 +-msgid ", marking entry to be junked\n" +-msgstr ", zaznaczono wpis do wyrzucenia\n" ++#: .././io/freeze.c:70 ++msgid "freeze filesystem of current file" ++msgstr "zamrożenie systemu plików na bieżącym pliku" + +-#: .././repair/phase6.c:1287 +-msgid ", would junk entry\n" +-msgstr ", wpis zostałby wyrzucony\n" ++#: .././io/freeze.c:77 ++msgid "unfreeze filesystem of current file" ++msgstr "odmrożenie systemu plików na bieżącym pliku" + +-#: .././repair/phase6.c:1404 +-#, c-format +-msgid "entry \"%s\" in dir inode % points to non-existent inode %" +-msgstr "wpis \"%s\" w i-węźle katalogu % wskazuje na nie istniejący i-węzęł %" ++#: .././io/fsync.c:59 ++msgid "calls fsync(2) to flush all in-core file state to disk" ++msgstr "wywołanie fsync(2) aby zrzucić cały stan pliku z pamięci na dysk" + +-#: .././repair/phase6.c:1422 +-#, c-format +-msgid "entry \"%s\" in dir inode % points to free inode %" +-msgstr "wpis \"%s\" w i-węźle katalogu % wskazuje na wolny i-węzeł %" ++#: .././io/fsync.c:66 ++msgid "calls fdatasync(2) to flush the files in-core data to disk" ++msgstr "wywołanie fdatasync(2) aby zrzucić dane pliku z pamięci na dysk" + +-#: .././repair/phase6.c:1438 .././repair/phase6.c:2105 +-#: .././repair/phase6.c:2733 .././repair/phase6.c:3063 +-#, c-format +-msgid "%s (ino %) in root (%) is not a directory" +-msgstr "%s (i-węzeł %) w katalogu głównym (%) nie jest katalogiem" ++#: .././io/getrusage.c:118 ++msgid "report process resource usage" ++msgstr "informacje o wykorzystaniu zasobów przez proces" + +-#: .././repair/phase6.c:1460 .././repair/phase6.c:2126 +-#: .././repair/phase6.c:2751 .././repair/phase6.c:3081 ++#: .././io/imap.c:53 + #, c-format +-msgid "entry \"%s\" (ino %) in dir % is a duplicate name" +-msgstr "wpis \"%s\" (i-węzeł %) w katalogu % jest powtórzoną nazwą" ++msgid "ino %10llu count %2d mask %016llx\n" ++msgstr "i-węzeł %10llu liczba %2d maska %016llx\n" + +-#: .././repair/phase6.c:1491 +-#, c-format +-msgid "entry \"%s\" in dir ino % points to an already connected dir inode %,\n" +-msgstr "wpis \"%s\" w katalogu % wskazuje na już podłączony i-węzeł katalogu %,\n" ++#: .././io/imap.c:71 ++msgid "[nentries]" ++msgstr "[liczba_wpisów]" + +-#: .././repair/phase6.c:1500 .././repair/phase6.c:2226 +-#: .././repair/phase6.c:2785 .././repair/phase6.c:3113 +-#, c-format +-msgid "entry \"%s\" in dir ino % doesn't have a .. entry, will set it in ino %.\n" +-msgstr "wpis \"%s\" w i-węźle katalogu % nie ma wpisu .., zostanie ustawiony w i-węźle %.\n" ++#: .././io/imap.c:73 ++msgid "inode map for filesystem of current file" ++msgstr "map i-węzłów dla systemu plików bieżącego pliku" + +-#: .././repair/phase6.c:1508 ++#: .././io/init.c:35 + #, c-format +-msgid "entry \"%s\" in dir ino % not consistent with .. value (%) in ino %,\n" +-msgstr "wpis \"%s\" w i-węźle katalogu % niespójny z wartością .. (%) w i-węźle %,\n" ++msgid "Usage: %s [-adfmnrRstVx] [-p prog] [-c cmd]... file\n" ++msgstr "Składnia: %s [-adfmnrRstVx] [-p program] [-c polecenie]... plik\n" + +-#: .././repair/phase6.c:1522 .././repair/phase6.c:2249 ++#: .././io/init.c:105 .././io/mmap.c:168 .././io/mmap.c:175 .././io/mmap.c:178 ++#: .././io/open.c:292 + #, c-format +-msgid "\twill clear entry \"%s\"\n" +-msgstr "\twpis \"%s\" zostanie wyczyszczony\n" ++msgid "no files are open, try 'help open'\n" ++msgstr "nie ma otwartych plików, spróbuj 'help open'\n" + +-#: .././repair/phase6.c:1525 .././repair/phase6.c:2252 ++#: .././io/init.c:109 .././io/mmap.c:167 .././io/mmap.c:174 + #, c-format +-msgid "\twould clear entry \"%s\"\n" +-msgstr "\twpis \"%s\" zostałby wyczyszczony\n" ++msgid "no mapped regions, try 'help mmap'\n" ++msgstr "nie ma podmapowanych regionów, spróbuj 'help mmap'\n" + +-#: .././repair/phase6.c:1570 ++#: .././io/init.c:115 + #, c-format +-msgid "cannot map block 0 of directory inode %\n" +-msgstr "nie można odwzorować bloku 0 i-węzła katalogu %\n" ++msgid "foreign file active, %s command is for XFS filesystems only\n" ++msgstr "aktywny jest plik obcy, polecenie %s jest tylko dla systemów plików XFS\n" + +-#: .././repair/phase6.c:1593 ++#: .././io/init.c:160 .././io/open.c:314 + #, c-format +-msgid "bad magic # (0x%x) for dir ino % leaf block (bno %u fsbno %)\n" +-msgstr "błędna liczba magiczna (0x%x) dla bloku liścia i-węzła katalogu % (bno %u fsbno %)\n" ++msgid "non-numeric mode -- %s\n" ++msgstr "tryb nieliczbowy - %s\n" + +-#: .././repair/phase6.c:1630 .././repair/phase6.c:1634 ++#: .././io/inject.c:109 + #, c-format +-msgid "can't map leaf block %d in dir %, xfs_bmapi returns %d, nmap = %d\n" +-msgstr "nie można odwzorować bloku liścia %d w katalogu %, xfs_bmapi zwraca %d, nmap = %d\n" ++msgid "" ++"\n" ++" inject errors into the filesystem of the currently open file\n" ++"\n" ++" Example:\n" ++" 'inject readagf' - cause errors on allocation group freespace reads\n" ++"\n" ++" Causes the kernel to generate and react to errors within XFS, provided\n" ++" the XFS kernel code has been built with debugging features enabled.\n" ++" With no arguments, displays the list of error injection tags.\n" ++"\n" ++msgstr "" ++"\n" ++" wprowadzenie błędów do systemu plików aktualnie otwartego pliku\n" ++"\n" ++" Przykład:\n" ++" 'inject readagf' - spowodowanie błędów przy odczytach wolnego miejsca grup\n" ++" alokacji\n" ++"\n" ++" inject powoduje, że jądro generuje i reaguje na błędy wewnątrz XFS-a,\n" ++" pod warunkiem, że kod XFS-a w jądrze został zbudowany z włączonymi opcjami\n" ++" diagnostycznymi. Bez argumentów wyświetla listę znaczników wprowadzania\n" ++" błędów.\n" ++"\n" + +-#: .././repair/phase6.c:1686 ++#: .././io/inject.c:135 + #, c-format +-msgid "rebuilding directory inode %\n" +-msgstr "przebudowywanie i-węzła katalogu %\n" ++msgid "no such tag -- %s\n" ++msgstr "nie ma takiego znacznika - %s\n" + +-#: .././repair/phase6.c:1711 +-#, c-format +-msgid "xfs_bmap_last_offset failed -- error - %d\n" +-msgstr "xfs_bmap_last_offset nie powiodło się - błąd %d\n" ++#: .././io/inject.c:156 ++msgid "[tag ...]" ++msgstr "[znacznik ...]" + +-#: .././repair/phase6.c:1718 +-#, c-format +-msgid "xfs_bunmapi failed -- error - %d\n" +-msgstr "xfs_bunmapi nie powiodło się - błąd %d\n" ++#: .././io/inject.c:157 ++msgid "inject errors into a filesystem" ++msgstr "wprowadzanie błędów do systemu plików" + +-#: .././repair/phase6.c:1760 ++#: .././io/link.c:35 + #, c-format +-msgid "name create failed in ino % (%d), filesystem may be out of space\n" +-msgstr "tworzenie nazwy nie powiodło się w i-węźle % (%d), może brakować miejsca w systemie plików\n" ++msgid "" ++"\n" ++"link the open file descriptor to the supplied filename\n" ++"\n" ++"\n" ++msgstr "" ++"\n" ++"dowiązanie otwartego deskryptora pliku do podanej nazwy pliku\n" ++"\n" ++"\n" + +-#: .././repair/phase6.c:1825 +-#, c-format +-msgid "shrink_inode failed inode % block %u\n" +-msgstr "shrink_inode nie powiodło się dla i-węzła % bloku %u\n" ++#: .././io/link.c:64 ++msgid "filename" ++msgstr "nazwa_pliku" + +-#: .././repair/phase6.c:1906 +-#, c-format +-msgid "realloc failed in longform_dir2_entry_check_data (%zu bytes)\n" +-msgstr "realloc nie powiodło się w longform_dir2_entry_check_data (%zu bajtów)\n" ++#: .././io/link.c:66 ++msgid "link the open file descriptor to the supplied filename" ++msgstr "dowiązanie otwartego deskryptora pliku do podanej nazwy pliku" + +-#: .././repair/phase6.c:1963 ++#: .././io/madvise.c:32 + #, c-format +-msgid "empty data block %u in directory inode %: " +-msgstr "pusty blok danych %u w i-węźle katalogu %: " ++msgid "" ++"\n" ++" advise the page cache about access patterns expected for a mapping\n" ++"\n" ++" Modifies page cache behavior when operating on the current mapping.\n" ++" The range arguments are required by some advise commands ([*] below).\n" ++" With no arguments, the POSIX_MADV_NORMAL advice is implied.\n" ++" -d -- don't need these pages (POSIX_MADV_DONTNEED) [*]\n" ++" -r -- expect random page references (POSIX_MADV_RANDOM)\n" ++" -s -- expect sequential page references (POSIX_MADV_SEQUENTIAL)\n" ++" -w -- will need these pages (POSIX_MADV_WILLNEED) [*]\n" ++" Notes:\n" ++" NORMAL sets the default readahead setting on the file.\n" ++" RANDOM sets the readahead setting on the file to zero.\n" ++" SEQUENTIAL sets double the default readahead setting on the file.\n" ++" WILLNEED forces the maximum readahead.\n" ++"\n" ++msgstr "" ++"\n" ++" doradzenie buforowi stron w sprawie oczekiwanych schematów dostępu do odwzorowań\n" ++"\n" ++" madvise modyfikuje zachowanie bufora stron przy operacjach na bieżącym\n" ++" odwzorowaniu. Niektóre polecenia madvise ([*] poniżej) wymagają podania zakresu.\n" ++" Bez argumentów zakłada się doradzenie POSIX_MADV_NORMAL.\n" ++" -d - podane strony nie są wymagane (POSIX_MADV_DONTNEED) [*]\n" ++" -r - należy oczekiwać losowych odwołań do stron (POSIX_MADV_RANDOM)\n" ++" -s - należy oczekiwać sekwencyjnych odwołań do stron (POSIX_MADV_SEQUENTIAL)\n" ++" -w - podane strony będą potrzebne (POSIX_MADV_WILLNEED) [*]\n" ++" Uwagi:\n" ++" NORMAL ustawia domyślną wartość czytania z wyprzedzeniem dla pliku.\n" ++" RANDOM ustawia czytanie z wyprzedzeniem dla pliku na zero.\n" ++" SEQUENTIAL ustawia podwójną domyślną wartość czytania z wyprzedzeniem.\n" ++" WILLNEED wymusza maksymalne czytanie z wyprzedzeniem.\n" ++"\n" + +-#: .././repair/phase6.c:1967 ++#: .././io/madvise.c:98 .././io/mincore.c:58 + #, c-format +-msgid "corrupt block %u in directory inode %: " +-msgstr "uszkodzony blok %u w i-węźle katalogu %: " ++msgid "length argument too large -- %lld\n" ++msgstr "zbyt duży argument będący długością - %lld\n" + +-#: .././repair/phase6.c:1971 +-msgid "junking block\n" +-msgstr "wyrzucono blok\n" ++#: .././io/madvise.c:127 ++msgid "[-drsw] [off len]" ++msgstr "[-drsw] [offset długość]" + +-#: .././repair/phase6.c:1974 +-msgid "would junk block\n" +-msgstr "blok zostałby wyrzucony\n" ++#: .././io/madvise.c:128 ++msgid "give advice about use of memory" ++msgstr "doradzenie w sprawie użycia pamięci" + +-#: .././repair/phase6.c:1998 ++#: .././io/mincore.c:92 .././io/mincore.c:102 + #, c-format +-msgid "bad directory block magic # %#x for directory inode % block %d: " +-msgstr "błędna liczba magiczna bloku katalogu %#x dla i-węzła katalogu % bloku %d: " ++msgid "0x%lx %lu pages (%llu : %lu)\n" ++msgstr "0x%lx %lu stron (%llu : %lu)\n" + +-#: .././repair/phase6.c:2001 +-#, c-format +-msgid "fixing magic # to %#x\n" +-msgstr "poprawiono liczbę magiczną na %#x\n" ++#: .././io/mincore.c:122 ++msgid "[off len]" ++msgstr "[offset długość]" + +-#: .././repair/phase6.c:2005 +-#, c-format +-msgid "would fix magic # to %#x\n" +-msgstr "liczba magiczna zostałaby poprawiona na %#x\n" ++#: .././io/mincore.c:123 ++msgid "find mapping pages that are memory resident" ++msgstr "odnalezienie stron odwzorowań przechowywanych w pamięci" + +-#: .././repair/phase6.c:2026 ++#: .././io/mmap.c:76 + #, c-format +-msgid "directory inode % block %u has consecutive free entries: " +-msgstr "i-węzeł katalogu % blok %u ma kolejne wolne wpisy: " +- +-#: .././repair/phase6.c:2029 +-msgid "joining together\n" +-msgstr "połączono\n" +- +-#: .././repair/phase6.c:2038 +-msgid "would join together\n" +-msgstr "zostałyby połączone\n" ++msgid "offset (%lld) is before start of mapping (%lld)\n" ++msgstr "offset (%lld) przed początkiem odwzorowania (%lld)\n" + +-#: .././repair/phase6.c:2070 ++#: .././io/mmap.c:82 + #, c-format +-msgid "entry \"%s\" in directory inode % points to non-existent inode %" +-msgstr "wpis \"%s\" w i-węźle katalogu % wskazuje na nie istniejący i-węzeł %" ++msgid "offset (%lld) is beyond end of mapping (%lld)\n" ++msgstr "offset (%lld) za końcem odwzorowania (%lld)\n" + +-#: .././repair/phase6.c:2087 ++#: .././io/mmap.c:87 + #, c-format +-msgid "entry \"%s\" in directory inode % points to free inode %" +-msgstr "wpis \"%s\" w i-węźle katalogu % wskazuje na wolny i-węzeł %" ++msgid "range (%lld:%lld) is beyond mapping (%lld:%ld)\n" ++msgstr "przedział (%lld:%lld) poza odwzorowaniem (%lld:%ld)\n" + +-#: .././repair/phase6.c:2157 ++#: .././io/mmap.c:93 + #, c-format +-msgid "entry \"%s\" (ino %) in dir % is not in the the first block" +-msgstr "wpis \"%s\" (i-węzeł %) w katalogu % nie jest w pierwszym bloku" ++msgid "offset address (%p) is not page aligned\n" ++msgstr "adres offsetu (%p) nie jest wyrównany do rozmiaru strony\n" + +-#: .././repair/phase6.c:2182 ++#: .././io/mmap.c:133 + #, c-format +-msgid "entry \"%s\" in dir % is not the first entry" +-msgstr "wpis \"%s\" w katalogu % nie jest pierwszym wpisem" ++msgid "" ++"\n" ++" maps a range within the current file into memory\n" ++"\n" ++" Example:\n" ++" 'mmap -rw 0 1m' - maps one megabyte from the start of the current file\n" ++"\n" ++" Memory maps a range of a file for subsequent use by other xfs_io commands.\n" ++" With no arguments, mmap shows the current mappings. The current mapping\n" ++" can be set by using the single argument form (mapping number or address).\n" ++" If two arguments are specified (a range), a new mapping is created and the\n" ++" following options are available:\n" ++" -r -- map with PROT_READ protection\n" ++" -w -- map with PROT_WRITE protection\n" ++" -x -- map with PROT_EXEC protection\n" ++" If no protection mode is specified, all are used by default.\n" ++"\n" ++msgstr "" ++"\n" ++" odwzorowanie przedziału z bieżącego pliku w pamięci\n" ++"\n" ++"Przykład:\n" ++" 'mmap -rw 0 1m' - odwzorowuje 1MB od początku bieżącego pliku\n" ++"\n" ++" mmap odwzorowuje w pamięci przedział z pliku do dalszego wykorzystania przez\n" ++" inne polecenia xfs_io.\n" ++" Bez argumentów mmap pokazuje aktualne odwzorowania. Bieżące odwzorowanie\n" ++" można ustawić przy użyciu formy jednoargumentowej (mmap numer lub adres).\n" ++" Jeśli podano dwa argumenty (przedział), tworzone jest nowe odwzorowanie\n" ++" i dostępne są następujące opcje:\n" ++" -r - odwzorowanie z ochroną PROT_READ\n" ++" -w - odwzorowanie z ochroną PROT_WRITE\n" ++" -x - odwzorowanie z ochroną PROT_EXEC\n" ++" Jeśli nie podano trybu ochrony, domyślnie używane są wszystkie.\n" ++"\n" + +-#: .././repair/phase6.c:2217 ++#: .././io/mmap.c:254 + #, c-format +-msgid "entry \"%s\" in dir % points to an already connected directory inode %\n" +-msgstr "wpis \"%s\" w katalogu % wskazuje na już podłączony i-węzeł katalogu %\n" ++msgid "" ++"\n" ++" flushes a range of bytes in the current memory mapping\n" ++"\n" ++" Writes all modified copies of pages over the specified range (or entire\n" ++" mapping if no range specified) to their backing storage locations. Also,\n" ++" optionally invalidates so that subsequent references to the pages will be\n" ++" obtained from their backing storage locations (instead of cached copies).\n" ++" -a -- perform asynchronous writes (MS_ASYNC)\n" ++" -i -- invalidate mapped pages (MS_INVALIDATE)\n" ++" -s -- perform synchronous writes (MS_SYNC)\n" ++"\n" ++msgstr "" ++"\n" ++" zrzucenie przedziału bajtów w bieżącym odwzorowaniu pamięci\n" ++"\n" ++" msync zapisuje wszystkie zmodyfikowane kopie stron z podanego przedziału\n" ++" (lub całego odwzorowania, jeśli nie podano przedziału) do miejsca\n" ++" przechowywania danych. Opcjonalnie unieważnia bufor, żeby dalsze odwołania\n" ++" do tych stron odbywały się z miejsca przechowywania danych (zamiast kopii\n" ++" w pamięci podręcznej).\n" ++" -a - wykonanie zapisu asynchronicznego (MS_ASYNC)\n" ++" -i - unieważnienie odwzorowanych stron (MS_INVALIDATE)\n" ++" -s - wykonanie zapisu synchronicznego (MS_SYNC)\n" ++"\n" + +-#: .././repair/phase6.c:2236 ++#: .././io/mmap.c:330 + #, c-format +-msgid "entry \"%s\" in dir inode % inconsistent with .. value (%) in ino %\n" +-msgstr "wpis \"%s\" w i-węźle katalogu % niespójny z wartością .. (%) w i-węźle %\n" ++msgid "" ++"\n" ++" reads a range of bytes in the current memory mapping\n" ++"\n" ++" Example:\n" ++" 'mread -v 512 20' - dumps 20 bytes read from 512 bytes into the mapping\n" ++"\n" ++" Accesses a range of the current memory mapping, optionally dumping it to\n" ++" the standard output stream (with -v option) for subsequent inspection.\n" ++" -f -- verbose mode, dump bytes with offsets relative to start of file.\n" ++" -r -- reverse order; start accessing from the end of range, moving backward\n" ++" -v -- verbose mode, dump bytes with offsets relative to start of mapping.\n" ++" The accesses are performed sequentially from the start offset by default.\n" ++" Notes:\n" ++" References to whole pages following the end of the backing file results\n" ++" in delivery of the SIGBUS signal. SIGBUS signals may also be delivered\n" ++" on various filesystem conditions, including quota exceeded errors, and\n" ++" for physical device errors (such as unreadable disk blocks). No attempt\n" ++" has been made to catch signals at this stage...\n" ++"\n" ++msgstr "" ++"\n" ++" odczytanie przedziału bajtów w bieżącym odwzorowaniu pamięci\n" ++"\n" ++" Przykład:\n" ++" 'mread -v 512 20' - zrzucenie 20 bajtów odczytanych od 512 bajtu\n" ++" w odwzorowaniu\n" ++"\n" ++" mread odwołuje się do przedziału bieżącego odwzorowania pamięci, opcjonalnie\n" ++" zrzucając go na strumień standardowego wyjścia (z opcją -v) do dalszych badań.\n" ++" -f - tryb szczegółowy, zrzucenie bajtów z offsetami względem początku pliku.\n" ++" -r - odwrotna kolejność; dostęp począwszy od końca przedziału do początku.\n" ++" -v - tryb szczegółowy, zrzucenie bajtów z offsetami względem początku\n" ++" odwzorowania.\n" ++" Dostępy są wykonywane sekwencyjnie, domyślnie od offsetu początkowego.\n" ++" Uwagi:\n" ++" Odwołania do całych stron za końcem pliku powodują w efekcie sygnał SIGBUS.\n" ++" Sygnały SIGBUS mogą być wywołane także przy różnych zdarzeniach związanych\n" ++" z systemem plików, włącznie z błędami przekroczenia limitów (quota) oraz\n" ++" fizycznymi błędami urządzenia (takimi jak nieczytelne bloki dysku). Na tym\n" ++" etapie nie ma prób wyłapania sygnałów...\n" ++"\n" + +-#: .././repair/phase6.c:2307 .././repair/phase6.c:2387 ++#: .././io/mmap.c:494 + #, c-format +-msgid "leaf block %u for directory inode % bad header\n" +-msgstr "błędny nagłówek bloku liścia %u dla i-węzła katalogu %\n" ++msgid "" ++"\n" ++" dirties a range of bytes in the current memory mapping\n" ++"\n" ++" Example:\n" ++" 'mwrite 512 20 - writes 20 bytes at 512 bytes into the current mapping.\n" ++"\n" ++" Stores a byte into memory for a range within a mapping.\n" ++" The default stored value is 'X', repeated to fill the range specified.\n" ++" -S -- use an alternate seed character\n" ++" -r -- reverse order; start storing from the end of range, moving backward\n" ++" The stores are performed sequentially from the start offset by default.\n" ++"\n" ++msgstr "" ++"\n" ++" zmiana przedziału bajtów w bieżącym odwzorowaniu pamięci\n" ++"\n" ++" Przykład:\n" ++" 'mwrite 512 20' - zapisuje 20 bajtów od 512 bajtu w bieżącym odwzorowaniu.\n" ++"\n" ++" mwrite zapisuje bajt do przedziału pamięci w ramach odwzorowania.\n" ++" Domyślnie zapisywaną wartością jest 'X', powtarzane do wypełnienia przedziału.\n" ++" -S - użycie alternatywnego znaku\n" ++" -r - odwrotna kolejność; rozpoczęcie zapisywania od końca przedziału do\n" ++" początku\n" ++" Zapisy są wykonywane kolejno, domyślnie od offsetu początkowego.\n" ++"\n" + +-#: .././repair/phase6.c:2326 ++#: .././io/mmap.c:530 .././io/pread.c:437 .././io/pwrite.c:303 ++#: .././io/pwrite.c:330 + #, c-format +-msgid "leaf block %u for directory inode % bad tail\n" +-msgstr "błędna końcówka bloku liścia %u dla i-węzła katalogu %\n" ++msgid "non-numeric seed -- %s\n" ++msgstr "nieliczbowy zarodek - %s\n" + +-#: .././repair/phase6.c:2365 +-#, c-format +-msgid "can't read leaf block %u for directory inode %\n" +-msgstr "nie można odczytać bloku liścia %u dla i-węzła katalogu %\n" ++#: .././io/mmap.c:586 ++msgid "[N] | [-rwx] [off len]" ++msgstr "[N] | [-rwx] [offset długość]" + +-#: .././repair/phase6.c:2377 +-#, c-format +-msgid "unknown magic number %#x for block %u in directory inode %\n" +-msgstr "nieznana liczba magiczna %#x dla bloku %u w i-węźle katalogu %\n" ++#: .././io/mmap.c:588 ++msgid "mmap a range in the current file, show mappings" ++msgstr "odwzorowanie przedziału w bieżącym pliku, pokazanie odwzorowań" + +-#: .././repair/phase6.c:2411 +-#, c-format +-msgid "can't read freespace block %u for directory inode %\n" +-msgstr "nie można odczytać bloku wolnego miejsca %u dla i-węzła katalogu %\n" ++#: .././io/mmap.c:597 ++msgid "[-r] [off len]" ++msgstr "[-r] [offset długość]" + +-#: .././repair/phase6.c:2424 +-#, c-format +-msgid "free block %u for directory inode % bad header\n" +-msgstr "błędny nagłówek wolnego bloku %u dla i-węzła katalogu %\n" ++#: .././io/mmap.c:599 ++msgid "reads data from a region in the current memory mapping" ++msgstr "odczyt danych z regionu w bieżącym odwzorowaniu pamięci" + +-#: .././repair/phase6.c:2436 +-#, c-format +-msgid "free block %u entry %i for directory ino % bad\n" +-msgstr "błędny wpis wolnego bloku %u numer %i dla i-węzła katalogu %\n" ++#: .././io/mmap.c:608 ++msgid "[-ais] [off len]" ++msgstr "[-ais] [offset długość]" + +-#: .././repair/phase6.c:2446 +-#, c-format +-msgid "free block %u for directory inode % bad nused\n" +-msgstr "błędna liczba nused w wolnym bloku %u dla i-węzła katalogu %\n" ++#: .././io/mmap.c:609 ++msgid "flush a region in the current memory mapping" ++msgstr "zrzucenie regionu w bieżącym odwzorowaniu pamięci" + +-#: .././repair/phase6.c:2457 +-#, c-format +-msgid "missing freetab entry %u for directory inode %\n" +-msgstr "brak wpisu freetab %u dla i-węzła katalogu %\n" ++#: .././io/mmap.c:618 ++msgid "unmaps the current memory mapping" ++msgstr "usunięcie bieżącego odwzorowania pamięci" + +-#: .././repair/phase6.c:2497 +-#, c-format +-msgid "malloc failed in longform_dir2_entry_check (% bytes)\n" +-msgstr "malloc nie powiodło się w longform_dir2_entry_check (% bajtów)\n" ++#: .././io/mmap.c:626 ++msgid "[-r] [-S seed] [off len]" ++msgstr "[-r] [-S wartość] [offset długość]" + +-#: .././repair/phase6.c:2527 +-#, c-format +-msgid "realloc failed in longform_dir2_entry_check (%zu bytes)\n" +-msgstr "realloc nie powiodło się w longform_dir2_entry_check (%zu bajtów)\n" ++#: .././io/mmap.c:628 ++msgid "writes data into a region in the current memory mapping" ++msgstr "zapis danych do regionu w bieżącym odwzorowaniu pamięci" + +-#: .././repair/phase6.c:2533 +-#, c-format +-msgid "can't read data block %u for directory inode %\n" +-msgstr "nie można odczytać bloku danych %u dla i-węzła katalogu %\n" ++#: .././io/open.c:68 ++msgid "socket" ++msgstr "gniazdo" + +-#: .././repair/phase6.c:2639 +-#, c-format +-msgid "shortform dir inode % has null data entries \n" +-msgstr "i-węzeł krótkiego katalogu % ma zerowe wpisy danych\n" ++#: .././io/open.c:70 ++msgid "directory" ++msgstr "katalog" + +-#: .././repair/phase6.c:2707 +-#, c-format +-msgid "entry \"%s\" in shortform dir % references non-existent ino %\n" +-msgstr "wpis \"%s\" w krótkim katalogu % odwołuje się do nie istniejącego i-węzła %\n" ++#: .././io/open.c:72 ++msgid "char device" ++msgstr "urządzenie znakowe" + +-#: .././repair/phase6.c:2720 +-#, c-format +-msgid "entry \"%s\" in shortform dir inode % points to free inode %\n" +-msgstr "wpis \"%s\" w i-węźle krótkiego katalogu % wskazuje na wolny i-węzeł %\n" ++#: .././io/open.c:74 ++msgid "block device" ++msgstr "urządzenie blokowe" + +-#: .././repair/phase6.c:2776 +-#, c-format +-msgid "entry \"%s\" in dir % references already connected dir ino %.\n" +-msgstr "wpis \"%s\" w katalogu % odwołuje się do już podłączonego i-węzła katalogu %.\n" ++#: .././io/open.c:76 ++msgid "regular file" ++msgstr "plik zwykły" + +-#: .././repair/phase6.c:2793 +-#, c-format +-msgid "entry \"%s\" in dir % not consistent with .. value (%) in dir ino %.\n" +-msgstr "wpis \"%s\" w katalogu % niespójny z wartością .. (%) w i-węźle katalogu %.\n" ++#: .././io/open.c:78 ++msgid "symbolic link" ++msgstr "dowiązanie symboliczne" + +-#: .././repair/phase6.c:2833 .././repair/phase6.c:3166 +-msgid "junking entry\n" +-msgstr "wyrzucono wpis\n" ++#: .././io/open.c:80 ++msgid "fifo" ++msgstr "potok" + +-#: .././repair/phase6.c:2837 .././repair/phase6.c:3170 +-msgid "would junk entry\n" +-msgstr "wpis zostałby wyrzucony\n" ++#: .././io/open.c:95 .././io/open.c:707 ++#, c-format ++msgid "fd.path = \"%s\"\n" ++msgstr "fd.path = \"%s\"\n" + +-#: .././repair/phase6.c:2876 .././repair/phase6.c:3228 ++#: .././io/open.c:96 + #, c-format +-msgid "setting size to % bytes to reflect junked entries\n" +-msgstr "ustawiono rozmiar na %, aby odzwierciedlał wyrzucone wpisy\n" ++msgid "fd.flags = %s,%s,%s%s%s%s%s\n" ++msgstr "fd.flags = %s,%s,%s%s%s%s%s\n" + +-#: .././repair/phase6.c:2928 ++#: .././io/open.c:107 + #, c-format +-msgid "would set .. in sf dir inode % to %\n" +-msgstr "wpis .. w i-węźle katalogu sf % zostałby ustawiony na %\n" ++msgid "stat.ino = %lld\n" ++msgstr "stat.ino = %lld\n" + +-#: .././repair/phase6.c:2932 ++#: .././io/open.c:108 + #, c-format +-msgid "setting .. in sf dir inode % to %\n" +-msgstr "ustawiono wpis .. w i-węźle katalogu sf % na %\n" ++msgid "stat.type = %s\n" ++msgstr "stat.type = %s\n" + +-#: .././repair/phase6.c:3036 ++#: .././io/open.c:109 + #, c-format +-msgid "entry \"%s\" in shortform directory % references non-existent inode %\n" +-msgstr "wpis \"%s\" w krótkim katalogu % odwołuje się do nie istniejącego i-węzła %\n" ++msgid "stat.size = %lld\n" ++msgstr "stat.size = %lld\n" + +-#: .././repair/phase6.c:3050 ++#: .././io/open.c:110 + #, c-format +-msgid "entry \"%s\" in shortform directory inode % points to free inode %\n" +-msgstr "wpis \"%s\" w i-węźle krótkiego katalogu % wskazuje na wolny i-węzeł %\n" ++msgid "stat.blocks = %lld\n" ++msgstr "stat.blocks = %lld\n" + +-#: .././repair/phase6.c:3103 ++#: .././io/open.c:112 + #, c-format +-msgid "entry \"%s\" in directory inode % references already connected inode %.\n" +-msgstr "wpis \"%s\" w i-węźle katalogu % odwołuje się do już podłączonego i-węzła %.\n" ++msgid "stat.atime = %s" ++msgstr "stat.atime = %s" + +-#: .././repair/phase6.c:3123 ++#: .././io/open.c:113 + #, c-format +-msgid "entry \"%s\" in directory inode % not consistent with .. value (%) in inode %,\n" +-msgstr "wpis \"%s\" w i-węźle katalogu % niespójny z wartością .. (%) w i-węźle %,\n" ++msgid "stat.mtime = %s" ++msgstr "stat.mtime = %s" + +-#: .././repair/phase6.c:3194 ++#: .././io/open.c:114 + #, c-format +-msgid "would fix i8count in inode %\n" +-msgstr "i8count w i-węźle % zostałoby poprawione\n" ++msgid "stat.ctime = %s" ++msgstr "stat.ctime = %s" + +-#: .././repair/phase6.c:3207 ++#: .././io/open.c:123 + #, c-format +-msgid "fixing i8count in inode %\n" +-msgstr "poprawiono i8count w i-węźle %\n" +- +-#: .././repair/phase6.c:3382 +-msgid "missing root directory .. entry, cannot fix in V1 dir filesystem\n" +-msgstr "brak wpisu .. w głównym katalogu, nie można naprawić w systemie plików V1\n" ++msgid "fsxattr.xflags = 0x%x " ++msgstr "fsxattr.xflags = 0x%x " + +-#: .././repair/phase6.c:3389 ++#: .././io/open.c:125 + #, c-format +-msgid "%d bad entries found in dir inode %, cannot fix in V1 dir filesystem\n" +-msgstr "znaleziono %d błędnych wpisów w i-węźle katalogu %, nie można naprawić w systemie plików V1\n" ++msgid "fsxattr.projid = %u\n" ++msgstr "fsxattr.projid = %u\n" + +-#: .././repair/phase6.c:3396 ++#: .././io/open.c:126 + #, c-format +-msgid "missing \".\" entry in dir ino %, cannot in fix V1 dir filesystem\n" +-msgstr "brak wpisu \".\" w i-węźle katalogu %, nie można naprawić w systemie plików V1\n" +- +-#: .././repair/phase6.c:3414 +-msgid "recreating root directory .. entry\n" +-msgstr "ponowne tworzenie wpisu .. głównego katalogu\n" ++msgid "fsxattr.extsize = %u\n" ++msgstr "fsxattr.extsize = %u\n" + +-#: .././repair/phase6.c:3434 ++#: .././io/open.c:127 + #, c-format +-msgid "can't make \"..\" entry in root inode %, createname error %d\n" +-msgstr "nie można utworzyć wpisu \"..\" w i-węźle głównego katalogu %, błąd createname %d\n" +- +-#: .././repair/phase6.c:3445 +-msgid "would recreate root directory .. entry\n" +-msgstr "wpis .. głównego katalogu zostałby ponownie utworzony\n" ++msgid "fsxattr.nextents = %u\n" ++msgstr "fsxattr.nextents = %u\n" + +-#: .././repair/phase6.c:3469 ++#: .././io/open.c:128 + #, c-format +-msgid "would create missing \".\" entry in dir ino %\n" +-msgstr "brakujący wpis \".\" w i-węźle katalogu % zostałby utworzony\n" ++msgid "fsxattr.naextents = %u\n" ++msgstr "fsxattr.naextents = %u\n" + +-#: .././repair/phase6.c:3476 ++#: .././io/open.c:133 + #, c-format +-msgid "creating missing \".\" entry in dir ino %\n" +-msgstr "tworzenie brakującego wpisu \".\" w i-węźle katalogu %\n" ++msgid "dioattr.mem = 0x%x\n" ++msgstr "dioattr.mem = 0x%x\n" + +-#: .././repair/phase6.c:3500 ++#: .././io/open.c:134 + #, c-format +-msgid "can't make \".\" entry in dir ino %, createname error %d\n" +-msgstr "nie można utworzyć wpisu \".\" w i-węźle katalogu %, błąd createname %d\n" ++msgid "dioattr.miniosz = %u\n" ++msgstr "dioattr.miniosz = %u\n" + +-#: .././repair/phase6.c:3589 ++#: .././io/open.c:135 + #, c-format +-msgid "disconnected dir inode %, " +-msgstr "odłączony i-węzeł katalogu %, " ++msgid "dioattr.maxiosz = %u\n" ++msgstr "dioattr.maxiosz = %u\n" + +-#: .././repair/phase6.c:3591 ++#: .././io/open.c:254 + #, c-format +-msgid "disconnected inode %, " +-msgstr "odłączony i-węzeł %, " +- +-#: .././repair/phase6.c:3593 +-msgid "cannot fix in V1 dir filesystem\n" +-msgstr "nie można naprawić w systemie plików katalogów V1\n" ++msgid "" ++"\n" ++" opens a new file in the requested mode\n" ++"\n" ++" Example:\n" ++" 'open -cd /tmp/data' - creates/opens data file read-write for direct IO\n" ++"\n" ++" Opens a file for subsequent use by all of the other xfs_io commands.\n" ++" With no arguments, open uses the stat command to show the current file.\n" ++" -a -- open with the O_APPEND flag (append-only mode)\n" ++" -d -- open with O_DIRECT (non-buffered IO, note alignment constraints)\n" ++" -f -- open with O_CREAT (create the file if it doesn't exist)\n" ++" -m -- permissions to use in case a new file is created (default 0600)\n" ++" -n -- open with O_NONBLOCK\n" ++" -r -- open with O_RDONLY, the default is O_RDWR\n" ++" -s -- open with O_SYNC\n" ++" -t -- open with O_TRUNC (truncate the file to zero length if it exists)\n" ++" -R -- mark the file as a realtime XFS file immediately after opening it\n" ++" -T -- open with O_TMPFILE (create a file not visible in the namespace)\n" ++" Note1: usually read/write direct IO requests must be blocksize aligned;\n" ++" some kernels, however, allow sectorsize alignment for direct IO.\n" ++" Note2: the bmap for non-regular files can be obtained provided the file\n" ++" was opened correctly (in particular, must be opened read-only).\n" ++"\n" ++msgstr "" ++"\n" ++" otwarcie nowego pliku w żądanym trybie\n" ++"\n" ++" Przykład:\n" ++" 'open -cd /tmp/data' - utworzenie/otwarcie pliku danych do odczytu i zapisu\n" ++" z bezpośrednim we/wy\n" ++"\n" ++" open otwiera plik do późniejszego wykorzystania przez wszystkie inne polecenia\n" ++" xfs_io.\n" ++" Bez argumentów używa polecenia stat do pokazania bieżącego pliku.\n" ++" -a - otwarcie z flagą O_APPEND (w trybie tylko dopisywania)\n" ++" -d - otwarcie z flagą O_DIRECT (niebuforowane we/wy, ograniczenia wyrównania)\n" ++" -f - otwarcie z flagą O_CREAT (utworzenie pliku jeśli nie istnieje)\n" ++" -m - uprawnienia do użycia w przypadku tworzenia pliku (domyślnie 0600)\n" ++" -n - otwarcie z flagą O_NONBLOCK\n" ++" -r - otwarcie z flagą O_RDONLY (domyślne jest O_RDWR)\n" ++" -s - otwarcie z flagą O_SYNC\n" ++" -t - otwarcie z flagą O_TRUNC (ucięcie do zerowej długości jeśli istnieje)\n" ++" -R - oznaczenie pliku jako realtime na XFS-ie zaraz po otwarciu\n" ++" -T - otwarcie z flagą O_TMPFILE (utworzenie pliku niewidocznego w przestrzni\n" ++" nazw)\n" ++" Uwaga1: zwykle żądania bezpośredniego we/wy muszą być wyrównane do rozmiaru\n" ++" bloku; niektóre jądra pozwalają na wyrównanie do rozmiaru sektora\n" ++" Uwaga2: bmap dla plików innych niż zwykłe można uzyskać pod warunkiem, że\n" ++" plik zostanie poprawnie otwarty (w szczególności tylko do odczytu).\n" ++"\n" + +-#: .././repair/phase6.c:3597 ++#: .././io/open.c:346 + #, c-format +-msgid "moving to %s\n" +-msgstr "przeniesiono do %s\n" ++msgid "-T and -r options are incompatible\n" ++msgstr "Opcje -T i -r nie są zgodne ze sobą\n" + +-#: .././repair/phase6.c:3600 ++#: .././io/open.c:401 + #, c-format +-msgid "would move to %s\n" +-msgstr "zostałby przeniesiony do %s\n" ++msgid "" ++"\n" ++" displays the project identifier associated with the current path\n" ++"\n" ++" Options:\n" ++" -R -- recursively descend (useful when current path is a directory)\n" ++" -D -- recursively descend, but only list projects on directories\n" ++"\n" ++msgstr "" ++"\n" ++" wyświetlenie identyfikatora projektu związanego z bieżącą ścieżką\n" ++"\n" ++" Opcje:\n" ++" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" ++" -D - rekurencyjne zagłębianie się, ale wypisywanie projektów tylko katalogów\n" ++"\n" + +-#: .././repair/phase6.c:3691 +-msgid "Phase 6 - check inode connectivity...\n" +-msgstr "Faza 6 - sprawdzanie łączności i-węzłów...\n" ++#: .././io/open.c:467 ++#, c-format ++msgid "projid = %u\n" ++msgstr "projid = %u\n" + +-#: .././repair/phase6.c:3705 +-msgid "need to reinitialize root directory, but not supported on V1 dir filesystem\n" +-msgstr "trzeba ponownie utworzyć główny katalog, co nie jest obsługiwane w systemie plików V1\n" ++#: .././io/open.c:475 ++#, c-format ++msgid "" ++"\n" ++" modifies the project identifier associated with the current path\n" ++"\n" ++" -R -- recursively descend (useful when current path is a directory)\n" ++" -D -- recursively descend, only modifying projects on directories\n" ++"\n" ++msgstr "" ++"\n" ++" modyfikacja identyfikatora projektu związanego z bieżącą ścieżką\n" ++"\n" ++" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" ++" -D - rekurencyjne zagłębianie się, ale zmiana projektów tylko katalogów\n" ++"\n" + +-#: .././repair/phase6.c:3708 +-msgid "reinitializing root directory\n" +-msgstr "ponowne inicjowanie głównego katalogu\n" ++#: .././io/open.c:534 ++#, c-format ++msgid "invalid project ID -- %s\n" ++msgstr "nieprawidłowy ID projektu - %s\n" + +-#: .././repair/phase6.c:3713 +-msgid "would reinitialize root directory\n" +-msgstr "główny katalog zostałby ponownie zainicjowany\n" ++#: .././io/open.c:550 ++#, c-format ++msgid "" ++"\n" ++" report or modify preferred extent size (in bytes) for the current path\n" ++"\n" ++" -R -- recursively descend (useful when current path is a directory)\n" ++" -D -- recursively descend, only modifying extsize on directories\n" ++"\n" ++msgstr "" ++"\n" ++" odczyt lub zmiana preferowanego rozmiaru ekstentu (w bajtach) dla bieżącej\n" ++" ścieżki\n" ++"\n" ++" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" ++" -D - rekurencyjne zagłębianie się, ale zmiana extsize tylko katalogów\n" ++"\n" + +-#: .././repair/phase6.c:3719 +-msgid "reinitializing realtime bitmap inode\n" +-msgstr "ponowne inicjowanie i-węzła bitmapy realtime\n" ++#: .././io/open.c:593 ++#, c-format ++msgid "invalid target file type - file %s\n" ++msgstr "nieprawidłowy rodzaj bliku docelowego - plik %s\n" + +-#: .././repair/phase6.c:3723 +-msgid "would reinitialize realtime bitmap inode\n" +-msgstr "i-węzeł bitmapy realtime zostałby ponownie zainicjowany\n" ++#: .././io/open.c:679 ++#, c-format ++msgid "non-numeric extsize argument -- %s\n" ++msgstr "nieliczbowy argument extsize - %s\n" + +-#: .././repair/phase6.c:3729 +-msgid "reinitializing realtime summary inode\n" +-msgstr "ponowne inicjowanie i-węzła opisu realtime\n" ++#: .././io/open.c:711 ++#, c-format ++msgid "statfs.f_bsize = %lld\n" ++msgstr "statfs.f_bsize = %lld\n" + +-#: .././repair/phase6.c:3733 +-msgid "would reinitialize realtime summary inode\n" +-msgstr "i-węzeł opisu realtime zostałby ponownie zainicjowany\n" ++#: .././io/open.c:712 ++#, c-format ++msgid "statfs.f_blocks = %lld\n" ++msgstr "statfs.f_blocks = %lld\n" + +-#: .././repair/phase6.c:3739 +-msgid " - resetting contents of realtime bitmap and summary inodes\n" +-msgstr " - przestawianie zawartości i-węzłów bitmapy i opisu realtime\n" ++#: .././io/open.c:714 ++#, c-format ++msgid "statfs.f_frsize = %lld\n" ++msgstr "statfs.f_frsize = %lld\n" + +-#: .././repair/phase6.c:3742 .././repair/phase6.c:3747 +-msgid "Warning: realtime bitmap may be inconsistent\n" +-msgstr "Uwaga: bitmapa realtime może być niespójna\n" ++#: .././io/open.c:716 ++#, c-format ++msgid "statfs.f_bavail = %lld\n" ++msgstr "statfs.f_bavail = %lld\n" + +-#: .././repair/phase6.c:3753 +-msgid " - traversing filesystem ...\n" +-msgstr " - przechodzenie systemu plików...\n" ++#: .././io/open.c:718 ++#, c-format ++msgid "statfs.f_files = %lld\n" ++msgstr "statfs.f_files = %lld\n" + +-#: .././repair/phase6.c:3776 +-msgid " - traversal finished ...\n" +-msgstr " - przechodzenie zakończone...\n" ++#: .././io/open.c:719 ++#, c-format ++msgid "statfs.f_ffree = %lld\n" ++msgstr "statfs.f_ffree = %lld\n" + +-#: .././repair/phase6.c:3777 ++#: .././io/open.c:726 + #, c-format +-msgid " - moving disconnected inodes to %s ...\n" +-msgstr " - przenoszenie odłączonych i-węzłów do %s...\n" ++msgid "geom.bsize = %u\n" ++msgstr "geom.bsize = %u\n" + +-#: .././repair/progress.c:16 +-msgid "inodes" +-msgstr "i-węzłów" ++#: .././io/open.c:727 ++#, c-format ++msgid "geom.agcount = %u\n" ++msgstr "geom.agcount = %u\n" + +-#: .././repair/progress.c:18 .././db/freesp.c:406 +-msgid "blocks" +-msgstr "bloków" ++#: .././io/open.c:728 ++#, c-format ++msgid "geom.agblocks = %u\n" ++msgstr "geom.agblocks = %u\n" + +-#: .././repair/progress.c:20 +-msgid "directories" +-msgstr "katalogów" ++#: .././io/open.c:729 ++#, c-format ++msgid "geom.datablocks = %llu\n" ++msgstr "geom.datablocks = %llu\n" + +-#: .././repair/progress.c:22 +-msgid "allocation groups" +-msgstr "grup alokacji" ++#: .././io/open.c:731 ++#, c-format ++msgid "geom.rtblocks = %llu\n" ++msgstr "geom.rtblocks = %llu\n" + +-#: .././repair/progress.c:24 +-msgid "AGI unlinked buckets" +-msgstr "odłączonych kubełków AGI" ++#: .././io/open.c:733 ++#, c-format ++msgid "geom.rtextents = %llu\n" ++msgstr "geom.rtextents = %llu\n" + +-#: .././repair/progress.c:26 .././db/freesp.c:406 +-msgid "extents" +-msgstr "ekstentów" ++#: .././io/open.c:735 ++#, c-format ++msgid "geom.rtextsize = %u\n" ++msgstr "geom.rtextsize = %u\n" + +-#: .././repair/progress.c:28 +-msgid "realtime extents" +-msgstr "ekstentów realtime" ++#: .././io/open.c:736 ++#, c-format ++msgid "geom.sunit = %u\n" ++msgstr "geom.sunit = %u\n" + +-#: .././repair/progress.c:30 +-msgid "unlinked lists" +-msgstr "odłączonych list" ++#: .././io/open.c:737 ++#, c-format ++msgid "geom.swidth = %u\n" ++msgstr "geom.swidth = %u\n" + +-#: .././repair/progress.c:37 ++#: .././io/open.c:742 + #, c-format +-msgid " - %02d:%02d:%02d: %s - %llu of %llu %s done\n" +-msgstr " - %02d:%02d:%02d: %s - sprawdzono %llu z %llu %s\n" ++msgid "counts.freedata = %llu\n" ++msgstr "counts.freedata = %llu\n" + +-#: .././repair/progress.c:39 ++#: .././io/open.c:744 + #, c-format +-msgid " - %02d:%02d:%02d: %s - %llu %s done\n" +-msgstr " - %02d:%02d:%02d: %s - sprawdzono %llu %s\n" ++msgid "counts.freertx = %llu\n" ++msgstr "counts.freertx = %llu\n" + +-#: .././repair/progress.c:51 +-msgid "scanning filesystem freespace" +-msgstr "przeszukiwanie wolnego miejsca w systemie plików" ++#: .././io/open.c:746 ++#, c-format ++msgid "counts.freeino = %llu\n" ++msgstr "counts.freeino = %llu\n" + +-#: .././repair/progress.c:53 +-msgid "scanning agi unlinked lists" +-msgstr "przeszukiwanie odłączonych list agi" ++#: .././io/open.c:748 ++#, c-format ++msgid "counts.allocino = %llu\n" ++msgstr "counts.allocino = %llu\n" + +-#: .././repair/progress.c:55 +-msgid "check uncertain AG inodes" +-msgstr "sprawdzanie niepewnych i-węzłów AG" ++#: .././io/open.c:763 ++msgid "[-acdrstxT] [path]" ++msgstr "[-acdrstxT] [ścieżka]" + +-#: .././repair/progress.c:57 +-msgid "process known inodes and inode discovery" +-msgstr "przetwarzanie znanych i-węzłów i rozpoznawanie i-węzłów" ++#: .././io/open.c:764 ++msgid "open the file specified by path" ++msgstr "otwarcie pliku określonego ścieżką" + +-#: .././repair/progress.c:59 +-msgid "process newly discovered inodes" +-msgstr "przetwarzanie nowo rozpoznanych i-węzłów" ++#: .././io/open.c:772 ++msgid "[-v]" ++msgstr "[-v]" + +-#: .././repair/progress.c:61 +-msgid "setting up duplicate extent list" +-msgstr "tworzenie listy powtórzonych ekstentów" ++#: .././io/open.c:773 ++msgid "statistics on the currently open file" ++msgstr "statystyki dla aktualnie otwartego pliku" + +-#: .././repair/progress.c:63 +-msgid "initialize realtime bitmap" +-msgstr "inicjowanie bitmapy realtime" ++#: .././io/open.c:781 ++msgid "close the current open file" ++msgstr "zamknięcie bieżącego otwartego pliku" + +-#: .././repair/progress.c:65 +-msgid "reset realtime bitmaps" +-msgstr "ponowne tworzenie bitmapy realtime" ++#: .././io/open.c:787 ++msgid "statistics on the filesystem of the currently open file" ++msgstr "statystyki dla systemu plików aktualnie otwartego pliku" + +-#: .././repair/progress.c:67 +-msgid "check for inodes claiming duplicate blocks" +-msgstr "szukanie i-węzłów odwołujących się do powtórzonych bloków" ++#: .././io/open.c:791 ++msgid "[-D | -R] projid" ++msgstr "[-D | -R] projid" + +-#: .././repair/progress.c:69 +-msgid "rebuild AG headers and trees" +-msgstr "przebudowywanie nagłówków i drzew AG" ++#: .././io/open.c:796 ++msgid "change project identifier on the currently open file" ++msgstr "zmiana identyfikatora projektu aktualnie otwartego pliku" + +-#: .././repair/progress.c:71 +-msgid "traversing filesystem" +-msgstr "przechodzenie systemu plików" ++#: .././io/open.c:801 ++msgid "[-D | -R]" ++msgstr "[-D | -R]" + +-#: .././repair/progress.c:73 +-msgid "traversing all unattached subtrees" +-msgstr "przechodzenie wszystkich odłączonych poddrzew" ++#: .././io/open.c:806 ++msgid "list project identifier set on the currently open file" ++msgstr "wypisanie identyfikatora projektu aktualnie otwartego pliku" + +-#: .././repair/progress.c:75 +-msgid "moving disconnected inodes to lost+found" +-msgstr "przenoszenie odłączonych i-węzłów do lost+found" ++#: .././io/open.c:811 ++msgid "[-D | -R] [extsize]" ++msgstr "[-D | -R] [rozmiar_fragmentu]" + +-#: .././repair/progress.c:77 +-msgid "verify and correct link counts" +-msgstr "sprawdzanie i poprawianie liczby dowiązań" ++#: .././io/open.c:816 ++msgid "get/set preferred extent size (in bytes) for the open file" ++msgstr "pobranie/ustawienie preferowanego rozmiaru ekstentu (w bajtach) dla otwartego pliku" + +-#: .././repair/progress.c:79 +-msgid "verify link counts" +-msgstr "sprawdzanie liczby dowiązań" ++#: .././io/parent.c:49 ++#, c-format ++msgid "%s%s" ++msgstr "%s%s" + +-#: .././repair/progress.c:118 +-msgid "cannot malloc pointer to done vector\n" +-msgstr "nie udało się przydzielić wskaźnika do wektora wykonania\n" ++#: .././io/parent.c:54 ++#, c-format ++msgid "inode-path for inode: %llu is incorrect - path \"%s\" non-existent\n" ++msgstr "inode-path dla i-węzła: %llu jest niepoprawna - ścieżka \"%s\" nie istnieje\n" + +-#: .././repair/progress.c:134 +-msgid "unable to create progress report thread\n" +-msgstr "nie udało się utworzyć wątku raportowania postępu\n" ++#: .././io/parent.c:58 ++#, c-format ++msgid "path \"%s\" does not stat for inode: %llu; err = %s\n" ++msgstr "ścieżka \"%s\" nie pozwala na stat dla i-węzła: %llu; błąd = %s\n" + +-#: .././repair/progress.c:173 +-msgid "progress_rpt: cannot malloc progress msg buffer\n" +-msgstr "progress_rpt: nie udało się przydzielić bufora komunikatów postępu\n" ++#: .././io/parent.c:67 ++#, c-format ++msgid "path \"%s\" found\n" ++msgstr "ścieżki \"%s\" nie znaleziono\n" + +-#: .././repair/progress.c:187 +-msgid "progress_rpt: cannot create timer\n" +-msgstr "progress_rpt: nie można utworzyć zegara\n" ++#: .././io/parent.c:73 ++#, c-format ++msgid "inode-path for inode: %llu is incorrect - wrong inode#\n" ++msgstr "inode-path dla i-węzła: %llu jest niepoprawna - niewłaściwy numer i-węzła\n" + +-#: .././repair/progress.c:190 +-msgid "progress_rpt: cannot set timer\n" +-msgstr "progress_rpt: nie można ustawić zegara\n" ++#: .././io/parent.c:77 .././io/parent.c:107 ++#, c-format ++msgid "ino mismatch for path \"%s\" %llu vs %llu\n" ++msgstr "niezgodność i-węzła dla ścieżki \"%s\" %llu vs %llu\n" + +-#: .././repair/progress.c:214 +-msgid "progress_rpt: cannot lock progress mutex\n" +-msgstr "progress_rpt: nie można zablokować muteksu\n" ++#: .././io/parent.c:85 ++#, c-format ++msgid "inode number match: %llu\n" ++msgstr "zgodność numeru i-węzła: %llu\n" + +-#: .././repair/progress.c:251 .././repair/progress.c:354 ++#: .././io/parent.c:95 + #, c-format +-msgid "%s" +-msgstr "%s" ++msgid "parent path \"%s\" does not stat: %s\n" ++msgstr "ścieżka nadrzędna \"%s\" nie pozwala na stat: %s\n" + +-#: .././repair/progress.c:259 ++#: .././io/parent.c:103 + #, c-format +-msgid "\t- %02d:%02d:%02d: Phase %d: elapsed time %s - processed %d %s per minute\n" +-msgstr "\t- %02d:%02d:%02d: Faza %d: miniony czas %s - przetworzono %d %s na minutę\n" ++msgid "inode-path for inode: %llu is incorrect - wrong parent inode#\n" ++msgstr "inode-path dla i-węzła: %llu jest niepoprawna - niewłaściwy numer i-węzła nadrzędnego\n" + +-#: .././repair/progress.c:264 ++#: .././io/parent.c:116 + #, c-format +-msgid "\t- %02d:%02d:%02d: Phase %d: %%% done - estimated remaining time %s\n" +-msgstr "\t- %02d:%02d:%02d: Faza %d: %%% zrobione - przewidywany pozostały czas %s\n" ++msgid "parent ino match for %llu\n" ++msgstr "zgodność numeru i-węzła nadrzędnego dla %llu\n" + +-#: .././repair/progress.c:272 +-msgid "progress_rpt: error unlock msg mutex\n" +-msgstr "progress_rpt: błąd odblokowywania muteksu komunikatów\n" ++#: .././io/parent.c:138 ++#, c-format ++msgid "parentpaths failed for ino %llu: %s\n" ++msgstr "parentpaths nie powiodło się dla i-węzła %llu: %s\n" + +-#: .././repair/progress.c:278 +-msgid "cannot delete timer\n" +-msgstr "nie można usunąć zegara\n" ++#: .././io/parent.c:149 ++#, c-format ++msgid "inode-path for inode: %llu is missing\n" ++msgstr "brak inode-path dla i-węzła: %llu\n" + +-#: .././repair/progress.c:292 +-msgid "set_progress_msg: cannot lock progress mutex\n" +-msgstr "set_progress_msg: nie można zablokować mutekstu postępu\n" ++#: .././io/parent.c:173 ++#, c-format ++msgid "can't stat mount point \"%s\": %s\n" ++msgstr "nie można wykonać stat na punkcie montowania \"%s\": %s\n" + +-#: .././repair/progress.c:302 +-msgid "set_progress_msg: cannot unlock progress mutex\n" +-msgstr "set_progress_msg: nie można odblokować mutekstu postępu\n" ++#: .././io/parent.c:194 ++#, c-format ++msgid "failed to get bulkstat information for inode %llu\n" ++msgstr "nie udało się uzyskać informacji bulkstat dla i-węzła %llu\n" + +-#: .././repair/progress.c:322 +-msgid "print_final_rpt: cannot lock progress mutex\n" +-msgstr "print_final_rpt: nie można zablokować mutekstu postępu\n" ++#: .././io/parent.c:200 ++#, c-format ++msgid "failed to get valid bulkstat information for inode %llu\n" ++msgstr "nie udało się uzyskać prawidłowych informacji bulkstat dla i-węzła %llu\n" + +-#: .././repair/progress.c:358 +-msgid "print_final_rpt: cannot unlock progress mutex\n" +-msgstr "print_final_rpt: nie można odblokować muteksu postępu\n" ++#: .././io/parent.c:212 ++#, c-format ++msgid "checking inode %llu\n" ++msgstr "sprawdzanie i-węzła %llu\n" + +-#: .././repair/progress.c:407 ++#: .././io/parent.c:227 + #, c-format +-msgid "%02d:%02d:%02d" +-msgstr "%02d:%02d:%02d" ++msgid "syssgi bulkstat failed: %s\n" ++msgstr "syssgi bulkstat nie powiodło się: %s\n" + +-#: .././repair/progress.c:429 ++#: .././io/parent.c:249 + #, c-format +-msgid "%d week" +-msgstr "%d tygodni" ++msgid "unable to open \"%s\" for jdm: %s\n" ++msgstr "nie udało się otworzyć \"%s\" dla jdm: %s\n" + +-#: .././repair/progress.c:430 .././repair/progress.c:440 +-#: .././repair/progress.c:456 .././repair/progress.c:474 +-#: .././repair/progress.c:489 +-msgid "s" +-msgstr " " ++#: .././io/parent.c:259 ++#, c-format ++msgid "unable to allocate buffers: %s\n" ++msgstr "nie udało się przydzielić buforów: %s\n" + +-# XXX: ngettext() +-#: .././repair/progress.c:439 ++#: .././io/parent.c:270 + #, c-format +-msgid "%d day" +-msgstr "%d dni" ++msgid "num errors: %d\n" ++msgstr "liczba błędów: %d\n" + +-#: .././repair/progress.c:446 .././repair/progress.c:463 +-#: .././repair/progress.c:481 .././repair/progress.c:491 +-msgid ", " +-msgstr ", " ++#: .././io/parent.c:272 ++#, c-format ++msgid "succeeded checking %llu inodes\n" ++msgstr "udało się sprawdzić %llu i-węzłów\n" + +-#: .././repair/progress.c:455 ++#: .././io/parent.c:283 + #, c-format +-msgid "%d hour" +-msgstr "%d godzin" ++msgid "p_ino = %llu\n" ++msgstr "p_ino = %llu\n" + +-#: .././repair/progress.c:473 ++#: .././io/parent.c:284 + #, c-format +-msgid "%d minute" +-msgstr "%d minut" ++msgid "p_gen = %u\n" ++msgstr "p_gen = %u\n" + +-#: .././repair/progress.c:488 ++#: .././io/parent.c:285 + #, c-format +-msgid "%d second" +-msgstr "%d sekund" ++msgid "p_reclen = %u\n" ++msgstr "p_reclen = %u\n" + +-#: .././repair/progress.c:509 ++#: .././io/parent.c:287 + #, c-format +-msgid "" +-"\n" +-" XFS_REPAIR Summary %s\n" +-msgstr "" +-"\n" +-" Podsumowanie XFS_REPAIR %s\n" ++msgid "p_name = \"%s%s\"\n" ++msgstr "p_name = \"%s%s\"\n" + +-#: .././repair/progress.c:511 +-msgid "Phase\t\tStart\t\tEnd\t\tDuration\n" +-msgstr "Faza\t\tPoczątek\tKoniec\t\tCzas trwania\n" ++#: .././io/parent.c:289 ++#, c-format ++msgid "p_name = \"%s\"\n" ++msgstr "p_name = \"%s\"\n" + +-#: .././repair/progress.c:516 .././repair/progress.c:519 ++#: .././io/parent.c:311 + #, c-format +-msgid "Phase %d:\tSkipped\n" +-msgstr "Faza %d:\tPominięta\n" ++msgid "%s: failed path_to_fshandle \"%s\": %s\n" ++msgstr "%s: path_to_fshandle nie powiodło się dla \"%s\": %s\n" + +-#: .././repair/progress.c:523 ++#: .././io/parent.c:318 + #, c-format +-msgid "Phase %d:\t%02d/%02d %02d:%02d:%02d\t%02d/%02d %02d:%02d:%02d\t%s\n" +-msgstr "Faza %d:\t%02d.%02d %02d:%02d:%02d\t%02d.%02d %02d:%02d:%02d\t%s\n" ++msgid "%s: path_to_handle failed for \"%s\"\n" ++msgstr "%s: path_to_handle nie powiodło się dla \"%s\"\n" + +-#: .././repair/progress.c:529 ++#: .././io/parent.c:325 + #, c-format +-msgid "" +-"\n" +-"Total run time: %s\n" +-msgstr "" +-"\n" +-"Całkowity czas trwania: %s\n" ++msgid "%s: unable to allocate parent buffer: %s\n" ++msgstr "%s: nie udało się przydzielić bufora nadrzędnego: %s\n" + +-#: .././repair/phase2.c:65 ++#: .././io/parent.c:346 + #, c-format +-msgid "zero_log: cannot find log head/tail (xlog_find_tail=%d), zeroing it anyway\n" +-msgstr "zero_log: nie znaleziono początku/końca logu (xlog_find_tail=%d), wyzerowano go\n" ++msgid "%s: %s call failed for \"%s\": %s\n" ++msgstr "%s: wywołanie %s nie powiodło się dla \"%s\": %s\n" + +-#: .././repair/phase2.c:71 ++#: .././io/parent.c:355 + #, c-format +-msgid "zero_log: head block % tail block %\n" +-msgstr "zero_log: blok początku % blok końca %\n" ++msgid "%s: inode-path is missing\n" ++msgstr "%s: brak inode-path\n" ++ ++#: .././io/parent.c:386 ++#, c-format ++msgid "file argument, \"%s\", is not in a mounted XFS filesystem\n" ++msgstr "argument plikowy \"%s\" nie jest na podmontowanym systemie plików XFS\n" + +-#: .././repair/phase2.c:77 ++#: .././io/parent.c:426 ++#, c-format + msgid "" +-"ALERT: The filesystem has valuable metadata changes in a log which is being\n" +-"destroyed because the -L option was used.\n" ++"\n" ++" list the current file's parents and their filenames\n" ++"\n" ++" -c -- check the current file's file system for parent consistency\n" ++" -p -- list the current file's parents and their full paths\n" ++" -v -- verbose mode\n" ++"\n" + msgstr "" +-"UWAGA: system plików zawiera wartościowe zmiany metadanych w logu, który jest\n" +-"niszczony, ponieważ użyto opcji -L.\n" ++"\n" ++" wypisanie rodziców bieżącego pliku i ich nazw\n" ++"\n" ++" -c - sprawdzenie systemu plików pod kątem spójności rodziców pliku\n" ++" -p - wypisanie rodziców bieżącego pliku i ich pełnych ścieżek\n" ++" -v - tryb szczegółowy\n" ++"\n" + +-#: .././repair/phase2.c:81 ++#: .././io/parent.c:442 ++msgid "[-cpv]" ++msgstr "[-cpv]" ++ ++#: .././io/parent.c:444 ++msgid "print or check parent inodes" ++msgstr "wypisanie lub sprawdzenie i-węzłów nadrzędnych" ++ ++#: .././io/pread.c:33 ++#, c-format + msgid "" +-"ERROR: The filesystem has valuable metadata changes in a log which needs to\n" +-"be replayed. Mount the filesystem to replay the log, and unmount it before\n" +-"re-running xfs_repair. If you are unable to mount the filesystem, then use\n" +-"the -L option to destroy the log and attempt a repair.\n" +-"Note that destroying the log may cause corruption -- please attempt a mount\n" +-"of the filesystem before doing this.\n" ++"\n" ++" reads a range of bytes in a specified block size from the given offset\n" ++"\n" ++" Example:\n" ++" 'pread -v 512 20' - dumps 20 bytes read from 512 bytes into the file\n" ++"\n" ++" Reads a segment of the currently open file, optionally dumping it to the\n" ++" standard output stream (with -v option) for subsequent inspection.\n" ++" The reads are performed in sequential blocks starting at offset, with the\n" ++" blocksize tunable using the -b option (default blocksize is 4096 bytes),\n" ++" unless a different pattern is requested.\n" ++" -B -- read backwards through the range from offset (backwards N bytes)\n" ++" -F -- read forwards through the range of bytes from offset (default)\n" ++" -v -- be verbose, dump out buffers (used when reading forwards)\n" ++" -R -- read at random offsets in the range of bytes\n" ++" -Z N -- zeed the random number generator (used when reading randomly)\n" ++" (heh, zorry, the -s/-S arguments were already in use in pwrite)\n" ++" -V N -- use vectored IO with N iovecs of blocksize each (preadv)\n" ++"\n" ++" When in \"random\" mode, the number of read operations will equal the\n" ++" number required to do a complete forward/backward scan of the range.\n" ++" Note that the offset within the range is chosen at random each time\n" ++" (an offset may be read more than once when operating in this mode).\n" ++"\n" + msgstr "" +-"BŁĄD: system plików zawiera wartościowe zmiany metadanych w logu, który\n" +-"musi być odtworzony. Należy podmontować system plików, aby odtworzyć log,\n" +-"a następnie odmontować go przed ponownym uruchomieniem xfs_repair. Jeśli\n" +-"systemu plików nie da się podmontować, można użyć opcji -L, aby zniszczyć\n" +-"log i spróbować naprawić system plików.\n" +-"Należy zauważyć, że zniszczenie logu może spowodować uszkodzenia danych -\n" +-"proszę najpierw spróbować podmontować system plików.\n" ++"\n" ++" odczytanie przedziału bajtów w podanym rozmiarze bloku od podanego offsetu\n" ++"\n" ++" Przykład:\n" ++" 'pread -v 512 20' - zrzucenie 20 bajtów odczytanych od 512 bajtu w pliku\n" ++"\n" ++" pread odczytuje segment aktualnie otwartego pliku, opcjonalnie zrzucając\n" ++" zawartość na strumień standardowego wyjścia (z opcją -v) dla dalszych badań.\n" ++" Odczyty są wykonywane sekwencyjnie blokami począwszy od offsetu z rozmiarem\n" ++" bloku ustawianym przy użyciu opcji -b (domyślny rozmiar bloku to 4096 bajtów),\n" ++" chyba że zażądano innego schematu.\n" ++" -B - odczyt przedziału od tyłu począwszy od offsetu (N bajtów do tyłu)\n" ++" -F - odczyt przedziału od przodu począwszy od offsetu (domyślny)\n" ++" -v - tryb szczegółowy, zrzucenie bufora (przy odczycie od przodu)\n" ++" -R - odczyt losowych offsetów z przedziału bajtów\n" ++" -Z N - (\"zeed\") nakarmienie generatora liczb losowych (przy odczycie losowym)\n" ++" (nieztety opcje -s/-S pasujące do \"seed\" były już zajęte w pwrite)\n" ++" -V N - użycie wektorowego we/wy z N iovec, każdym o rozmiarze blocksize\n" ++" (preadv)\n" ++"\n" ++" W przypadku trybu losowego liczba operacji odczytu będzie równa liczbie\n" ++" potrzebnej do pełnego przeskanowania od przodu lub od tyłu całego przedziału.\n" ++" Należy zauważyć, że offset w przedziale jest wybierany za każdym razem losowo\n" ++" (dowolny offset może być w tym trybie czytany więcej niż raz).\n" ++"\n" + +-#: .././repair/phase2.c:123 +-msgid "This filesystem has an external log. Specify log device with the -l option.\n" +-msgstr "Ten system plików ma zewnętrzny log. Należy podać urządzenie logu przy użyciu opcji -l.\n" ++#: .././io/pread.c:398 .././io/pwrite.c:269 ++#, c-format ++msgid "non-numeric bsize -- %s\n" ++msgstr "nieliczbowy rozmiar bloku - %s\n" + +-#: .././repair/phase2.c:126 ++#: .././io/pread.c:428 .././io/pwrite.c:316 + #, c-format +-msgid "Phase 2 - using external log on %s\n" +-msgstr "Faza 2 - użycie zewnętrznego logu na %s\n" ++msgid "non-numeric vector count == %s\n" ++msgstr "nieliczbowa liczba wektorów - %s\n" + +-#: .././repair/phase2.c:128 +-msgid "Phase 2 - using internal log\n" +-msgstr "Faza 2 - użycie wewnętrznego logu\n" ++#: .././io/pread.c:497 ++#, c-format ++msgid "read %lld/%lld bytes at offset %lld\n" ++msgstr "odczytano %lld/%lld bajtów od offsetu %lld\n" + +-#: .././repair/phase2.c:132 +-msgid " - zero log...\n" +-msgstr " - zerowanie logu...\n" ++#: .././io/pread.c:499 .././io/pwrite.c:396 .././io/sendfile.c:163 ++#, c-format ++msgid "%s, %d ops; %s (%s/sec and %.4f ops/sec)\n" ++msgstr "%s, %d operacji; %s (%s/sek i %.4f operacji/sek)\n" + +-#: .././repair/phase2.c:136 +-msgid " - scan filesystem freespace and inode maps...\n" +-msgstr " - przeszukiwanie wolnego miejsca i map i-węzłów w systemie plików...\n" ++#: .././io/pread.c:518 ++msgid "[-b bs] [-v] [-i N] [-FBR [-Z N]] off len" ++msgstr "[-b rozm_bloku] [-v] [-i N] [-FBR [-Z N]] offset długość" + +-#: .././repair/phase2.c:152 +-msgid "root inode chunk not found\n" +-msgstr "nie znaleziono danych głównego i-węzła\n" ++#: .././io/pread.c:519 ++msgid "reads a number of bytes at a specified offset" ++msgstr "odczyt podanej liczby bajtów od podanego offsetu" + +-#: .././repair/phase2.c:171 +-msgid " - found root inode chunk\n" +-msgstr " - znaleziono dane głównego i-węzła\n" ++#: .././io/prealloc.c:273 .././io/prealloc.c:281 .././io/prealloc.c:289 ++#: .././io/prealloc.c:297 .././io/prealloc.c:307 .././io/prealloc.c:333 ++#: .././io/prealloc.c:343 ++msgid "off len" ++msgstr "offset długość" + +-#: .././repair/phase2.c:177 +-msgid "root inode marked free, " +-msgstr "główny i-węzeł oznaczony jako wolny, " ++#: .././io/prealloc.c:274 ++msgid "allocates zeroed space for part of a file" ++msgstr "przydzielenie wyzerowanej przestrzeni dla części pliku" + +-#: .././repair/phase2.c:186 +-msgid "realtime bitmap inode marked free, " +-msgstr "i-węzeł bitmapy realtime oznaczony jako wolny, " ++#: .././io/prealloc.c:282 ++msgid "frees space associated with part of a file" ++msgstr "zwolnienie miejsca związanego z częścią pliku" + +-#: .././repair/phase2.c:195 +-msgid "realtime summary inode marked free, " +-msgstr "i-węzeł opisu realtime oznaczony jako wolny, " ++#: .././io/prealloc.c:291 ++msgid "reserves space associated with part of a file" ++msgstr "zarezerwowanie miejsca związanego z częścią pliku" + +-#: .././repair/rt.c:47 +-msgid "couldn't allocate memory for incore realtime bitmap.\n" +-msgstr "nie udało się przydzielić pamięci dla bitmapy realtime.\n" ++#: .././io/prealloc.c:300 ++msgid "frees reserved space associated with part of a file" ++msgstr "zwolnienie zarezerwowanego miejsca związanego z częścią pliku" + +-#: .././repair/rt.c:51 +-msgid "couldn't allocate memory for incore realtime summary info.\n" +-msgstr "nie udało się przydzielić pamięci dla opisu realtime.\n" ++#: .././io/prealloc.c:309 ++msgid "Converts the given range of a file to allocated zeros" ++msgstr "Zamiana podanego przedziału pliku na przydzielone zera" + +-#: .././repair/rt.c:151 .././db/check.c:1568 +-#, c-format +-msgid "rt summary mismatch, size %d block %llu, file: %d, computed: %d\n" +-msgstr "opis rt nie zgadza się, rozmiar %d bloku %llu, plik: %d, obliczono: %d\n" ++#: .././io/prealloc.c:323 ++msgid "[-c] [-k] [-p] off len" ++msgstr "[-c] [-k] [-p] offset długość" + +-#: .././repair/rt.c:203 +-#, c-format +-msgid "can't find block %d for rtbitmap inode\n" +-msgstr "nie można odnaleźć bloku %d dla i-węzła bitmapy realtime\n" ++#: .././io/prealloc.c:325 ++msgid "allocates space associated with part of a file via fallocate" ++msgstr "przydzielenie miejsca powiązanego z częścią pliku przez fallocate" + +-#: .././repair/rt.c:211 +-#, c-format +-msgid "can't read block %d for rtbitmap inode\n" +-msgstr "nie można odczytać bloku %d dla i-węzła bitmapy realtime\n" ++#: .././io/prealloc.c:335 ++msgid "de-allocates space assocated with part of a file via fallocate" ++msgstr "zwolnienie miejsca powiązanego z częścią pliku przez fallocate" + +-#: .././repair/rt.c:265 +-#, c-format +-msgid "block %d for rtsummary inode is missing\n" +-msgstr "brak bloku %d dla i-węzła opisu realtime\n" ++#: .././io/prealloc.c:345 ++msgid "de-allocates space and eliminates the hole by shifting extents" ++msgstr "zwolnienie miejsca i usunięcie dziury poprzez przesunięcie ekstentów" + +-#: .././repair/rt.c:273 +-#, c-format +-msgid "can't read block %d for rtsummary inode\n" +-msgstr "nie można odczytać bloku %d dla i-węzła opisu realtime\n" ++#: .././io/prealloc.c:353 ++msgid "[-k] off len" ++msgstr "[-k] offset długość" + +-#: .././quota/free.c:29 ++#: .././io/prealloc.c:355 ++msgid "zeroes space and eliminates holes by preallocating" ++msgstr "wyzerowanie miejsca i usunięcie dziur poprzez prealokację" ++ ++#: .././io/pwrite.c:32 + #, c-format + msgid "" + "\n" +-" reports the number of free disk blocks and inodes\n" ++" writes a range of bytes (in block size increments) from the given offset\n" + "\n" +-" This command reports the number of total, used, and available disk blocks.\n" +-" It can optionally report the same set of numbers for inodes and realtime\n" +-" disk blocks, and will report on all known XFS filesystem mount points and\n" +-" project quota paths by default (see 'print' command for a list).\n" +-" -b -- report the block count values\n" +-" -i -- report the inode count values\n" +-" -r -- report the realtime block count values\n" +-" -h -- report in a human-readable format\n" +-" -N -- suppress the header from the output\n" ++" Example:\n" ++" 'pwrite 512 20' - writes 20 bytes at 512 bytes into the open file\n" ++"\n" ++" Writes into a segment of the currently open file, using either a buffer\n" ++" filled with a set pattern (0xcdcdcdcd) or data read from an input file.\n" ++" The writes are performed in sequential blocks starting at offset, with the\n" ++" blocksize tunable using the -b option (default blocksize is 4096 bytes),\n" ++" unless a different write pattern is requested.\n" ++" -S -- use an alternate seed number for filling the write buffer\n" ++" -i -- input file, source of data to write (used when writing forward)\n" ++" -d -- open the input file for direct IO\n" ++" -s -- skip a number of bytes at the start of the input file\n" ++" -w -- call fdatasync(2) at the end (included in timing results)\n" ++" -W -- call fsync(2) at the end (included in timing results)\n" ++" -B -- write backwards through the range from offset (backwards N bytes)\n" ++" -F -- write forwards through the range of bytes from offset (default)\n" ++" -R -- write at random offsets in the specified range of bytes\n" ++" -Z N -- zeed the random number generator (used when writing randomly)\n" ++" (heh, zorry, the -s/-S arguments were already in use in pwrite)\n" ++" -V N -- use vectored IO with N iovecs of blocksize each (pwritev)\n" + "\n" + msgstr "" + "\n" +-" informacje o liczbie wolnych bloków i i-węzłów dysku\n" ++" zapisanie przedziału bajtów w podanym rozmiarze bloku od podanego offsetu\n" + "\n" +-" To polecenie informuje o liczbie wszystkich, używanych i dostępnych bloków\n" +-" dysku. Opcjonalnie informuje o tym samym zestawie liczb dla i-węzłów i bloków\n" +-" realtime oraz domyślnie zgłasza wszystkie znane punkty montowania systemu\n" +-" plików XFS i ścieżki quot projektów (patrz lista w poleceniu 'print').\n" +-" -b - informacje o liczbach bloków\n" +-" -i - informacje o liczbach i-węzłów\n" +-" -r - informacje o liczbach bloków realtime\n" +-" -h - informacje w postaci czytelnej dla człowieka\n" +-" -N - pominięcie nagłówka z wyjścia\n" ++" Przykład:\n" ++" 'pwrite 512 20' - zapisanie 20 bajtów odczytanych od 512 bajtu w pliku\n" ++"\n" ++" pwrite zapisuje segment aktualnie otwartego pliku, używając bufora wypełnionego\n" ++" ustawionym wzorcem (0xcdcdcdcd) lub danymi odczytanymi z pliku wejściowego.\n" ++" Zapisy są wykonywane sekwencyjnie blokami począwszy od offsetu z rozmiarem\n" ++" bloku ustawianym przy użyciu opcji -b (domyślny rozmiar bloku to 4096 bajtów),\n" ++" chyba że zażądano innego schematu.\n" ++" -S - użycie innej liczby do wypełnienia bufora zapisu\n" ++" -i - plik wejściowy, źródło danych do zapisania (przy pisaniu od przodu)\n" ++" -d - otwarcie pliku wejściowego dla bezpośredniego we/wy\n" ++" -s - pominięcie podanej liczby bajtów od początku pliku wejściowego\n" ++" -w - wywołanie fdatasync(2) na końcu (wliczane w wyniki czasowe)\n" ++" -W - wywołanie fsync(2) na końcu (wliczane w wyniki czasowe)\n" ++" -B - zapis przedziału od tyłu począwszy od offsetu (N bajtów do tyłu)\n" ++" -F - zapis przedziału od przodu począwszy od offsetu (domyślny)\n" ++" -R - zapis losowych offsetów z przedziału bajtów\n" ++" -Z N - (\"zeed\") nakarmienie generatora liczb losowych (przy zapisie losowym)\n" ++" (niestety opcje -s/-S pasujące do \"seed\" były już zajęte w pwrite)\n" ++" -V N - użycie wektorowego we/wy z N iovec, każdym o rozmiarze blocksize\n" ++" (pwritev)\n" + "\n" + +-#: .././quota/free.c:154 ++#: .././io/pwrite.c:296 + #, c-format +-msgid "%s: project quota flag not set on %s\n" +-msgstr "%s: flaga quot projektu nie ustawiona dla %s\n" ++msgid "non-numeric skip -- %s\n" ++msgstr "nieliczbowy liczba bajtów do pominięcia - %s\n" + +-#: .././quota/free.c:163 ++#: .././io/pwrite.c:394 + #, c-format +-msgid "%s: project ID %u (%s) doesn't match ID %u (%s)\n" +-msgstr "%s: ID projektu %u (%s) nie zgadza się z ID %u (%s)\n" ++msgid "wrote %lld/%lld bytes at offset %lld\n" ++msgstr "zapisano %lld/%lld bajtów od offsetu %lld\n" + +-#: .././quota/free.c:230 +-#, c-format +-msgid "Filesystem " +-msgstr "System plików " ++#: .././io/pwrite.c:419 ++msgid "[-i infile [-d] [-s skip]] [-b bs] [-S seed] [-wW] [-FBR [-Z N]] [-V N] off len" ++msgstr "[-i plik_wej [-d] [-s do_pominięcia]] [-b rozm_bloku] [-S zarodek] [-wW] [-FBR [-Z N]] [-V N] offset długość" + +-#: .././quota/free.c:230 +-#, c-format +-msgid "Filesystem " +-msgstr "System plików " ++#: .././io/pwrite.c:421 ++msgid "writes a number of bytes at a specified offset" ++msgstr "zapis podanej liczby bajtów od podanego offsetu" + +-#: .././quota/free.c:233 ++#: .././io/readdir.c:182 + #, c-format +-msgid " Size Used Avail Use%%" +-msgstr " Rozmiar Użyto Dost. %%uż." ++msgid "read %llu bytes from offset %lld\n" ++msgstr "odczytano %llu bajtów z offsetu %lld\n" + +-#: .././quota/free.c:234 ++#: .././io/readdir.c:183 + #, c-format +-msgid " 1K-blocks Used Available Use%%" +-msgstr " Bloki 1K Użyto Dostępnych %%uż." ++msgid "%s, %d ops, %s (%s/sec and %.4f ops/sec)\n" ++msgstr "%s, %d operacji; %s (%s/sek i %.4f operacji/sek)\n" + +-#: .././quota/free.c:237 +-#, c-format +-msgid " Inodes Used Free Use%%" +-msgstr " I-węzły Użyto Wolne %%uż." ++#: .././io/readdir.c:196 ++msgid "[-v][-o offset][-l length]" ++msgstr "[-v][-o offset][-l długość]" + +-#: .././quota/free.c:238 +-#, c-format +-msgid " Inodes IUsed IFree IUse%%" +-msgstr " I-węzły UżytoI WolneI %%użI" ++#: .././io/readdir.c:197 ++msgid "read directory entries" ++msgstr "odczyt wpisów katalogu" + +-#: .././quota/free.c:239 ++#: .././io/resblks.c:39 + #, c-format +-msgid " Pathname\n" +-msgstr " Ścieżka\n" +- +-#: .././quota/free.c:371 +-msgid "[-bir] [-hn] [-f file]" +-msgstr "[-bir] [hn] [-f plik]" +- +-#: .././quota/free.c:372 +-msgid "show free and used counts for blocks and inodes" +-msgstr "pokazanie liczby wolnych i zajętych bloków i i-węzłów" +- +-#: .././quota/init.c:48 +-#, c-format +-msgid "Usage: %s [-p prog] [-c cmd]... [-d project]... [path]\n" +-msgstr "Składnia: %s [-p program] [-c polecenie]... [-d projekt]... [ścieżka]\n" +- +-#: .././quota/path.c:39 +-#, c-format +-msgid "%sFilesystem Pathname\n" +-msgstr "%sSystem plików Ścieżka\n" +- +-#: .././quota/path.c:40 +-msgid " " +-msgstr " " +- +-#: .././quota/path.c:43 +-#, c-format +-msgid "%c%03d%c " +-msgstr "%c%03d%c " +- +-#: .././quota/path.c:45 +-#, c-format +-msgid "%-19s %s" +-msgstr "%-19s %s" +- +-#: .././quota/path.c:48 +-#, c-format +-msgid " (project %u" +-msgstr " (projekt %u" +- +-#: .././quota/path.c:50 +-#, c-format +-msgid ", %s" +-msgstr ", %s" ++msgid "non-numeric argument -- %s\n" ++msgstr "nieliczbowy argument - %s\n" + +-#: .././quota/path.c:103 ++#: .././io/resblks.c:51 + #, c-format +-msgid "No paths are available\n" +-msgstr "Brak ścieżek\n" ++msgid "reserved blocks = %llu\n" ++msgstr "zarezerwowane bloki = %llu\n" + +-#: .././quota/path.c:112 .././io/sendfile.c:103 .././io/file.c:81 ++#: .././io/resblks.c:53 + #, c-format +-msgid "value %d is out of range (0-%d)\n" +-msgstr "wartość %d jest spoza zakresu (0-%d)\n" +- +-#: .././quota/path.c:126 .././io/file.c:94 +-msgid "[N]" +-msgstr "[N]" ++msgid "available reserved blocks = %llu\n" ++msgstr "dostępne zarezerwowane bloki = %llu\n" + +-#: .././quota/path.c:131 +-msgid "set current path, or show the list of paths" +-msgstr "ustawienie bieżącej ścieżki lub pokazanie listy ścieżek" ++#: .././io/resblks.c:66 ++msgid "[blocks]" ++msgstr "[bloki]" + +-#: .././quota/path.c:139 +-msgid "list known mount points and projects" +-msgstr "wypisanie znanych punktów montowań i projektów" ++#: .././io/resblks.c:68 ++msgid "get and/or set count of reserved filesystem blocks" ++msgstr "pobranie i/lub ustawienie liczby zarezerwowanych bloków w systemie plików" + +-#: .././quota/project.c:45 ++#: .././io/seek.c:33 + #, c-format + msgid "" + "\n" +-" list projects or setup a project tree for tree quota management\n" ++" returns the next hole and/or data offset at or after the requested offset\n" + "\n" + " Example:\n" +-" 'project -c logfiles'\n" +-" (match project 'logfiles' to a directory, and setup the directory tree)\n" ++" 'seek -d 512'\t\t- offset of data at or following offset 512\n" ++" 'seek -a -r 0'\t- offsets of all data and hole in entire file\n" + "\n" +-" Without arguments, report all projects found in the /etc/projects file.\n" +-" The project quota mechanism in XFS can be used to implement a form of\n" +-" directory tree quota, where a specified directory and all of the files\n" +-" and subdirectories below it (i.e. a tree) can be restricted to using a\n" +-" subset of the available space in the filesystem.\n" ++" Returns the offset of the next data and/or hole. There is an implied hole\n" ++" at the end of file. If the specified offset is past end of file, or there\n" ++" is no data past the specified offset, EOF is returned.\n" ++" -a\t-- return the next data and hole starting at the specified offset.\n" ++" -d\t-- return the next data starting at the specified offset.\n" ++" -h\t-- return the next hole starting at the specified offset.\n" ++" -r\t-- return all remaining type(s) starting at the specified offset.\n" ++" -s\t-- also print the starting offset.\n" + "\n" +-" A managed tree must be setup initially using the -c option with a project.\n" +-" The specified project name or identifier is matched to one or more trees\n" +-" defined in /etc/projects, and these trees are then recursively descended\n" +-" to mark the affected inodes as being part of that tree - which sets inode\n" +-" flags and the project identifier on every file.\n" +-" Once this has been done, new files created in the tree will automatically\n" +-" be accounted to the tree based on their project identifier. An attempt to\n" +-" create a hard link to a file in the tree will only succeed if the project\n" +-" identifier matches the project identifier for the tree. The xfs_io utility\n" +-" can be used to set the project ID for an arbitrary file, but this can only\n" +-" be done by a privileged user.\n" ++msgstr "" + "\n" +-" A previously setup tree can be cleared from project quota control through\n" +-" use of the -C option, which will recursively descend the tree, clearing\n" +-" the affected inodes from project quota control.\n" ++" zwrócenie offsetu następnej dziury i/lub danych pod lub za żądanym offsetem\n" + "\n" +-" The -c option can be used to check whether a tree is setup, it reports\n" +-" nothing if the tree is correct, otherwise it reports the paths of inodes\n" +-" which do not have the project ID of the rest of the tree, or if the inode\n" +-" flag is not set.\n" ++" Przykłady:\n" ++" 'seek -d 512' - offset danych pod lub za offsetem 512\n" ++" 'seek -a -r 0' - offsety wszystkich danych i dziur w całym pliku\n" + "\n" +-" The -p option can be used to manually specify project path without\n" +-" need to create /etc/projects file. This option can be used multiple times\n" +-" to specify multiple paths. When using this option only one projid/name can\n" +-" be specified at command line. Note that /etc/projects is also used if exists.\n" ++" seek zwraca offset następnych danych i/lub dziury. Istnieje domyślna dziura\n" ++" na końcu pliku. Jeśli podany offset jest za końcem pliku lub nie ma danych\n" ++" za podanym offsetem, zwracany jest EOF.\n" ++" -a\t- następne dane i dziura od podanego offsetu\n" ++" -d\t- następne dane począwszy od podanego offsetu\n" ++" -h\t- następna dziura począwszy od podanego offsetu\n" ++" -r\t- wszystkie pozostałe typy fragmentów od podanego offsetu\n" ++" -s\t- wypisane także offsetu początkowego\n" + "\n" +-" The -d option allows to descend at most levels of directories\n" +-" below the command line arguments. -d 0 means only apply the actions\n" +-" to the top level of the projects. -d -1 means no recursion limit (default).\n" ++ ++#: .././io/seek.c:219 ++msgid "-a | -d | -h [-r] off" ++msgstr "-a | -d | -h [-r] offset" ++ ++#: .././io/seek.c:220 ++msgid "locate the next data and/or hole" ++msgstr "odnalezienie następnych danych i/lub dziury" ++ ++#: .././io/sendfile.c:32 ++#, c-format ++msgid "" + "\n" +-" The /etc/projid and /etc/projects file formats are simple, and described\n" +-" on the xfs_quota man page.\n" ++" transfer a range of bytes from the given offset between files\n" ++"\n" ++" Example:\n" ++" 'send -f 2 512 20' - writes 20 bytes at 512 bytes into the open file\n" ++"\n" ++" Copies data between one file descriptor and another. Because this copying\n" ++" is done within the kernel, sendfile does not need to transfer data to and\n" ++" from user space.\n" ++" -f -- specifies an input file from which to source data to write\n" ++" -i -- specifies an input file name from which to source data to write.\n" ++" An offset and length in the source file can be optionally specified.\n" + "\n" + msgstr "" + "\n" +-" wypisanie projektów lub ustanowienie drzewa projektu do zarządzania limitami\n" ++" przesłanie między plikami przedziału bajtów od podanego offsetu\n" + "\n" + " Przykład:\n" +-" 'project -c logfiles'\n" +-" (dopasowanie projektu 'logfiles' do katalogu i ustanowienie drzewa katalogów)\n" ++" 'send -f 2 512 20' - zapisanie 20 bajtów od 512 bajtu do otwartego pliku\n" + "\n" +-" Bez argumentów project wypisuje wszystkie projekty znalezione w pliku\n" +-" /etc/projects. Mechanizm quota dla projektów w XFS-ie może być używany do\n" +-" zaimplementowania formy limitów dla drzewa katalogów, gdzie podany katalog\n" +-" i wszystkie pliki i podkatalogi poniżej niego (czyli drzewo) mogą być\n" +-" ograniczone do używania podzbioru miejsca dostępnego w systemie plików.\n" ++" sendfile kopiuje dane między jednym deskryptorem pliku a innym. Ponieważ to\n" ++" kopiowanie jest wykonywane przez jądro, sendfile nie potrzebuje przesyłać\n" ++" danych do i z przestrzeni użytkownika.\n" ++" -f - podanie plików wejściowego z którego dane mają być czytane\n" ++" -i - podanie nazwy pliku wejściowego z którego dane mają być czytane\n" ++" Opcjonalnie można podać offset i długość danych w pliku źródłowym.\n" + "\n" +-" Zarządzane drzewo musi być ustanowione początkowo przy użyciu opcji project -c.\n" +-" Podana nazwa lub identyfikator projektu jest dopasowywany do jednego lub\n" +-" większej liczby drzew zdefiniowanych w /etc/projects, a następnie te drzewa są\n" +-" rekurencyjnie przechodzone w celu oznaczenia i-węzłów jako będących częścią\n" +-" tego drzewa - co ustawia flagi i-węzłów i identyfikator projektu dla każdego\n" +-" pliku.\n" +-" Po zrobieniu tego nowe pliki tworzone w drzewie będą automatycznie liczone jako\n" +-" część drzewa o ich identyfikatorze projektu. Próba utworzenia dowiązania\n" +-" zwykłego do pliku w drzewie powiedzie się tylko jeśli identyfikator projektu\n" +-" pasuje do identyfikatora projektu drzewa. Można użyć narzędzia xfs_io do\n" +-" ustawienia ID projektu dla dowolnego pliku, ale może tego dokonać tylko\n" +-" uprzywilejowany użytkownik.\n" ++ ++#: .././io/sendfile.c:161 ++#, c-format ++msgid "sent %lld/%lld bytes from offset %lld\n" ++msgstr "przesłano %lld/%lld bajtów od offsetu %lld\n" ++ ++#: .././io/sendfile.c:186 ++msgid "-i infile | -f N [off len]" ++msgstr "-i plik_wej | -f N [offset długość]" ++ ++#: .././io/sendfile.c:188 ++msgid "Transfer data directly between file descriptors" ++msgstr "Przesłanie danych bezpośrednio między deskryptorami plików" ++ ++#: .././io/shutdown.c:59 ++msgid "[-f]" ++msgstr "[-f]" ++ ++#: .././io/shutdown.c:61 ++msgid "shuts down the filesystem where the current file resides" ++msgstr "wyłączenie systemu plików na którym znajduje się bieżący plik" ++ ++#: .././io/sync_file_range.c:31 ++#, c-format ++msgid "" + "\n" +-" Poprzednio ustanowione drzewa można usunąć z kontroli limitów projektu poprzez\n" +-" użycie opcji -C, która rekurencyjnie przejdzie drzewo, usuwając i-węzły spod\n" +-" kontroli limitów projektu.\n" ++" Trigger specific writeback commands on a range of the current file\n" + "\n" +-" Opcji -c można użyć do sprawdzenia czy drzewo zostało ustanowione - nie\n" +-" informuje o niczym jeśli drzewo jest poprawne, a w przeciwnym wypadku zgłasza\n" +-" ścieżki i-węzłów nie mające ID projektu takiego jak reszta drzewa lub nie\n" +-" mające ustawionej flagi.\n" ++" With no options, the SYNC_FILE_RANGE_WRITE is implied.\n" ++" -a -- wait for IO to finish after writing (SYNC_FILE_RANGE_WAIT_AFTER).\n" ++" -b -- wait for IO to finish before writing (SYNC_FILE_RANGE_WAIT_BEFORE).\n" ++" -w -- write dirty data in range (SYNC_FILE_RANGE_WRITE).\n" + "\n" +-" Opcja -p <ścieżka> umożliwia podanie ścieżki projektu w linii poleceń\n" +-" bez potrzeby tworzenia pliku /etc/projects. Ta opcja może być używana\n" +-" wielokrotnie w celu przekazanie wielu ścieżek projektu. Tylko jeden\n" +-" identyfikator projektu może być podawy w linii poleceń w momencie\n" +-" używania opcji -p. Jeśli plik /etc/projects istnieje to także jest używany\n" +-" oprócz ścieżek w linii poleceń.\n" ++msgstr "" + "\n" +-" Opcja -d pozwala na ograniczanie zagłębiania się w podkatalogach\n" +-" projektu do granicy . -d 0 oznacza najwyższy poziom. -d 1 oznacza\n" +-" brak limitu zagłębiania (domyślny).\n" ++" Wyzwolenie określonych poleceń zapisu w tle na pewnym zakresie bieżącego pliku\n" + "\n" +-" Format plików /etc/projid i /etc/projects jest prosty i opisany na stronie\n" +-" manuala xfs_quota.\n" ++" Bez opcji przyjmowana jest operacja SYNC_FILE_RANGE_WRITE.\n" ++" -a - oczekiwanie na zakończenie we/wy po zapisie (SYNC_FILE_RANGE_WAIT_AFTER).\n" ++" -b - oczekiwanie na zakończenie we/wy przedtem (SYNC_FILE_RANGE_WAIT_BEFORE).\n" ++" -w - zapis zmodyfikowanych danych z zakresu (SYNC_FILE_RANGE_WRITE).\n" + "\n" + +-#: .././quota/project.c:108 .././quota/project.c:153 .././quota/project.c:200 +-#, c-format +-msgid "%s: cannot stat file %s\n" +-msgstr "%s: nie można wykonać stat na pliku %s\n" ++#: .././io/sync_file_range.c:102 ++msgid "[-abw] off len" ++msgstr "[-abw] offset długość" + +-#: .././quota/project.c:112 .././quota/project.c:157 .././quota/project.c:204 +-#, c-format +-msgid "%s: skipping special file %s\n" +-msgstr "%s: pominięto plik specjalny %s\n" ++#: .././io/sync_file_range.c:103 ++msgid "Control writeback on a range of a file" ++msgstr "Sterowanie zapisem w tle dla zakresu pliku" + +-#: .././quota/project.c:118 .././quota/project.c:163 .././quota/project.c:210 +-#: .././mkfs/proto.c:284 .././libxfs/init.c:110 .././io/attr.c:171 +-#: .././io/attr.c:247 .././io/open.c:397 .././io/open.c:469 .././io/open.c:593 +-#: .././io/open.c:615 ++#: .././io/truncate.c:38 + #, c-format +-msgid "%s: cannot open %s: %s\n" +-msgstr "%s: nie można otworzyć %s: %s\n" ++msgid "non-numeric truncate argument -- %s\n" ++msgstr "nieliczbowy argument truncate - %s\n" + +-#: .././quota/project.c:122 .././quota/project.c:168 .././quota/project.c:215 +-#: .././io/attr.c:174 .././io/attr.c:221 .././io/attr.c:250 .././io/attr.c:321 +-#, c-format +-msgid "%s: cannot get flags on %s: %s\n" +-msgstr "%s: nie można pobrać flag %s: %s\n" ++#: .././io/truncate.c:58 ++msgid "off" ++msgstr "offset" + +-#: .././quota/project.c:126 +-#, c-format +-msgid "%s - project identifier is not set (inode=%u, tree=%u)\n" +-msgstr "%s - identyfikator projektu nie ustawiony (i-węzeł=%u, drzewo=%u)\n" ++#: .././io/truncate.c:60 ++msgid "truncates the current file at the given offset" ++msgstr "ucięcie bieżącego pliku na podanym offsecie" + +-#: .././quota/project.c:130 ++#: .././libdisk/dm.c:57 + #, c-format +-msgid "%s - project inheritance flag is not set\n" +-msgstr "%s - flaga dziedziczenia projektu nie ustawiona\n" ++msgid "Warning - device mapper device, but no dmsetup(8) found\n" ++msgstr "Uwaga - urządzenie device mappera, ale nie znaleziono dmsetup(8)\n" + +-#: .././quota/project.c:178 ++#: .././libdisk/dm.c:73 .././libdisk/lvm.c:70 + #, c-format +-msgid "%s: cannot clear project on %s: %s\n" +-msgstr "%s: nie można usunąć projektu z %s: %s\n" ++msgid "Could not open pipe\n" ++msgstr "Nie udało się otworzyć potoku\n" + +-#: .././quota/project.c:225 ++#: .././libdisk/dm.c:88 .././libdisk/lvm.c:85 + #, c-format +-msgid "%s: cannot set project on %s: %s\n" +-msgstr "%s: nie można ustawić projektu na %s: %s\n" ++msgid "Failed to execute %s\n" ++msgstr "Nie udało się wywołać %s\n" + +-#: .././quota/project.c:240 ++#: .././libdisk/dm.c:92 + #, c-format +-msgid "Checking project %s (path %s)...\n" +-msgstr "Sprawdzanie projektu %s (ścieżka %s)...\n" ++msgid "Failed forking dmsetup process\n" ++msgstr "Nie udało się odgałęzić procesu dmsetup\n" + +-#: .././quota/project.c:244 ++#: .././libdisk/drivers.c:35 + #, c-format +-msgid "Setting up project %s (path %s)...\n" +-msgstr "Ustanawianie projektu %s (ścieżka %s)...\n" ++msgid "Cannot stat %s: %s\n" ++msgstr "Nie można wykonać stat na %s: %s\n" + +-#: .././quota/project.c:248 ++#: .././libdisk/lvm.c:60 + #, c-format +-msgid "Clearing project %s (path %s)...\n" +-msgstr "Usuwanie projektu %s (ścieżka %s)...\n" ++msgid "Warning - LVM device, but no lvdisplay(8) found\n" ++msgstr "Uwaga - urządzenie LVM, ale nie znaleziono lvdisplay(8)\n" + +-#: .././quota/project.c:271 ++#: .././libdisk/lvm.c:89 + #, c-format +-msgid "Processed %d (%s and cmdline) paths for project %s with recursion depth %s (%d).\n" +-msgstr "" +-"Przetworzono %d (z %s oraz z linii poleceń) ścieżek dla projektu %s\n" +-"z ograniczeniem %s (%d)\n" ++msgid "Failed forking lvdisplay process\n" ++msgstr "Nie udało się odgałęzić procesu lvdisplay\n" + +-#: .././quota/project.c:274 +-msgid "infinite" +-msgstr "nieaktywnym" ++#: .././libdisk/md.c:61 ++#, c-format ++msgid "Error getting MD array device from %s\n" ++msgstr "Błąd podczas pobierania urządzenia macierzy MD z %s\n" + +-#: .././quota/project.c:274 +-msgid "limited" +-msgstr "aktywnym" ++#: .././libdisk/md.c:68 ++#, c-format ++msgid "Couldn't malloc device string\n" ++msgstr "Nie można przydzielić łańcucha nazwy urządzenia\n" + +-#: .././quota/project.c:319 ++#: .././libdisk/md.c:84 + #, c-format +-msgid "projects file \"%s\" doesn't exist\n" +-msgstr "plik projektów \"%s\" nie istnieje\n" ++msgid "Error getting MD array info from %s\n" ++msgstr "Błąd podczas pobierania informacji o macierzy MD z %s\n" + +-#: .././quota/project.c:326 ++#: .././libxcmd/command.c:85 + #, c-format +-msgid "%s: only one projid/name can be specified when using -p , %d found.\n" +-msgstr "%s: tylko jeden id projektu/nazwa może być podana kiedy opcja -p <ścieżka> jest w użyciu. Znaleziono %d.\n" ++msgid "bad argument count %d to %s, expected at least %d arguments\n" ++msgstr "błędna liczba argumentów %d dla %s, oczekiwano co najmniej %d argumentów\n" + +-#: .././quota/project.c:336 ++#: .././libxcmd/command.c:89 + #, c-format +-msgid "%s - no such project in %s or invalid project number\n" +-msgstr "%s - nie ma takiego projektu w %s lub błędny numer projektu\n" ++msgid "bad argument count %d to %s, expected %d arguments\n" ++msgstr "błędna liczba argumentów %d dla %s, oczekiwano %d argumentów\n" + +-#: .././quota/project.c:353 +-msgid "[-c|-s|-C|-d |-p ] project ..." +-msgstr "[-c|-s|-C| -d |-p <ścieżka>] projekt ..." ++#: .././libxcmd/command.c:93 ++#, c-format ++msgid "bad argument count %d to %s, expected between %d and %d arguments\n" ++msgstr "błędna liczba argumentów %d dla %s, oczekiwano od %d do %d argumentów\n" + +-#: .././quota/project.c:356 +-msgid "check, setup or clear project quota trees" +-msgstr "sprawdzenie, ustanowienie lub usunięcie drzew projektów" ++#: .././libxcmd/command.c:155 ++#, c-format ++msgid "cannot strdup command '%s': %s\n" ++msgstr "nie można wykonać strdup na poleceniu '%s': %s\n" + +-#: .././quota/quot.c:55 ++#: .././libxcmd/command.c:171 .././libxcmd/command.c:189 + #, c-format +-msgid "" +-"\n" +-" display a summary of filesystem ownership\n" +-"\n" +-" -a -- summarise for all local XFS filesystem mount points\n" +-" -c -- display three columns giving file size in kilobytes, number of files\n" +-" of that size, and cumulative total of kilobytes in that size or\n" +-" smaller file. The last row is used as an overflow bucket and is the\n" +-" total of all files greater than 500 kilobytes.\n" +-" -v -- display three columns containing the number of kilobytes not\n" +-" accessed in the last 30, 60, and 90 days.\n" +-" -g -- display group summary\n" +-" -p -- display project summary\n" +-" -u -- display user summary\n" +-" -b -- display number of blocks used\n" +-" -i -- display number of inodes used\n" +-" -r -- display number of realtime blocks used\n" +-" -n -- skip identifier-to-name translations, just report IDs\n" +-" -N -- suppress the initial header\n" +-" -f -- send output to a file\n" +-" The (optional) user/group/project can be specified either by name or by\n" +-" number (i.e. uid/gid/projid).\n" +-"\n" +-msgstr "" +-"\n" +-" wyświetlenie podsumowania własności systemu plików\n" +-"\n" +-" -a - podsumowanie dla wszystkich punktów montowania systemów plików XFS\n" +-" -c - wyświetlenie trzech kolumn z rozmiarem plików w kilobajtach, liczbą\n" +-" plików tego rozmiaru i sumą kilobajtów w plikach o tym lub mniejszym\n" +-" rozmiarze. Ostatni wiersz podsumowuje pliki większe niż 500 kilobajtów.\n" +-" -v - wyświetlenie trzech kolumn zawierających liczbę kilobajtów, do których\n" +-" nie było odwołań przez ostatnie 30, 60 i 90 dni.\n" +-" -g - wyświetlenie podsumowania dla grup\n" +-" -p - wyświetlenie podsumowania dla projektów\n" +-" -u - wyświetlenie podsumowania dla użytkowników\n" +-" -b - wyświetlenie liczby wykorzystanych bloków\n" +-" -i - wyświetlenie liczby wykorzystanych i-węzłów\n" +-" -r - wyświetlenie liczby wykorzystanych blików realtime\n" +-" -n - pominięcie tłumaczenia identyfikatorów na nazwy, wypisywanie ID\n" +-" -N - pominięcie początkowego nagłówka\n" +-" -f - zapisanie wyjścia do pliku\n" +-" (opcjonalny) użytkownik/grupa/projekt może być podany za pomocą nazwy lub\n" +-" numeru (tzn. uid/gid/projid).\n" ++msgid "command \"%s\" not found\n" ++msgstr "nie znaleziono polecenia \"%s\"\n" + +-#: .././quota/quot.c:219 ++#: .././libxcmd/paths.c:264 + #, c-format +-msgid "%s (%s) %s:\n" +-msgstr "%s (%s) %s:\n" ++msgid "%s: unable to extract mount options for \"%s\"\n" ++msgstr "%s: nie udało się wydobyć opcji montowania dla \"%s\"\n" + +-#: .././quota/quot.c:295 ++#: .././libxcmd/paths.c:344 + #, c-format +-msgid "%s (%s):\n" +-msgstr "%s (%s):\n" ++msgid "%s: getmntinfo() failed: %s\n" ++msgstr "%s: getmntinfo() nie powiodło się: %s\n" + +-#: .././quota/quot.c:300 .././quota/quot.c:304 ++#: .././libxcmd/paths.c:413 + #, c-format +-msgid "%d\t%llu\t%llu\n" +-msgstr "%d\t%llu\t%llu\n" ++msgid "%s: cannot setup path for mount %s: %s\n" ++msgstr "%s: nie można ustawić ścieżki dla montowania %s: %s\n" + +-#: .././quota/quot.c:418 +-msgid "[-bir] [-gpu] [-acv] [-f file]" +-msgstr "[-bir] [-gpu] [-acv] [-f plik]" ++#: .././libxcmd/paths.c:435 ++#, c-format ++msgid "%s: cannot find mount point for path `%s': %s\n" ++msgstr "%s: nie można znaleźć punktu montowania dla ścieżki `%s': %s\n" + +-#: .././quota/quot.c:419 +-msgid "summarize filesystem ownership" +-msgstr "podsumowanie własności systemu plików" ++#: .././libxcmd/paths.c:463 ++#, c-format ++msgid "%s: cannot setup path for project %s: %s\n" ++msgstr "%s: nie można ustawić ścieżki dla projektu %s: %s\n" + +-#: .././quota/quota.c:32 ++#: .././libxcmd/paths.c:504 + #, c-format +-msgid "" +-"\n" +-" display usage and quota information\n" +-"\n" +-" -g -- display group quota information\n" +-" -p -- display project quota information\n" +-" -u -- display user quota information\n" +-" -b -- display number of blocks used\n" +-" -i -- display number of inodes used\n" +-" -r -- display number of realtime blocks used\n" +-" -h -- report in a human-readable format\n" +-" -n -- skip identifier-to-name translations, just report IDs\n" +-" -N -- suppress the initial header\n" +-" -v -- increase verbosity in reporting (also dumps zero values)\n" +-" -f -- send output to a file\n" +-" The (optional) user/group/project can be specified either by name or by\n" +-" number (i.e. uid/gid/projid).\n" +-"\n" +-msgstr "" +-"\n" +-" wyświetlenie informacji o wykorzystaniu miejsca i limitach\n" +-"\n" +-" -g - wyświetlenie informacji o limitach grup\n" +-" -p - wyświetlenie informacji o limitach projektów\n" +-" -u - wyświetlenie informacji o limitach użytkowników\n" +-" -b - wyświetlenie liczby wykorzystanych bloków\n" +-" -i - wyświetlenie liczby wykorzystanych i-węzłów\n" +-" -r - wyświetlenie liczby wykorzystanych bloków realtime\n" +-" -h - użycie formatu czytelnego dla człowieka\n" +-" -n - pominięcie tłumaczenia identyfikatorów na nazwy, wypisywanie ID\n" +-" -N - pominięcie początkowego nagłówka\n" +-" -v - zwiększenie szczegółowości (wypisywanie także wartości zerowych)\n" +-" -f - zapisanie wyjścia do pliku\n" +-" (opcjonalny) użytkownik/grupa/projekt może być podany za pomocą nazwy lub\n" +-" numeru (tzn. uid/gid/projid).\n" ++msgid "%s: cannot initialise path table: %s\n" ++msgstr "%s: nie można zainicjować tabeli ścieżek: %s\n" + +-#: .././quota/quota.c:85 ++#: .././libxcmd/paths.c:524 + #, c-format +-msgid "" +-"Disk quotas for %s %s (%u)\n" +-"Filesystem%s" +-msgstr "" +-"Limity dyskowe (quota) dla %s %s (%u)\n" +-"System plików%s" ++msgid "%s: cannot setup path for project dir %s: %s\n" ++msgstr "%s: nie można ustawić ścieżki dla katalogu projektu %s: %s\n" + +-#: .././quota/quota.c:90 ++#: .././libxcmd/quit.c:42 ++msgid "exit the program" ++msgstr "wyjście z programu" ++ ++#: .././libxfs/darwin.c:41 + #, c-format +-msgid " Blocks Quota Limit Warn/Time " +-msgstr " Bloki Quota Limit Czas ostrz. " ++msgid "%s: error opening the device special file \"%s\": %s\n" ++msgstr "%s: błąd podczas otwierania pliku specjalnego urządzenia \"%s\": %s\n" + +-#: .././quota/quota.c:91 ++#: .././libxfs/darwin.c:48 + #, c-format +-msgid " Blocks Quota Limit Warn/Time " +-msgstr " Bloki Quota Limit Czas ostrz. " ++msgid "%s: can't tell if \"%s\" is writable: %s\n" ++msgstr "%s: nie można stwierdzić czy \"%s\" jest zapisywalny: %s\n" + +-#: .././quota/quota.c:94 ++#: .././libxfs/darwin.c:76 .././libxfs/freebsd.c:116 .././libxfs/irix.c:58 ++#: .././libxfs/linux.c:138 + #, c-format +-msgid " Files Quota Limit Warn/Time " +-msgstr " Pliki Quota Limit Czas ostrz. " ++msgid "%s: cannot stat the device file \"%s\": %s\n" ++msgstr "%s: nie można wykonać stat na pliku urządzenia \"%s\": %s\n" + +-#: .././quota/quota.c:95 ++#: .././libxfs/darwin.c:86 + #, c-format +-msgid " Files Quota Limit Warn/Time " +-msgstr " Pliki Quota Limit Czas ostrz. " ++msgid "%s: can't determine device size: %s\n" ++msgstr "%s: nie można określić rozmiaru urządzenia: %s\n" + +-#: .././quota/quota.c:98 ++#: .././libxfs/darwin.c:139 .././libxfs/freebsd.c:196 .././libxfs/irix.c:106 ++#: .././libxfs/linux.c:216 + #, c-format +-msgid "Realtime Quota Limit Warn/Time " +-msgstr "Realtime Quota Limit Czas ostrz. " ++msgid "%s: can't determine memory size\n" ++msgstr "%s: nie można określić rozmiaru pamięci\n" + +-#: .././quota/quota.c:99 ++#: .././libxfs/freebsd.c:49 + #, c-format +-msgid " Realtime Quota Limit Warn/Time " +-msgstr " Realtime Quota Limit Czas ostrz. " ++msgid "%s: %s possibly contains a mounted filesystem\n" ++msgstr "%s: %s może zawierać podmontowany system plików\n" + +-#: .././quota/quota.c:235 ++#: .././libxfs/freebsd.c:60 .././libxfs/linux.c:67 + #, c-format +-msgid "%s: cannot find user %s\n" +-msgstr "%s: nie można odnaleźć użytkownika %s\n" ++msgid "%s: %s contains a mounted filesystem\n" ++msgstr "%s: %s zawiera podmontowany system plików\n" + +-#: .././quota/quota.c:285 ++#: .././libxfs/freebsd.c:75 .././libxfs/linux.c:85 + #, c-format +-msgid "%s: cannot find group %s\n" +-msgstr "%s: nie można odnaleźć grupy %s\n" ++msgid "%s: %s contains a possibly writable, mounted filesystem\n" ++msgstr "%s: %s zawiera podmontowany, być może zapisywalny system plików\n" + +-#: .././quota/quota.c:342 ++#: .././libxfs/freebsd.c:89 .././libxfs/linux.c:99 + #, c-format +-msgid "%s: must specify a project name/ID\n" +-msgstr "%s: należy podać nazwę/ID projektu\n" ++msgid "%s: %s contains a mounted and writable filesystem\n" ++msgstr "%s: %s zawiera podmontowany, zapisywalny system plików\n" + +-#: .././quota/quota.c:355 ++#: .././libxfs/freebsd.c:129 + #, c-format +-msgid "%s: cannot find project %s\n" +-msgstr "%s: nie można odnaleźć projektu %s\n" ++msgid "%s: Not a device or file: \"%s\"\n" ++msgstr "%s: Nie jest urządzeniem ani plikiem: \"%s\"\n" + +-#: .././quota/quota.c:460 +-msgid "[-bir] [-gpu] [-hnNv] [-f file] [id|name]..." +-msgstr "[-bir] [-gpu] [-hnNv] [-f plik] [id|nazwa]..." ++#: .././libxfs/freebsd.c:135 ++#, c-format ++msgid "%s: DIOCGMEDIASIZE failed on \"%s\": %s\n" ++msgstr "%s: DIOCGMEDIASIE nie powiodło się dla \"%s\": %s\n" + +-#: .././quota/quota.c:461 +-msgid "show usage and limits" +-msgstr "pokazanie wykorzystania i limitów" ++#: .././libxfs/freebsd.c:141 ++#, c-format ++msgid "%s: DIOCGSECTORSIZE failed on \"%s\": %s\n" ++msgstr "%s: DIOCGSECTORSIZE nie powiodło się dla \"%s\": %s\n" + +-#: .././quota/report.c:33 .././quota/report.c:647 .././quota/edit.c:697 +-msgid "[-gpu] [-f file]" +-msgstr "[-gpu] [-f plik]" ++#: .././libxfs/init.c:79 .././libxfs/init.c:178 ++#, c-format ++msgid "%s: %s: device %lld is not open\n" ++msgstr "%s: %s: urządzenie %lld nie jest otwarte\n" + +-#: .././quota/report.c:34 .././quota/report.c:648 +-msgid "dump quota information for backup utilities" +-msgstr "zrzucenie informacji o limitach (quota) dla narzędzi backupowych" ++#: .././libxfs/init.c:115 ++#, c-format ++msgid "%s: cannot stat %s: %s\n" ++msgstr "%s: nie można wykonać stat na %s: %s\n" + +-#: .././quota/report.c:36 ++#: .././libxfs/init.c:140 + #, c-format +-msgid "" +-"\n" +-" create a backup file which contains quota limits information\n" +-" -g -- dump out group quota limits\n" +-" -p -- dump out project quota limits\n" +-" -u -- dump out user quota limits (default)\n" +-" -f -- write the dump out to the specified file\n" +-"\n" +-msgstr "" +-"\n" +-" utworzenie pliku kopii zapasowej zawierającego informacje o limitach (quota)\n" +-" -g - zrzucenie limitów dla grup\n" +-" -p - zrzucenie limitów dla projektów\n" +-" -u - zrzucenie limitów dla użytkowników (domyślne)\n" +-" -f - zapisanie zrzutu do podanego pliku\n" +-"\n" ++msgid "%s: device %lld is already open\n" ++msgstr "%s: urządzenie %lld jest już otwarte\n" + +-#: .././quota/report.c:48 +-msgid "[-bir] [-gpu] [-ahntLNU] [-f file]" +-msgstr "[-bir] [-gpu] [-ahntLNU] [-f plik]" ++#: .././libxfs/init.c:153 ++#, c-format ++msgid "%s: %s: too many open devices\n" ++msgstr "%s: %s: zbyt dużo otwartych urządzeń\n" + +-#: .././quota/report.c:49 .././quota/report.c:657 +-msgid "report filesystem quota information" +-msgstr "raportowanie informacji o limitach (quota) w systemie plików" ++#: .././libxfs/init.c:196 ++#, c-format ++msgid "%s: can't find a character device matching %s\n" ++msgstr "%s: nie można odnaleźć urządzenia znakowego odpowiadającego %s\n" + +-#: .././quota/report.c:51 ++#: .././libxfs/init.c:202 + #, c-format +-msgid "" +-"\n" +-" report used space and inodes, and quota limits, for a filesystem\n" +-" Example:\n" +-" 'report -igh'\n" +-" (reports inode usage for all groups, in an easy-to-read format)\n" +-" This command is the equivalent of the traditional repquota command, which\n" +-" prints a summary of the disk usage and quotas for the current filesystem,\n" +-" or all filesystems.\n" +-" -a -- report for all mounted filesystems with quota enabled\n" +-" -h -- report in a human-readable format\n" +-" -n -- skip identifier-to-name translations, just report IDs\n" +-" -N -- suppress the header from the output\n" +-" -t -- terse output format, hides rows which are all zero\n" +-" -L -- lower ID bound to report on\n" +-" -U -- upper ID bound to report on\n" +-" -g -- report group usage and quota information\n" +-" -p -- report project usage and quota information\n" +-" -u -- report user usage and quota information\n" +-" -b -- report blocks-used information only\n" +-" -i -- report inodes-used information only\n" +-" -r -- report realtime-blocks-used information only\n" +-"\n" +-msgstr "" +-"\n" +-" informacje o wykorzystanym miejscu i i-węzłach oraz limitach quota dla systemu\n" +-" plików\n" +-"\n" +-" Przykład:\n" +-" 'report -igh'\n" +-" (raport o wykorzystaniu i-węzłów dla wszystkich grup w czytelnym formacie)\n" +-"\n" +-" To polecenie jest odpowiednikiem tradycyjnego polecenia repquota, wypisującego\n" +-" podsumowanie wykorzystania dysku i limitów dla bieżącego systemu plików lub\n" +-" wszystkich systemów plików.\n" +-" -a - informacje o wszystkich zamontowanych systemach plików z limitami\n" +-" -h - informacje w formacie czytelnym dla człowieka\n" +-" -n - pominięcie tłumaczenia identyfikatorów na nazwy, wypisywanie ID\n" +-" -N - pominięcie początkowego nagłówka\n" +-" -t - zwięzły format, ukrycie wierszy zerowych\n" +-" -L - dolna granica ID dla wypisywanych informacji\n" +-" -U - górna granica ID dla wypisywanych informacji\n" +-" -g - informacje o wykorzystanym miejscu i limitach dla grup\n" +-" -p - informacje o wykorzystanym miejscu i limitach dla projektów\n" +-" -u - informacje o wykorzystanym miejscu i limitach dla użytkowników\n" +-" -b - tylko informacje o wykorzystanych blokach\n" +-" -i - tylko informacje o wykorzystanych i-węzłach\n" +-" -r - tylko informacje o wykorzystanych blokach realtime\n" +-"\n" ++msgid "%s: can't find a block device matching %s\n" ++msgstr "%s: nie można odnaleźć urządzenia blokowego odpowiadającego %s\n" + +-#: .././quota/report.c:228 ++#: .././libxfs/init.c:319 + #, c-format +-msgid "%s quota on %s (%s)\n" +-msgstr "limit %s na %s (%s)\n" ++msgid "%s: can't get size for data subvolume\n" ++msgstr "%s: nie można pobrać rozmiaru podwolumenu danych\n" + +-#: .././quota/report.c:253 .././quota/report.c:261 ++#: .././libxfs/init.c:324 + #, c-format +-msgid " Used Soft Hard Warn/Grace " +-msgstr " Użyto Miękki Twardy Ostrzeżenie " ++msgid "%s: can't get size for log subvolume\n" ++msgstr "%s: nie można pobrać rozmiaru podwolumenu logu\n" + +-#: .././quota/report.c:254 .././quota/report.c:262 ++#: .././libxfs/init.c:329 + #, c-format +-msgid " Used Soft Hard Warn/Grace " +-msgstr " Użyto Miękki Twardy Ostrzeżenie " ++msgid "%s: can't get size for realtime subvolume\n" ++msgstr "%s: nie można pobrać rozmiaru podwolumenu realtime\n" + +-#: .././quota/report.c:257 ++#: .././libxfs/init.c:423 + #, c-format +-msgid " Used Soft Hard Warn/Grace " +-msgstr " Użyto Miękki Twardy Ostrzeżenie" ++msgid "%s: filesystem has a realtime subvolume\n" ++msgstr "%s: system plików ma podwolumen realtime\n" + +-#: .././quota/report.c:258 ++#: .././libxfs/init.c:445 + #, c-format +-msgid " Used Soft Hard Warn/ Grace " +-msgstr " Użyto Miękki Twardy Ostrzeżenie " ++msgid "%s: realtime init - %llu != %llu\n" ++msgstr "%s: inicjalizacja realtime - %llu != %llu\n" + +-#: .././quota/report.c:656 +-msgid "[-bir] [-gpu] [-ahnt] [-f file]" +-msgstr "[-bir] [-gpu] [-ahnt] [-f plik]" ++#: .././libxfs/init.c:453 ++#, c-format ++msgid "%s: realtime size check failed\n" ++msgstr "%s: sprawdzenie rozmiaru realtime nie powiodło się\n" + +-#: .././quota/state.c:33 ++#: .././libxfs/init.c:573 + #, c-format +-msgid "" +-"\n" +-" turn filesystem quota off, both accounting and enforcement\n" +-"\n" +-" Example:\n" +-" 'off -uv' (switch off user quota on the current filesystem)\n" +-" This command is the equivalent of the traditional quotaoff command,\n" +-" which disables quota completely on a mounted filesystem.\n" +-" Note that there is no 'on' command - for XFS filesystems (with the\n" +-" exception of the root filesystem on IRIX) quota can only be enabled\n" +-" at mount time, through the use of one of the quota mount options.\n" +-"\n" +-" The state command is useful for displaying the current state. Using\n" +-" the -v (verbose) option with the 'off' command will display the quota\n" +-" state for the affected filesystem once the operation is complete.\n" +-" The affected quota type is -g (groups), -p (projects) or -u (users)\n" +-" and defaults to user quota (multiple types can be specified).\n" +-"\n" +-msgstr "" +-"\n" +-" wyłączenie podsystemu quota (zarówno rozliczania jak i wymuszania)\n" +-"\n" +-" Przykład:\n" +-" 'off -uv' (wyłączenie limitów użytkownika w bieżącym systemie plików)\n" +-"\n" +-" To polecenie jest odpowiednikiem tradycyjnego polecenia quotaoff,\n" +-" wyłączającego całkowicie limity na podmontowanym systemie plików.\n" +-" Należy zauważyć, że nie ma polecenia 'on' - dla systemów plików XFS\n" +-" (z wyjątkiem głównego systemu plików pod systemem IRIX) limity można\n" +-" włączyć wyłącznie na etapie montowania, poprzez użycie jednej z opcji\n" +-" quota programu mount.\n" +-"\n" +-" Polecenie state jest przydatne do wyświetlania aktualnego stanu. Użycie\n" +-" opcji -v (szczegółowość) dla polecenia 'off' wyświetli stan quoty dla\n" +-" danego systemu plików po zakończeniu operacji.\n" +-" Rodzaj limitu którego dotyczy polecenie można wybrać opcją -g (grupy),\n" +-" -p (projekty) lub -u (użytkownicy); domyślnie polecenie dotyczy limitów\n" +-" użytkowników (można podać wiele rodzajów).\n" +-"\n" ++msgid "%s: buftarg init failed\n" ++msgstr "%s: nie udało się zainicjować buftarg\n" + +-#: .././quota/state.c:56 ++#: .././libxfs/init.c:594 + #, c-format +-msgid "" +-"\n" +-" query the state of quota on the current filesystem\n" +-"\n" +-" This is a verbose status command, reporting whether or not accounting\n" +-" and/or enforcement are enabled for a filesystem, which inodes are in\n" +-" use as the quota state inodes, and how many extents and blocks are\n" +-" presently being used to hold that information.\n" +-" The quota type is specified via -g (groups), -p (projects) or -u (users)\n" +-" and defaults to user quota (multiple types can be specified).\n" +-"\n" +-msgstr "" +-"\n" +-" odczytanie stanu podsystemu quota w bieżącym systemie plików\n" +-"\n" +-" Jest to polecenie szczegółowo informujące o stanie, opisujące czy włączone\n" +-" jest rozliczanie i/lub wymuszanie limitów w systemie plików, które i-węzły\n" +-" są wykorzystywane jako i-węzły stanu quot oraz ile ekstentów i bloków jest\n" +-" aktualnie używana do przechowywania tych informacji.\n" +-" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy);\n" +-" domyślnie polecenie dotyczy limitów użytkowników (można podać wiele rodzajów).\n" +-"\n" ++msgid "%s: bad buftarg reinit, ddev\n" ++msgstr "%s: błędna reinicjacja buftarg, ddev\n" + +-#: .././quota/state.c:72 ++#: .././libxfs/init.c:601 + #, c-format +-msgid "" +-"\n" +-" enable quota enforcement on a filesystem\n" +-"\n" +-" If a filesystem is mounted and has quota accounting enabled, but not\n" +-" quota enforcement, enforcement can be enabled with this command.\n" +-" With the -v (verbose) option, the status of the filesystem will be\n" +-" reported after the operation is complete.\n" +-" The affected quota type is -g (groups), -p (projects) or -u (users)\n" +-" and defaults to user quota (multiple types can be specified).\n" +-"\n" +-msgstr "" +-"\n" +-" włączenie wymuszania limitów w systemie plików\n" +-"\n" +-" Jeśli system plików jest podmontowany i ma włączone rozliczanie limitów,\n" +-" ale nie ma wymuszania limitów, można włączyć wymuszanie tym poleceniem.\n" +-" Z opcją -v (szczegółowość) po zakończeniu operacji zostanie zraportowany\n" +-" stan systemu plików.\n" +-" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy);\n" +-" domyślnie polecenie dotyczy limitów użytkowników (można podać wiele rodzajów).\n" +-"\n" ++msgid "%s: bad buftarg reinit, ldev mismatch\n" ++msgstr "%s: błędna reinicjacja buftarg, niezgodność ldev\n" + +-#: .././quota/state.c:88 ++#: .././libxfs/init.c:608 + #, c-format +-msgid "" +-"\n" +-" disable quota enforcement on a filesystem\n" +-"\n" +-" If a filesystem is mounted and is currently enforcing quota, this\n" +-" provides a mechanism to switch off the enforcement, but continue to\n" +-" perform used space (and used inodes) accounting.\n" +-" The affected quota type is -g (groups), -p (projects) or -u (users).\n" +-"\n" +-msgstr "" +-"\n" +-" wyłączenie wymuszania limitów w systemie plików\n" +-"\n" +-" Jeśli system plików jest podmontowany i aktualnie wymusza przestrzeganie\n" +-" limitów, tym poleceniem można wyłączyć wymuszanie, ale nadal pozostawić\n" +-" rozliczanie wykorzystanego miejsca (oraz i-węzłów).\n" +-" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy).\n" +-"\n" ++msgid "%s: bad buftarg reinit, logdev\n" ++msgstr "%s: błędna reinicjacja buftarg, logdev\n" + +-#: .././quota/state.c:102 ++#: .././libxfs/init.c:615 + #, c-format +-msgid "" +-"\n" +-" remove any space being used by the quota subsystem\n" +-"\n" +-" Once quota has been switched 'off' on a filesystem, the space that\n" +-" was allocated to holding quota metadata can be freed via this command.\n" +-" The affected quota type is -g (groups), -p (projects) or -u (users)\n" +-" and defaults to user quota (multiple types can be specified).\n" +-"\n" +-msgstr "" +-"\n" +-" zwolnienie miejsca zajmowanego przez podsystem quota\n" +-"\n" +-" Po wyłączeniu limitów dla systemu plików można tym poleceniem zwolnić miejsce\n" +-" przydzielone na przechowywanie metadanych quot.\n" +-" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy);\n" +-" domyślnie polecenie dotyczy limitów użytkowników (można podać wiele rodzajów).\n" +-"\n" ++msgid "%s: bad buftarg reinit, rtdev\n" ++msgstr "%s: błędna reinicjacja buftarg, rtdev\n" + +-#: .././quota/state.c:121 ++#: .././libxfs/init.c:707 + #, c-format +-msgid "%s quota state on %s (%s)\n" +-msgstr "stan limitów %s na %s (%s)\n" ++msgid "%s: size check failed\n" ++msgstr "%s: sprawdzenie rozmiaru nie powiodło się\n" + +-#: .././quota/state.c:123 ++#: .././libxfs/init.c:716 + #, c-format +-msgid " Accounting: %s\n" +-msgstr " Rozliczanie: %s\n" ++msgid "%s: V1 directories unsupported. Please try an older xfsprogs.\n" ++msgstr "%s: katalogi V1 nie są obsługiwane. Proszę spróbować starszą wersją xfsprogs.\n" + +-#: .././quota/state.c:123 .././quota/state.c:124 +-msgid "ON" +-msgstr "WŁĄCZONE" ++#: .././libxfs/init.c:737 ++#, c-format ++msgid "%s: data size check failed\n" ++msgstr "%s: sprawdzenie rozmiaru danych nie powiodło się\n" + +-#: .././quota/state.c:123 .././quota/state.c:124 +-msgid "OFF" +-msgstr "WYŁĄCZONE" ++#: .././libxfs/init.c:751 ++#, c-format ++msgid "%s: log size checks failed\n" ++msgstr "%s: sprawdzenie rozmiaru logu nie powiodło się\n" + +-#: .././quota/state.c:124 ++#: .././libxfs/init.c:762 + #, c-format +-msgid " Enforcement: %s\n" +-msgstr " Wymuszanie: %s\n" ++msgid "%s: realtime device init failed\n" ++msgstr "%s: inicjalizacja urządzenia realtime nie powiodła się\n" + +-#: .././quota/state.c:126 ++#: .././libxfs/init.c:769 + #, c-format +-msgid " Inode: #%llu (%llu blocks, %lu extents)\n" +-msgstr " I-węzeł: #%llu (%llu bloków, %lu ekstentów)\n" ++msgid "%s: perag init failed\n" ++msgstr "%s: nie udało się zainicjować perag\n" + +-#: .././quota/state.c:131 ++#: .././libxfs/kmem.c:15 + #, c-format +-msgid " Inode: N/A\n" +-msgstr " I-węzeł: N/A\n" ++msgid "%s: zone init failed (%s, %d bytes): %s\n" ++msgstr "%s: inicjalizacja strefy nie powiodła się (%s, %d bajtów): %s\n" + +-#: .././quota/state.c:140 ++#: .././libxfs/kmem.c:32 + #, c-format +-msgid "%s grace time: %s\n" +-msgstr "czas pobłażliwości %s: %s\n" ++msgid "%s: zone alloc failed (%s, %d bytes): %s\n" ++msgstr "%s: przydzielenie strefy nie powiodło się (%s, %d bajtów): %s\n" + +-#: .././quota/state.c:157 ++#: .././libxfs/kmem.c:56 + #, c-format +-msgid "%s quota are not enabled on %s\n" +-msgstr "Limity %s nie są włączone na %s\n" ++msgid "%s: malloc failed (%d bytes): %s\n" ++msgstr "%s: malloc nie powiodło się (%d bajtów): %s\n" + +-#: .././quota/state.c:527 .././quota/state.c:543 .././quota/state.c:551 +-#: .././quota/state.c:559 +-msgid "[-gpu] [-v]" +-msgstr "[-gpu] [-v]" ++#: .././libxfs/kmem.c:77 ++#, c-format ++msgid "%s: realloc failed (%d bytes): %s\n" ++msgstr "%s: realloc nie powiodło się (%d bajtów): %s\n" + +-#: .././quota/state.c:528 +-msgid "permanently switch quota off for a path" +-msgstr "wyłączenie limitów na stałe dla ścieżki" ++#: .././libxfs/linux.c:114 ++#, c-format ++msgid "%s: %s - cannot set blocksize %d on block device %s: %s\n" ++msgstr "%s: %s - nie można ustawić rozmiaru bloku %d dla urządzenia blokowego %s: %s\n" + +-#: .././quota/state.c:535 +-msgid "[-gpu] [-a] [-v] [-f file]" +-msgstr "[-gpu] [-a] [-v] [-f plik]" ++#: .././libxfs/linux.c:161 ++#, c-format ++msgid "%s: can't determine device size\n" ++msgstr "%s: nie można określić rozmiaru urządzenia\n" + +-#: .././quota/state.c:536 +-msgid "get overall quota state information" +-msgstr "uzyskanie ogólnych informacji o stanie quot" ++#: .././libxfs/linux.c:169 ++#, c-format ++msgid "%s: warning - cannot get sector size from block device %s: %s\n" ++msgstr "%s: uwaga - nie można pobrać rozmiaru sektora urządzenia blokowego %s: %s\n" + +-#: .././quota/state.c:544 +-msgid "enable quota enforcement" +-msgstr "włączenie wymuszania limitów" ++#: .././libxfs/rdwr.c:37 ++#, c-format ++msgid "%s: %s can't memalign %d bytes: %s\n" ++msgstr "%s: %s nie można wykonać memalign dla %d bajtów: %s\n" + +-#: .././quota/state.c:552 +-msgid "disable quota enforcement" +-msgstr "wyłączenie wymuszania limitów" ++#: .././libxfs/rdwr.c:47 ++#, c-format ++msgid "%s: %s seek to offset %llu failed: %s\n" ++msgstr "%s: %s zmiana offsetu na %llu nie powiodła się: %s\n" + +-#: .././quota/state.c:560 +-msgid "remove quota extents from a filesystem" +-msgstr "usunięcie ekstentów związanych z limitami z systemu plików" ++#: .././libxfs/rdwr.c:57 ++#, c-format ++msgid "%s: %s write failed: %s\n" ++msgstr "%s: %s zapis nie powiódł się: %s\n" + +-#: .././quota/util.c:59 ++#: .././libxfs/rdwr.c:61 + #, c-format +-msgid "[-none-]" +-msgstr "[-brak-]" ++msgid "%s: %s not progressing?\n" ++msgstr "%s: %s nie postępuje?\n" + +-#: .././quota/util.c:59 ++#: .././libxfs/rdwr.c:378 + #, c-format +-msgid "[--none--]" +-msgstr "[--brak--]" ++msgid "%s: %s can't memalign %u bytes: %s\n" ++msgstr "%s: %s nie można wykonać memalign dla %u bajtów: %s\n" + +-#: .././quota/util.c:62 ++#: .././libxfs/rdwr.c:410 + #, c-format +-msgid "[------]" +-msgstr "[------]" ++msgid "%s: %s can't malloc %u bytes: %s\n" ++msgstr "%s: %s nie można przydzielić %u bajtów: %s\n" + +-#: .././quota/util.c:62 ++#: .././libxfs/rdwr.c:491 + #, c-format +-msgid "[--------]" +-msgstr "[--------]" ++msgid "%s: %s invalid map %p or nmaps %d\n" ++msgstr "%s: %s nieprawidłowa mapa %p lub nmaps %d\n" + +-# XXX: ngettext() +-#: .././quota/util.c:66 .././quota/util.c:69 +-msgid "day" +-msgstr "dzień" ++#: .././libxfs/rdwr.c:498 ++#, c-format ++msgid "%s: %s map blkno 0x%llx doesn't match key 0x%llx\n" ++msgstr "%s: %s map blkno 0x%llx nie pasuje do klucza 0x%llx\n" + +-#: .././quota/util.c:66 .././quota/util.c:69 +-msgid "days" +-msgstr "dni" ++#: .././libxfs/rdwr.c:543 ++#, c-format ++msgid "Warning: recursive buffer locking at block % detected\n" ++msgstr "Uwaga: wykryto rekurencyjną blokadę bufora na bloku %\n" + +-#: .././quota/util.c:194 +-msgid "Blocks" +-msgstr "Bloki" ++#: .././libxfs/rdwr.c:673 ++#, c-format ++msgid "%s: read failed: %s\n" ++msgstr "%s: odczyt nie powiódł się: %s\n" + +-#: .././quota/util.c:194 +-msgid "Inodes" +-msgstr "I-węzły" ++#: .././libxfs/rdwr.c:679 ++#, c-format ++msgid "%s: error - read only %d of %d bytes\n" ++msgstr "%s: błąd - odczytano tylko %d z %d bajtów\n" + +-#: .././quota/util.c:194 +-msgid "Realtime Blocks" +-msgstr "Bloki realtime" ++#: .././libxfs/rdwr.c:841 ++#, c-format ++msgid "%s: pwrite64 failed: %s\n" ++msgstr "%s: pwrite64 nie powiodło się: %s\n" + +-#: .././quota/util.c:209 +-msgid "User" +-msgstr "użytkowników" ++#: .././libxfs/rdwr.c:847 ++#, c-format ++msgid "%s: error - pwrite64 only %d of %d bytes\n" ++msgstr "%s: błąd - wykonano pwrite64 tylko %d z %d bajtów\n" + +-#: .././quota/util.c:209 +-msgid "Group" +-msgstr "grup" ++#: .././libxfs/rdwr.c:883 ++#, c-format ++msgid "%s: write verifer failed on bno 0x%llx/0x%x\n" ++msgstr "%s: weryfikacja zapisu nie powiodła się na bno 0x%llx/0x%x\n" + +-#: .././quota/util.c:209 +-msgid "Project" +-msgstr "projektów" ++#: .././libxfs/trans.c:56 ++#, c-format ++msgid "%s: lidp calloc failed (%d bytes): %s\n" ++msgstr "%s: calloc lidp nie powiodło się (%d bajtów): %s\n" + +-#: .././quota/util.c:417 ++#: .././libxfs/trans.c:151 + #, c-format +-msgid "%s: open on %s failed: %s\n" +-msgstr "%s: open dla %s nie powiodło się: %s\n" ++msgid "%s: xact calloc failed (%d bytes): %s\n" ++msgstr "%s: xact calloc nie powiodło się (%d bajtów): %s\n" + +-#: .././quota/util.c:423 ++#: .././libxfs/trans.c:713 + #, c-format +-msgid "%s: fdopen on %s failed: %s\n" +-msgstr "%s: fdopen dla %s nie powiodło się: %s\n" ++msgid "%s: warning - imap_to_bp failed (%d)\n" ++msgstr "%s: uwaga - imap_to_bp nie powiodło się (%d)\n" + +-#: .././quota/edit.c:36 ++#: .././libxfs/trans.c:721 ++#, c-format ++msgid "%s: warning - iflush_int failed (%d)\n" ++msgstr "%s: uwaga - iflush_int nie powiodło się (%d)\n" ++ ++#: .././libxfs/trans.c:788 .././libxfs/trans.c:847 ++#, c-format ++msgid "%s: unrecognised log item type\n" ++msgstr "%s: nierozpoznany typ elementu logu\n" ++ ++#: .././libxfs/util.c:692 ++#, c-format ++msgid "%s: cannot reserve space: %s\n" ++msgstr "%s: nie można zarezerwować przestrzeni: %s\n" ++ ++#: .././libxlog/util.c:37 + #, c-format + msgid "" +-"\n" +-" modify quota limits for the specified user\n" +-"\n" +-" Example:\n" +-" 'limit bsoft=100m bhard=110m tanya\n" +-"\n" +-" Changes the soft and/or hard block limits, inode limits and/or realtime\n" +-" block limits that are currently being used for the specified user, group,\n" +-" or project. The filesystem identified by the current path is modified.\n" +-" -d -- set the default values, used the first time a file is created\n" +-" -g -- modify group quota limits\n" +-" -p -- modify project quota limits\n" +-" -u -- modify user quota limits\n" +-" The block limit values can be specified with a units suffix - accepted\n" +-" units are: k (kilobytes), m (megabytes), g (gigabytes), and t (terabytes).\n" +-" The user/group/project can be specified either by name or by number.\n" +-"\n" ++"* ERROR: mismatched uuid in log\n" ++"* SB : %s\n" ++"* log: %s\n" + msgstr "" +-"\n" +-" zmiana limitów quot dla podanego użytkownika\n" +-"\n" +-"Przykład:\n" +-" 'limit bsoft=100m bhard=110m tanya'\n" +-"\n" +-" limit zmienia miękki i/lub twardy limit bloków, limity i-węzłów i/lub limity\n" +-" bloków realtime aktualnie używane dla podanego użytkownika, grupy lub projektu.\n" +-" System plików określony bieżącą ścieżką jest modyfikowany.\n" +-" -d - ustawienie wartości domyślnych, użytych pierwszy raz przy tworzeniu pliku\n" +-" -g - zmiana limitów quot grupy\n" +-" -p - zmiana limitów quot projektu\n" +-" -u - zmiana limitów quot użytkownika\n" +-" Wartości limitów bloków mogą być podane z końcówką jednostki - przyjmowane\n" +-" jednostki to: k (kilobajty), m (megabajty), g (gigabajty) i t (terabajty).\n" +-" Użytkownik/grupa/projekt może być podany za pomocą nazwy lub numeru.\n" +-"\n" ++"* BŁĄD: niepasujący uuid w logu\n" ++" SB : %s\n" ++" log: %s\n" + +-#: .././quota/edit.c:59 ++#: .././libxlog/util.c:50 + #, c-format + msgid "" + "\n" +-" modify quota enforcement timeout for the current filesystem\n" +-"\n" +-" Example:\n" +-" 'timer -i 3days'\n" +-" (soft inode limit timer is changed to 3 days)\n" +-"\n" +-" Changes the timeout value associated with the block limits, inode limits\n" +-" and/or realtime block limits for all users, groups, or projects on the\n" +-" current filesystem.\n" +-" As soon as a user consumes the amount of space or number of inodes set as\n" +-" the soft limit, a timer is started. If the timer expires and the user is\n" +-" still over the soft limit, the soft limit is enforced as the hard limit.\n" +-" The default timeout is 7 days.\n" +-" -d -- set the default values, used the first time a file is created\n" +-" -g -- modify group quota timer\n" +-" -p -- modify project quota timer\n" +-" -u -- modify user quota timer\n" +-" -b -- modify the blocks-used timer\n" +-" -i -- modify the inodes-used timer\n" +-" -r -- modify the blocks-used timer for the (optional) realtime subvolume\n" +-" The timeout value is specified as a number of seconds, by default.\n" +-" However, a suffix may be used to alternatively specify minutes (m),\n" +-" hours (h), days (d), or weeks (w) - either the full word or the first\n" +-" letter of the word can be used.\n" +-"\n" ++"LOG REC AT LSN cycle %d block %d (0x%x, 0x%x)\n" + msgstr "" + "\n" +-" zmiana czasu wymuszenia limitów dla bieżącego systemu plików\n" +-"\n" +-" Przykład:\n" +-" 'timer -i 3days'\n" +-" (zmiana czasu wymuszenia miękkiego limitu i-węzłów na 3 dni)\n" +-"\n" +-" timer zmienia wartość ograniczenia czasu związanego z limitami bloków,\n" +-" limitami i-węzłów i/lub limitami bloków realtime dla wszystkich użytkowników,\n" +-" grup lub projektów na bieżącym systemie plików.\n" +-" Po tym jak użytkownik wykorzysta ilość miejsca lub liczbę i-węzłów ustawioną\n" +-" jako miękki limit, zaczyna działać zegar. Kiedy czas minie, a użytkownik nadal\n" +-" przekracza miękki limit, miękki limit staje się twardym.\n" +-" Domyślne ograniczenie czasowe to 7 dni.\n" +-" -d - ustawienie wartości domyślnych, użytych pierwszy raz przy tworzeniu pliku\n" +-" -g - zmiana czasu dla limitów quot grup\n" +-" -p - zmiana czasu dla limitów quot projektów\n" +-" -u - zmiana czasu dla limitów quot użytkowników\n" +-" -b - zmiana czasu dla użytych bloków\n" +-" -i - zmiana czasu dla użytych i-węzłów\n" +-" -r - zmiana czasu dla użytych bloków na (opcjonalnym) podwolumenie realtime\n" +-" Wartość ograniczenia czasu jest podawana domyślnie jako liczba sekund.\n" +-" Jednak można dodać końcówkę, aby podać czas w minutach (m), godzinach (h),\n" +-" dniach (d) lub tygodniach (w) - można użyć pełnego słowa lub pierwsze litery.\n" +-"\n" ++"LOG REC AT LSN cykl %d blok %d (0x%x, 0x%x)\n" + +-#: .././quota/edit.c:91 ++#: .././libxlog/util.c:58 + #, c-format +-msgid "" +-"\n" +-" modify the number of quota warnings sent to the specified user\n" +-"\n" +-" Example:\n" +-" 'warn 2 jimmy'\n" +-" (tell the quota system that two warnings have been sent to user jimmy)\n" +-"\n" +-" Changes the warning count associated with the block limits, inode limits\n" +-" and/or realtime block limits for the specified user, group, or project.\n" +-" When a user has been warned the maximum number of times allowed, the soft\n" +-" limit is enforced as the hard limit. It is intended as an alternative to\n" +-" the timeout system, where the system administrator updates a count of the\n" +-" number of warnings issued to people, and they are penalised if the warnings\n" +-" are ignored.\n" +-" -d -- set maximum warning count, which triggers soft limit enforcement\n" +-" -g -- set group quota warning count\n" +-" -p -- set project quota warning count\n" +-" -u -- set user quota warning count\n" +-" -b -- set the blocks-used warning count\n" +-" -i -- set the inodes-used warning count\n" +-" -r -- set the blocks-used warn count for the (optional) realtime subvolume\n" +-" The user/group/project can be specified either by name or by number.\n" +-"\n" +-msgstr "" +-"\n" +-" zmiana liczby ostrzeżeń quot wysyłanych do podanego użytkownika\n" +-"\n" +-" Przykład:\n" +-" 'warn 2 jimmy'\n" +-" (przekazanie systemowi quota, że wysłano 2 ostrzeżenia do użytkownika jimmy)\n" +-"\n" +-" warn zmienia liczbę ostrzeżeń związanych z limitami bloków, limitami i-węzłów\n" +-" i/lub limitami bloków realtime dla podanego użytkownika, grupy lub projektu.\n" +-" Kiedy użytkownik został ostrzeżony maksymalną dozwoloną liczbę razy, miękki\n" +-" limit staje się twardym. Jest to pomyślane jako alternatywa dla systemu\n" +-" ograniczeń czasowych, gdzie administrator uaktualnia licznik ostrzeżeń\n" +-" wysłanych do ludzi i karze użytkowników ignorujących ostrzeżenia.\n" +-" -d - ustawienie maksymalnej liczby ostrzeżeń, po której wymuszane są limity\n" +-" -g - ustawienie liczby ostrzeżeń dla grupy\n" +-" -p - ustawienie liczby ostrzeżeń dla projektu\n" +-" -u - ustawienie liczby ostrzeżeń dla grupy\n" +-" -b - ustawienie liczby ostrzeżeń dla użytych bloków\n" +-" -i - ustawienie liczby ostrzeżeń dla użytych i-węzłów\n" +-" -r - ustawienie liczby ostrzeżeń dla użytych bloków na podwolumenie realtime\n" +-" Użytkownik/grupa/projekt może być podany za pomocą nazwy lub numeru.\n" +-"\n" ++msgid "* ERROR: bad magic number in log header: 0x%x\n" ++msgstr "* BŁĄD: błędna liczba magiczna w nagłówku logu: 0x%x\n" + +-#: .././quota/edit.c:145 ++#: .././libxlog/util.c:67 + #, c-format +-msgid "%s: cannot set limits: %s\n" +-msgstr "%s: nie można ustawić limitów: %s\n" ++msgid "* ERROR: log format incompatible (log=%d, ours=%d)\n" ++msgstr "* BŁĄD: niekompatybilny format logu (log=%d, nasz=%d)\n" + +-#: .././quota/edit.c:166 .././quota/edit.c:569 +-#, c-format +-msgid "%s: invalid user name: %s\n" +-msgstr "%s: nieprawidłowa nazwa użytkownika: %s\n" ++#: .././libxlog/util.c:77 .././libxlog/util.c:89 ++msgid "Bad log" ++msgstr "Błędny log" + +-#: .././quota/edit.c:189 .././quota/edit.c:586 ++#: .././logprint/log_copy.c:44 .././logprint/log_dump.c:43 + #, c-format +-msgid "%s: invalid group name: %s\n" +-msgstr "%s: nieprawidłowa nazwa grupy: %s\n" ++msgid "%s: read error (%lld): %s\n" ++msgstr "%s: błąd odczytu (%lld): %s\n" + +-#: .././quota/edit.c:212 .././quota/edit.c:603 ++#: .././logprint/log_copy.c:49 .././logprint/log_dump.c:48 + #, c-format +-msgid "%s: invalid project name: %s\n" +-msgstr "%s: nieprawidłowa nazwa projektu: %s\n" ++msgid "%s: physical end of log at %lld\n" ++msgstr "%s: fizyczny koniec logu na %lld\n" + +-#: .././quota/edit.c:237 ++#: .././logprint/log_copy.c:53 + #, c-format +-msgid "%s: Error: could not parse size %s.\n" +-msgstr "%s: Błąd: nie udało się przeanalizować rozmiaru %s.\n" ++msgid "%s: short read? (%lld)\n" ++msgstr "%s: skrócony odczyt? (%lld)\n" + +-#: .././quota/edit.c:243 ++#: .././logprint/log_copy.c:60 + #, c-format +-msgid "%s: Warning: `%s' in quota blocks is 0 (unlimited).\n" +-msgstr "%s: Uwaga: `%s' w blokach limitów wynosi 0 (bez ograniczeń).\n" ++msgid "%s: write error (%lld): %s\n" ++msgstr "%s: błąd zapisu (%lld): %s\n" + +-#: .././quota/edit.c:332 ++#: .././logprint/log_copy.c:65 + #, c-format +-msgid "%s: unrecognised argument %s\n" +-msgstr "%s: nierozpoznany argument %s\n" ++msgid "%s: short write? (%lld)\n" ++msgstr "%s: skrócony zapis? (%lld)\n" + +-#: .././quota/edit.c:339 ++#: .././logprint/log_dump.c:56 + #, c-format +-msgid "%s: cannot find any valid arguments\n" +-msgstr "%s: nie można znaleźć żadnych poprawnych argumentów\n" ++msgid "%6lld HEADER Cycle %d tail %d:%06d len %6d ops %d\n" ++msgstr "%6lld NAGŁÓWEK Cykl %d koniec %d:%06d len %6d ops %d\n" + +-#: .././quota/edit.c:447 ++#: .././logprint/log_dump.c:67 + #, c-format +-msgid "%s: fopen on %s failed: %s\n" +-msgstr "%s: fopen na %s nie powiodło się: %s\n" ++msgid "[%05lld - %05lld] Cycle 0x%08x New Cycle 0x%08x\n" ++msgstr "[%05lld - %05lld] Cykl 0x%08x Nowy cykl 0x%08x\n" + +-#: .././quota/edit.c:479 ++#: .././logprint/log_misc.c:131 + #, c-format +-msgid "%s: cannot set timer: %s\n" +-msgstr "%s: nie można ustawić czasu: %s\n" ++msgid "Oper (%d): tid: %x len: %d clientid: %s " ++msgstr "Operacja (%d): tid: %x len: %d clientid: %s " + +-#: .././quota/edit.c:553 ++#: .././logprint/log_misc.c:136 + #, c-format +-msgid "%s: cannot set warnings: %s\n" +-msgstr "%s: nie można ustawić ostrzeżeń: %s\n" +- +-#: .././quota/edit.c:689 +-msgid "[-gpu] bsoft|bhard|isoft|ihard|rtbsoft|rtbhard=N -d|id|name" +-msgstr "[-gpu] bsoft|bhard|isoft|ihard|rtbsoft|rtbhard=N -d|id|nazwa" +- +-#: .././quota/edit.c:690 +-msgid "modify quota limits" +-msgstr "zmiana limitów quot" +- +-#: .././quota/edit.c:698 +-msgid "restore quota limits from a backup file" +-msgstr "odtworzenie limitów quot z pliku kopii zapasowej" +- +-#: .././quota/edit.c:704 .././quota/edit.c:712 +-msgid "[-bir] [-gpu] value -d|id|name" +-msgstr "[-bir] [-gpu] wartość -d|id|nazwa" +- +-#: .././quota/edit.c:705 +-msgid "get/set quota enforcement timeouts" +-msgstr "pobranie/ustawienie czasu wymuszenia quot" +- +-#: .././quota/edit.c:713 +-msgid "get/set enforcement warning counter" +-msgstr "pobranie/ustawienie licznika ostrzeżeń" ++msgid "flags: " ++msgstr "flagi: " + +-#: .././mkfs/proto.c:60 ++#: .././logprint/log_misc.c:230 + #, c-format +-msgid "%s: failed to open %s: %s\n" +-msgstr "%s: nie udało się otworzyć %s: %s\n" ++msgid " Not enough data to decode further\n" ++msgstr " Za mało danych do dalszego dekodowania\n" + +-#: .././mkfs/proto.c:66 .././mkfs/proto.c:291 ++#: .././logprint/log_misc.c:234 + #, c-format +-msgid "%s: read failed on %s: %s\n" +-msgstr "%s: odczyt nie powiódł się dla %s: %s\n" ++msgid " type: %s tid: %x num_items: %d\n" ++msgstr " typ: %s tid: %x num_items: %d\n" + +-#: .././mkfs/proto.c:71 ++#: .././logprint/log_misc.c:282 + #, c-format +-msgid "%s: proto file %s premature EOF\n" +-msgstr "%s: plik prototypu %s skończył się przedwcześnie\n" +- +-#: .././mkfs/proto.c:108 +-msgid "cannot reserve space" +-msgstr "nie można zarezerwować miejsca" ++msgid "#regs: %d start blkno: %lld (0x%llx) len: %d bmap size: %d flags: 0x%x\n" ++msgstr "#regs: %d start blkno: %lld (0x%llx) len: %d bmap size: %d flags: 0x%x\n" + +-#: .././mkfs/proto.c:161 ++#: .././logprint/log_misc.c:288 + #, c-format +-msgid "%s: premature EOF in prototype file\n" +-msgstr "%s: przedwczesny EOF w pliku prototypu\n" +- +-#: .././mkfs/proto.c:180 +-msgid "error reserving space for a file" +-msgstr "błąd podczas rezerwowania miejsca na plik" +- +-#: .././mkfs/proto.c:249 +-msgid "error allocating space for a file" +-msgstr "błąd podczas przydzielania miejsca na plik" ++msgid "#regs: %d Not printing rest of data\n" ++msgstr "#regs: %d Bez wypisywania reszty danych\n" + +-#: .././mkfs/proto.c:253 ++#: .././logprint/log_misc.c:305 + #, c-format +-msgid "%s: cannot allocate space for file\n" +-msgstr "%s: nie można przydzielić miejsca na plik\n" +- +-#: .././mkfs/proto.c:316 +-msgid "directory createname error" +-msgstr "błąd tworzenia nazwy katalogu" +- +-#: .././mkfs/proto.c:330 +-msgid "directory create error" +-msgstr "błąd tworzenia katalogu" ++msgid "SUPER BLOCK Buffer: " ++msgstr "Bufor SUPER BLOKU: " + +-#: .././mkfs/proto.c:396 .././mkfs/proto.c:408 .././mkfs/proto.c:419 +-#: .././mkfs/proto.c:426 ++#: .././logprint/log_misc.c:307 .././logprint/log_misc.c:371 ++#: .././logprint/log_misc.c:397 + #, c-format +-msgid "%s: bad format string %s\n" +-msgstr "%s: błędny łańcuch formatujący %s\n" +- +-#: .././mkfs/proto.c:447 .././mkfs/proto.c:486 .././mkfs/proto.c:501 +-#: .././mkfs/proto.c:513 .././mkfs/proto.c:525 .././mkfs/proto.c:536 +-msgid "Inode allocation failed" +-msgstr "Przydzielanie i-węzła nie powiodło się" +- +-#: .././mkfs/proto.c:464 +-msgid "Inode pre-allocation failed" +-msgstr "Wczesne przydzielanie i-węzła nie powiodło się" +- +-#: .././mkfs/proto.c:474 +-msgid "Pre-allocated file creation failed" +-msgstr "Tworzenie wcześnie przydzielonego pliku nie powiodło się" +- +-#: .././mkfs/proto.c:556 +-msgid "Directory creation failed" +-msgstr "Tworzenie katalogu nie powiodło się" +- +-#: .././mkfs/proto.c:580 +-msgid "Error encountered creating file from prototype file" +-msgstr "Wystąpił błąd podczas tworzenia pliku z pliku prototypu" +- +-#: .././mkfs/proto.c:630 +-msgid "Realtime bitmap inode allocation failed" +-msgstr "Przydzielanie i-węzła bitmapy realtime nie powiodło się" +- +-#: .././mkfs/proto.c:648 +-msgid "Realtime summary inode allocation failed" +-msgstr "Tworzenie i-węzła opisu realtime nie powiodło się" +- +-#: .././mkfs/proto.c:675 +-msgid "Allocation of the realtime bitmap failed" +-msgstr "Przydzielenie bitmapy realtime nie powiodło się" +- +-#: .././mkfs/proto.c:688 +-msgid "Completion of the realtime bitmap failed" +-msgstr "Uzupełnienie bitmapy realtime nie powiodło się" +- +-#: .././mkfs/proto.c:712 +-msgid "Allocation of the realtime summary failed" +-msgstr "Przydzielenie opisu realtime nie powiodło się" +- +-#: .././mkfs/proto.c:724 +-msgid "Completion of the realtime summary failed" +-msgstr "Uzupełnienie opisu realtime nie powiodło się" +- +-#: .././mkfs/proto.c:741 +-msgid "Error initializing the realtime space" +-msgstr "Błąd podczas inicjalizacji przestrzeni realtime" +- +-#: .././mkfs/proto.c:746 +-msgid "Error completing the realtime space" +-msgstr "Błąd podczas uzupełniania przestrzeni realtime" ++msgid "Out of space\n" ++msgstr "Brak miejsca na dysku\n" + +-#: .././mkfs/xfs_mkfs.c:220 ++#: .././logprint/log_misc.c:315 + #, c-format +-msgid "data su/sw must not be used in conjunction with data sunit/swidth\n" +-msgstr "su/sw danych nie można użyć w połączeniu z sunit/swidth danych\n" ++msgid "icount: %llu ifree: %llu " ++msgstr "icount: %llu ifree: %llu " + +-#: .././mkfs/xfs_mkfs.c:227 ++#: .././logprint/log_misc.c:320 + #, c-format +-msgid "both data sunit and data swidth options must be specified\n" +-msgstr "trzeba podać obie opcje sunit i swidth dla danych\n" ++msgid "fdblks: %llu frext: %llu\n" ++msgstr "fdblks: %llu frext: %llu\n" + +-#: .././mkfs/xfs_mkfs.c:236 ++#: .././logprint/log_misc.c:327 + #, c-format +-msgid "data sunit/swidth must not be used in conjunction with data su/sw\n" +-msgstr "sunit/swidth danych nie można użyć w połączeniu z su/sw danych\n" ++msgid "AGI Buffer: XAGI " ++msgstr "Bufor AGI: XAGI " + +-#: .././mkfs/xfs_mkfs.c:243 ++#: .././logprint/log_misc.c:330 + #, c-format +-msgid "both data su and data sw options must be specified\n" +-msgstr "trzeba podać obie opcje su i sw dla danych\n" ++msgid "out of space\n" ++msgstr "brak miejsca na dysku\n" + +-#: .././mkfs/xfs_mkfs.c:250 ++#: .././logprint/log_misc.c:333 + #, c-format +-msgid "data su must be a multiple of the sector size (%d)\n" +-msgstr "su danych musi być wielokrotnością rozmiaru sektora (%d)\n" ++msgid "ver: %d " ++msgstr "wersja: %d " + +-#: .././mkfs/xfs_mkfs.c:261 ++#: .././logprint/log_misc.c:335 + #, c-format +-msgid "data stripe width (%d) must be a multiple of the data stripe unit (%d)\n" +-msgstr "szerokość pasa danych (%d) musi być wielokrotnością jednostki pasa danych (%d)\n" ++msgid "seq#: %d len: %d cnt: %d root: %d\n" ++msgstr "seq#: %d len: %d cnt: %d root: %d\n" + +-#: .././mkfs/xfs_mkfs.c:271 ++#: .././logprint/log_misc.c:340 + #, c-format +-msgid "log su should not be used in conjunction with log sunit\n" +-msgstr "su logu nie powinno być używane w połączeniu z sunit logu\n" ++msgid "level: %d free#: 0x%x newino: 0x%x\n" ++msgstr "level: %d free#: 0x%x newino: 0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:280 ++#: .././logprint/log_misc.c:350 + #, c-format +-msgid "log sunit should not be used in conjunction with log su\n" +-msgstr "sunit logu nie powinno być używane w połączeniu z su logu\n" ++msgid "AGI unlinked data skipped " ++msgstr "Pominięto niedowiązane dane AGI " + +-#: .././mkfs/xfs_mkfs.c:350 .././mkfs/xfs_mkfs.c:474 ++#: .././logprint/log_misc.c:351 + #, c-format +-msgid "%s: %s appears to contain an existing filesystem (%s).\n" +-msgstr "%s: %s zdaje się zawierać istniejący system plików (%s).\n" ++msgid "(CONTINUE set, no space)\n" ++msgstr "(KONTYNUACJA, brak miejsca)\n" + +-#: .././mkfs/xfs_mkfs.c:354 .././mkfs/xfs_mkfs.c:480 ++#: .././logprint/log_misc.c:357 .././logprint/log_print_all.c:146 + #, c-format +-msgid "%s: %s appears to contain a partition table (%s).\n" +-msgstr "%s: %s zdaje się zawierać tablicę partycji (%s).\n" ++msgid "bucket[%d - %d]: " ++msgstr "kubełek[%d - %d]: " + +-#: .././mkfs/xfs_mkfs.c:358 ++#: .././logprint/log_misc.c:369 + #, c-format +-msgid "%s: %s appears to contain something weird according to blkid\n" +-msgstr "%s: %s zdaje się zawierać coś dziwnego wg blkid\n" ++msgid "AGF Buffer: XAGF " ++msgstr "Bufor AGF: XAGF " + +-#: .././mkfs/xfs_mkfs.c:368 ++#: .././logprint/log_misc.c:374 + #, c-format +-msgid "%s: probe of %s failed, cannot detect existing filesystem.\n" +-msgstr "%s: test %s nie powiódł się, nie można wykryć istniejącego systemu plików.\n" ++msgid "ver: %d seq#: %d len: %d \n" ++msgstr "ver: %d seq#: %d len: %d \n" + +-#: .././mkfs/xfs_mkfs.c:421 ++#: .././logprint/log_misc.c:378 + #, c-format +-msgid "warning: device is not properly aligned %s\n" +-msgstr "uwaga: urządzenie nie jest właściwie wyrównane: %s\n" ++msgid "root BNO: %d CNT: %d\n" ++msgstr "root BNO: %d CNT: %d\n" + +-#: .././mkfs/xfs_mkfs.c:426 ++#: .././logprint/log_misc.c:381 + #, c-format +-msgid "Use -f to force usage of a misaligned device\n" +-msgstr "Można użyć -f do wymuszenia użycia źle wyrównanego urządzenia\n" ++msgid "level BNO: %d CNT: %d\n" ++msgstr "level BNO: %d CNT: %d\n" + +-#: .././mkfs/xfs_mkfs.c:440 ++#: .././logprint/log_misc.c:384 + #, c-format +-msgid "warning: unable to probe device toplology for device %s\n" +-msgstr "uwaga: nie udało się odczytać topologii urządzenia %s\n" ++msgid "1st: %d last: %d cnt: %d freeblks: %d longest: %d\n" ++msgstr "1st: %d last: %d cnt: %d freeblks: %d longest: %d\n" + +-#: .././mkfs/xfs_mkfs.c:549 ++#: .././logprint/log_misc.c:394 + #, c-format +-msgid "log size %lld is not a multiple of the log stripe unit %d\n" +-msgstr "rozmiar logu %lld nie jest wielokrotnością jednostki pasa logu %d\n" ++msgid "DQUOT Buffer: DQ " ++msgstr "Bufor DQUOT: DQ " + +-#: .././mkfs/xfs_mkfs.c:577 ++#: .././logprint/log_misc.c:401 + #, c-format +-msgid "Due to stripe alignment, the internal log size (%lld) is too large.\n" +-msgstr "Ze względu na wyrównanie do rozmiaru pasa rozmiar wewnętrznego logu (%lld) jest zbyt duży.\n" ++msgid "ver: %d flags: 0x%x id: %d \n" ++msgstr "ver: %d flags: 0x%x id: %d \n" + +-#: .././mkfs/xfs_mkfs.c:579 ++#: .././logprint/log_misc.c:404 + #, c-format +-msgid "Must fit within an allocation group.\n" +-msgstr "Musi zmieścić się wewnątrz grupy alokacji.\n" ++msgid "blk limits hard: %llu soft: %llu\n" ++msgstr "blk limits hard: %llu soft: %llu\n" + +-#: .././mkfs/xfs_mkfs.c:590 ++#: .././logprint/log_misc.c:409 + #, c-format +-msgid "log size %lld blocks too small, minimum size is %d blocks\n" +-msgstr "rozmiar logu %lld bloków jest zbyt mały, minimalny rozmiar to %d bloków\n" ++msgid "blk count: %llu warns: %d timer: %d\n" ++msgstr "blk count: %llu warns: %d timer: %d\n" + +-#: .././mkfs/xfs_mkfs.c:596 ++#: .././logprint/log_misc.c:413 + #, c-format +-msgid "log size %lld blocks too large, maximum size is %lld blocks\n" +-msgstr "rozmiar logu %lld bloków jest zbyt duży, maksymalny rozmiar to %lld bloków\n" ++msgid "ino limits hard: %llu soft: %llu\n" ++msgstr "ino limits hard: %llu soft: %llu\n" + +-#: .././mkfs/xfs_mkfs.c:602 ++#: .././logprint/log_misc.c:418 + #, c-format +-msgid "log size %lld bytes too large, maximum size is %lld bytes\n" +-msgstr "rozmiar logu %lld bajtów jest zbyt duży, maksymalny rozmiar to %lld bajtów\n" ++msgid "ino count: %llu warns: %d timer: %d\n" ++msgstr "ino count: %llu warns: %d timer: %d\n" + +-#: .././mkfs/xfs_mkfs.c:710 ++#: .././logprint/log_misc.c:424 + #, c-format +-msgid "agsize (%lldb) too small, need at least %lld blocks\n" +-msgstr "agsize (%lldb) zbyt małe, potrzeba co najmniej %lld bloków\n" ++msgid "BUF DATA\n" ++msgstr "DANE BUFORA\n" + +-#: .././mkfs/xfs_mkfs.c:718 ++#: .././logprint/log_misc.c:466 + #, c-format +-msgid "agsize (%lldb) too big, maximum is %lld blocks\n" +-msgstr "agsize (%lldb) zbyt duże, maksimum to %lld bloków\n" ++msgid "EFD: #regs: %d num_extents: %d id: 0x%llx\n" ++msgstr "EFD: #regs: %d num_extents: %d id: 0x%llx\n" + +-#: .././mkfs/xfs_mkfs.c:726 ++#: .././logprint/log_misc.c:473 + #, c-format +-msgid "agsize (%lldb) too big, data area is %lld blocks\n" +-msgstr "agsize (%lldb) zbyt duże, obszar danych to %lld bloków\n" ++msgid "EFD: Not enough data to decode further\n" ++msgstr "EFD: Za mało danych do dalszego dekodowania\n" + +-#: .././mkfs/xfs_mkfs.c:733 ++#: .././logprint/log_misc.c:497 .././logprint/log_misc.c:513 + #, c-format +-msgid "too many allocation groups for size = %lld\n" +-msgstr "zbyt dużo grup alokacji dla rozmiaru = %lld\n" ++msgid "%s: xlog_print_trans_efi: malloc failed\n" ++msgstr "%s: xlog_print_trans_efi: malloc nie powiodło się\n" + +-#: .././mkfs/xfs_mkfs.c:735 ++#: .././logprint/log_misc.c:507 + #, c-format +-msgid "need at most %lld allocation groups\n" +-msgstr "potrzeba najwyżej %lld grup alokacji\n" ++msgid "EFI: Not enough data to decode further\n" ++msgstr "EFI: Za mało danych do dalszego dekodowania\n" + +-#: .././mkfs/xfs_mkfs.c:743 ++#: .././logprint/log_misc.c:521 + #, c-format +-msgid "too few allocation groups for size = %lld\n" +-msgstr "zbyt mało grup alokacji dla rozmiaru = %lld\n" ++msgid "EFI: #regs: %d num_extents: %d id: 0x%llx\n" ++msgstr "EFI: #regs: %d num_extents: %d id: 0x%llx\n" + +-#: .././mkfs/xfs_mkfs.c:745 ++#: .././logprint/log_misc.c:525 + #, c-format +-msgid "need at least %lld allocation groups\n" +-msgstr "potrzeba co najmniej %lld grup alokacji\n" ++msgid "EFI free extent data skipped (CONTINUE set, no space)\n" ++msgstr "Pominięto dane wolnego ekstentu EFI (KONTYNUACJA, brak miejsca)\n" + +-#: .././mkfs/xfs_mkfs.c:758 ++#: .././logprint/log_misc.c:554 + #, c-format +-msgid "last AG size %lld blocks too small, minimum size is %lld blocks\n" +-msgstr "rozmiar ostatniej AG %lld bloków zbyt mały, minimalny rozmiar to %lld bloków\n" ++msgid "QOFF: #regs: %d flags: 0x%x\n" ++msgstr "QOFF: #regs: %d flags: 0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:769 ++#: .././logprint/log_misc.c:557 + #, c-format +-msgid "%lld allocation groups is too many, maximum is %lld\n" +-msgstr "%lld grup alokacji to zbyt dużo, maksimum to %lld\n" ++msgid "QOFF: Not enough data to decode further\n" ++msgstr "QOFF: Za mało danych do dalszego dekodowania\n" + +-#: .././mkfs/xfs_mkfs.c:793 ++#: .././logprint/log_misc.c:566 + #, c-format +-msgid "error reading existing superblock -- failed to memalign buffer\n" +-msgstr "błąd podczas odczytu istniejącego superbloku - nie udało się wykonać memalign dla bufora\n" ++msgid "INODE CORE\n" ++msgstr "RDZEŃ I-WĘZŁA\n" + +-#: .././mkfs/xfs_mkfs.c:799 ++#: .././logprint/log_misc.c:567 + #, c-format +-msgid "existing superblock read failed: %s\n" +-msgstr "odczyt istniejącego superbloku nie powiódł się: %s\n" ++msgid "magic 0x%hx mode 0%ho version %d format %d\n" ++msgstr "magic 0x%hx mode 0%ho version %d format %d\n" + +-#: .././mkfs/xfs_mkfs.c:1098 ++#: .././logprint/log_misc.c:570 + #, c-format +-msgid "%s: Specify data sunit in 512-byte blocks, no unit suffix\n" +-msgstr "%s: sunit danych należy podać w 512-bajtowych blokach, bez jednostki\n" ++msgid "nlink %hd uid %d gid %d\n" ++msgstr "nlink %hd uid %d gid %d\n" + +-#: .././mkfs/xfs_mkfs.c:1114 ++#: .././logprint/log_misc.c:572 + #, c-format +-msgid "%s: Specify data swidth in 512-byte blocks, no unit suffix\n" +-msgstr "%s: swidth danych należy podać w 512-bajtowych blokach, bez jednostki\n" ++msgid "atime 0x%x mtime 0x%x ctime 0x%x\n" ++msgstr "atime 0x%x mtime 0x%x ctime 0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:1141 ++#: .././logprint/log_misc.c:574 + #, c-format +-msgid "%s: Specify data sw as multiple of su, no unit suffix\n" +-msgstr "%s: sw danych należy podać jako wielokrotność su, bez jednostki\n" ++msgid "size 0x%llx nblocks 0x%llx extsize 0x%x nextents 0x%x\n" ++msgstr "size 0x%llx nblocks 0x%llx extsize 0x%x nextents 0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:1370 ++#: .././logprint/log_misc.c:577 + #, c-format +-msgid "Specify log sunit in 512-byte blocks, no size suffix\n" +-msgstr "sunit należy podać w 512-bajtowych blokach, bez jednostki\n" ++msgid "naextents 0x%x forkoff %d dmevmask 0x%x dmstate 0x%hx\n" ++msgstr "naextents 0x%x forkoff %d dmevmask 0x%x dmstate 0x%hx\n" + +-#: .././mkfs/xfs_mkfs.c:1630 ++#: .././logprint/log_misc.c:580 + #, c-format +-msgid "extra arguments\n" +-msgstr "nadmiarowe argumenty\n" ++msgid "flags 0x%x gen 0x%x\n" ++msgstr "flags 0x%x gen 0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:1636 ++#: .././logprint/log_misc.c:596 + #, c-format +-msgid "cannot specify both %s and -d name=%s\n" +-msgstr "nie można podać jednocześnie %s i -d name=%s\n" ++msgid "SHORTFORM DIRECTORY size %d\n" ++msgstr "Rozmiar KATALOGU W POSTACI KRÓTKIEJ %d\n" + +-#: .././mkfs/xfs_mkfs.c:1653 ++#: .././logprint/log_misc.c:602 + #, c-format +-msgid "illegal block size %d\n" +-msgstr "niedozwolony rozmiar bloku %d\n" ++msgid "SHORTFORM DIRECTORY size %d count %d\n" ++msgstr "KATALOG W POSTACI KRÓTKIEJ: rozmiar %d liczba %d\n" + +-#: .././mkfs/xfs_mkfs.c:1688 ++#: .././logprint/log_misc.c:605 + #, c-format +-msgid "specified blocksize %d is less than device physical sector size %d\n" +-msgstr "podany rozmiar bloku %d jest mniejszy niż rozmiar fizycznego sektora urządzenia (%d)\n" ++msgid ".. ino 0x%llx\n" ++msgstr ".. ino 0x%llx\n" + +-#: .././mkfs/xfs_mkfs.c:1691 ++#: .././logprint/log_misc.c:613 + #, c-format +-msgid "switching to logical sector size %d\n" +-msgstr "przełączono na rozmiar sektora logicznego %d\n" ++msgid "%s ino 0x%llx namelen %d\n" ++msgstr "%s ino 0x%llx namelen %d\n" + +-#: .././mkfs/xfs_mkfs.c:1709 ++#: .././logprint/log_misc.c:652 + #, c-format +-msgid "illegal sector size %d\n" +-msgstr "niedozwolony rozmiar sektora %d\n" ++msgid "INODE: " ++msgstr "I-WĘZEŁ: " + +-#: .././mkfs/xfs_mkfs.c:1712 ++#: .././logprint/log_misc.c:653 + #, c-format +-msgid "block size %d cannot be smaller than logical sector size %d\n" +-msgstr "rozmiar bloku %d nie może być mniejszy niż rozmiar sektora logicznego %d\n" ++msgid "#regs: %d ino: 0x%llx flags: 0x%x dsize: %d\n" ++msgstr "#regs: %d ino: 0x%llx flags: 0x%x dsize: %d\n" + +-#: .././mkfs/xfs_mkfs.c:1717 ++#: .././logprint/log_misc.c:656 + #, c-format +-msgid "illegal sector size %d; hw sector is %d\n" +-msgstr "niedozwolony rozmiar sektora %d; sektor sprzętowy ma %d\n" ++msgid " blkno: %lld len: %d boff: %d\n" ++msgstr " blkno: %lld len: %d boff: %d\n" + +-#: .././mkfs/xfs_mkfs.c:1723 ++#: .././logprint/log_misc.c:661 + #, c-format +-msgid "illegal log sector size %d\n" +-msgstr "niedozwolony rozmiar sektora logu %d\n" ++msgid "INODE: #regs: %d Not printing rest of data\n" ++msgstr "I-WĘZEŁ: #regs: %d Bez wypisywania reszty danych\n" + +-#: .././mkfs/xfs_mkfs.c:1733 ++#: .././logprint/log_misc.c:692 + #, c-format +-msgid "illegal directory block size %d\n" +-msgstr "niedozwolony rozmiar bloku katalogu %d\n" ++msgid "DEV inode: no extra region\n" ++msgstr "I-węzeł DEV: brak dodatkowego regionu\n" + +-#: .././mkfs/xfs_mkfs.c:1747 ++#: .././logprint/log_misc.c:695 + #, c-format +-msgid "both -d agcount= and agsize= specified, use one or the other\n" +-msgstr "podano jednocześnie -d agcount= i agsize=, można użyć tylko jednej z tych opcji\n" ++msgid "UUID inode: no extra region\n" ++msgstr "I-węzeł UUID: brak dodatkowego regionu\n" + +-#: .././mkfs/xfs_mkfs.c:1753 ++#: .././logprint/log_misc.c:712 + #, c-format +-msgid "if -d file then -d name and -d size are required\n" +-msgstr "jeśli podano -d file, to -d name i -d size są wymagane\n" ++msgid "EXTENTS inode data\n" ++msgstr "EKSTENTY danych i-węzła\n" + +-#: .././mkfs/xfs_mkfs.c:1762 ++#: .././logprint/log_misc.c:715 + #, c-format +-msgid "illegal data length %lld, not a multiple of %d\n" +-msgstr "niedozwolona długość danych %lld, nie jest wielokrotnością %d\n" ++msgid "BTREE inode data\n" ++msgstr "B-DRZEWO danych i-węzła\n" + +-#: .././mkfs/xfs_mkfs.c:1768 ++#: .././logprint/log_misc.c:718 + #, c-format +-msgid "warning: data length %lld not a multiple of %d, truncated to %lld\n" +-msgstr "uwaga: długość danych %lld nie jest wielokrotnością %d, ucięto do %lld\n" ++msgid "LOCAL inode data\n" ++msgstr "LOKALNE dane i-węzła\n" + +-#: .././mkfs/xfs_mkfs.c:1782 ++#: .././logprint/log_misc.c:739 + #, c-format +-msgid "if -l file then -l name and -l size are required\n" +-msgstr "jeśli podano -l file to -l name i -l size są wymagane\n" ++msgid "EXTENTS attr data\n" ++msgstr "EKSTENTY danych atrybutów\n" + +-#: .././mkfs/xfs_mkfs.c:1791 ++#: .././logprint/log_misc.c:742 + #, c-format +-msgid "illegal log length %lld, not a multiple of %d\n" +-msgstr "niedozwolona długość logu %lld, nie jest wielokrotnością %d\n" ++msgid "BTREE attr data\n" ++msgstr "B-DRZEWO danych atrybutów\n" + +-#: .././mkfs/xfs_mkfs.c:1798 ++#: .././logprint/log_misc.c:745 + #, c-format +-msgid "warning: log length %lld not a multiple of %d, truncated to %lld\n" +-msgstr "uwaga: długość logu %lld nie jest wielokrotnością %d, ucięto do %lld\n" ++msgid "LOCAL attr data\n" ++msgstr "LOKALNE dane atrybutów\n" + +-#: .././mkfs/xfs_mkfs.c:1804 ++#: .././logprint/log_misc.c:783 + #, c-format +-msgid "if -r file then -r name and -r size are required\n" +-msgstr "jeśli podano -r file, to -r name i -r size są wymagane\n" ++msgid "#regs: %d id: 0x%x" ++msgstr "#regs: %d id: 0x%x" + +-#: .././mkfs/xfs_mkfs.c:1813 ++#: .././logprint/log_misc.c:784 + #, c-format +-msgid "illegal rt length %lld, not a multiple of %d\n" +-msgstr "niedozwolona długość rt %lld, nie jest wielokrotnością %d\n" ++msgid " blkno: %lld len: %d boff: %d\n" ++msgstr " blkno: %lld len: %d boff: %d\n" + +-#: .././mkfs/xfs_mkfs.c:1820 ++#: .././logprint/log_misc.c:788 + #, c-format +-msgid "warning: rt length %lld not a multiple of %d, truncated to %lld\n" +-msgstr "uwaga: długość rt %lld nie jest wielokrotnością %d, ucięto do %lld\n" ++msgid "DQUOT: #regs: %d Not printing rest of data\n" ++msgstr "DQUOT: #regs: %d Bez wypisywania reszty danych\n" + +-#: .././mkfs/xfs_mkfs.c:1833 ++#: .././logprint/log_misc.c:807 + #, c-format +-msgid "illegal rt extent size %lld, not a multiple of %d\n" +-msgstr "niedozwolony rozmiar ekstentu rt %lld, nie jest wielokrotnością %d\n" ++msgid "DQUOT: magic 0x%hx flags 0%ho\n" ++msgstr "DQUOT: magic 0x%hx flags 0%ho\n" + +-#: .././mkfs/xfs_mkfs.c:1839 ++#: .././logprint/log_misc.c:833 + #, c-format +-msgid "rt extent size %s too large, maximum %d\n" +-msgstr "rozmiar ekstentu rt %s zbyt duży, maksimum to %d\n" ++msgid "ICR: split header, not printing\n" ++msgstr "ICR: nagłówek podzielony, bez wypisywania\n" + +-#: .././mkfs/xfs_mkfs.c:1845 ++#: .././logprint/log_misc.c:837 + #, c-format +-msgid "rt extent size %s too small, minimum %d\n" +-msgstr "rozmiar ekstentu rt %s zbyt mały, minimum to %d\n" ++msgid "" ++"ICR: #ag: %d agbno: 0x%x len: %d\n" ++" cnt: %d isize: %d gen: 0x%x\n" ++msgstr "" ++"ICR: #ag: %d agbno: 0x%x len: %d\n" ++" cnt: %d isize: %d gen: 0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:1890 ++#: .././logprint/log_misc.c:863 + #, c-format +-msgid "illegal inode size %d\n" +-msgstr "niedozwolony rozmiar i-węzła %d\n" ++msgid "%s: lseek64 to %lld failed: %s\n" ++msgstr "%s: lseek64 na %lld nie powiodło się: %s\n" + +-#: .././mkfs/xfs_mkfs.c:1895 ++#: .././logprint/log_misc.c:909 + #, c-format +-msgid "allowable inode size with %d byte blocks is %d\n" +-msgstr "dozwolony rozmiar i-węzła przy blokach %d-bajtowych to %d\n" ++msgid "%s: xlog_print_record: malloc failed\n" ++msgstr "%s: xlog_print_record: malloc nie powiodło się\n" + +-#: .././mkfs/xfs_mkfs.c:1899 ++#: .././logprint/log_misc.c:918 + #, c-format +-msgid "allowable inode size with %d byte blocks is between %d and %d\n" +-msgstr "dozwolone rozmiary i-węzła przy blokach %d-bajtowych są od %d do %d\n" ++msgid "%s: xlog_print_record: read error\n" ++msgstr "%s: xlog_print_record: błąd odczytu\n" + +-#: .././mkfs/xfs_mkfs.c:1907 ++#: .././logprint/log_misc.c:1013 .././logprint/log_misc.c:1083 + #, c-format +-msgid "log stripe unit specified, using v2 logs\n" +-msgstr "podano jednostkę pasa logu, użyto logów v2\n" ++msgid "Left over region from split log item\n" ++msgstr "Region pozostały z podziału elementu logu\n" + +-#: .././mkfs/xfs_mkfs.c:1922 ++#: .././logprint/log_misc.c:1068 + #, c-format +-msgid "no device name given in argument list\n" +-msgstr "nie podano nazwy urządzenia w liście argumentów\n" ++msgid "Unmount filesystem\n" ++msgstr "Niezamontowany system plików\n" + +-#: .././mkfs/xfs_mkfs.c:1947 ++#: .././logprint/log_misc.c:1075 + #, c-format +-msgid "%s: Use the -f option to force overwrite.\n" +-msgstr "%s: Można użyć opcji -f do wymuszenia nadpisania.\n" ++msgid "%s: unknown log operation type (%x)\n" ++msgstr "%s: nieznany typ operacji w logu (%x)\n" + +-#: .././mkfs/xfs_mkfs.c:1966 +-msgid "internal log" +-msgstr "log wewnętrzny" ++#: .././logprint/log_misc.c:1116 ++#, c-format ++msgid "Header 0x%x wanted 0x%x\n" ++msgstr "Nagłówek 0x%x, pożądany 0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:1968 +-msgid "volume log" +-msgstr "log na wolumenie" ++#: .././logprint/log_misc.c:1130 ++#, c-format ++msgid "cycle: %d\tversion: %d\t" ++msgstr "cykl: %d\twersja: %d\t" + +-#: .././mkfs/xfs_mkfs.c:1970 ++#: .././logprint/log_misc.c:1136 + #, c-format +-msgid "no log subvolume or internal log\n" +-msgstr "brak podwolumenu logu ani logu wewnętrznego\n" ++msgid "length of Log Record: %d\tprev offset: %d\t\tnum ops: %d\n" ++msgstr "długość rekordu logu: %d\tpoprz.offset: %d\t\tl.oper.: %d\n" + +-#: .././mkfs/xfs_mkfs.c:1977 +-msgid "volume rt" +-msgstr "wolumen rt" ++#: .././logprint/log_misc.c:1142 .././logprint/log_misc.c:1184 ++#, c-format ++msgid "cycle num overwrites: " ++msgstr "liczba nadpisań cyklu: " + +-#: .././mkfs/xfs_mkfs.c:1979 .././logprint/log_misc.c:152 +-#: .././growfs/xfs_growfs.c:86 .././db/io.c:157 ++#: .././logprint/log_misc.c:1151 + #, c-format +-msgid "none" +-msgstr "brak" ++msgid "uuid: %s format: " ++msgstr "uuid: %s format: " + +-#: .././mkfs/xfs_mkfs.c:1982 ++#: .././logprint/log_misc.c:1154 + #, c-format +-msgid "size %s specified for data subvolume is too large, maximum is %lld blocks\n" +-msgstr "rozmiar %s podany dla podwolumenu danych jest zbyt duży, maksimum to %lld bloków\n" ++msgid "unknown\n" ++msgstr "nieznany\n" + +-#: .././mkfs/xfs_mkfs.c:1989 ++#: .././logprint/log_misc.c:1157 + #, c-format +-msgid "can't get size of data subvolume\n" +-msgstr "nie można pobrać rozmiaru podwolumenu danych\n" ++msgid "little endian linux\n" ++msgstr "Linux little endian\n" + +-#: .././mkfs/xfs_mkfs.c:1994 ++#: .././logprint/log_misc.c:1160 + #, c-format +-msgid "size %lld of data subvolume is too small, minimum %d blocks\n" +-msgstr "rozmiar %lld dla podwolumenu danych jest zbyt mały, minimum to %d bloków\n" ++msgid "big endian linux\n" ++msgstr "Linux big endian\n" + +-#: .././mkfs/xfs_mkfs.c:2001 ++#: .././logprint/log_misc.c:1163 + #, c-format +-msgid "can't have both external and internal logs\n" +-msgstr "nie można mieć jednocześnie zewnętrznego i wewnętrznego logu\n" ++msgid "big endian irix\n" ++msgstr "IRIX big endian\n" + +-#: .././mkfs/xfs_mkfs.c:2005 ++#: .././logprint/log_misc.c:1169 + #, c-format +-msgid "data and log sector sizes must be equal for internal logs\n" +-msgstr "rozmiary sektora danych i logu muszą być równe dla logów wewnętrznych\n" ++msgid "h_size: %d\n" ++msgstr "h_size: %d\n" + +-#: .././mkfs/xfs_mkfs.c:2011 ++#: .././logprint/log_misc.c:1181 + #, c-format +-msgid "" +-"Warning: the data subvolume sector size %u is less than the sector size \n" +-"reported by the device (%u).\n" +-msgstr "" +-"Uwaga: rozmiar sektora podwolumenu danych %u jest mniejszy od rozmiaru\n" +-"sektora zgłaszanego przez urządzenie (%u).\n" ++msgid "extended-header: cycle: %d\n" ++msgstr "nagłówek-rozszerzony: cykl: %d\n" + +-#: .././mkfs/xfs_mkfs.c:2017 ++#: .././logprint/log_misc.c:1197 + #, c-format +-msgid "" +-"Warning: the log subvolume sector size %u is less than the sector size\n" +-"reported by the device (%u).\n" +-msgstr "" +-"Uwaga: rozmiar sektora podwolumenu logu %u jest mniejszy od rozmiaru\n" +-"sektora zgłaszanego przez urządzenie (%u).\n" ++msgid "* ERROR: found data after zeroed blocks block=%-21lld *\n" ++msgstr "* BŁĄD: znaleziono dane za wyzerowanymi blokami blok=%-21lld *\n" ++ ++#: .././logprint/log_misc.c:1208 ++#, c-format ++msgid "* ERROR: header cycle=%-11d block=%-21lld *\n" ++msgstr "* BŁĄD: nagłówek cykl=%-11d blok=%-21lld *\n" ++ ++#: .././logprint/log_misc.c:1219 ++#, c-format ++msgid "* ERROR: data block=%-21lld *\n" ++msgstr "* BŁĄD: blok danych=%-21lld *\n" + +-#: .././mkfs/xfs_mkfs.c:2023 ++#: .././logprint/log_misc.c:1230 + #, c-format + msgid "" +-"Warning: the realtime subvolume sector size %u is less than the sector size\n" +-"reported by the device (%u).\n" ++"* ERROR: for header block=%lld\n" ++"* not enough hdrs for data length, required num = %d, hdr num = %d\n" + msgstr "" +-"Uwaga: rozmiar sektora podwolumenu realtime %u jest mniejszy od rozmiaru\n" +-"sektora zgłaszanego przez urządzenie (%u).\n" ++"* BŁĄD: dla bloku nagłówka %lld\n" ++"* za mało nagłówków dla długości danych, wymaganych = %d, liczba = %d\n" ++ ++#: .././logprint/log_misc.c:1236 ++msgid "Not enough headers for data length." ++msgstr "Za mało nagłówków dla długości danych." + +-#: .././mkfs/xfs_mkfs.c:2037 ++#: .././logprint/log_misc.c:1246 + #, c-format +-msgid "size %s specified for log subvolume is too large, maximum is %lld blocks\n" +-msgstr "rozmiar %s podany dla podwolumenu logu jest zbyt duży, maksimum to %lld bloków\n" ++msgid "%s: xlog_print: malloc failed for ext hdrs\n" ++msgstr "%s: xlog_print: malloc dla rozszerzonych nagłówków nie powiódł się\n" + +-#: .././mkfs/xfs_mkfs.c:2044 ++#: .././logprint/log_misc.c:1292 .././logprint/log_misc.c:1368 ++#: .././logprint/log_misc.c:1439 .././logprint/log_misc.c:1476 + #, c-format +-msgid "size specified for non-existent log subvolume\n" +-msgstr "podano rozmiar dla nie istniejącego podwolumenu logu\n" ++msgid "%s: physical end of log\n" ++msgstr "%s: fizyczny koniec logu\n" + +-#: .././mkfs/xfs_mkfs.c:2047 ++#: .././logprint/log_misc.c:1298 .././logprint/log_misc.c:1373 ++#: .././logprint/log_misc.c:1491 + #, c-format +-msgid "size %lld too large for internal log\n" +-msgstr "rozmiar %lld jest zbyt duży dla logu wewnętrznego\n" ++msgid "BLKNO: %lld\n" ++msgstr "BLKNO: %lld\n" + +-#: .././mkfs/xfs_mkfs.c:2074 ++#: .././logprint/log_misc.c:1356 + #, c-format +-msgid "size %s specified for rt subvolume is too large, maximum is %lld blocks\n" +-msgstr "rozmiar %s podany dla podwolumenu rt jest zbyt duży, maksimum to %lld bloków\n" ++msgid "%s: problem finding oldest LR\n" ++msgstr "%s: problem ze znalezieniem najstarszego rekordu logu\n" + +-#: .././mkfs/xfs_mkfs.c:2082 ++#: .././logprint/log_misc.c:1382 + #, c-format +-msgid "size specified for non-existent rt subvolume\n" +-msgstr "podano rozmiar dla nie istniejącego podwolumenu rt\n" ++msgid "%s: after %d zeroed blocks\n" ++msgstr "%s: po %d wyzerowanych blokach\n" ++ ++#: .././logprint/log_misc.c:1451 ++msgid "illegal value" ++msgstr "niedozwolona wartość" + +-#: .././mkfs/xfs_mkfs.c:2099 ++#: .././logprint/log_misc.c:1457 + #, c-format +-msgid "agsize (%lld) not a multiple of fs blk size (%d)\n" +-msgstr "agsize (%lld) nie jest wielokrotnością rozmiaru bloku systemu plików (%d)\n" ++msgid "%s: skipped %d cleared blocks in range: %lld - %lld\n" ++msgstr "%s: pominięto %d wyzerowanych bloków w przedziale: %lld - %lld\n" + +-#: .././mkfs/xfs_mkfs.c:2116 ++#: .././logprint/log_misc.c:1462 + #, c-format +-msgid "%s: Specified data stripe unit %d is not the same as the volume stripe unit %d\n" +-msgstr "%s: Podana jednostka pasa danych %d nie jest taka sama jak jednostka pasa wolumenu %d\n" ++msgid "%s: totally cleared log\n" ++msgstr "%s: całkowicie wyczyszczony log\n" + +-#: .././mkfs/xfs_mkfs.c:2123 ++#: .././logprint/log_misc.c:1467 + #, c-format +-msgid "%s: Specified data stripe width %d is not the same as the volume stripe width %d\n" +-msgstr "%s: Podana szerokość pasa danych %d nie jest taka sama jak szerokość pasa wolumenu %d\n" ++msgid "%s: skipped %d zeroed blocks in range: %lld - %lld\n" ++msgstr "%s: pominięto %d wyzerowanych bloków w przedziale %lld - %lld\n" + +-#: .././mkfs/xfs_mkfs.c:2171 ++#: .././logprint/log_misc.c:1472 + #, c-format +-msgid "agsize rounded to %lld, swidth = %d\n" +-msgstr "agsize zaokrąglone do %lld, swidth = %d\n" ++msgid "%s: totally zeroed log\n" ++msgstr "%s: całkowicie wyzerowany log\n" ++ ++#: .././logprint/log_misc.c:1488 ++msgid "xlog_find_head: bad read" ++msgstr "xlog_find_head: błędny odczyt" + +-#: .././mkfs/xfs_mkfs.c:2178 ++#: .././logprint/log_misc.c:1540 + #, c-format +-msgid "Allocation group size (%lld) is not a multiple of the stripe unit (%d)\n" +-msgstr "Rozmiar grupy alokacji (%lld) nie jest wielokrotnością jednostki pasa (%d)\n" ++msgid "%s: logical end of log\n" ++msgstr "%s: logiczny koniec logu\n" + +-#: .././mkfs/xfs_mkfs.c:2200 ++#: .././logprint/log_misc.c:1636 + #, c-format +-msgid "" +-"Warning: AG size is a multiple of stripe width. This can cause performance\n" +-"problems by aligning all AGs on the same disk. To avoid this, run mkfs with\n" +-"an AG size that is one stripe unit smaller, for example %llu.\n" +-msgstr "" +-"Uwaga: rozmiar AG jest wielokrotnością szerokości pasa. Może to spowodować\n" +-"problemy z wydajnością poprzez wyrównanie wszystkich AG na tym samym dysku.\n" +-"Aby temu zapobiec, należy uruchomić mkfs z rozmiarem AG o jedną jednostkę\n" +-"pasa mniejszym, na przykład %llu.\n" ++msgid "%s: bad size of efi format: %u; expected %u or %u; nextents = %u\n" ++msgstr "%s: błędny rozmiar formatu efi: %u; oczekiwano %u lub %u; nextents = %u\n" + +-#: .././mkfs/xfs_mkfs.c:2225 ++#: .././logprint/log_print_all.c:94 + #, c-format +-msgid "%s: Stripe unit(%d) or stripe width(%d) is not a multiple of the block size(%d)\n" +-msgstr "%s: Jednostka pasa (%d) lub szerokość pasa (%d) nie jest wielokrotnością rozmiaru bloku (%d)\n" ++msgid "BUF: #regs:%d start blkno:0x%llx len:%d bmap size:%d flags:0x%x\n" ++msgstr "BUF: #regs:%d blok pocz.:0x%llx dług.:%d rozm.bmapy:%d flagi:0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:2257 ++#: .././logprint/log_print_all.c:104 + #, c-format +-msgid "log stripe unit (%d) must be a multiple of the block size (%d)\n" +-msgstr "jednostka pasa logu (%d) musi być wielokrotnością rozmiaru bloku (%d)\n" ++msgid "\tSUPER Block Buffer:\n" ++msgstr "\tBufor SUPER bloku:\n" + +-#: .././mkfs/xfs_mkfs.c:2270 ++#: .././logprint/log_print_all.c:107 + #, c-format +-msgid "log stripe unit (%d bytes) is too large (maximum is 256KiB)\n" +-msgstr "jednostka pasa logu (%d bajtów) jest zbyt duża (maksimum to 256KiB)\n" ++msgid " icount:%llu ifree:%llu " ++msgstr " icount:%llu ifree:%llu " + +-#: .././mkfs/xfs_mkfs.c:2273 ++#: .././logprint/log_print_all.c:112 + #, c-format +-msgid "log stripe unit adjusted to 32KiB\n" +-msgstr "jednostka pasa logu zmodyfikowana na 32KiB\n" ++msgid "fdblks:%llu frext:%llu\n" ++msgstr "fdblks:%llu frext:%llu\n" + +-#: .././mkfs/xfs_mkfs.c:2298 ++#: .././logprint/log_print_all.c:117 + #, c-format +-msgid "internal log size %lld too large, must fit in allocation group\n" +-msgstr "rozmiar wewnętrznego logu %lld zbyt duży, musi się zmieścić w grupie alokacji\n" ++msgid "\t\tsunit:%u swidth:%u\n" ++msgstr "\t\tsunit:%u swidth:%u\n" + +-#: .././mkfs/xfs_mkfs.c:2305 ++#: .././logprint/log_print_all.c:123 + #, c-format +-msgid "log ag number %d too large, must be less than %lld\n" +-msgstr "liczba ag logu %d zbyt duża, musi być mniejsza niż %lld\n" ++msgid "\tAGI Buffer: (XAGI)\n" ++msgstr "\tBufor AGI: (XAGI)\n" + +-#: .././mkfs/xfs_mkfs.c:2335 ++#: .././logprint/log_print_all.c:126 + #, c-format +-msgid "" +-"meta-data=%-22s isize=%-6d agcount=%lld, agsize=%lld blks\n" +-" =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" +-"data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" +-" =%-22s sunit=%-6u swidth=%u blks\n" +-"naming =version %-14u bsize=%-6u ascii-ci=%d\n" +-"log =%-22s bsize=%-6d blocks=%lld, version=%d\n" +-" =%-22s sectsz=%-5u sunit=%d blks, lazy-count=%d\n" +-"realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n" +-msgstr "" +-"metadane=%-22s isize=%-6d agcount=%lld, agsize=%lld bloków\n" +-" =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" +-"dane =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" +-" =%-22s sunit=%-6u swidth=%u bloków\n" +-"nazwy =wersja %-14u bsize=%-6u ascii-ci=%d\n" +-"log =%-22s bsize=%-6d blocks=%lld, wersja=%d\n" +-" =%-22s sectsz=%-5u sunit=%d bloków, lazy-count=%d\n" +-"realtime=%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n" ++msgid "\t\tver:%d " ++msgstr "\t\twersja:%d " + +-#: .././mkfs/xfs_mkfs.c:2451 ++#: .././logprint/log_print_all.c:128 + #, c-format +-msgid "%s: Growing the data section failed\n" +-msgstr "%s: Powiększenie sekcji danych nie powiodło się\n" ++msgid "seq#:%d len:%d cnt:%d root:%d\n" ++msgstr "seq#:%d len:%d cnt:%d root:%d\n" + +-#: .././mkfs/xfs_mkfs.c:2481 ++#: .././logprint/log_print_all.c:133 + #, c-format +-msgid "%s: filesystem failed to initialize\n" +-msgstr "%s: nie udało się zainicjować systemu plików\n" ++msgid "\t\tlevel:%d free#:0x%x newino:0x%x\n" ++msgstr "\t\tlevel:%d free#:0x%x newino:0x%x\n" + +-#: .././mkfs/xfs_mkfs.c:2693 ++#: .././logprint/log_print_all.c:157 + #, c-format +-msgid "%s: root inode created in AG %u, not AG 0\n" +-msgstr "%s: główny i-węzeł utworzony w AG %u, nie AG 0\n" ++msgid "\tAGF Buffer: (XAGF)\n" ++msgstr "\tBufor AGI: (XAGF)\n" + +-#: .././mkfs/xfs_mkfs.c:2760 ++#: .././logprint/log_print_all.c:160 + #, c-format +-msgid "Cannot specify both -%c %s and -%c %s\n" +-msgstr "Nie można podać jednocześnie -%c %s i %c %s\n" ++msgid "\t\tver:%d seq#:%d len:%d \n" ++msgstr "\t\tver:%d seq#:%d len:%d \n" + +-#: .././mkfs/xfs_mkfs.c:2771 ++#: .././logprint/log_print_all.c:164 + #, c-format +-msgid "Illegal value %s for -%s option\n" +-msgstr "Niedozwolona wartość %s dla opcji -%s\n" ++msgid "\t\troot BNO:%d CNT:%d\n" ++msgstr "\t\troot BNO:%d CNT:%d\n" + +-#: .././mkfs/xfs_mkfs.c:2788 ++#: .././logprint/log_print_all.c:167 + #, c-format +-msgid "-%c %s option requires a value\n" +-msgstr "Opcja -%c %s wymaga wartości\n" ++msgid "\t\tlevel BNO:%d CNT:%d\n" ++msgstr "\t\tlevel BNO:%d CNT:%d\n" + +-#: .././mkfs/xfs_mkfs.c:2849 ++#: .././logprint/log_print_all.c:170 + #, c-format +-msgid "blocksize not available yet.\n" +-msgstr "rozmiar bloku jeszcze nie dostępny.\n" ++msgid "\t\t1st:%d last:%d cnt:%d freeblks:%d longest:%d\n" ++msgstr "\t\t1st:%d last:%d cnt:%d freeblks:%d longest:%d\n" + +-#: .././mkfs/xfs_mkfs.c:2875 ++#: .././logprint/log_print_all.c:179 + #, c-format +-msgid "" +-"Usage: %s\n" +-"/* blocksize */\t\t[-b log=n|size=num]\n" +-"/* data subvol */\t[-d agcount=n,agsize=n,file,name=xxx,size=num,\n" +-"\t\t\t (sunit=value,swidth=value|su=num,sw=num),\n" +-"\t\t\t sectlog=n|sectsize=num\n" +-"/* inode size */\t[-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,\n" +-"\t\t\t projid32bit=0|1]\n" +-"/* log subvol */\t[-l agnum=n,internal,size=num,logdev=xxx,version=n\n" +-"\t\t\t sunit=value|su=num,sectlog=n|sectsize=num,\n" +-"\t\t\t lazy-count=0|1]\n" +-"/* label */\t\t[-L label (maximum 12 characters)]\n" +-"/* naming */\t\t[-n log=n|size=num,version=2|ci]\n" +-"/* prototype file */\t[-p fname]\n" +-"/* quiet */\t\t[-q]\n" +-"/* realtime subvol */\t[-r extsize=num,size=num,rtdev=xxx]\n" +-"/* sectorsize */\t[-s log=n|size=num]\n" +-"/* version */\t\t[-V]\n" +-"\t\t\tdevicename\n" +-" is required unless -d name=xxx is given.\n" +-" is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),\n" +-" xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).\n" +-" is xxx (512 byte blocks).\n" +-msgstr "" +-"Składnia: %s\n" +-"/* rozmiar bloku */ [-b log=n|size=liczba]\n" +-"/* podwolumen danych */ [-d agcount=n,agsize=n,file,name=xxx,size=liczba,\n" +-" (sunit=wartość,swidth=wartość|su=liczba,sw=liczba),\n" +-" sectlog=n|sectsize=liczba]\n" +-"/* rozmiar i-węzła */ [-i log=n|perblock=n|size=liczba,maxpct=n,attr=0|1|2,\n" +-" projid32bit=0|1]\n" +-"/* podwolumen logu */ [-l agnum=n,internal,size=liczba,logdev=xxx,version=n\n" +-" sunit=wartość|su=liczba,sectlog=n|sectsize=liczba,\n" +-" lazy-count=0|1]\n" +-"/* etykieta */ [-L etykieta (maksymalnie 12 znaków)]\n" +-"/* nazwy */ [-n log=n|size=liczba,wersja=2|ci]\n" +-"/* plik prototypu */ [-p nazwa_pliku]\n" +-"/* cisza */ [-q]\n" +-"/* podwolumen rt */ [-r extsize=liczba,size=liczba,rtdev=xxx]\n" +-"/* rozmiar sektora */ [-s log=n|size=liczba]\n" +-"/* wersja */ [-V]\n" +-" nazwa_urządzenia\n" +-" jest wymagana, chyba że podano -d name=xxx.\n" +-" to xxx (bajtów), xxxs (sektorów), xxxb (bloków systemu plików),\n" +-" xxxk (xxx KiB), xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB),\n" +-" xxxp (xxx PiB).\n" +-" to xxx (512-bajtowych bloków).\n" ++msgid "\tDQUOT Buffer:\n" ++msgstr "\tBufor DQUOT:\n" + +-#: .././logprint/log_copy.c:44 .././logprint/log_dump.c:43 ++#: .././logprint/log_print_all.c:182 + #, c-format +-msgid "%s: read error (%lld): %s\n" +-msgstr "%s: błąd odczytu (%lld): %s\n" ++msgid "\t\tUIDs 0x%lx-0x%lx\n" ++msgstr "\t\tUIDs 0x%lx-0x%lx\n" + +-#: .././logprint/log_copy.c:49 .././logprint/log_dump.c:48 ++#: .././logprint/log_print_all.c:187 + #, c-format +-msgid "%s: physical end of log at %lld\n" +-msgstr "%s: fizyczny koniec logu na %lld\n" ++msgid "\tBUF DATA\n" ++msgstr "\tDANE BUF\n" + +-#: .././logprint/log_copy.c:53 ++#: .././logprint/log_print_all.c:209 + #, c-format +-msgid "%s: short read? (%lld)\n" +-msgstr "%s: skrócony odczyt? (%lld)\n" ++msgid "\tQUOTAOFF: #regs:%d type:%s\n" ++msgstr "\tQUOTAOFF: #regs:%d type:%s\n" + +-#: .././logprint/log_copy.c:60 ++#: .././logprint/log_print_all.c:224 + #, c-format +-msgid "%s: write error (%lld): %s\n" +-msgstr "%s: błąd zapisu (%lld): %s\n" ++msgid "\tDQUOT: #regs:%d blkno:%lld boffset:%u id: %d\n" ++msgstr "\tDQUOT: #regs:%d blkno:%lld boffset:%u id: %d\n" + +-#: .././logprint/log_copy.c:65 ++#: .././logprint/log_print_all.c:228 + #, c-format +-msgid "%s: short write? (%lld)\n" +-msgstr "%s: skrócony zapis? (%lld)\n" ++msgid "\t\tmagic 0x%x\tversion 0x%x\tID 0x%x (%d)\t\n" ++msgstr "\t\tmagic 0x%x\twersja 0x%x\tID 0x%x (%d)\t\n" + +-#: .././logprint/log_dump.c:56 ++#: .././logprint/log_print_all.c:233 + #, c-format +-msgid "%6lld HEADER Cycle %d tail %d:%06d len %6d ops %d\n" +-msgstr "%6lld NAGŁÓWEK Cykl %d koniec %d:%06d len %6d ops %d\n" ++msgid "\t\tblk_hard 0x%x\tblk_soft 0x%x\tino_hard 0x%x\tino_soft 0x%x\n" ++msgstr "\t\tblk_hard 0x%x\tblk_soft 0x%x\tino_hard 0x%x\tino_soft 0x%x\n" + +-#: .././logprint/log_dump.c:67 ++#: .././logprint/log_print_all.c:239 + #, c-format +-msgid "[%05lld - %05lld] Cycle 0x%08x New Cycle 0x%08x\n" +-msgstr "[%05lld - %05lld] Cykl 0x%08x Nowy cykl 0x%08x\n" ++msgid "\t\tbcount 0x%x (%d) icount 0x%x (%d)\n" ++msgstr "\t\tbcount 0x%x (%d) icount 0x%x (%d)\n" + +-#: .././logprint/logprint.c:42 ++#: .././logprint/log_print_all.c:244 + #, c-format +-msgid "" +-"Usage: %s [options...] \n" +-"\n" +-"Options:\n" +-" -c\t try to continue if error found in log\n" +-" -C copy the log from the filesystem to filename\n" +-" -d\t dump the log in log-record format\n" +-" -f\t specified device is actually a file\n" +-" -l filename of external log\n" +-" -n\t don't try and interpret log data\n" +-" -o\t print buffer data in hex\n" +-" -s block # to start printing\n" +-" -v print \"overwrite\" data\n" +-" -t\t print out transactional view\n" +-"\t-b in transactional view, extract buffer info\n" +-"\t-i in transactional view, extract inode info\n" ++msgid "\t\tbtimer 0x%x itimer 0x%x \n" ++msgstr "\t\tbtimer 0x%x itimer 0x%x \n" ++ ++#: .././logprint/log_print_all.c:253 ++#, c-format ++msgid "\tCORE inode:\n" ++msgstr "\tGŁÓWNY i-węzeł:\n" ++ ++#: .././logprint/log_print_all.c:256 ++#, c-format ++msgid "\t\tmagic:%c%c mode:0x%x ver:%d format:%d onlink:%d\n" ++msgstr "\t\tmagic:%c%c mode:0x%x ver:%d format:%d onlin:%d\n" ++ ++#: .././logprint/log_print_all.c:260 ++#, c-format ++msgid "\t\tuid:%d gid:%d nlink:%d projid:%u\n" ++msgstr "\t\tuid:%d gid:%d nlink:%d projid:%u\n" ++ ++#: .././logprint/log_print_all.c:262 ++#, c-format ++msgid "\t\tatime:%d mtime:%d ctime:%d\n" ++msgstr "\t\tatime:%d mtime:%d ctime:%d\n" ++ ++#: .././logprint/log_print_all.c:264 ++#, c-format ++msgid "\t\tflushiter:%d\n" ++msgstr "\t\tflushiter:%d\n" ++ ++#: .././logprint/log_print_all.c:265 ++#, c-format ++msgid "\t\tsize:0x%llx nblks:0x%llx exsize:%d nextents:%d anextents:%d\n" ++msgstr "\t\tsize:0x%llx nblks:0x%llx exsize:%d nextents:%d anextents:%d\n" ++ ++#: .././logprint/log_print_all.c:269 ++#, c-format ++msgid "\t\tforkoff:%d dmevmask:0x%x dmstate:%d flags:0x%x gen:%d\n" ++msgstr "\t\tforkoff:%d dmevmask:0x%x dmstate:%d flags:0x%x gen:%d\n" ++ ++#: .././logprint/log_print_all.c:289 ++#, c-format ++msgid "\tINODE: #regs:%d ino:0x%llx flags:0x%x dsize:%d\n" ++msgstr "\tINODE: #regs:%d ino:0x%llx flags:0x%x dsize:%d\n" ++ ++#: .././logprint/log_print_all.c:305 ++#, c-format ++msgid "\t\tDATA FORK EXTENTS inode data:\n" ++msgstr "\t\tDane EKSTENTÓW GAŁĘZI DANYCH i-węzła:\n" ++ ++#: .././logprint/log_print_all.c:312 ++#, c-format ++msgid "\t\tDATA FORK BTREE inode data:\n" ++msgstr "\t\tDane B-DRZEWA GAŁĘZI DANYCH i-węzła:\n" ++ ++#: .././logprint/log_print_all.c:319 ++#, c-format ++msgid "\t\tDATA FORK LOCAL inode data:\n" ++msgstr "\t\tDane LOKALNE GAŁĘZI DANYCH i-węzła:\n" ++ ++#: .././logprint/log_print_all.c:326 ++#, c-format ++msgid "\t\tDEV inode: no extra region\n" ++msgstr "\t\tI-węzeł DEV: brak dodatkowego regionu\n" ++ ++#: .././logprint/log_print_all.c:330 ++#, c-format ++msgid "\t\tUUID inode: no extra region\n" ++msgstr "\t\tI-węzeł UUID: brak dodatkowego regionu\n" ++ ++#: .././logprint/log_print_all.c:345 ++#, c-format ++msgid "\t\tATTR FORK EXTENTS inode data:\n" ++msgstr "\t\tDane EKSTENTÓW GAŁĘZI ATRYBUTÓW i-węzła:\n" ++ ++#: .././logprint/log_print_all.c:353 ++#, c-format ++msgid "\t\tATTR FORK BTREE inode data:\n" ++msgstr "\t\tDane B-DRZEWA GAŁĘZI ATRYBUTÓW i-węzła:\n" ++ ++#: .././logprint/log_print_all.c:361 ++#, c-format ++msgid "\t\tATTR FORK LOCAL inode data:\n" ++msgstr "\t\tDane LOKALNE GAŁĘZI ATRYBUTÓW i-węzła:\n" ++ ++#: .././logprint/log_print_all.c:386 ++#, c-format ++msgid "\tEFD: #regs: %d num_extents: %d id: 0x%llx\n" ++msgstr "\tEFD: #regs: %d num_extents: %d id: 0x%llx\n" ++ ++#: .././logprint/log_print_all.c:410 ++#, c-format ++msgid "%s: xlog_recover_print_efi: malloc failed\n" ++msgstr "%s: xlog_recover_print_efi: malloc nie powiodło się\n" ++ ++#: .././logprint/log_print_all.c:418 ++#, c-format ++msgid "\tEFI: #regs:%d num_extents:%d id:0x%llx\n" ++msgstr "\tEFI: #regs:%d num_extents:%d id:0x%llx\n" ++ ++#: .././logprint/log_print_all.c:442 ++#, c-format ++msgid "" ++"\tICR: #ag: %d agbno: 0x%x len: %d\n" ++"\t cnt: %d isize: %d gen: 0x%x\n" ++msgstr "" ++"\tICR: #ag: %d agbno: 0x%x len: %d\n" ++"\t cnt: %d isize: %d gen: 0x%x\n" ++ ++#: .././logprint/log_print_all.c:476 ++#, c-format ++msgid "xlog_recover_print_logitem: illegal type\n" ++msgstr "xlog_recover_print_logitem: niedozwolony typ\n" ++ ++#: .././logprint/log_print_all.c:510 ++#, c-format ++msgid "%s: illegal type" ++msgstr "%s: niedozwolony typ" ++ ++#: .././logprint/log_print_all.c:518 ++#, c-format ++msgid ": cnt:%d total:%d " ++msgstr ": cnt:%d total:%d " ++ ++#: .././logprint/log_print_all.c:520 ++#, c-format ++msgid "a:0x%lx len:%d " ++msgstr "a:0x%lx len:%d " ++ ++#: .././logprint/log_print_trans.c:25 ++#, c-format ++msgid "TRANS: tid:0x%x type:%s #items:%d trans:0x%x q:0x%lx\n" ++msgstr "TRANS: tid:0x%x typ:%s #elem:%d trans:0x%x q:0x%lx\n" ++ ++#: .././logprint/log_print_trans.c:51 ++#, c-format ++msgid "%s: failed to find head and tail, error: %d\n" ++msgstr "%s: nie udało się odnaleźć początku ani końca, błąd: %d\n" ++ ++#: .././logprint/log_print_trans.c:56 ++#, c-format ++msgid " log tail: %lld head: %lld state: %s\n" ++msgstr " koniec logu: %lld początek: %lld stan: %s\n" ++ ++#: .././logprint/log_print_trans.c:62 ++#, c-format ++msgid " override tail: %d\n" ++msgstr " koniec override: %d\n" ++ ++#: .././logprint/log_print_trans.c:82 ++#, c-format ++msgid "" ++"Superblock has unknown incompatible log features (0x%x) enabled.\n" ++"Output may be incomplete or inaccurate. It is recommended that you\n" ++"upgrade your xfsprogs installation to match the filesystem features.\n" ++msgstr "" ++"Superblok ma włączone nieznane, niezgodne opcje logu (0x%x).\n" ++"Wyjście może być niekompletne lub niedokładne. Zalecana jest\n" ++"aktualizacja zainstalowanej wersji xfsprogs, aby zgadzała się z opcjami\n" ++"systemu plików.\n" ++ ++#: .././logprint/log_print_trans.c:90 ++#, c-format ++msgid "%s: failed in xfs_do_recovery_pass, error: %d\n" ++msgstr "%s: xfs_do_recovery_pass nie powiodło się, błąd: %d\n" ++ ++#: .././logprint/logprint.c:42 ++#, c-format ++msgid "" ++"Usage: %s [options...] \n" ++"\n" ++"Options:\n" ++" -c\t try to continue if error found in log\n" ++" -C copy the log from the filesystem to filename\n" ++" -d\t dump the log in log-record format\n" ++" -e\t exit when an error is found in the log\n" ++" -f\t specified device is actually a file\n" ++" -l filename of external log\n" ++" -n\t don't try and interpret log data\n" ++" -o\t print buffer data in hex\n" ++" -s block # to start printing\n" ++" -v print \"overwrite\" data\n" ++" -t\t print out transactional view\n" ++"\t-b in transactional view, extract buffer info\n" ++"\t-i in transactional view, extract inode info\n" + "\t-q in transactional view, extract quota info\n" + " -D print only data; no decoding\n" + " -V print version information\n" +@@ -6630,6 +6909,7 @@ msgstr "" + " -c próba kontynuacji w przypadku błędu w logu\n" + " -C skopiowanie logu z systemu plików do pliku o podanej nazwie\n" + " -d zrzut logu w formacie jego rekordów\n" ++" -e zakończenie po napotkaniu błędu w logu\n" + " -f podane urządzenie jest plikiem\n" + " -l nazwa pliku z logiem zewnętrznym\n" + " -n bez prób interpretacji danych logu\n" +@@ -6643,17 +6923,17 @@ msgstr "" + " -D wypisywanie tylko danych, bez dekodowania\n" + " -V wypisanie informacji o wersji\n" + +-#: .././logprint/logprint.c:75 ++#: .././logprint/logprint.c:76 + #, c-format + msgid " Can't open device %s: %s\n" + msgstr " Nie można otworzyć urządzenia %s: %s\n" + +-#: .././logprint/logprint.c:81 ++#: .././logprint/logprint.c:82 + #, c-format + msgid " read of XFS superblock failed\n" + msgstr " odczyt superbloku XFS-a nie powiódł się\n" + +-#: .././logprint/logprint.c:97 ++#: .././logprint/logprint.c:102 + #, c-format + msgid "" + " external log device not specified\n" +@@ -6662,32 +6942,32 @@ msgstr "" + " Nie podano urządzenia zewnętrznego loga\n" + "\n" + +-#: .././logprint/logprint.c:112 ++#: .././logprint/logprint.c:118 + #, c-format + msgid "Can't open file %s: %s\n" + msgstr "Nie można otworzyć pliku %s: %s\n" + +-#: .././logprint/logprint.c:212 ++#: .././logprint/logprint.c:219 + #, c-format + msgid "xfs_logprint:\n" + msgstr "xfs_logprint:\n" + +-#: .././logprint/logprint.c:220 ++#: .././logprint/logprint.c:228 + #, c-format + msgid " data device: 0x%llx\n" + msgstr " urządzenie danych: 0x%llx\n" + +-#: .././logprint/logprint.c:223 ++#: .././logprint/logprint.c:231 + #, c-format + msgid " log file: \"%s\" " + msgstr " plik logu: \"%s\" " + +-#: .././logprint/logprint.c:225 ++#: .././logprint/logprint.c:233 + #, c-format + msgid " log device: 0x%llx " + msgstr " urządzenie logu: 0x%llx " + +-#: .././logprint/logprint.c:228 ++#: .././logprint/logprint.c:236 + #, c-format + msgid "" + "daddr: %lld length: %lld\n" +@@ -6696,6508 +6976,6083 @@ msgstr "" + "daddr: %lld długość: %lld\n" + "\n" + +-#: .././logprint/log_misc.c:132 +-#, c-format +-msgid "Oper (%d): tid: %x len: %d clientid: %s " +-msgstr "Operacja (%d): tid: %x len: %d clientid: %s " +- +-#: .././logprint/log_misc.c:137 ++#: .././mkfs/proto.c:60 + #, c-format +-msgid "flags: " +-msgstr "flagi: " ++msgid "%s: failed to open %s: %s\n" ++msgstr "%s: nie udało się otworzyć %s: %s\n" + +-#: .././logprint/log_misc.c:231 ++#: .././mkfs/proto.c:67 .././mkfs/proto.c:301 + #, c-format +-msgid " Not enough data to decode further\n" +-msgstr " Za mało danych do dalszego dekodowania\n" ++msgid "%s: read failed on %s: %s\n" ++msgstr "%s: odczyt nie powiódł się dla %s: %s\n" + +-#: .././logprint/log_misc.c:235 ++#: .././mkfs/proto.c:72 + #, c-format +-msgid " type: %s tid: %x num_items: %d\n" +-msgstr " typ: %s tid: %x num_items: %d\n" ++msgid "%s: proto file %s premature EOF\n" ++msgstr "%s: plik prototypu %s skończył się przedwcześnie\n" + +-#: .././logprint/log_misc.c:277 +-#, c-format +-msgid "#regs: %d start blkno: %lld (0x%llx) len: %d bmap size: %d flags: 0x%x\n" +-msgstr "#regs: %d start blkno: %lld (0x%llx) len: %d bmap size: %d flags: 0x%x\n" ++#: .././mkfs/proto.c:116 ++msgid "cannot reserve space" ++msgstr "nie można zarezerwować miejsca" + +-#: .././logprint/log_misc.c:283 ++#: .././mkfs/proto.c:171 + #, c-format +-msgid "#regs: %d Not printing rest of data\n" +-msgstr "#regs: %d Bez wypisywania reszty danych\n" ++msgid "%s: premature EOF in prototype file\n" ++msgstr "%s: przedwczesny EOF w pliku prototypu\n" + +-#: .././logprint/log_misc.c:300 +-#, c-format +-msgid "SUPER BLOCK Buffer: " +-msgstr "Bufor SUPER BLOKU: " ++#: .././mkfs/proto.c:190 ++msgid "error reserving space for a file" ++msgstr "błąd podczas rezerwowania miejsca na plik" + +-#: .././logprint/log_misc.c:302 .././logprint/log_misc.c:366 +-#: .././logprint/log_misc.c:392 +-#, c-format +-msgid "Out of space\n" +-msgstr "Brak miejsca na dysku\n" ++#: .././mkfs/proto.c:259 ++msgid "error allocating space for a file" ++msgstr "błąd podczas przydzielania miejsca na plik" + +-#: .././logprint/log_misc.c:310 ++#: .././mkfs/proto.c:263 + #, c-format +-msgid "icount: %llu ifree: %llu " +-msgstr "icount: %llu ifree: %llu " ++msgid "%s: cannot allocate space for file\n" ++msgstr "%s: nie można przydzielić miejsca na plik\n" + +-#: .././logprint/log_misc.c:315 +-#, c-format +-msgid "fdblks: %llu frext: %llu\n" +-msgstr "fdblks: %llu frext: %llu\n" ++#: .././mkfs/proto.c:328 ++msgid "directory createname error" ++msgstr "błąd tworzenia nazwy katalogu" + +-#: .././logprint/log_misc.c:322 +-#, c-format +-msgid "AGI Buffer: XAGI " +-msgstr "Bufor AGI: XAGI " ++#: .././mkfs/proto.c:342 ++msgid "directory create error" ++msgstr "błąd tworzenia katalogu" + +-#: .././logprint/log_misc.c:325 ++#: .././mkfs/proto.c:408 .././mkfs/proto.c:420 .././mkfs/proto.c:431 ++#: .././mkfs/proto.c:438 + #, c-format +-msgid "out of space\n" +-msgstr "brak miejsca na dysku\n" ++msgid "%s: bad format string %s\n" ++msgstr "%s: błędny łańcuch formatujący %s\n" + +-#: .././logprint/log_misc.c:328 +-#, c-format +-msgid "ver: %d " +-msgstr "wersja: %d " ++#: .././mkfs/proto.c:460 .././mkfs/proto.c:501 .././mkfs/proto.c:517 ++#: .././mkfs/proto.c:530 .././mkfs/proto.c:543 .././mkfs/proto.c:555 ++msgid "Inode allocation failed" ++msgstr "Przydzielanie i-węzła nie powiodło się" + +-#: .././logprint/log_misc.c:330 +-#, c-format +-msgid "seq#: %d len: %d cnt: %d root: %d\n" +-msgstr "seq#: %d len: %d cnt: %d root: %d\n" ++#: .././mkfs/proto.c:478 ++msgid "Inode pre-allocation failed" ++msgstr "Wczesne przydzielanie i-węzła nie powiodło się" + +-#: .././logprint/log_misc.c:335 +-#, c-format +-msgid "level: %d free#: 0x%x newino: 0x%x\n" +-msgstr "level: %d free#: 0x%x newino: 0x%x\n" ++#: .././mkfs/proto.c:489 ++msgid "Pre-allocated file creation failed" ++msgstr "Tworzenie wcześnie przydzielonego pliku nie powiodło się" + +-#: .././logprint/log_misc.c:345 +-#, c-format +-msgid "AGI unlinked data skipped " +-msgstr "Pominięto niedowiązane dane AGI " ++#: .././mkfs/proto.c:575 ++msgid "Directory creation failed" ++msgstr "Tworzenie katalogu nie powiodło się" + +-#: .././logprint/log_misc.c:346 +-#, c-format +-msgid "(CONTINUE set, no space)\n" +-msgstr "(KONTYNUACJA, brak miejsca)\n" ++#: .././mkfs/proto.c:597 ++msgid "Unknown format" ++msgstr "Nieznany format" + +-#: .././logprint/log_misc.c:352 +-#, c-format +-msgid "bucket[%d - %d]: " +-msgstr "kubełek[%d - %d]: " ++#: .././mkfs/proto.c:602 ++msgid "Error encountered creating file from prototype file" ++msgstr "Wystąpił błąd podczas tworzenia pliku z pliku prototypu" + +-#: .././logprint/log_misc.c:364 +-#, c-format +-msgid "AGF Buffer: XAGF " +-msgstr "Bufor AGF: XAGF " ++#: .././mkfs/proto.c:655 ++msgid "Realtime bitmap inode allocation failed" ++msgstr "Przydzielanie i-węzła bitmapy realtime nie powiodło się" + +-#: .././logprint/log_misc.c:369 +-#, c-format +-msgid "ver: %d seq#: %d len: %d \n" +-msgstr "ver: %d seq#: %d len: %d \n" ++#: .././mkfs/proto.c:673 ++msgid "Realtime summary inode allocation failed" ++msgstr "Tworzenie i-węzła opisu realtime nie powiodło się" + +-#: .././logprint/log_misc.c:373 +-#, c-format +-msgid "root BNO: %d CNT: %d\n" +-msgstr "root BNO: %d CNT: %d\n" ++#: .././mkfs/proto.c:702 ++msgid "Allocation of the realtime bitmap failed" ++msgstr "Przydzielenie bitmapy realtime nie powiodło się" + +-#: .././logprint/log_misc.c:376 +-#, c-format +-msgid "level BNO: %d CNT: %d\n" +-msgstr "level BNO: %d CNT: %d\n" ++#: .././mkfs/proto.c:715 ++msgid "Completion of the realtime bitmap failed" ++msgstr "Uzupełnienie bitmapy realtime nie powiodło się" + +-#: .././logprint/log_misc.c:379 +-#, c-format +-msgid "1st: %d last: %d cnt: %d freeblks: %d longest: %d\n" +-msgstr "1st: %d last: %d cnt: %d freeblks: %d longest: %d\n" ++#: .././mkfs/proto.c:739 ++msgid "Allocation of the realtime summary failed" ++msgstr "Przydzielenie opisu realtime nie powiodło się" + +-#: .././logprint/log_misc.c:389 +-#, c-format +-msgid "DQUOT Buffer: DQ " +-msgstr "Bufor DQUOT: DQ " ++#: .././mkfs/proto.c:751 ++msgid "Completion of the realtime summary failed" ++msgstr "Uzupełnienie opisu realtime nie powiodło się" + +-#: .././logprint/log_misc.c:396 +-#, c-format +-msgid "ver: %d flags: 0x%x id: %d \n" +-msgstr "ver: %d flags: 0x%x id: %d \n" ++#: .././mkfs/proto.c:771 ++msgid "Error initializing the realtime space" ++msgstr "Błąd podczas inicjalizacji przestrzeni realtime" + +-#: .././logprint/log_misc.c:399 +-#, c-format +-msgid "blk limits hard: %llu soft: %llu\n" +-msgstr "blk limits hard: %llu soft: %llu\n" ++#: .././mkfs/proto.c:776 ++msgid "Error completing the realtime space" ++msgstr "Błąd podczas uzupełniania przestrzeni realtime" + +-#: .././logprint/log_misc.c:404 ++#: .././mkfs/xfs_mkfs.c:228 + #, c-format +-msgid "blk count: %llu warns: %d timer: %d\n" +-msgstr "blk count: %llu warns: %d timer: %d\n" ++msgid "data su/sw must not be used in conjunction with data sunit/swidth\n" ++msgstr "su/sw danych nie można użyć w połączeniu z sunit/swidth danych\n" + +-#: .././logprint/log_misc.c:408 ++#: .././mkfs/xfs_mkfs.c:235 + #, c-format +-msgid "ino limits hard: %llu soft: %llu\n" +-msgstr "ino limits hard: %llu soft: %llu\n" ++msgid "both data sunit and data swidth options must be specified\n" ++msgstr "trzeba podać obie opcje sunit i swidth dla danych\n" + +-#: .././logprint/log_misc.c:413 ++#: .././mkfs/xfs_mkfs.c:244 + #, c-format +-msgid "ino count: %llu warns: %d timer: %d\n" +-msgstr "ino count: %llu warns: %d timer: %d\n" ++msgid "data sunit/swidth must not be used in conjunction with data su/sw\n" ++msgstr "sunit/swidth danych nie można użyć w połączeniu z su/sw danych\n" + +-#: .././logprint/log_misc.c:419 ++#: .././mkfs/xfs_mkfs.c:251 + #, c-format +-msgid "BUF DATA\n" +-msgstr "DANE BUFORA\n" ++msgid "both data su and data sw options must be specified\n" ++msgstr "trzeba podać obie opcje su i sw dla danych\n" + +-#: .././logprint/log_misc.c:461 ++#: .././mkfs/xfs_mkfs.c:258 + #, c-format +-msgid "EFD: #regs: %d num_extents: %d id: 0x%llx\n" +-msgstr "EFD: #regs: %d num_extents: %d id: 0x%llx\n" ++msgid "data su must be a multiple of the sector size (%d)\n" ++msgstr "su danych musi być wielokrotnością rozmiaru sektora (%d)\n" + +-#: .././logprint/log_misc.c:468 ++#: .././mkfs/xfs_mkfs.c:269 + #, c-format +-msgid "EFD: Not enough data to decode further\n" +-msgstr "EFD: Za mało danych do dalszego dekodowania\n" ++msgid "data stripe width (%d) must be a multiple of the data stripe unit (%d)\n" ++msgstr "szerokość pasa danych (%d) musi być wielokrotnością jednostki pasa danych (%d)\n" + +-#: .././logprint/log_misc.c:488 .././logprint/log_misc.c:497 ++#: .././mkfs/xfs_mkfs.c:279 + #, c-format +-msgid "%s: xlog_print_trans_efi: malloc failed\n" +-msgstr "%s: xlog_print_trans_efi: malloc nie powiodło się\n" ++msgid "log su should not be used in conjunction with log sunit\n" ++msgstr "su logu nie powinno być używane w połączeniu z sunit logu\n" + +-#: .././logprint/log_misc.c:505 ++#: .././mkfs/xfs_mkfs.c:288 + #, c-format +-msgid "EFI: #regs: %d num_extents: %d id: 0x%llx\n" +-msgstr "EFI: #regs: %d num_extents: %d id: 0x%llx\n" ++msgid "log sunit should not be used in conjunction with log su\n" ++msgstr "sunit logu nie powinno być używane w połączeniu z su logu\n" + +-#: .././logprint/log_misc.c:532 ++#: .././mkfs/xfs_mkfs.c:358 .././mkfs/xfs_mkfs.c:482 + #, c-format +-msgid "QOFF: #regs: %d flags: 0x%x\n" +-msgstr "QOFF: #regs: %d flags: 0x%x\n" ++msgid "%s: %s appears to contain an existing filesystem (%s).\n" ++msgstr "%s: %s zdaje się zawierać istniejący system plików (%s).\n" + +-#: .././logprint/log_misc.c:535 ++#: .././mkfs/xfs_mkfs.c:362 .././mkfs/xfs_mkfs.c:488 + #, c-format +-msgid "QOFF: Not enough data to decode further\n" +-msgstr "QOFF: Za mało danych do dalszego dekodowania\n" ++msgid "%s: %s appears to contain a partition table (%s).\n" ++msgstr "%s: %s zdaje się zawierać tablicę partycji (%s).\n" + +-#: .././logprint/log_misc.c:544 ++#: .././mkfs/xfs_mkfs.c:366 + #, c-format +-msgid "INODE CORE\n" +-msgstr "RDZEŃ I-WĘZŁA\n" ++msgid "%s: %s appears to contain something weird according to blkid\n" ++msgstr "%s: %s zdaje się zawierać coś dziwnego wg blkid\n" + +-#: .././logprint/log_misc.c:545 ++#: .././mkfs/xfs_mkfs.c:376 + #, c-format +-msgid "magic 0x%hx mode 0%ho version %d format %d\n" +-msgstr "magic 0x%hx mode 0%ho version %d format %d\n" ++msgid "%s: probe of %s failed, cannot detect existing filesystem.\n" ++msgstr "%s: test %s nie powiódł się, nie można wykryć istniejącego systemu plików.\n" + +-#: .././logprint/log_misc.c:548 ++#: .././mkfs/xfs_mkfs.c:429 + #, c-format +-msgid "nlink %hd uid %d gid %d\n" +-msgstr "nlink %hd uid %d gid %d\n" ++msgid "warning: device is not properly aligned %s\n" ++msgstr "uwaga: urządzenie nie jest właściwie wyrównane: %s\n" + +-#: .././logprint/log_misc.c:550 ++#: .././mkfs/xfs_mkfs.c:434 + #, c-format +-msgid "atime 0x%x mtime 0x%x ctime 0x%x\n" +-msgstr "atime 0x%x mtime 0x%x ctime 0x%x\n" ++msgid "Use -f to force usage of a misaligned device\n" ++msgstr "Można użyć -f do wymuszenia użycia źle wyrównanego urządzenia\n" + +-#: .././logprint/log_misc.c:552 ++#: .././mkfs/xfs_mkfs.c:448 + #, c-format +-msgid "size 0x%llx nblocks 0x%llx extsize 0x%x nextents 0x%x\n" +-msgstr "size 0x%llx nblocks 0x%llx extsize 0x%x nextents 0x%x\n" ++msgid "warning: unable to probe device toplology for device %s\n" ++msgstr "uwaga: nie udało się odczytać topologii urządzenia %s\n" + +-#: .././logprint/log_misc.c:555 ++#: .././mkfs/xfs_mkfs.c:557 + #, c-format +-msgid "naextents 0x%x forkoff %d dmevmask 0x%x dmstate 0x%hx\n" +-msgstr "naextents 0x%x forkoff %d dmevmask 0x%x dmstate 0x%hx\n" ++msgid "log size %lld is not a multiple of the log stripe unit %d\n" ++msgstr "rozmiar logu %lld nie jest wielokrotnością jednostki pasa logu %d\n" + +-#: .././logprint/log_misc.c:558 ++#: .././mkfs/xfs_mkfs.c:585 + #, c-format +-msgid "flags 0x%x gen 0x%x\n" +-msgstr "flags 0x%x gen 0x%x\n" ++msgid "Due to stripe alignment, the internal log size (%lld) is too large.\n" ++msgstr "Ze względu na wyrównanie do rozmiaru pasa rozmiar wewnętrznego logu (%lld) jest zbyt duży.\n" + +-#: .././logprint/log_misc.c:574 ++#: .././mkfs/xfs_mkfs.c:587 + #, c-format +-msgid "SHORTFORM DIRECTORY size %d\n" +-msgstr "Rozmiar KATALOGU W POSTACI KRÓTKIEJ %d\n" ++msgid "Must fit within an allocation group.\n" ++msgstr "Musi zmieścić się wewnątrz grupy alokacji.\n" + +-#: .././logprint/log_misc.c:580 ++#: .././mkfs/xfs_mkfs.c:598 + #, c-format +-msgid "SHORTFORM DIRECTORY size %d count %d\n" +-msgstr "KATALOG W POSTACI KRÓTKIEJ: rozmiar %d liczba %d\n" ++msgid "log size %lld blocks too small, minimum size is %d blocks\n" ++msgstr "rozmiar logu %lld bloków jest zbyt mały, minimalny rozmiar to %d bloków\n" + +-#: .././logprint/log_misc.c:583 ++#: .././mkfs/xfs_mkfs.c:604 + #, c-format +-msgid ".. ino 0x%llx\n" +-msgstr ".. ino 0x%llx\n" ++msgid "log size %lld blocks too large, maximum size is %lld blocks\n" ++msgstr "rozmiar logu %lld bloków jest zbyt duży, maksymalny rozmiar to %lld bloków\n" + +-#: .././logprint/log_misc.c:591 ++#: .././mkfs/xfs_mkfs.c:610 + #, c-format +-msgid "%s ino 0x%llx namelen %d\n" +-msgstr "%s ino 0x%llx namelen %d\n" ++msgid "log size %lld bytes too large, maximum size is %lld bytes\n" ++msgstr "rozmiar logu %lld bajtów jest zbyt duży, maksymalny rozmiar to %lld bajtów\n" + +-#: .././logprint/log_misc.c:623 ++#: .././mkfs/xfs_mkfs.c:718 + #, c-format +-msgid "INODE: " +-msgstr "I-WĘZEŁ: " ++msgid "agsize (%lld blocks) too small, need at least %lld blocks\n" ++msgstr "agsize (%lld bloków) zbyt małe, potrzeba co najmniej %lld bloków\n" + +-#: .././logprint/log_misc.c:624 ++#: .././mkfs/xfs_mkfs.c:726 + #, c-format +-msgid "#regs: %d ino: 0x%llx flags: 0x%x dsize: %d\n" +-msgstr "#regs: %d ino: 0x%llx flags: 0x%x dsize: %d\n" ++msgid "agsize (%lld blocks) too big, maximum is %lld blocks\n" ++msgstr "agsize (%lld bloków) zbyt duże, maksimum to %lld bloków\n" + +-#: .././logprint/log_misc.c:627 ++#: .././mkfs/xfs_mkfs.c:734 + #, c-format +-msgid " blkno: %lld len: %d boff: %d\n" +-msgstr " blkno: %lld len: %d boff: %d\n" ++msgid "agsize (%lld blocks) too big, data area is %lld blocks\n" ++msgstr "agsize (%lld bloków) zbyt duże, obszar danych to %lld bloków\n" + +-#: .././logprint/log_misc.c:632 ++#: .././mkfs/xfs_mkfs.c:741 + #, c-format +-msgid "INODE: #regs: %d Not printing rest of data\n" +-msgstr "I-WĘZEŁ: #regs: %d Bez wypisywania reszty danych\n" ++msgid "too many allocation groups for size = %lld\n" ++msgstr "zbyt dużo grup alokacji dla rozmiaru = %lld\n" + +-#: .././logprint/log_misc.c:665 ++#: .././mkfs/xfs_mkfs.c:743 + #, c-format +-msgid "EXTENTS inode data\n" +-msgstr "EKSTENTY danych i-węzła\n" ++msgid "need at most %lld allocation groups\n" ++msgstr "potrzeba najwyżej %lld grup alokacji\n" + +-#: .././logprint/log_misc.c:676 ++#: .././mkfs/xfs_mkfs.c:751 + #, c-format +-msgid "BTREE inode data\n" +-msgstr "B-DRZEWO danych i-węzła\n" ++msgid "too few allocation groups for size = %lld\n" ++msgstr "zbyt mało grup alokacji dla rozmiaru = %lld\n" + +-#: .././logprint/log_misc.c:687 ++#: .././mkfs/xfs_mkfs.c:753 + #, c-format +-msgid "LOCAL inode data\n" +-msgstr "LOKALNE dane i-węzła\n" ++msgid "need at least %lld allocation groups\n" ++msgstr "potrzeba co najmniej %lld grup alokacji\n" + +-#: .././logprint/log_misc.c:701 ++#: .././mkfs/xfs_mkfs.c:766 + #, c-format +-msgid "EXTENTS inode attr\n" +-msgstr "EKSTENTY atrybutów i-węzła\n" ++msgid "last AG size %lld blocks too small, minimum size is %lld blocks\n" ++msgstr "rozmiar ostatniej AG %lld bloków zbyt mały, minimalny rozmiar to %lld bloków\n" + +-#: .././logprint/log_misc.c:712 ++#: .././mkfs/xfs_mkfs.c:777 + #, c-format +-msgid "BTREE inode attr\n" +-msgstr "B-DRZEWO atrybutów i-węzła\n" ++msgid "%lld allocation groups is too many, maximum is %lld\n" ++msgstr "%lld grup alokacji to zbyt dużo, maksimum to %lld\n" + +-#: .././logprint/log_misc.c:723 ++#: .././mkfs/xfs_mkfs.c:801 + #, c-format +-msgid "LOCAL inode attr\n" +-msgstr "LOKALNE atrybuty i-węzła\n" ++msgid "error reading existing superblock -- failed to memalign buffer\n" ++msgstr "błąd podczas odczytu istniejącego superbloku - nie udało się wykonać memalign dla bufora\n" + +-#: .././logprint/log_misc.c:735 ++#: .././mkfs/xfs_mkfs.c:807 + #, c-format +-msgid "DEV inode: no extra region\n" +-msgstr "I-węzeł DEV: brak dodatkowego regionu\n" ++msgid "existing superblock read failed: %s\n" ++msgstr "odczyt istniejącego superbloku nie powiódł się: %s\n" + +-#: .././logprint/log_misc.c:740 ++#: .././mkfs/xfs_mkfs.c:1110 + #, c-format +-msgid "UUID inode: no extra region\n" +-msgstr "I-węzeł UUID: brak dodatkowego regionu\n" +- +-#: .././logprint/log_misc.c:748 +-msgid "xlog_print_trans_inode: illegal inode type" +-msgstr "xlog_print_trans_inode: niedozwolony typ i-węzła" ++msgid "%s: Specify data sunit in 512-byte blocks, no unit suffix\n" ++msgstr "%s: sunit danych należy podać w 512-bajtowych blokach, bez jednostki\n" + +-#: .././logprint/log_misc.c:776 ++#: .././mkfs/xfs_mkfs.c:1126 + #, c-format +-msgid "#regs: %d id: 0x%x" +-msgstr "#regs: %d id: 0x%x" ++msgid "%s: Specify data swidth in 512-byte blocks, no unit suffix\n" ++msgstr "%s: swidth danych należy podać w 512-bajtowych blokach, bez jednostki\n" + +-#: .././logprint/log_misc.c:777 ++#: .././mkfs/xfs_mkfs.c:1153 + #, c-format +-msgid " blkno: %lld len: %d boff: %d\n" +-msgstr " blkno: %lld len: %d boff: %d\n" ++msgid "%s: Specify data sw as multiple of su, no unit suffix\n" ++msgstr "%s: sw danych należy podać jako wielokrotność su, bez jednostki\n" + +-#: .././logprint/log_misc.c:781 ++#: .././mkfs/xfs_mkfs.c:1382 + #, c-format +-msgid "DQUOT: #regs: %d Not printing rest of data\n" +-msgstr "DQUOT: #regs: %d Bez wypisywania reszty danych\n" ++msgid "Specify log sunit in 512-byte blocks, no size suffix\n" ++msgstr "sunit należy podać w 512-bajtowych blokach, bez jednostki\n" + +-#: .././logprint/log_misc.c:800 ++#: .././mkfs/xfs_mkfs.c:1485 .././mkfs/xfs_mkfs.c:1554 + #, c-format +-msgid "DQUOT: magic 0x%hx flags 0%ho\n" +-msgstr "DQUOT: magic 0x%hx flags 0%ho\n" ++msgid "cannot specify both crc and ftype\n" ++msgstr "nie można podać jednocześnie crc i ftype\n" + +-#: .././logprint/log_misc.c:828 ++#: .././mkfs/xfs_mkfs.c:1679 + #, c-format +-msgid "%s: lseek64 to %lld failed: %s\n" +-msgstr "%s: lseek64 na %lld nie powiodło się: %s\n" ++msgid "extra arguments\n" ++msgstr "nadmiarowe argumenty\n" + +-#: .././logprint/log_misc.c:871 ++#: .././mkfs/xfs_mkfs.c:1685 + #, c-format +-msgid "%s: xlog_print_record: malloc failed\n" +-msgstr "%s: xlog_print_record: malloc nie powiodło się\n" ++msgid "cannot specify both %s and -d name=%s\n" ++msgstr "nie można podać jednocześnie %s i -d name=%s\n" + +-#: .././logprint/log_misc.c:880 ++#: .././mkfs/xfs_mkfs.c:1702 + #, c-format +-msgid "%s: xlog_print_record: read error\n" +-msgstr "%s: xlog_print_record: błąd odczytu\n" ++msgid "illegal block size %d\n" ++msgstr "niedozwolony rozmiar bloku %d\n" + +-#: .././logprint/log_misc.c:967 ++#: .././mkfs/xfs_mkfs.c:1737 + #, c-format +-msgid "Left over region from split log item\n" +-msgstr "Region pozostały z podziału elementu logu\n" ++msgid "specified blocksize %d is less than device physical sector size %d\n" ++msgstr "podany rozmiar bloku %d jest mniejszy niż rozmiar fizycznego sektora urządzenia (%d)\n" + +-#: .././logprint/log_misc.c:1011 ++#: .././mkfs/xfs_mkfs.c:1740 + #, c-format +-msgid "Unmount filesystem\n" +-msgstr "Niezamontowany system plików\n" ++msgid "switching to logical sector size %d\n" ++msgstr "przełączono na rozmiar sektora logicznego %d\n" + +-#: .././logprint/log_misc.c:1016 ++#: .././mkfs/xfs_mkfs.c:1758 + #, c-format +-msgid "%s: unknown log operation type (%x)\n" +-msgstr "%s: nieznany typ operacji w logu (%x)\n" ++msgid "illegal sector size %d\n" ++msgstr "niedozwolony rozmiar sektora %d\n" + +-#: .././logprint/log_misc.c:1051 ++#: .././mkfs/xfs_mkfs.c:1761 + #, c-format +-msgid "Header 0x%x wanted 0x%x\n" +-msgstr "Nagłówek 0x%x, pożądany 0x%x\n" ++msgid "block size %d cannot be smaller than logical sector size %d\n" ++msgstr "rozmiar bloku %d nie może być mniejszy niż rozmiar sektora logicznego %d\n" + +-#: .././logprint/log_misc.c:1065 ++#: .././mkfs/xfs_mkfs.c:1766 + #, c-format +-msgid "cycle: %d\tversion: %d\t" +-msgstr "cykl: %d\twersja: %d\t" ++msgid "illegal sector size %d; hw sector is %d\n" ++msgstr "niedozwolony rozmiar sektora %d; sektor sprzętowy ma %d\n" + +-#: .././logprint/log_misc.c:1071 ++#: .././mkfs/xfs_mkfs.c:1772 + #, c-format +-msgid "length of Log Record: %d\tprev offset: %d\t\tnum ops: %d\n" +-msgstr "długość rekordu logu: %d\tpoprz.offset: %d\t\tl.oper.: %d\n" ++msgid "illegal log sector size %d\n" ++msgstr "niedozwolony rozmiar sektora logu %d\n" + +-#: .././logprint/log_misc.c:1077 .././logprint/log_misc.c:1119 ++#: .././mkfs/xfs_mkfs.c:1788 .././mkfs/xfs_mkfs.c:1883 + #, c-format +-msgid "cycle num overwrites: " +-msgstr "liczba nadpisań cyklu: " ++msgid "Minimum inode size for CRCs is %d bytes\n" ++msgstr "Minimalny rozmiar i-węzła dla CRC to %d bajtów\n" + +-#: .././logprint/log_misc.c:1086 ++#: .././mkfs/xfs_mkfs.c:1796 + #, c-format +-msgid "uuid: %s format: " +-msgstr "uuid: %s format: " ++msgid "Inodes always aligned for CRC enabled filesytems\n" ++msgstr "I-węzły są zawsze wyrównane dla systemów plików z CRC\n" + +-#: .././logprint/log_misc.c:1089 ++#: .././mkfs/xfs_mkfs.c:1803 + #, c-format +-msgid "unknown\n" +-msgstr "nieznany\n" ++msgid "Lazy superblock counted always enabled for CRC enabled filesytems\n" ++msgstr "Leniwe liczenie syperbloków jest zawsze włączone dla systemów plików z CRC\n" + +-#: .././logprint/log_misc.c:1092 ++#: .././mkfs/xfs_mkfs.c:1810 + #, c-format +-msgid "little endian linux\n" +-msgstr "Linux little endian\n" ++msgid "V2 logs always enabled for CRC enabled filesytems\n" ++msgstr "Logi V2 są zawsze włączone dla systemów plików z CRC\n" + +-#: .././logprint/log_misc.c:1095 ++#: .././mkfs/xfs_mkfs.c:1817 + #, c-format +-msgid "big endian linux\n" +-msgstr "Linux big endian\n" ++msgid "V2 attribute format always enabled on CRC enabled filesytems\n" ++msgstr "Format atrybutów V2 jest zawsze włączony dla systemów plików z CRC\n" + +-#: .././logprint/log_misc.c:1098 ++#: .././mkfs/xfs_mkfs.c:1825 + #, c-format +-msgid "big endian irix\n" +-msgstr "IRIX big endian\n" ++msgid "32 bit Project IDs always enabled on CRC enabled filesytems\n" ++msgstr "32-bitowe ID projektów są zawsze włączone dla systemów plików z CRC\n" + +-#: .././logprint/log_misc.c:1104 ++#: .././mkfs/xfs_mkfs.c:1833 + #, c-format +-msgid "h_size: %d\n" +-msgstr "h_size: %d\n" ++msgid "illegal directory block size %d\n" ++msgstr "niedozwolony rozmiar bloku katalogu %d\n" + +-#: .././logprint/log_misc.c:1116 ++#: .././mkfs/xfs_mkfs.c:1847 + #, c-format +-msgid "extended-header: cycle: %d\n" +-msgstr "nagłówek-rozszerzony: cykl: %d\n" ++msgid "both -d agcount= and agsize= specified, use one or the other\n" ++msgstr "podano jednocześnie -d agcount= i agsize=, można użyć tylko jednej z tych opcji\n" + +-#: .././logprint/log_misc.c:1132 ++#: .././mkfs/xfs_mkfs.c:1853 + #, c-format +-msgid "* ERROR: found data after zeroed blocks block=%-21lld *\n" +-msgstr "* BŁĄD: znaleziono dane za wyzerowanymi blokami blok=%-21lld *\n" ++msgid "if -d file then -d name and -d size are required\n" ++msgstr "jeśli podano -d file, to -d name i -d size są wymagane\n" + +-#: .././logprint/log_misc.c:1143 ++#: .././mkfs/xfs_mkfs.c:1862 + #, c-format +-msgid "* ERROR: header cycle=%-11d block=%-21lld *\n" +-msgstr "* BŁĄD: nagłówek cykl=%-11d blok=%-21lld *\n" ++msgid "illegal data length %lld, not a multiple of %d\n" ++msgstr "niedozwolona długość danych %lld, nie jest wielokrotnością %d\n" + +-#: .././logprint/log_misc.c:1154 ++#: .././mkfs/xfs_mkfs.c:1868 + #, c-format +-msgid "* ERROR: data block=%-21lld *\n" +-msgstr "* BŁĄD: blok danych=%-21lld *\n" ++msgid "warning: data length %lld not a multiple of %d, truncated to %lld\n" ++msgstr "uwaga: długość danych %lld nie jest wielokrotnością %d, ucięto do %lld\n" + +-#: .././logprint/log_misc.c:1165 ++#: .././mkfs/xfs_mkfs.c:1890 + #, c-format +-msgid "" +-"* ERROR: for header block=%lld\n" +-"* not enough hdrs for data length, required num = %d, hdr num = %d\n" +-msgstr "" +-"* BŁĄD: dla bloku nagłówka %lld\n" +-"* za mało nagłówków dla długości danych, wymaganych = %d, liczba = %d\n" +- +-#: .././logprint/log_misc.c:1171 +-msgid "Not enough headers for data length." +-msgstr "Za mało nagłówków dla długości danych." ++msgid "if -l file then -l name and -l size are required\n" ++msgstr "jeśli podano -l file to -l name i -l size są wymagane\n" + +-#: .././logprint/log_misc.c:1181 ++#: .././mkfs/xfs_mkfs.c:1899 + #, c-format +-msgid "%s: xlog_print: malloc failed for ext hdrs\n" +-msgstr "%s: xlog_print: malloc dla rozszerzonych nagłówków nie powiódł się\n" ++msgid "illegal log length %lld, not a multiple of %d\n" ++msgstr "niedozwolona długość logu %lld, nie jest wielokrotnością %d\n" + +-#: .././logprint/log_misc.c:1227 .././logprint/log_misc.c:1302 +-#: .././logprint/log_misc.c:1368 .././logprint/log_misc.c:1405 ++#: .././mkfs/xfs_mkfs.c:1906 + #, c-format +-msgid "%s: physical end of log\n" +-msgstr "%s: fizyczny koniec logu\n" ++msgid "warning: log length %lld not a multiple of %d, truncated to %lld\n" ++msgstr "uwaga: długość logu %lld nie jest wielokrotnością %d, ucięto do %lld\n" + +-#: .././logprint/log_misc.c:1233 .././logprint/log_misc.c:1307 +-#: .././logprint/log_misc.c:1420 ++#: .././mkfs/xfs_mkfs.c:1912 + #, c-format +-msgid "BLKNO: %lld\n" +-msgstr "BLKNO: %lld\n" ++msgid "if -r file then -r name and -r size are required\n" ++msgstr "jeśli podano -r file, to -r name i -r size są wymagane\n" + +-#: .././logprint/log_misc.c:1290 ++#: .././mkfs/xfs_mkfs.c:1921 + #, c-format +-msgid "%s: problem finding oldest LR\n" +-msgstr "%s: problem ze znalezieniem najstarszego rekordu logu\n" ++msgid "illegal rt length %lld, not a multiple of %d\n" ++msgstr "niedozwolona długość rt %lld, nie jest wielokrotnością %d\n" + +-#: .././logprint/log_misc.c:1316 ++#: .././mkfs/xfs_mkfs.c:1928 + #, c-format +-msgid "%s: after %d zeroed blocks\n" +-msgstr "%s: po %d wyzerowanych blokach\n" +- +-#: .././logprint/log_misc.c:1380 +-msgid "illegal value" +-msgstr "niedozwolona wartość" ++msgid "warning: rt length %lld not a multiple of %d, truncated to %lld\n" ++msgstr "uwaga: długość rt %lld nie jest wielokrotnością %d, ucięto do %lld\n" + +-#: .././logprint/log_misc.c:1386 ++#: .././mkfs/xfs_mkfs.c:1941 + #, c-format +-msgid "%s: skipped %d cleared blocks in range: %lld - %lld\n" +-msgstr "%s: pominięto %d wyzerowanych bloków w przedziale: %lld - %lld\n" ++msgid "illegal rt extent size %lld, not a multiple of %d\n" ++msgstr "niedozwolony rozmiar ekstentu rt %lld, nie jest wielokrotnością %d\n" + +-#: .././logprint/log_misc.c:1391 ++#: .././mkfs/xfs_mkfs.c:1947 + #, c-format +-msgid "%s: totally cleared log\n" +-msgstr "%s: całkowicie wyczyszczony log\n" ++msgid "rt extent size %s too large, maximum %d\n" ++msgstr "rozmiar ekstentu rt %s zbyt duży, maksimum to %d\n" + +-#: .././logprint/log_misc.c:1396 ++#: .././mkfs/xfs_mkfs.c:1953 + #, c-format +-msgid "%s: skipped %d zeroed blocks in range: %lld - %lld\n" +-msgstr "%s: pominięto %d wyzerowanych bloków w przedziale %lld - %lld\n" ++msgid "rt extent size %s too small, minimum %d\n" ++msgstr "rozmiar ekstentu rt %s zbyt mały, minimum to %d\n" + +-#: .././logprint/log_misc.c:1401 ++#: .././mkfs/xfs_mkfs.c:1996 + #, c-format +-msgid "%s: totally zeroed log\n" +-msgstr "%s: całkowicie wyzerowany log\n" +- +-#: .././logprint/log_misc.c:1417 +-msgid "xlog_find_head: bad read" +-msgstr "xlog_find_head: błędny odczyt" ++msgid "illegal inode size %d\n" ++msgstr "niedozwolony rozmiar i-węzła %d\n" + +-#: .././logprint/log_misc.c:1473 ++#: .././mkfs/xfs_mkfs.c:2001 + #, c-format +-msgid "%s: logical end of log\n" +-msgstr "%s: logiczny koniec logu\n" ++msgid "allowable inode size with %d byte blocks is %d\n" ++msgstr "dozwolony rozmiar i-węzła przy blokach %d-bajtowych to %d\n" + +-#: .././logprint/log_misc.c:1565 ++#: .././mkfs/xfs_mkfs.c:2005 + #, c-format +-msgid "%s: bad size of efi format: %u; expected %u or %u; nextents = %u\n" +-msgstr "%s: błędny rozmiar formatu efi: %u; oczekiwano %u lub %u; nextents = %u\n" ++msgid "allowable inode size with %d byte blocks is between %d and %d\n" ++msgstr "dozwolone rozmiary i-węzła przy blokach %d-bajtowych są od %d do %d\n" + +-#: .././logprint/log_print_trans.c:25 ++#: .././mkfs/xfs_mkfs.c:2013 + #, c-format +-msgid "TRANS: tid:0x%x type:%s #items:%d trans:0x%x q:0x%lx\n" +-msgstr "TRANS: tid:0x%x typ:%s #elem:%d trans:0x%x q:0x%lx\n" ++msgid "log stripe unit specified, using v2 logs\n" ++msgstr "podano jednostkę pasa logu, użyto logów v2\n" + +-#: .././logprint/log_print_trans.c:51 ++#: .././mkfs/xfs_mkfs.c:2028 + #, c-format +-msgid "%s: failed to find head and tail, error: %d\n" +-msgstr "%s: nie udało się odnaleźć początku ani końca, błąd: %d\n" ++msgid "no device name given in argument list\n" ++msgstr "nie podano nazwy urządzenia w liście argumentów\n" + +-#: .././logprint/log_print_trans.c:56 ++#: .././mkfs/xfs_mkfs.c:2053 + #, c-format +-msgid " log tail: %lld head: %lld state: %s\n" +-msgstr " koniec logu: %lld początek: %lld stan: %s\n" ++msgid "%s: Use the -f option to force overwrite.\n" ++msgstr "%s: Można użyć opcji -f do wymuszenia nadpisania.\n" + +-#: .././logprint/log_print_trans.c:62 +-#, c-format +-msgid " override tail: %d\n" +-msgstr " koniec override: %d\n" ++#: .././mkfs/xfs_mkfs.c:2072 ++msgid "internal log" ++msgstr "log wewnętrzny" + +-#: .././logprint/log_print_trans.c:72 +-#, c-format +-msgid "%s: failed in xfs_do_recovery_pass, error: %d\n" +-msgstr "%s: xfs_do_recovery_pass nie powiodło się, błąd: %d\n" ++#: .././mkfs/xfs_mkfs.c:2074 ++msgid "volume log" ++msgstr "log na wolumenie" + +-#: .././logprint/log_print_all.c:98 ++#: .././mkfs/xfs_mkfs.c:2076 + #, c-format +-msgid "BUF: #regs:%d start blkno:0x%llx len:%d bmap size:%d flags:0x%x\n" +-msgstr "BUF: #regs:%d blok pocz.:0x%llx dług.:%d rozm.bmapy:%d flagi:0x%x\n" ++msgid "no log subvolume or internal log\n" ++msgstr "brak podwolumenu logu ani logu wewnętrznego\n" + +-#: .././logprint/log_print_all.c:108 ++#: .././mkfs/xfs_mkfs.c:2083 ++msgid "volume rt" ++msgstr "wolumen rt" ++ ++#: .././mkfs/xfs_mkfs.c:2088 + #, c-format +-msgid "\tSUPER Block Buffer:\n" +-msgstr "\tBufor SUPER bloku:\n" ++msgid "size %s specified for data subvolume is too large, maximum is %lld blocks\n" ++msgstr "rozmiar %s podany dla podwolumenu danych jest zbyt duży, maksimum to %lld bloków\n" + +-#: .././logprint/log_print_all.c:111 ++#: .././mkfs/xfs_mkfs.c:2095 + #, c-format +-msgid " icount:%llu ifree:%llu " +-msgstr " icount:%llu ifree:%llu " ++msgid "can't get size of data subvolume\n" ++msgstr "nie można pobrać rozmiaru podwolumenu danych\n" + +-#: .././logprint/log_print_all.c:116 ++#: .././mkfs/xfs_mkfs.c:2100 + #, c-format +-msgid "fdblks:%llu frext:%llu\n" +-msgstr "fdblks:%llu frext:%llu\n" ++msgid "size %lld of data subvolume is too small, minimum %d blocks\n" ++msgstr "rozmiar %lld dla podwolumenu danych jest zbyt mały, minimum to %d bloków\n" + +-#: .././logprint/log_print_all.c:121 ++#: .././mkfs/xfs_mkfs.c:2107 + #, c-format +-msgid "\t\tsunit:%u swidth:%u\n" +-msgstr "\t\tsunit:%u swidth:%u\n" ++msgid "can't have both external and internal logs\n" ++msgstr "nie można mieć jednocześnie zewnętrznego i wewnętrznego logu\n" + +-#: .././logprint/log_print_all.c:126 ++#: .././mkfs/xfs_mkfs.c:2111 + #, c-format +-msgid "\tAGI Buffer: (XAGI)\n" +-msgstr "\tBufor AGI: (XAGI)\n" ++msgid "data and log sector sizes must be equal for internal logs\n" ++msgstr "rozmiary sektora danych i logu muszą być równe dla logów wewnętrznych\n" + +-#: .././logprint/log_print_all.c:129 ++#: .././mkfs/xfs_mkfs.c:2117 + #, c-format +-msgid "\t\tver:%d " +-msgstr "\t\twersja:%d " ++msgid "" ++"Warning: the data subvolume sector size %u is less than the sector size \n" ++"reported by the device (%u).\n" ++msgstr "" ++"Uwaga: rozmiar sektora podwolumenu danych %u jest mniejszy od rozmiaru\n" ++"sektora zgłaszanego przez urządzenie (%u).\n" + +-#: .././logprint/log_print_all.c:131 ++#: .././mkfs/xfs_mkfs.c:2123 + #, c-format +-msgid "seq#:%d len:%d cnt:%d root:%d\n" +-msgstr "seq#:%d len:%d cnt:%d root:%d\n" ++msgid "" ++"Warning: the log subvolume sector size %u is less than the sector size\n" ++"reported by the device (%u).\n" ++msgstr "" ++"Uwaga: rozmiar sektora podwolumenu logu %u jest mniejszy od rozmiaru\n" ++"sektora zgłaszanego przez urządzenie (%u).\n" + +-#: .././logprint/log_print_all.c:136 ++#: .././mkfs/xfs_mkfs.c:2129 + #, c-format +-msgid "\t\tlevel:%d free#:0x%x newino:0x%x\n" +-msgstr "\t\tlevel:%d free#:0x%x newino:0x%x\n" ++msgid "" ++"Warning: the realtime subvolume sector size %u is less than the sector size\n" ++"reported by the device (%u).\n" ++msgstr "" ++"Uwaga: rozmiar sektora podwolumenu realtime %u jest mniejszy od rozmiaru\n" ++"sektora zgłaszanego przez urządzenie (%u).\n" + +-#: .././logprint/log_print_all.c:142 ++#: .././mkfs/xfs_mkfs.c:2136 + #, c-format +-msgid "\tAGF Buffer: (XAGF)\n" +-msgstr "\tBufor AGI: (XAGF)\n" ++msgid "size %s specified for rt subvolume is too large, maximum is %lld blocks\n" ++msgstr "rozmiar %s podany dla podwolumenu rt jest zbyt duży, maksimum to %lld bloków\n" + +-#: .././logprint/log_print_all.c:145 ++#: .././mkfs/xfs_mkfs.c:2144 + #, c-format +-msgid "\t\tver:%d seq#:%d len:%d \n" +-msgstr "\t\tver:%d seq#:%d len:%d \n" ++msgid "size specified for non-existent rt subvolume\n" ++msgstr "podano rozmiar dla nie istniejącego podwolumenu rt\n" + +-#: .././logprint/log_print_all.c:149 ++#: .././mkfs/xfs_mkfs.c:2159 + #, c-format +-msgid "\t\troot BNO:%d CNT:%d\n" +-msgstr "\t\troot BNO:%d CNT:%d\n" ++msgid "%s: Specified data stripe unit %d is not the same as the volume stripe unit %d\n" ++msgstr "%s: Podana jednostka pasa danych %d nie jest taka sama jak jednostka pasa wolumenu %d\n" + +-#: .././logprint/log_print_all.c:152 ++#: .././mkfs/xfs_mkfs.c:2166 + #, c-format +-msgid "\t\tlevel BNO:%d CNT:%d\n" +-msgstr "\t\tlevel BNO:%d CNT:%d\n" ++msgid "%s: Specified data stripe width %d is not the same as the volume stripe width %d\n" ++msgstr "%s: Podana szerokość pasa danych %d nie jest taka sama jak szerokość pasa wolumenu %d\n" + +-#: .././logprint/log_print_all.c:155 ++#: .././mkfs/xfs_mkfs.c:2184 + #, c-format +-msgid "\t\t1st:%d last:%d cnt:%d freeblks:%d longest:%d\n" +-msgstr "\t\t1st:%d last:%d cnt:%d freeblks:%d longest:%d\n" ++msgid "agsize (%lld) not a multiple of fs blk size (%d)\n" ++msgstr "agsize (%lld) nie jest wielokrotnością rozmiaru bloku systemu plików (%d)\n" + +-#: .././logprint/log_print_all.c:164 ++#: .././mkfs/xfs_mkfs.c:2234 + #, c-format +-msgid "\tDQUOT Buffer:\n" +-msgstr "\tBufor DQUOT:\n" ++msgid "agsize rounded to %lld, swidth = %d\n" ++msgstr "agsize zaokrąglone do %lld, swidth = %d\n" + +-#: .././logprint/log_print_all.c:167 ++#: .././mkfs/xfs_mkfs.c:2266 + #, c-format +-msgid "\t\tUIDs 0x%lx-0x%lx\n" +-msgstr "\t\tUIDs 0x%lx-0x%lx\n" ++msgid "" ++"Warning: AG size is a multiple of stripe width. This can cause performance\n" ++"problems by aligning all AGs on the same disk. To avoid this, run mkfs with\n" ++"an AG size that is one stripe unit smaller, for example %llu.\n" ++msgstr "" ++"Uwaga: rozmiar AG jest wielokrotnością szerokości pasa. Może to spowodować\n" ++"problemy z wydajnością poprzez wyrównanie wszystkich AG na tym samym dysku.\n" ++"Aby temu zapobiec, należy uruchomić mkfs z rozmiarem AG o jedną jednostkę\n" ++"pasa mniejszym, na przykład %llu.\n" + +-#: .././logprint/log_print_all.c:172 ++#: .././mkfs/xfs_mkfs.c:2291 + #, c-format +-msgid "\tBUF DATA\n" +-msgstr "\tDANE BUF\n" ++msgid "%s: Stripe unit(%d) or stripe width(%d) is not a multiple of the block size(%d)\n" ++msgstr "%s: Jednostka pasa (%d) lub szerokość pasa (%d) nie jest wielokrotnością rozmiaru bloku (%d)\n" + +-#: .././logprint/log_print_all.c:194 ++#: .././mkfs/xfs_mkfs.c:2323 + #, c-format +-msgid "\tQUOTAOFF: #regs:%d type:%s\n" +-msgstr "\tQUOTAOFF: #regs:%d type:%s\n" ++msgid "log stripe unit (%d) must be a multiple of the block size (%d)\n" ++msgstr "jednostka pasa logu (%d) musi być wielokrotnością rozmiaru bloku (%d)\n" + +-#: .././logprint/log_print_all.c:209 ++#: .././mkfs/xfs_mkfs.c:2336 + #, c-format +-msgid "\tDQUOT: #regs:%d blkno:%lld boffset:%u id: %d\n" +-msgstr "\tDQUOT: #regs:%d blkno:%lld boffset:%u id: %d\n" ++msgid "log stripe unit (%d bytes) is too large (maximum is 256KiB)\n" ++msgstr "jednostka pasa logu (%d bajtów) jest zbyt duża (maksimum to 256KiB)\n" + +-#: .././logprint/log_print_all.c:213 ++#: .././mkfs/xfs_mkfs.c:2339 + #, c-format +-msgid "\t\tmagic 0x%x\tversion 0x%x\tID 0x%x (%d)\t\n" +-msgstr "\t\tmagic 0x%x\twersja 0x%x\tID 0x%x (%d)\t\n" ++msgid "log stripe unit adjusted to 32KiB\n" ++msgstr "jednostka pasa logu zmodyfikowana na 32KiB\n" + +-#: .././logprint/log_print_all.c:218 ++#: .././mkfs/xfs_mkfs.c:2351 + #, c-format +-msgid "\t\tblk_hard 0x%x\tblk_soft 0x%x\tino_hard 0x%x\tino_soft 0x%x\n" +-msgstr "\t\tblk_hard 0x%x\tblk_soft 0x%x\tino_hard 0x%x\tino_soft 0x%x\n" ++msgid "size %s specified for log subvolume is too large, maximum is %lld blocks\n" ++msgstr "rozmiar %s podany dla podwolumenu logu jest zbyt duży, maksimum to %lld bloków\n" + +-#: .././logprint/log_print_all.c:224 ++#: .././mkfs/xfs_mkfs.c:2358 + #, c-format +-msgid "\t\tbcount 0x%x (%d) icount 0x%x (%d)\n" +-msgstr "\t\tbcount 0x%x (%d) icount 0x%x (%d)\n" ++msgid "size specified for non-existent log subvolume\n" ++msgstr "podano rozmiar dla nie istniejącego podwolumenu logu\n" + +-#: .././logprint/log_print_all.c:229 ++#: .././mkfs/xfs_mkfs.c:2361 + #, c-format +-msgid "\t\tbtimer 0x%x itimer 0x%x \n" +-msgstr "\t\tbtimer 0x%x itimer 0x%x \n" ++msgid "size %lld too large for internal log\n" ++msgstr "rozmiar %lld jest zbyt duży dla logu wewnętrznego\n" + +-#: .././logprint/log_print_all.c:238 ++#: .././mkfs/xfs_mkfs.c:2430 + #, c-format +-msgid "\tCORE inode:\n" +-msgstr "\tGŁÓWNY i-węzeł:\n" ++msgid "internal log size %lld too large, must fit in allocation group\n" ++msgstr "rozmiar wewnętrznego logu %lld zbyt duży, musi się zmieścić w grupie alokacji\n" + +-#: .././logprint/log_print_all.c:241 ++#: .././mkfs/xfs_mkfs.c:2438 + #, c-format +-msgid "\t\tmagic:%c%c mode:0x%x ver:%d format:%d onlink:%d\n" +-msgstr "\t\tmagic:%c%c mode:0x%x ver:%d format:%d onlin:%d\n" ++msgid "log ag number %d too large, must be less than %lld\n" ++msgstr "liczba ag logu %d zbyt duża, musi być mniejsza niż %lld\n" + +-#: .././logprint/log_print_all.c:245 ++#: .././mkfs/xfs_mkfs.c:2476 + #, c-format +-msgid "\t\tuid:%d gid:%d nlink:%d projid:%u\n" +-msgstr "\t\tuid:%d gid:%d nlink:%d projid:%u\n" ++msgid "" ++"meta-data=%-22s isize=%-6d agcount=%lld, agsize=%lld blks\n" ++" =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" ++" =%-22s crc=%u\n" ++"data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" ++" =%-22s sunit=%-6u swidth=%u blks\n" ++"naming =version %-14u bsize=%-6u ascii-ci=%d ftype=%d\n" ++"log =%-22s bsize=%-6d blocks=%lld, version=%d\n" ++" =%-22s sectsz=%-5u sunit=%d blks, lazy-count=%d\n" ++"realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n" ++msgstr "" ++"metadane=%-22s isize=%-6d agcount=%lld, agsize=%lld bloków\n" ++" =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n" ++" =%-22s crc=%u\n" ++"dane =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" ++" =%-22s sunit=%-6u swidth=%u bloków\n" ++"nazwy =wersja %-14u bsize=%-6u ascii-ci=%d ftype=%d\n" ++"log =%-22s bsize=%-6d blocks=%lld, wersja=%d\n" ++" =%-22s sectsz=%-5u sunit=%d bloków, lazy-count=%d\n" ++"realtime=%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n" + +-#: .././logprint/log_print_all.c:247 ++#: .././mkfs/xfs_mkfs.c:2602 + #, c-format +-msgid "\t\tatime:%d mtime:%d ctime:%d\n" +-msgstr "\t\tatime:%d mtime:%d ctime:%d\n" ++msgid "%s: Growing the data section failed\n" ++msgstr "%s: Powiększenie sekcji danych nie powiodło się\n" + +-#: .././logprint/log_print_all.c:249 ++#: .././mkfs/xfs_mkfs.c:2631 + #, c-format +-msgid "\t\tflushiter:%d\n" +-msgstr "\t\tflushiter:%d\n" ++msgid "%s: filesystem failed to initialize\n" ++msgstr "%s: nie udało się zainicjować systemu plików\n" + +-#: .././logprint/log_print_all.c:250 ++#: .././mkfs/xfs_mkfs.c:2907 + #, c-format +-msgid "\t\tsize:0x%llx nblks:0x%llx exsize:%d nextents:%d anextents:%d\n" +-msgstr "\t\tsize:0x%llx nblks:0x%llx exsize:%d nextents:%d anextents:%d\n" ++msgid "%s: root inode created in AG %u, not AG 0\n" ++msgstr "%s: główny i-węzeł utworzony w AG %u, nie AG 0\n" + +-#: .././logprint/log_print_all.c:254 ++#: .././mkfs/xfs_mkfs.c:2973 + #, c-format +-msgid "\t\tforkoff:%d dmevmask:0x%x dmstate:%d flags:0x%x gen:%d\n" +-msgstr "\t\tforkoff:%d dmevmask:0x%x dmstate:%d flags:0x%x gen:%d\n" ++msgid "Cannot specify both -%c %s and -%c %s\n" ++msgstr "Nie można podać jednocześnie -%c %s i %c %s\n" + +-#: .././logprint/log_print_all.c:274 ++#: .././mkfs/xfs_mkfs.c:2984 + #, c-format +-msgid "\tINODE: #regs:%d ino:0x%llx flags:0x%x dsize:%d\n" +-msgstr "\tINODE: #regs:%d ino:0x%llx flags:0x%x dsize:%d\n" ++msgid "Illegal value %s for -%s option\n" ++msgstr "Niedozwolona wartość %s dla opcji -%s\n" + +-#: .././logprint/log_print_all.c:289 ++#: .././mkfs/xfs_mkfs.c:3001 + #, c-format +-msgid "\t\tDATA FORK EXTENTS inode data:\n" +-msgstr "\t\tDane EKSTENTÓW GAŁĘZI DANYCH i-węzła:\n" ++msgid "-%c %s option requires a value\n" ++msgstr "Opcja -%c %s wymaga wartości\n" + +-#: .././logprint/log_print_all.c:296 ++#: .././mkfs/xfs_mkfs.c:3014 .././repair/xfs_repair.c:164 + #, c-format +-msgid "\t\tDATA FORK BTREE inode data:\n" +-msgstr "\t\tDane B-DRZEWA GAŁĘZI DANYCH i-węzła:\n" ++msgid "option respecified\n" ++msgstr "ponownie podana opcja\n" + +-#: .././logprint/log_print_all.c:303 ++#: .././mkfs/xfs_mkfs.c:3023 .././repair/xfs_repair.c:171 + #, c-format +-msgid "\t\tDATA FORK LOCAL inode data:\n" +-msgstr "\t\tDane LOKALNE GAŁĘZI DANYCH i-węzła:\n" ++msgid "unknown option -%c %s\n" ++msgstr "nieznana opcja -%c %s\n" + +-#: .././logprint/log_print_all.c:310 ++#: .././mkfs/xfs_mkfs.c:3062 + #, c-format +-msgid "\t\tDEV inode: no extra region\n" +-msgstr "\t\tI-węzeł DEV: brak dodatkowego regionu\n" ++msgid "blocksize not available yet.\n" ++msgstr "rozmiar bloku jeszcze nie dostępny.\n" + +-#: .././logprint/log_print_all.c:314 ++#: .././mkfs/xfs_mkfs.c:3088 + #, c-format +-msgid "\t\tUUID inode: no extra region\n" +-msgstr "\t\tI-węzeł UUID: brak dodatkowego regionu\n" ++msgid "" ++"Usage: %s\n" ++"/* blocksize */\t\t[-b log=n|size=num]\n" ++"/* metadata */\t\t[-m crc=[0|1]\n" ++"/* data subvol */\t[-d agcount=n,agsize=n,file,name=xxx,size=num,\n" ++"\t\t\t (sunit=value,swidth=value|su=num,sw=num|noalign),\n" ++"\t\t\t sectlog=n|sectsize=num\n" ++"/* force overwrite */\t[-f]\n" ++"/* inode size */\t[-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,\n" ++"\t\t\t projid32bit=0|1]\n" ++"/* no discard */\t[-K]\n" ++"/* log subvol */\t[-l agnum=n,internal,size=num,logdev=xxx,version=n\n" ++"\t\t\t sunit=value|su=num,sectlog=n|sectsize=num,\n" ++"\t\t\t lazy-count=0|1]\n" ++"/* label */\t\t[-L label (maximum 12 characters)]\n" ++"/* naming */\t\t[-n log=n|size=num,version=2|ci,ftype=0|1]\n" ++"/* no-op info only */\t[-N]\n" ++"/* prototype file */\t[-p fname]\n" ++"/* quiet */\t\t[-q]\n" ++"/* realtime subvol */\t[-r extsize=num,size=num,rtdev=xxx]\n" ++"/* sectorsize */\t[-s log=n|size=num]\n" ++"/* version */\t\t[-V]\n" ++"\t\t\tdevicename\n" ++" is required unless -d name=xxx is given.\n" ++" is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),\n" ++" xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).\n" ++" is xxx (512 byte blocks).\n" ++msgstr "" ++"Składnia: %s\n" ++"/* rozmiar bloku */ [-b log=n|size=liczba]\n" ++"/* metadane */ [-m crc=[0|1]]\n" ++"/* podwolumen danych */ [-d agcount=n,agsize=n,file,name=xxx,size=liczba,\n" ++" (sunit=wartość,swidth=wartość|su=ile,sw=ile|noalign),\n" ++" sectlog=n|sectsize=ile]\n" ++"/* wym. nadpisania */ [-f]\n" ++"/* rozmiar i-węzła */ [-i log=n|perblock=n|size=ile,maxpct=n,attr=0|1|2,\n" ++" projid32bit=0|1]\n" ++"/* bez porzucenia */ [-K]\n" ++"/* podwolumen logu */ [-l agnum=n,internal,size=ile,logdev=xxx,version=n\n" ++" sunit=wartość|su=ile,sectlog=n|sectsize=ile,\n" ++" lazy-count=0|1]\n" ++"/* etykieta */ [-L etykieta (maksymalnie 12 znaków)]\n" ++"/* nazwy */ [-n log=n|size=ile,wersja=2|ci,ftype=0|1]\n" ++"/* tylko info no-op */ [-N]\n" ++"/* plik prototypu */ [-p nazwa_pliku]\n" ++"/* cisza */ [-q]\n" ++"/* podwolumen rt */ [-r extsize=ile,size=ile,rtdev=xxx]\n" ++"/* rozmiar sektora */ [-s log=n|size=ile]\n" ++"/* wersja */ [-V]\n" ++" nazwa_urządzenia\n" ++" jest wymagana, chyba że podano -d name=xxx.\n" ++" to xxx (bajtów), xxxs (sektorów), xxxb (bloków systemu plików),\n" ++" xxxk (xxx KiB), xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB),\n" ++" xxxp (xxx PiB).\n" ++" to xxx (512-bajtowych bloków).\n" + +-#: .././logprint/log_print_all.c:329 ++#: .././quota/edit.c:36 + #, c-format +-msgid "\t\tATTR FORK EXTENTS inode data:\n" +-msgstr "\t\tDane EKSTENTÓW GAŁĘZI ATRYBUTÓW i-węzła:\n" ++msgid "" ++"\n" ++" modify quota limits for the specified user\n" ++"\n" ++" Example:\n" ++" 'limit bsoft=100m bhard=110m tanya\n" ++"\n" ++" Changes the soft and/or hard block limits, inode limits and/or realtime\n" ++" block limits that are currently being used for the specified user, group,\n" ++" or project. The filesystem identified by the current path is modified.\n" ++" -d -- set the default values, used the first time a file is created\n" ++" -g -- modify group quota limits\n" ++" -p -- modify project quota limits\n" ++" -u -- modify user quota limits\n" ++" The block limit values can be specified with a units suffix - accepted\n" ++" units are: k (kilobytes), m (megabytes), g (gigabytes), and t (terabytes).\n" ++" The user/group/project can be specified either by name or by number.\n" ++"\n" ++msgstr "" ++"\n" ++" zmiana limitów quot dla podanego użytkownika\n" ++"\n" ++"Przykład:\n" ++" 'limit bsoft=100m bhard=110m tanya'\n" ++"\n" ++" limit zmienia miękki i/lub twardy limit bloków, limity i-węzłów i/lub limity\n" ++" bloków realtime aktualnie używane dla podanego użytkownika, grupy lub projektu.\n" ++" System plików określony bieżącą ścieżką jest modyfikowany.\n" ++" -d - ustawienie wartości domyślnych, użytych pierwszy raz przy tworzeniu pliku\n" ++" -g - zmiana limitów quot grupy\n" ++" -p - zmiana limitów quot projektu\n" ++" -u - zmiana limitów quot użytkownika\n" ++" Wartości limitów bloków mogą być podane z końcówką jednostki - przyjmowane\n" ++" jednostki to: k (kilobajty), m (megabajty), g (gigabajty) i t (terabajty).\n" ++" Użytkownik/grupa/projekt może być podany za pomocą nazwy lub numeru.\n" ++"\n" + +-#: .././logprint/log_print_all.c:337 ++#: .././quota/edit.c:59 + #, c-format +-msgid "\t\tATTR FORK BTREE inode data:\n" +-msgstr "\t\tDane B-DRZEWA GAŁĘZI ATRYBUTÓW i-węzła:\n" ++msgid "" ++"\n" ++" modify quota enforcement timeout for the current filesystem\n" ++"\n" ++" Example:\n" ++" 'timer -i 3days'\n" ++" (soft inode limit timer is changed to 3 days)\n" ++"\n" ++" Changes the timeout value associated with the block limits, inode limits\n" ++" and/or realtime block limits for all users, groups, or projects on the\n" ++" current filesystem.\n" ++" As soon as a user consumes the amount of space or number of inodes set as\n" ++" the soft limit, a timer is started. If the timer expires and the user is\n" ++" still over the soft limit, the soft limit is enforced as the hard limit.\n" ++" The default timeout is 7 days.\n" ++" -d -- set the default values, used the first time a file is created\n" ++" -g -- modify group quota timer\n" ++" -p -- modify project quota timer\n" ++" -u -- modify user quota timer\n" ++" -b -- modify the blocks-used timer\n" ++" -i -- modify the inodes-used timer\n" ++" -r -- modify the blocks-used timer for the (optional) realtime subvolume\n" ++" The timeout value is specified as a number of seconds, by default.\n" ++" However, a suffix may be used to alternatively specify minutes (m),\n" ++" hours (h), days (d), or weeks (w) - either the full word or the first\n" ++" letter of the word can be used.\n" ++"\n" ++msgstr "" ++"\n" ++" zmiana czasu wymuszenia limitów dla bieżącego systemu plików\n" ++"\n" ++" Przykład:\n" ++" 'timer -i 3days'\n" ++" (zmiana czasu wymuszenia miękkiego limitu i-węzłów na 3 dni)\n" ++"\n" ++" timer zmienia wartość ograniczenia czasu związanego z limitami bloków,\n" ++" limitami i-węzłów i/lub limitami bloków realtime dla wszystkich użytkowników,\n" ++" grup lub projektów na bieżącym systemie plików.\n" ++" Po tym jak użytkownik wykorzysta ilość miejsca lub liczbę i-węzłów ustawioną\n" ++" jako miękki limit, zaczyna działać zegar. Kiedy czas minie, a użytkownik nadal\n" ++" przekracza miękki limit, miękki limit staje się twardym.\n" ++" Domyślne ograniczenie czasowe to 7 dni.\n" ++" -d - ustawienie wartości domyślnych, użytych pierwszy raz przy tworzeniu pliku\n" ++" -g - zmiana czasu dla limitów quot grup\n" ++" -p - zmiana czasu dla limitów quot projektów\n" ++" -u - zmiana czasu dla limitów quot użytkowników\n" ++" -b - zmiana czasu dla użytych bloków\n" ++" -i - zmiana czasu dla użytych i-węzłów\n" ++" -r - zmiana czasu dla użytych bloków na (opcjonalnym) podwolumenie realtime\n" ++" Wartość ograniczenia czasu jest podawana domyślnie jako liczba sekund.\n" ++" Jednak można dodać końcówkę, aby podać czas w minutach (m), godzinach (h),\n" ++" dniach (d) lub tygodniach (w) - można użyć pełnego słowa lub pierwsze litery.\n" ++"\n" + +-#: .././logprint/log_print_all.c:345 ++#: .././quota/edit.c:91 + #, c-format +-msgid "\t\tATTR FORK LOCAL inode data:\n" +-msgstr "\t\tDane LOKALNE GAŁĘZI ATRYBUTÓW i-węzła:\n" ++msgid "" ++"\n" ++" modify the number of quota warnings sent to the specified user\n" ++"\n" ++" Example:\n" ++" 'warn 2 jimmy'\n" ++" (tell the quota system that two warnings have been sent to user jimmy)\n" ++"\n" ++" Changes the warning count associated with the block limits, inode limits\n" ++" and/or realtime block limits for the specified user, group, or project.\n" ++" When a user has been warned the maximum number of times allowed, the soft\n" ++" limit is enforced as the hard limit. It is intended as an alternative to\n" ++" the timeout system, where the system administrator updates a count of the\n" ++" number of warnings issued to people, and they are penalised if the warnings\n" ++" are ignored.\n" ++" -d -- set maximum warning count, which triggers soft limit enforcement\n" ++" -g -- set group quota warning count\n" ++" -p -- set project quota warning count\n" ++" -u -- set user quota warning count\n" ++" -b -- set the blocks-used warning count\n" ++" -i -- set the inodes-used warning count\n" ++" -r -- set the blocks-used warn count for the (optional) realtime subvolume\n" ++" The user/group/project can be specified either by name or by number.\n" ++"\n" ++msgstr "" ++"\n" ++" zmiana liczby ostrzeżeń quot wysyłanych do podanego użytkownika\n" ++"\n" ++" Przykład:\n" ++" 'warn 2 jimmy'\n" ++" (przekazanie systemowi quota, że wysłano 2 ostrzeżenia do użytkownika jimmy)\n" ++"\n" ++" warn zmienia liczbę ostrzeżeń związanych z limitami bloków, limitami i-węzłów\n" ++" i/lub limitami bloków realtime dla podanego użytkownika, grupy lub projektu.\n" ++" Kiedy użytkownik został ostrzeżony maksymalną dozwoloną liczbę razy, miękki\n" ++" limit staje się twardym. Jest to pomyślane jako alternatywa dla systemu\n" ++" ograniczeń czasowych, gdzie administrator uaktualnia licznik ostrzeżeń\n" ++" wysłanych do ludzi i karze użytkowników ignorujących ostrzeżenia.\n" ++" -d - ustawienie maksymalnej liczby ostrzeżeń, po której wymuszane są limity\n" ++" -g - ustawienie liczby ostrzeżeń dla grupy\n" ++" -p - ustawienie liczby ostrzeżeń dla projektu\n" ++" -u - ustawienie liczby ostrzeżeń dla grupy\n" ++" -b - ustawienie liczby ostrzeżeń dla użytych bloków\n" ++" -i - ustawienie liczby ostrzeżeń dla użytych i-węzłów\n" ++" -r - ustawienie liczby ostrzeżeń dla użytych bloków na podwolumenie realtime\n" ++" Użytkownik/grupa/projekt może być podany za pomocą nazwy lub numeru.\n" ++"\n" + +-#: .././logprint/log_print_all.c:370 ++#: .././quota/edit.c:145 + #, c-format +-msgid "\tEFD: #regs: %d num_extents: %d id: 0x%llx\n" +-msgstr "\tEFD: #regs: %d num_extents: %d id: 0x%llx\n" ++msgid "%s: cannot set limits: %s\n" ++msgstr "%s: nie można ustawić limitów: %s\n" + +-#: .././logprint/log_print_all.c:394 ++#: .././quota/edit.c:166 .././quota/edit.c:569 + #, c-format +-msgid "%s: xlog_recover_print_efi: malloc failed\n" +-msgstr "%s: xlog_recover_print_efi: malloc nie powiodło się\n" ++msgid "%s: invalid user name: %s\n" ++msgstr "%s: nieprawidłowa nazwa użytkownika: %s\n" + +-#: .././logprint/log_print_all.c:402 ++#: .././quota/edit.c:189 .././quota/edit.c:586 + #, c-format +-msgid "\tEFI: #regs:%d num_extents:%d id:0x%llx\n" +-msgstr "\tEFI: #regs:%d num_extents:%d id:0x%llx\n" ++msgid "%s: invalid group name: %s\n" ++msgstr "%s: nieprawidłowa nazwa grupy: %s\n" + +-#: .././logprint/log_print_all.c:442 ++#: .././quota/edit.c:212 .././quota/edit.c:603 + #, c-format +-msgid "xlog_recover_print_logitem: illegal type\n" +-msgstr "xlog_recover_print_logitem: niedozwolony typ\n" ++msgid "%s: invalid project name: %s\n" ++msgstr "%s: nieprawidłowa nazwa projektu: %s\n" + +-#: .././logprint/log_print_all.c:473 ++#: .././quota/edit.c:237 + #, c-format +-msgid "%s: illegal type" +-msgstr "%s: niedozwolony typ" ++msgid "%s: Error: could not parse size %s.\n" ++msgstr "%s: Błąd: nie udało się przeanalizować rozmiaru %s.\n" + +-#: .././logprint/log_print_all.c:481 ++#: .././quota/edit.c:243 + #, c-format +-msgid ": cnt:%d total:%d " +-msgstr ": cnt:%d total:%d " ++msgid "%s: Warning: `%s' in quota blocks is 0 (unlimited).\n" ++msgstr "%s: Uwaga: `%s' w blokach limitów wynosi 0 (bez ograniczeń).\n" + +-#: .././logprint/log_print_all.c:483 ++#: .././quota/edit.c:332 + #, c-format +-msgid "a:0x%lx len:%d " +-msgstr "a:0x%lx len:%d " ++msgid "%s: unrecognised argument %s\n" ++msgstr "%s: nierozpoznany argument %s\n" + +-#: .././libxlog/util.c:37 ++#: .././quota/edit.c:339 + #, c-format +-msgid "" +-"* ERROR: mismatched uuid in log\n" +-"* SB : %s\n" +-"* log: %s\n" +-msgstr "" +-"* BŁĄD: niepasujący uuid w logu\n" +-" SB : %s\n" +-" log: %s\n" ++msgid "%s: cannot find any valid arguments\n" ++msgstr "%s: nie można znaleźć żadnych poprawnych argumentów\n" + +-#: .././libxlog/util.c:50 ++#: .././quota/edit.c:447 + #, c-format +-msgid "" +-"\n" +-"LOG REC AT LSN cycle %d block %d (0x%x, 0x%x)\n" +-msgstr "" +-"\n" +-"LOG REC AT LSN cykl %d blok %d (0x%x, 0x%x)\n" ++msgid "%s: fopen on %s failed: %s\n" ++msgstr "%s: fopen na %s nie powiodło się: %s\n" + +-#: .././libxlog/util.c:58 ++#: .././quota/edit.c:479 + #, c-format +-msgid "* ERROR: bad magic number in log header: 0x%x\n" +-msgstr "* BŁĄD: błędna liczba magiczna w nagłówku logu: 0x%x\n" ++msgid "%s: cannot set timer: %s\n" ++msgstr "%s: nie można ustawić czasu: %s\n" + +-#: .././libxlog/util.c:67 ++#: .././quota/edit.c:553 + #, c-format +-msgid "* ERROR: log format incompatible (log=%d, ours=%d)\n" +-msgstr "* BŁĄD: niekompatybilny format logu (log=%d, nasz=%d)\n" ++msgid "%s: cannot set warnings: %s\n" ++msgstr "%s: nie można ustawić ostrzeżeń: %s\n" + +-#: .././libxlog/util.c:77 .././libxlog/util.c:89 +-msgid "Bad log" +-msgstr "Błędny log" +- +-#: .././libxfs/freebsd.c:49 +-#, c-format +-msgid "%s: %s possibly contains a mounted filesystem\n" +-msgstr "%s: %s może zawierać podmontowany system plików\n" +- +-#: .././libxfs/freebsd.c:60 .././libxfs/linux.c:67 +-#, c-format +-msgid "%s: %s contains a mounted filesystem\n" +-msgstr "%s: %s zawiera podmontowany system plików\n" +- +-#: .././libxfs/freebsd.c:75 .././libxfs/linux.c:85 +-#, c-format +-msgid "%s: %s contains a possibly writable, mounted filesystem\n" +-msgstr "%s: %s zawiera podmontowany, być może zapisywalny system plików\n" +- +-#: .././libxfs/freebsd.c:89 .././libxfs/linux.c:99 +-#, c-format +-msgid "%s: %s contains a mounted and writable filesystem\n" +-msgstr "%s: %s zawiera podmontowany, zapisywalny system plików\n" +- +-#: .././libxfs/freebsd.c:116 .././libxfs/darwin.c:76 .././libxfs/irix.c:58 +-#: .././libxfs/linux.c:138 +-#, c-format +-msgid "%s: cannot stat the device file \"%s\": %s\n" +-msgstr "%s: nie można wykonać stat na pliku urządzenia \"%s\": %s\n" +- +-#: .././libxfs/freebsd.c:129 +-#, c-format +-msgid "%s: Not a device or file: \"%s\"\n" +-msgstr "%s: Nie jest urządzeniem ani plikiem: \"%s\"\n" +- +-#: .././libxfs/freebsd.c:135 +-#, c-format +-msgid "%s: DIOCGMEDIASIZE failed on \"%s\": %s\n" +-msgstr "%s: DIOCGMEDIASIE nie powiodło się dla \"%s\": %s\n" +- +-#: .././libxfs/freebsd.c:141 +-#, c-format +-msgid "%s: DIOCGSECTORSIZE failed on \"%s\": %s\n" +-msgstr "%s: DIOCGSECTORSIZE nie powiodło się dla \"%s\": %s\n" +- +-#: .././libxfs/freebsd.c:196 .././libxfs/darwin.c:139 .././libxfs/irix.c:106 +-#: .././libxfs/linux.c:216 +-#, c-format +-msgid "%s: can't determine memory size\n" +-msgstr "%s: nie można określić rozmiaru pamięci\n" +- +-#: .././libxfs/util.c:707 +-#, c-format +-msgid "%s: cannot reserve space: %s\n" +-msgstr "%s: nie można zarezerwować przestrzeni: %s\n" +- +-#: .././libxfs/darwin.c:41 +-#, c-format +-msgid "%s: error opening the device special file \"%s\": %s\n" +-msgstr "%s: błąd podczas otwierania pliku specjalnego urządzenia \"%s\": %s\n" +- +-#: .././libxfs/darwin.c:48 +-#, c-format +-msgid "%s: can't tell if \"%s\" is writable: %s\n" +-msgstr "%s: nie można stwierdzić czy \"%s\" jest zapisywalny: %s\n" +- +-#: .././libxfs/darwin.c:86 +-#, c-format +-msgid "%s: can't determine device size: %s\n" +-msgstr "%s: nie można określić rozmiaru urządzenia: %s\n" +- +-#: .././libxfs/kmem.c:15 +-#, c-format +-msgid "%s: zone init failed (%s, %d bytes): %s\n" +-msgstr "%s: inicjalizacja strefy nie powiodła się (%s, %d bajtów): %s\n" +- +-#: .././libxfs/kmem.c:32 +-#, c-format +-msgid "%s: zone alloc failed (%s, %d bytes): %s\n" +-msgstr "%s: przydzielenie strefy nie powiodło się (%s, %d bajtów): %s\n" +- +-#: .././libxfs/kmem.c:56 +-#, c-format +-msgid "%s: malloc failed (%d bytes): %s\n" +-msgstr "%s: malloc nie powiodło się (%d bajtów): %s\n" +- +-#: .././libxfs/kmem.c:77 +-#, c-format +-msgid "%s: realloc failed (%d bytes): %s\n" +-msgstr "%s: realloc nie powiodło się (%d bajtów): %s\n" +- +-#: .././libxfs/linux.c:114 +-#, c-format +-msgid "%s: %s - cannot set blocksize %d on block device %s: %s\n" +-msgstr "%s: %s - nie można ustawić rozmiaru bloku %d dla urządzenia blokowego %s: %s\n" ++#: .././quota/edit.c:689 ++msgid "[-gpu] bsoft|bhard|isoft|ihard|rtbsoft|rtbhard=N -d|id|name" ++msgstr "[-gpu] bsoft|bhard|isoft|ihard|rtbsoft|rtbhard=N -d|id|nazwa" + +-#: .././libxfs/linux.c:161 +-#, c-format +-msgid "%s: can't determine device size\n" +-msgstr "%s: nie można określić rozmiaru urządzenia\n" ++#: .././quota/edit.c:690 ++msgid "modify quota limits" ++msgstr "zmiana limitów quot" + +-#: .././libxfs/linux.c:169 +-#, c-format +-msgid "%s: warning - cannot get sector size from block device %s: %s\n" +-msgstr "%s: uwaga - nie można pobrać rozmiaru sektora urządzenia blokowego %s: %s\n" ++#: .././quota/edit.c:697 .././quota/report.c:33 .././quota/report.c:635 ++msgid "[-gpu] [-f file]" ++msgstr "[-gpu] [-f plik]" + +-#: .././libxfs/init.c:80 .././libxfs/init.c:179 +-#, c-format +-msgid "%s: %s: device %lld is not open\n" +-msgstr "%s: %s: urządzenie %lld nie jest otwarte\n" ++#: .././quota/edit.c:698 ++msgid "restore quota limits from a backup file" ++msgstr "odtworzenie limitów quot z pliku kopii zapasowej" + +-#: .././libxfs/init.c:116 +-#, c-format +-msgid "%s: cannot stat %s: %s\n" +-msgstr "%s: nie można wykonać stat na %s: %s\n" ++#: .././quota/edit.c:704 .././quota/edit.c:712 ++msgid "[-bir] [-gpu] value -d|id|name" ++msgstr "[-bir] [-gpu] wartość -d|id|nazwa" + +-#: .././libxfs/init.c:141 +-#, c-format +-msgid "%s: device %lld is already open\n" +-msgstr "%s: urządzenie %lld jest już otwarte\n" ++#: .././quota/edit.c:705 ++msgid "get/set quota enforcement timeouts" ++msgstr "pobranie/ustawienie czasu wymuszenia quot" + +-#: .././libxfs/init.c:154 +-#, c-format +-msgid "%s: %s: too many open devices\n" +-msgstr "%s: %s: zbyt dużo otwartych urządzeń\n" ++#: .././quota/edit.c:713 ++msgid "get/set enforcement warning counter" ++msgstr "pobranie/ustawienie licznika ostrzeżeń" + +-#: .././libxfs/init.c:197 ++#: .././quota/free.c:29 + #, c-format +-msgid "%s: can't find a character device matching %s\n" +-msgstr "%s: nie można odnaleźć urządzenia znakowego odpowiadającego %s\n" ++msgid "" ++"\n" ++" reports the number of free disk blocks and inodes\n" ++"\n" ++" This command reports the number of total, used, and available disk blocks.\n" ++" It can optionally report the same set of numbers for inodes and realtime\n" ++" disk blocks, and will report on all known XFS filesystem mount points and\n" ++" project quota paths by default (see 'print' command for a list).\n" ++" -b -- report the block count values\n" ++" -i -- report the inode count values\n" ++" -r -- report the realtime block count values\n" ++" -h -- report in a human-readable format\n" ++" -N -- suppress the header from the output\n" ++"\n" ++msgstr "" ++"\n" ++" informacje o liczbie wolnych bloków i i-węzłów dysku\n" ++"\n" ++" To polecenie informuje o liczbie wszystkich, używanych i dostępnych bloków\n" ++" dysku. Opcjonalnie informuje o tym samym zestawie liczb dla i-węzłów i bloków\n" ++" realtime oraz domyślnie zgłasza wszystkie znane punkty montowania systemu\n" ++" plików XFS i ścieżki quot projektów (patrz lista w poleceniu 'print').\n" ++" -b - informacje o liczbach bloków\n" ++" -i - informacje o liczbach i-węzłów\n" ++" -r - informacje o liczbach bloków realtime\n" ++" -h - informacje w postaci czytelnej dla człowieka\n" ++" -N - pominięcie nagłówka z wyjścia\n" ++"\n" + +-#: .././libxfs/init.c:203 ++#: .././quota/free.c:154 + #, c-format +-msgid "%s: can't find a block device matching %s\n" +-msgstr "%s: nie można odnaleźć urządzenia blokowego odpowiadającego %s\n" ++msgid "%s: project quota flag not set on %s\n" ++msgstr "%s: flaga quot projektu nie ustawiona dla %s\n" + +-#: .././libxfs/init.c:320 ++#: .././quota/free.c:163 + #, c-format +-msgid "%s: can't get size for data subvolume\n" +-msgstr "%s: nie można pobrać rozmiaru podwolumenu danych\n" ++msgid "%s: project ID %u (%s) doesn't match ID %u (%s)\n" ++msgstr "%s: ID projektu %u (%s) nie zgadza się z ID %u (%s)\n" + +-#: .././libxfs/init.c:325 ++#: .././quota/free.c:229 + #, c-format +-msgid "%s: can't get size for log subvolume\n" +-msgstr "%s: nie można pobrać rozmiaru podwolumenu logu\n" ++msgid "Filesystem " ++msgstr "System plików " + +-#: .././libxfs/init.c:330 ++#: .././quota/free.c:229 + #, c-format +-msgid "%s: can't get size for realtime subvolume\n" +-msgstr "%s: nie można pobrać rozmiaru podwolumenu realtime\n" ++msgid "Filesystem " ++msgstr "System plików " + +-#: .././libxfs/init.c:430 ++#: .././quota/free.c:232 + #, c-format +-msgid "%s: cannot read realtime bitmap inode (%d)\n" +-msgstr "%s: nie można odczytać i-węzła bitmapy realtime (%d)\n" ++msgid " Size Used Avail Use%%" ++msgstr " Rozmiar Użyto Dost. %%uż." + +-#: .././libxfs/init.c:440 ++#: .././quota/free.c:233 + #, c-format +-msgid "%s: cannot read realtime summary inode (%d)\n" +-msgstr "%s: nie można odczytać i-węzła opisu realtime (%d)\n" ++msgid " 1K-blocks Used Available Use%%" ++msgstr " Bloki 1K Użyto Dostępnych %%uż." + +-#: .././libxfs/init.c:464 ++#: .././quota/free.c:236 + #, c-format +-msgid "%s: filesystem has a realtime subvolume\n" +-msgstr "%s: system plików ma podwolumen realtime\n" ++msgid " Inodes Used Free Use%%" ++msgstr " I-węzły Użyto Wolne %%uż." + +-#: .././libxfs/init.c:486 ++#: .././quota/free.c:237 + #, c-format +-msgid "%s: realtime init - %llu != %llu\n" +-msgstr "%s: inicjalizacja realtime - %llu != %llu\n" ++msgid " Inodes IUsed IFree IUse%%" ++msgstr " I-węzły UżytoI WolneI %%użI" + +-#: .././libxfs/init.c:494 ++#: .././quota/free.c:238 + #, c-format +-msgid "%s: realtime size check failed\n" +-msgstr "%s: sprawdzenie rozmiaru realtime nie powiodło się\n" ++msgid " Pathname\n" ++msgstr " Ścieżka\n" + +-#: .././libxfs/init.c:699 +-#, c-format +-msgid "%s: size check failed\n" +-msgstr "%s: sprawdzenie rozmiaru nie powiodło się\n" ++#: .././quota/free.c:370 ++msgid "[-bir] [-hn] [-f file]" ++msgstr "[-bir] [hn] [-f plik]" + +-#: .././libxfs/init.c:708 +-#, c-format +-msgid "%s: WARNING - filesystem uses v1 dirs,limited functionality provided.\n" +-msgstr "%s: UWAGA - system plików używa katalogów v1, funkcjonalność jest ograniczona.\n" ++#: .././quota/free.c:371 ++msgid "show free and used counts for blocks and inodes" ++msgstr "pokazanie liczby wolnych i zajętych bloków i i-węzłów" + +-#: .././libxfs/init.c:728 ++#: .././quota/init.c:48 + #, c-format +-msgid "%s: data size check failed\n" +-msgstr "%s: sprawdzenie rozmiaru danych nie powiodło się\n" ++msgid "Usage: %s [-V] [-x] [-p prog] [-c cmd]... [-d project]... [path]\n" ++msgstr "Składnia: %s [-V] [-x] [-p program] [-c polecenie]... [-d projekt]... [ścieżka]\n" + +-#: .././libxfs/init.c:741 ++#: .././quota/path.c:39 + #, c-format +-msgid "%s: log size checks failed\n" +-msgstr "%s: sprawdzenie rozmiaru logu nie powiodło się\n" ++msgid "%sFilesystem Pathname\n" ++msgstr "%sSystem plików Ścieżka\n" + +-#: .././libxfs/init.c:752 +-#, c-format +-msgid "%s: realtime device init failed\n" +-msgstr "%s: inicjalizacja urządzenia realtime nie powiodła się\n" ++#: .././quota/path.c:40 ++msgid " " ++msgstr " " + +-#: .././libxfs/init.c:759 ++#: .././quota/path.c:43 + #, c-format +-msgid "%s: perag init failed\n" +-msgstr "%s: nie udało się zainicjować perag\n" ++msgid "%c%03d%c " ++msgstr "%c%03d%c " + +-#: .././libxfs/init.c:771 ++#: .././quota/path.c:45 + #, c-format +-msgid "%s: cannot read root inode (%d)\n" +-msgstr "%s: nie można odczytać i-węzła głównego (%d)\n" ++msgid "%-19s %s" ++msgstr "%-19s %s" + +-#: .././libxfs/init.c:791 ++#: .././quota/path.c:48 + #, c-format +-msgid "%s: cannot init perag data (%d)\n" +-msgstr "%s: nie można zainicjować tabeli perag (%d)\n" ++msgid " (project %u" ++msgstr " (projekt %u" + +-#: .././libxfs/rdwr.c:40 ++#: .././quota/path.c:50 + #, c-format +-msgid "%s: %s can't memalign %d bytes: %s\n" +-msgstr "%s: %s nie można wykonać memalign dla %d bajtów: %s\n" ++msgid ", %s" ++msgstr ", %s" + +-#: .././libxfs/rdwr.c:50 ++#: .././quota/path.c:103 + #, c-format +-msgid "%s: %s seek to offset %llu failed: %s\n" +-msgstr "%s: %s zmiana offsetu na %llu nie powiodła się: %s\n" ++msgid "No paths are available\n" ++msgstr "Brak ścieżek\n" + +-#: .././libxfs/rdwr.c:60 +-#, c-format +-msgid "%s: %s write failed: %s\n" +-msgstr "%s: %s zapis nie powiódł się: %s\n" ++#: .././quota/path.c:131 ++msgid "set current path, or show the list of paths" ++msgstr "ustawienie bieżącej ścieżki lub pokazanie listy ścieżek" + +-#: .././libxfs/rdwr.c:64 +-#, c-format +-msgid "%s: %s not progressing?\n" +-msgstr "%s: %s nie postępuje?\n" ++#: .././quota/path.c:139 ++msgid "list known mount points and projects" ++msgstr "wypisanie znanych punktów montowań i projektów" + +-#: .././libxfs/rdwr.c:336 ++#: .././quota/project.c:45 + #, c-format +-msgid "%s: %s can't memalign %u bytes: %s\n" +-msgstr "%s: %s nie można wykonać memalign dla %u bajtów: %s\n" ++msgid "" ++"\n" ++" list projects or setup a project tree for tree quota management\n" ++"\n" ++" Example:\n" ++" 'project -c logfiles'\n" ++" (match project 'logfiles' to a directory, and setup the directory tree)\n" ++"\n" ++" Without arguments, report all projects found in the /etc/projects file.\n" ++" The project quota mechanism in XFS can be used to implement a form of\n" ++" directory tree quota, where a specified directory and all of the files\n" ++" and subdirectories below it (i.e. a tree) can be restricted to using a\n" ++" subset of the available space in the filesystem.\n" ++"\n" ++" A managed tree must be setup initially using the -c option with a project.\n" ++" The specified project name or identifier is matched to one or more trees\n" ++" defined in /etc/projects, and these trees are then recursively descended\n" ++" to mark the affected inodes as being part of that tree - which sets inode\n" ++" flags and the project identifier on every file.\n" ++" Once this has been done, new files created in the tree will automatically\n" ++" be accounted to the tree based on their project identifier. An attempt to\n" ++" create a hard link to a file in the tree will only succeed if the project\n" ++" identifier matches the project identifier for the tree. The xfs_io utility\n" ++" can be used to set the project ID for an arbitrary file, but this can only\n" ++" be done by a privileged user.\n" ++"\n" ++" A previously setup tree can be cleared from project quota control through\n" ++" use of the -C option, which will recursively descend the tree, clearing\n" ++" the affected inodes from project quota control.\n" ++"\n" ++" The -c option can be used to check whether a tree is setup, it reports\n" ++" nothing if the tree is correct, otherwise it reports the paths of inodes\n" ++" which do not have the project ID of the rest of the tree, or if the inode\n" ++" flag is not set.\n" ++"\n" ++" The -p option can be used to manually specify project path without\n" ++" need to create /etc/projects file. This option can be used multiple times\n" ++" to specify multiple paths. When using this option only one projid/name can\n" ++" be specified at command line. Note that /etc/projects is also used if exists.\n" ++"\n" ++" The -d option allows to descend at most levels of directories\n" ++" below the command line arguments. -d 0 means only apply the actions\n" ++" to the top level of the projects. -d -1 means no recursion limit (default).\n" ++"\n" ++" The /etc/projid and /etc/projects file formats are simple, and described\n" ++" on the xfs_quota man page.\n" ++"\n" ++msgstr "" ++"\n" ++" wypisanie projektów lub ustanowienie drzewa projektu do zarządzania limitami\n" ++"\n" ++" Przykład:\n" ++" 'project -c logfiles'\n" ++" (dopasowanie projektu 'logfiles' do katalogu i ustanowienie drzewa katalogów)\n" ++"\n" ++" Bez argumentów project wypisuje wszystkie projekty znalezione w pliku\n" ++" /etc/projects. Mechanizm quota dla projektów w XFS-ie może być używany do\n" ++" zaimplementowania formy limitów dla drzewa katalogów, gdzie podany katalog\n" ++" i wszystkie pliki i podkatalogi poniżej niego (czyli drzewo) mogą być\n" ++" ograniczone do używania podzbioru miejsca dostępnego w systemie plików.\n" ++"\n" ++" Zarządzane drzewo musi być ustanowione początkowo przy użyciu opcji project -c.\n" ++" Podana nazwa lub identyfikator projektu jest dopasowywany do jednego lub\n" ++" większej liczby drzew zdefiniowanych w /etc/projects, a następnie te drzewa są\n" ++" rekurencyjnie przechodzone w celu oznaczenia i-węzłów jako będących częścią\n" ++" tego drzewa - co ustawia flagi i-węzłów i identyfikator projektu dla każdego\n" ++" pliku.\n" ++" Po zrobieniu tego nowe pliki tworzone w drzewie będą automatycznie liczone jako\n" ++" część drzewa o ich identyfikatorze projektu. Próba utworzenia dowiązania\n" ++" zwykłego do pliku w drzewie powiedzie się tylko jeśli identyfikator projektu\n" ++" pasuje do identyfikatora projektu drzewa. Można użyć narzędzia xfs_io do\n" ++" ustawienia ID projektu dla dowolnego pliku, ale może tego dokonać tylko\n" ++" uprzywilejowany użytkownik.\n" ++"\n" ++" Poprzednio ustanowione drzewa można usunąć z kontroli limitów projektu poprzez\n" ++" użycie opcji -C, która rekurencyjnie przejdzie drzewo, usuwając i-węzły spod\n" ++" kontroli limitów projektu.\n" ++"\n" ++" Opcji -c można użyć do sprawdzenia czy drzewo zostało ustanowione - nie\n" ++" informuje o niczym jeśli drzewo jest poprawne, a w przeciwnym wypadku zgłasza\n" ++" ścieżki i-węzłów nie mające ID projektu takiego jak reszta drzewa lub nie\n" ++" mające ustawionej flagi.\n" ++"\n" ++" Opcja -p <ścieżka> umożliwia podanie ścieżki projektu w linii poleceń\n" ++" bez potrzeby tworzenia pliku /etc/projects. Ta opcja może być używana\n" ++" wielokrotnie w celu przekazanie wielu ścieżek projektu. Tylko jeden\n" ++" identyfikator projektu może być podawy w linii poleceń w momencie\n" ++" używania opcji -p. Jeśli plik /etc/projects istnieje to także jest używany\n" ++" oprócz ścieżek w linii poleceń.\n" ++"\n" ++" Opcja -d pozwala na ograniczanie zagłębiania się w podkatalogach\n" ++" projektu do granicy . -d 0 oznacza najwyższy poziom. -d 1 oznacza\n" ++" brak limitu zagłębiania (domyślny).\n" ++"\n" ++" Format plików /etc/projid i /etc/projects jest prosty i opisany na stronie\n" ++" manuala xfs_quota.\n" ++"\n" + +-#: .././libxfs/rdwr.c:425 ++#: .././quota/project.c:108 .././quota/project.c:153 .././quota/project.c:200 + #, c-format +-msgid "Warning: recursive buffer locking at block % detected\n" +-msgstr "Uwaga: wykryto rekurencyjną blokadę bufora na bloku %\n" ++msgid "%s: cannot stat file %s\n" ++msgstr "%s: nie można wykonać stat na pliku %s\n" + +-#: .././libxfs/rdwr.c:519 ++#: .././quota/project.c:112 .././quota/project.c:157 .././quota/project.c:204 + #, c-format +-msgid "%s: read failed: %s\n" +-msgstr "%s: odczyt nie powiódł się: %s\n" ++msgid "%s: skipping special file %s\n" ++msgstr "%s: pominięto plik specjalny %s\n" + +-#: .././libxfs/rdwr.c:525 ++#: .././quota/project.c:126 + #, c-format +-msgid "%s: error - read only %d of %d bytes\n" +-msgstr "%s: błąd - odczytano tylko %d z %d bajtów\n" ++msgid "%s - project identifier is not set (inode=%u, tree=%u)\n" ++msgstr "%s - identyfikator projektu nie ustawiony (i-węzeł=%u, drzewo=%u)\n" + +-#: .././libxfs/rdwr.c:568 ++#: .././quota/project.c:130 + #, c-format +-msgid "%s: pwrite64 failed: %s\n" +-msgstr "%s: pwrite64 nie powiodło się: %s\n" ++msgid "%s - project inheritance flag is not set\n" ++msgstr "%s - flaga dziedziczenia projektu nie ustawiona\n" + +-#: .././libxfs/rdwr.c:574 ++#: .././quota/project.c:178 + #, c-format +-msgid "%s: error - wrote only %d of %d bytes\n" +-msgstr "%s: błąd - zapisano tylko %d z %d bajtów\n" ++msgid "%s: cannot clear project on %s: %s\n" ++msgstr "%s: nie można usunąć projektu z %s: %s\n" + +-#: .././libxfs/trans.c:33 ++#: .././quota/project.c:225 + #, c-format +-msgid "%s: xact calloc failed (%d bytes): %s\n" +-msgstr "%s: xact calloc nie powiodło się (%d bajtów): %s\n" ++msgid "%s: cannot set project on %s: %s\n" ++msgstr "%s: nie można ustawić projektu na %s: %s\n" + +-#: .././libxfs/trans.c:602 ++#: .././quota/project.c:240 + #, c-format +-msgid "%s: warning - itobp failed (%d)\n" +-msgstr "%s: uwaga - itobp nie powiodło się (%d)\n" ++msgid "Checking project %s (path %s)...\n" ++msgstr "Sprawdzanie projektu %s (ścieżka %s)...\n" + +-#: .././libxfs/trans.c:610 ++#: .././quota/project.c:244 + #, c-format +-msgid "%s: warning - iflush_int failed (%d)\n" +-msgstr "%s: uwaga - iflush_int nie powiodło się (%d)\n" ++msgid "Setting up project %s (path %s)...\n" ++msgstr "Ustanawianie projektu %s (ścieżka %s)...\n" + +-#: .././libxfs/trans.c:682 .././libxfs/trans.c:741 ++#: .././quota/project.c:248 + #, c-format +-msgid "%s: unrecognised log item type\n" +-msgstr "%s: nierozpoznany typ elementu logu\n" ++msgid "Clearing project %s (path %s)...\n" ++msgstr "Usuwanie projektu %s (ścieżka %s)...\n" + +-#: .././libxcmd/command.c:85 ++#: .././quota/project.c:271 + #, c-format +-msgid "bad argument count %d to %s, expected at least %d arguments\n" +-msgstr "błędna liczba argumentów %d dla %s, oczekiwano co najmniej %d argumentów\n" ++msgid "Processed %d (%s and cmdline) paths for project %s with recursion depth %s (%d).\n" ++msgstr "" ++"Przetworzono %d (z %s oraz z linii poleceń) ścieżek dla projektu %s\n" ++"z ograniczeniem %s (%d)\n" + +-#: .././libxcmd/command.c:89 +-#, c-format +-msgid "bad argument count %d to %s, expected %d arguments\n" +-msgstr "błędna liczba argumentów %d dla %s, oczekiwano %d argumentów\n" ++#: .././quota/project.c:274 ++msgid "infinite" ++msgstr "nieaktywnym" + +-#: .././libxcmd/command.c:93 ++#: .././quota/project.c:274 ++msgid "limited" ++msgstr "aktywnym" ++ ++#: .././quota/project.c:319 + #, c-format +-msgid "bad argument count %d to %s, expected between %d and %d arguments\n" +-msgstr "błędna liczba argumentów %d dla %s, oczekiwano od %d do %d argumentów\n" ++msgid "projects file \"%s\" doesn't exist\n" ++msgstr "plik projektów \"%s\" nie istnieje\n" + +-#: .././libxcmd/command.c:155 ++#: .././quota/project.c:326 + #, c-format +-msgid "cannot strdup command '%s': %s\n" +-msgstr "nie można wykonać strdup na poleceniu '%s': %s\n" ++msgid "%s: only one projid/name can be specified when using -p , %d found.\n" ++msgstr "%s: tylko jeden id projektu/nazwa może być podana kiedy opcja -p <ścieżka> jest w użyciu. Znaleziono %d.\n" + +-#: .././libxcmd/command.c:171 .././libxcmd/command.c:189 ++#: .././quota/project.c:336 + #, c-format +-msgid "command \"%s\" not found\n" +-msgstr "nie znaleziono polecenia \"%s\"\n" ++msgid "%s - no such project in %s or invalid project number\n" ++msgstr "%s - nie ma takiego projektu w %s lub błędny numer projektu\n" + +-#: .././libxcmd/help.c:33 .././db/help.c:40 ++#: .././quota/project.c:353 ++msgid "[-c|-s|-C|-d |-p ] project ..." ++msgstr "[-c|-s|-C| -d |-p <ścieżka>] projekt ..." ++ ++#: .././quota/project.c:356 ++msgid "check, setup or clear project quota trees" ++msgstr "sprawdzenie, ustanowienie lub usunięcie drzew projektów" ++ ++#: .././quota/quot.c:55 + #, c-format + msgid "" + "\n" +-"Use 'help commandname' for extended help.\n" ++" display a summary of filesystem ownership\n" ++"\n" ++" -a -- summarise for all local XFS filesystem mount points\n" ++" -c -- display three columns giving file size in kilobytes, number of files\n" ++" of that size, and cumulative total of kilobytes in that size or\n" ++" smaller file. The last row is used as an overflow bucket and is the\n" ++" total of all files greater than 500 kilobytes.\n" ++" -v -- display three columns containing the number of kilobytes not\n" ++" accessed in the last 30, 60, and 90 days.\n" ++" -g -- display group summary\n" ++" -p -- display project summary\n" ++" -u -- display user summary\n" ++" -b -- display number of blocks used\n" ++" -i -- display number of inodes used\n" ++" -r -- display number of realtime blocks used\n" ++" -n -- skip identifier-to-name translations, just report IDs\n" ++" -N -- suppress the initial header\n" ++" -f -- send output to a file\n" ++" The (optional) user/group/project can be specified either by name or by\n" ++" number (i.e. uid/gid/projid).\n" ++"\n" + msgstr "" + "\n" +-"Rozszerzony opis można uzyskać przez 'help nazwa_polecenia'.\n" ++" wyświetlenie podsumowania własności systemu plików\n" ++"\n" ++" -a - podsumowanie dla wszystkich punktów montowania systemów plików XFS\n" ++" -c - wyświetlenie trzech kolumn z rozmiarem plików w kilobajtach, liczbą\n" ++" plików tego rozmiaru i sumą kilobajtów w plikach o tym lub mniejszym\n" ++" rozmiarze. Ostatni wiersz podsumowuje pliki większe niż 500 kilobajtów.\n" ++" -v - wyświetlenie trzech kolumn zawierających liczbę kilobajtów, do których\n" ++" nie było odwołań przez ostatnie 30, 60 i 90 dni.\n" ++" -g - wyświetlenie podsumowania dla grup\n" ++" -p - wyświetlenie podsumowania dla projektów\n" ++" -u - wyświetlenie podsumowania dla użytkowników\n" ++" -b - wyświetlenie liczby wykorzystanych bloków\n" ++" -i - wyświetlenie liczby wykorzystanych i-węzłów\n" ++" -r - wyświetlenie liczby wykorzystanych blików realtime\n" ++" -n - pominięcie tłumaczenia identyfikatorów na nazwy, wypisywanie ID\n" ++" -N - pominięcie początkowego nagłówka\n" ++" -f - zapisanie wyjścia do pliku\n" ++" (opcjonalny) użytkownik/grupa/projekt może być podany za pomocą nazwy lub\n" ++" numeru (tzn. uid/gid/projid).\n" + +-#: .././libxcmd/help.c:49 .././db/command.c:82 .././db/help.c:56 ++#: .././quota/quot.c:220 + #, c-format +-msgid "command %s not found\n" +-msgstr "nie znaleziono polecenia %s\n" +- +-#: .././libxcmd/help.c:92 .././db/help.c:30 .././db/io.c:48 +-msgid "[command]" +-msgstr "[polecenie]" +- +-#: .././libxcmd/help.c:93 .././db/help.c:31 +-msgid "help for one or all commands" +-msgstr "opis dla jednego lub wszystkich poleceń" ++msgid "%s (%s) %s:\n" ++msgstr "%s (%s) %s:\n" + +-#: .././libxcmd/paths.c:263 ++#: .././quota/quot.c:296 + #, c-format +-msgid "%s: unable to extract mount options for \"%s\"\n" +-msgstr "%s: nie udało się wydobyć opcji montowania dla \"%s\"\n" ++msgid "%s (%s):\n" ++msgstr "%s (%s):\n" + +-#: .././libxcmd/paths.c:324 ++#: .././quota/quot.c:301 .././quota/quot.c:305 + #, c-format +-msgid "%s: getmntinfo() failed: %s\n" +-msgstr "%s: getmntinfo() nie powiodło się: %s\n" ++msgid "%d\t%llu\t%llu\n" ++msgstr "%d\t%llu\t%llu\n" + +-#: .././libxcmd/paths.c:385 +-#, c-format +-msgid "%s: cannot setup path for mount %s: %s\n" +-msgstr "%s: nie można ustawić ścieżki dla montowania %s: %s\n" ++#: .././quota/quot.c:419 ++msgid "[-bir] [-gpu] [-acv] [-f file]" ++msgstr "[-bir] [-gpu] [-acv] [-f plik]" + +-#: .././libxcmd/paths.c:407 +-#, c-format +-msgid "%s: cannot find mount point for path `%s': %s\n" +-msgstr "%s: nie można znaleźć punktu montowania dla ścieżki `%s': %s\n" ++#: .././quota/quot.c:420 ++msgid "summarize filesystem ownership" ++msgstr "podsumowanie własności systemu plików" + +-#: .././libxcmd/paths.c:435 ++#: .././quota/quota.c:32 + #, c-format +-msgid "%s: cannot setup path for project %s: %s\n" +-msgstr "%s: nie można ustawić ścieżki dla projektu %s: %s\n" ++msgid "" ++"\n" ++" display usage and quota information\n" ++"\n" ++" -g -- display group quota information\n" ++" -p -- display project quota information\n" ++" -u -- display user quota information\n" ++" -b -- display number of blocks used\n" ++" -i -- display number of inodes used\n" ++" -r -- display number of realtime blocks used\n" ++" -h -- report in a human-readable format\n" ++" -n -- skip identifier-to-name translations, just report IDs\n" ++" -N -- suppress the initial header\n" ++" -v -- increase verbosity in reporting (also dumps zero values)\n" ++" -f -- send output to a file\n" ++" The (optional) user/group/project can be specified either by name or by\n" ++" number (i.e. uid/gid/projid).\n" ++"\n" ++msgstr "" ++"\n" ++" wyświetlenie informacji o wykorzystaniu miejsca i limitach\n" ++"\n" ++" -g - wyświetlenie informacji o limitach grup\n" ++" -p - wyświetlenie informacji o limitach projektów\n" ++" -u - wyświetlenie informacji o limitach użytkowników\n" ++" -b - wyświetlenie liczby wykorzystanych bloków\n" ++" -i - wyświetlenie liczby wykorzystanych i-węzłów\n" ++" -r - wyświetlenie liczby wykorzystanych bloków realtime\n" ++" -h - użycie formatu czytelnego dla człowieka\n" ++" -n - pominięcie tłumaczenia identyfikatorów na nazwy, wypisywanie ID\n" ++" -N - pominięcie początkowego nagłówka\n" ++" -v - zwiększenie szczegółowości (wypisywanie także wartości zerowych)\n" ++" -f - zapisanie wyjścia do pliku\n" ++" (opcjonalny) użytkownik/grupa/projekt może być podany za pomocą nazwy lub\n" ++" numeru (tzn. uid/gid/projid).\n" + +-#: .././libxcmd/paths.c:476 ++#: .././quota/quota.c:84 + #, c-format +-msgid "%s: cannot initialise path table: %s\n" +-msgstr "%s: nie można zainicjować tabeli ścieżek: %s\n" ++msgid "" ++"Disk quotas for %s %s (%u)\n" ++"Filesystem%s" ++msgstr "" ++"Limity dyskowe (quota) dla %s %s (%u)\n" ++"System plików%s" + +-#: .././libxcmd/paths.c:496 ++#: .././quota/quota.c:89 + #, c-format +-msgid "%s: cannot setup path for project dir %s: %s\n" +-msgstr "%s: nie można ustawić ścieżki dla katalogu projektu %s: %s\n" +- +-#: .././libxcmd/quit.c:42 +-msgid "exit the program" +-msgstr "wyjście z programu" ++msgid " Blocks Quota Limit Warn/Time " ++msgstr " Bloki Quota Limit Czas ostrz. " + +-#: .././libdisk/drivers.c:35 ++#: .././quota/quota.c:90 + #, c-format +-msgid "Cannot stat %s: %s\n" +-msgstr "Nie można wykonać stat na %s: %s\n" ++msgid " Blocks Quota Limit Warn/Time " ++msgstr " Bloki Quota Limit Czas ostrz. " + +-#: .././libdisk/lvm.c:60 ++#: .././quota/quota.c:93 + #, c-format +-msgid "Warning - LVM device, but no lvdisplay(8) found\n" +-msgstr "Uwaga - urządzenie LVM, ale nie znaleziono lvdisplay(8)\n" ++msgid " Files Quota Limit Warn/Time " ++msgstr " Pliki Quota Limit Czas ostrz. " + +-#: .././libdisk/lvm.c:70 .././libdisk/dm.c:73 ++#: .././quota/quota.c:94 + #, c-format +-msgid "Could not open pipe\n" +-msgstr "Nie udało się otworzyć potoku\n" ++msgid " Files Quota Limit Warn/Time " ++msgstr " Pliki Quota Limit Czas ostrz. " + +-#: .././libdisk/lvm.c:85 .././libdisk/dm.c:88 ++#: .././quota/quota.c:97 + #, c-format +-msgid "Failed to execute %s\n" +-msgstr "Nie udało się wywołać %s\n" ++msgid "Realtime Quota Limit Warn/Time " ++msgstr "Realtime Quota Limit Czas ostrz. " + +-#: .././libdisk/lvm.c:89 ++#: .././quota/quota.c:98 + #, c-format +-msgid "Failed forking lvdisplay process\n" +-msgstr "Nie udało się odgałęzić procesu lvdisplay\n" ++msgid " Realtime Quota Limit Warn/Time " ++msgstr " Realtime Quota Limit Czas ostrz. " + +-#: .././libdisk/md.c:61 ++#: .././quota/quota.c:234 + #, c-format +-msgid "Error getting MD array device from %s\n" +-msgstr "Błąd podczas pobierania urządzenia macierzy MD z %s\n" ++msgid "%s: cannot find user %s\n" ++msgstr "%s: nie można odnaleźć użytkownika %s\n" + +-#: .././libdisk/md.c:68 ++#: .././quota/quota.c:284 + #, c-format +-msgid "Couldn't malloc device string\n" +-msgstr "Nie można przydzielić łańcucha nazwy urządzenia\n" ++msgid "%s: cannot find group %s\n" ++msgstr "%s: nie można odnaleźć grupy %s\n" + +-#: .././libdisk/md.c:84 ++#: .././quota/quota.c:345 + #, c-format +-msgid "Error getting MD array info from %s\n" +-msgstr "Błąd podczas pobierania informacji o macierzy MD z %s\n" ++msgid "%s: must specify a project name/ID\n" ++msgstr "%s: należy podać nazwę/ID projektu\n" + +-#: .././libdisk/dm.c:57 ++#: .././quota/quota.c:358 + #, c-format +-msgid "Warning - device mapper device, but no dmsetup(8) found\n" +-msgstr "Uwaga - urządzenie device mappera, ale nie znaleziono dmsetup(8)\n" ++msgid "%s: cannot find project %s\n" ++msgstr "%s: nie można odnaleźć projektu %s\n" + +-#: .././libdisk/dm.c:92 +-#, c-format +-msgid "Failed forking dmsetup process\n" +-msgstr "Nie udało się odgałęzić procesu dmsetup\n" ++#: .././quota/quota.c:463 ++msgid "[-bir] [-gpu] [-hnNv] [-f file] [id|name]..." ++msgstr "[-bir] [-gpu] [-hnNv] [-f plik] [id|nazwa]..." + +-#: .././io/inject.c:109 ++#: .././quota/quota.c:464 ++msgid "show usage and limits" ++msgstr "pokazanie wykorzystania i limitów" ++ ++#: .././quota/report.c:34 .././quota/report.c:636 ++msgid "dump quota information for backup utilities" ++msgstr "zrzucenie informacji o limitach (quota) dla narzędzi backupowych" ++ ++#: .././quota/report.c:36 + #, c-format + msgid "" + "\n" +-" inject errors into the filesystem of the currently open file\n" ++" create a backup file which contains quota limits information\n" ++" -g -- dump out group quota limits\n" ++" -p -- dump out project quota limits\n" ++" -u -- dump out user quota limits (default)\n" ++" -f -- write the dump out to the specified file\n" + "\n" +-" Example:\n" +-" 'inject readagf' - cause errors on allocation group freespace reads\n" ++msgstr "" + "\n" +-" Causes the kernel to generate and react to errors within XFS, provided\n" +-" the XFS kernel code has been built with debugging features enabled.\n" +-" With no arguments, displays the list of error injection tags.\n" ++" utworzenie pliku kopii zapasowej zawierającego informacje o limitach (quota)\n" ++" -g - zrzucenie limitów dla grup\n" ++" -p - zrzucenie limitów dla projektów\n" ++" -u - zrzucenie limitów dla użytkowników (domyślne)\n" ++" -f - zapisanie zrzutu do podanego pliku\n" ++"\n" ++ ++#: .././quota/report.c:48 ++msgid "[-bir] [-gpu] [-ahntLNU] [-f file]" ++msgstr "[-bir] [-gpu] [-ahntLNU] [-f plik]" ++ ++#: .././quota/report.c:49 .././quota/report.c:646 ++msgid "report filesystem quota information" ++msgstr "raportowanie informacji o limitach (quota) w systemie plików" ++ ++#: .././quota/report.c:51 ++#, c-format ++msgid "" ++"\n" ++" report used space and inodes, and quota limits, for a filesystem\n" ++" Example:\n" ++" 'report -igh'\n" ++" (reports inode usage for all groups, in an easy-to-read format)\n" ++" This command is the equivalent of the traditional repquota command, which\n" ++" prints a summary of the disk usage and quotas for the current filesystem,\n" ++" or all filesystems.\n" ++" -a -- report for all mounted filesystems with quota enabled\n" ++" -h -- report in a human-readable format\n" ++" -n -- skip identifier-to-name translations, just report IDs\n" ++" -N -- suppress the header from the output\n" ++" -t -- terse output format, hides rows which are all zero\n" ++" -L -- lower ID bound to report on\n" ++" -U -- upper ID bound to report on\n" ++" -g -- report group usage and quota information\n" ++" -p -- report project usage and quota information\n" ++" -u -- report user usage and quota information\n" ++" -b -- report blocks-used information only\n" ++" -i -- report inodes-used information only\n" ++" -r -- report realtime-blocks-used information only\n" + "\n" + msgstr "" + "\n" +-" wprowadzenie błędów do systemu plików aktualnie otwartego pliku\n" ++" informacje o wykorzystanym miejscu i i-węzłach oraz limitach quota dla systemu\n" ++" plików\n" + "\n" + " Przykład:\n" +-" 'inject readagf' - spowodowanie błędów przy odczytach wolnego miejsca grup\n" +-" alokacji\n" ++" 'report -igh'\n" ++" (raport o wykorzystaniu i-węzłów dla wszystkich grup w czytelnym formacie)\n" + "\n" +-" inject powoduje, że jądro generuje i reaguje na błędy wewnątrz XFS-a,\n" +-" pod warunkiem, że kod XFS-a w jądrze został zbudowany z włączonymi opcjami\n" +-" diagnostycznymi. Bez argumentów wyświetla listę znaczników wprowadzania\n" +-" błędów.\n" ++" To polecenie jest odpowiednikiem tradycyjnego polecenia repquota, wypisującego\n" ++" podsumowanie wykorzystania dysku i limitów dla bieżącego systemu plików lub\n" ++" wszystkich systemów plików.\n" ++" -a - informacje o wszystkich zamontowanych systemach plików z limitami\n" ++" -h - informacje w formacie czytelnym dla człowieka\n" ++" -n - pominięcie tłumaczenia identyfikatorów na nazwy, wypisywanie ID\n" ++" -N - pominięcie początkowego nagłówka\n" ++" -t - zwięzły format, ukrycie wierszy zerowych\n" ++" -L - dolna granica ID dla wypisywanych informacji\n" ++" -U - górna granica ID dla wypisywanych informacji\n" ++" -g - informacje o wykorzystanym miejscu i limitach dla grup\n" ++" -p - informacje o wykorzystanym miejscu i limitach dla projektów\n" ++" -u - informacje o wykorzystanym miejscu i limitach dla użytkowników\n" ++" -b - tylko informacje o wykorzystanych blokach\n" ++" -i - tylko informacje o wykorzystanych i-węzłach\n" ++" -r - tylko informacje o wykorzystanych blokach realtime\n" + "\n" + +-#: .././io/inject.c:135 ++#: .././quota/report.c:228 + #, c-format +-msgid "no such tag -- %s\n" +-msgstr "nie ma takiego znacznika - %s\n" +- +-#: .././io/inject.c:156 +-msgid "[tag ...]" +-msgstr "[znacznik ...]" +- +-#: .././io/inject.c:157 +-msgid "inject errors into a filesystem" +-msgstr "wprowadzanie błędów do systemu plików" ++msgid "%s quota on %s (%s)\n" ++msgstr "limit %s na %s (%s)\n" + +-#: .././io/getrusage.c:118 +-msgid "report process resource usage" +-msgstr "informacje o wykorzystaniu zasobów przez proces" ++#: .././quota/report.c:253 .././quota/report.c:261 ++#, c-format ++msgid " Used Soft Hard Warn/Grace " ++msgstr " Użyto Miękki Twardy Ostrzeżenie " + +-#: .././io/freeze.c:37 ++#: .././quota/report.c:254 .././quota/report.c:262 + #, c-format +-msgid "%s: cannot freeze filesystem at %s: %s\n" +-msgstr "%s: nie można zamrozić systemu plików na %s: %s\n" ++msgid " Used Soft Hard Warn/Grace " ++msgstr " Użyto Miękki Twardy Ostrzeżenie " + +-#: .././io/freeze.c:54 ++#: .././quota/report.c:257 + #, c-format +-msgid "%s: cannot unfreeze filesystem mounted at %s: %s\n" +-msgstr "%s: nie można odmrozić systemu plików podmontowanego pod %s: %s\n" ++msgid " Used Soft Hard Warn/Grace " ++msgstr " Użyto Miękki Twardy Ostrzeżenie" + +-#: .././io/freeze.c:70 +-msgid "freeze filesystem of current file" +-msgstr "zamrożenie systemu plików na bieżącym pliku" ++#: .././quota/report.c:258 ++#, c-format ++msgid " Used Soft Hard Warn/ Grace " ++msgstr " Użyto Miękki Twardy Ostrzeżenie " + +-#: .././io/freeze.c:77 +-msgid "unfreeze filesystem of current file" +-msgstr "odmrożenie systemu plików na bieżącym pliku" ++#: .././quota/report.c:645 ++msgid "[-bir] [-gpu] [-ahnt] [-f file]" ++msgstr "[-bir] [-gpu] [-ahnt] [-f plik]" + +-#: .././io/fiemap.c:32 ++#: .././quota/state.c:33 + #, c-format + msgid "" + "\n" +-" prints the block mapping for a file's data or attribute forks\n" ++" turn filesystem quota off, both accounting and enforcement\n" ++"\n" + " Example:\n" +-" 'fiemap -v' - tabular format verbose map\n" ++" 'off -uv' (switch off user quota on the current filesystem)\n" ++" This command is the equivalent of the traditional quotaoff command,\n" ++" which disables quota completely on a mounted filesystem.\n" ++" Note that there is no 'on' command - for XFS filesystems (with the\n" ++" exception of the root filesystem on IRIX) quota can only be enabled\n" ++" at mount time, through the use of one of the quota mount options.\n" + "\n" +-" fiemap prints the map of disk blocks used by the current file.\n" +-" The map lists each extent used by the file, as well as regions in the\n" +-" file that do not have any corresponding blocks (holes).\n" +-" By default, each line of the listing takes the following form:\n" +-" extent: [startoffset..endoffset]: startblock..endblock\n" +-" Holes are marked by replacing the startblock..endblock with 'hole'.\n" +-" All the file offsets and disk blocks are in units of 512-byte blocks.\n" +-" -a -- prints the attribute fork map instead of the data fork.\n" +-" -l -- also displays the length of each extent in 512-byte blocks.\n" +-" -n -- query n extents.\n" +-" -v -- Verbose information\n" ++" The state command is useful for displaying the current state. Using\n" ++" the -v (verbose) option with the 'off' command will display the quota\n" ++" state for the affected filesystem once the operation is complete.\n" ++" The affected quota type is -g (groups), -p (projects) or -u (users)\n" ++" and defaults to user quota (multiple types can be specified).\n" + "\n" + msgstr "" + "\n" +-" wypisanie mapowania bloków dla danych lub atrybutów pliku\n" ++" wyłączenie podsystemu quota (zarówno rozliczania jak i wymuszania)\n" ++"\n" + " Przykład:\n" +-" 'fiemap -v' - szczegółowa mapa w formacie tabeli\n" ++" 'off -uv' (wyłączenie limitów użytkownika w bieżącym systemie plików)\n" + "\n" +-" fiemap wypisuje mapę bloków dysku używanych przez bieżący plik.\n" +-" Mapa opisuje każdy ekstent użyty przez plik, a także regiony w pliku\n" +-" nie mające przypisanych bloków (dziury).\n" +-" Domyślnie każda linia listingu przyjmuje następującą postać:\n" +-" ekstent: [offsetpocz..offsetkońc]: blokpocz..blokkońc\n" +-" Dziury są oznaczane przez zastąpienie blokpocz..blokkońc przez 'dziura'.\n" +-" Wszystkie offsety w plikach i bloki dysku są w jednostkach 512-bajtowych.\n" +-" -a - wypisanie mapy gałęzi atrybutów zamiast gałęzi danych.\n" +-" -l - wyświetlenie także długości każdego fragmentu w 512-bajtowych blokach.\n" +-" -n - odpytanie n ekstentów.\n" +-" -v - szczegółowe informacje\n" ++" To polecenie jest odpowiednikiem tradycyjnego polecenia quotaoff,\n" ++" wyłączającego całkowicie limity na podmontowanym systemie plików.\n" ++" Należy zauważyć, że nie ma polecenia 'on' - dla systemów plików XFS\n" ++" (z wyjątkiem głównego systemu plików pod systemem IRIX) limity można\n" ++" włączyć wyłącznie na etapie montowania, poprzez użycie jednej z opcji\n" ++" quota programu mount.\n" ++"\n" ++" Polecenie state jest przydatne do wyświetlania aktualnego stanu. Użycie\n" ++" opcji -v (szczegółowość) dla polecenia 'off' wyświetli stan quoty dla\n" ++" danego systemu plików po zakończeniu operacji.\n" ++" Rodzaj limitu którego dotyczy polecenie można wybrać opcją -g (grupy),\n" ++" -p (projekty) lub -u (użytkownicy); domyślnie polecenie dotyczy limitów\n" ++" użytkowników (można podać wiele rodzajów).\n" + "\n" + +-#: .././io/fiemap.c:97 .././io/fiemap.c:317 .././io/fiemap.c:321 +-#: .././io/bmap.c:251 .././io/bmap.c:379 +-#, c-format +-msgid "hole" +-msgstr "dziura" +- +-#: .././io/fiemap.c:139 .././io/fiemap.c:153 .././io/fiemap.c:323 +-#, c-format +-msgid " %llu blocks\n" +-msgstr " %llu bloków\n" +- +-#: .././io/fiemap.c:210 .././io/bmap.c:149 ++#: .././quota/state.c:56 + #, c-format +-msgid "%s: malloc of %d bytes failed.\n" +-msgstr "%s: przydzielenie %d bajtów nie powiodło się.\n" +- +-#: .././io/fiemap.c:243 .././io/bmap.c:339 +-msgid "EXT" +-msgstr "EXT" +- +-#: .././io/fiemap.c:244 .././io/bmap.c:340 +-msgid "FILE-OFFSET" +-msgstr "OFFSET-W-PLIKU" +- +-#: .././io/fiemap.c:245 .././io/bmap.c:341 +-msgid "BLOCK-RANGE" +-msgstr "ZAKRES-BLOKÓW" +- +-#: .././io/fiemap.c:246 .././io/bmap.c:344 +-msgid "TOTAL" +-msgstr "RAZEM" +- +-#: .././io/fiemap.c:247 +-msgid "FLAGS" +-msgstr "FLAGI" +- +-#: .././io/fiemap.c:343 +-msgid "[-alv] [-n nx]" +-msgstr "[-alv] [-n nx]" +- +-#: .././io/fiemap.c:344 +-msgid "print block mapping for a file" +-msgstr "wypisanie mapowania bloków dla pliku" ++msgid "" ++"\n" ++" query the state of quota on the current filesystem\n" ++"\n" ++" This is a verbose status command, reporting whether or not accounting\n" ++" and/or enforcement are enabled for a filesystem, which inodes are in\n" ++" use as the quota state inodes, and how many extents and blocks are\n" ++" presently being used to hold that information.\n" ++" The quota type is specified via -g (groups), -p (projects) or -u (users)\n" ++" and defaults to user quota (multiple types can be specified).\n" ++"\n" ++msgstr "" ++"\n" ++" odczytanie stanu podsystemu quota w bieżącym systemie plików\n" ++"\n" ++" Jest to polecenie szczegółowo informujące o stanie, opisujące czy włączone\n" ++" jest rozliczanie i/lub wymuszanie limitów w systemie plików, które i-węzły\n" ++" są wykorzystywane jako i-węzły stanu quot oraz ile ekstentów i bloków jest\n" ++" aktualnie używana do przechowywania tych informacji.\n" ++" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy);\n" ++" domyślnie polecenie dotyczy limitów użytkowników (można podać wiele rodzajów).\n" ++"\n" + +-#: .././io/imap.c:53 ++#: .././quota/state.c:72 + #, c-format +-msgid "ino %10llu count %2d mask %016llx\n" +-msgstr "i-węzeł %10llu liczba %2d maska %016llx\n" +- +-#: .././io/imap.c:71 +-msgid "[nentries]" +-msgstr "[liczba_wpisów]" +- +-#: .././io/imap.c:73 +-msgid "inode map for filesystem of current file" +-msgstr "map i-węzłów dla systemu plików bieżącego pliku" ++msgid "" ++"\n" ++" enable quota enforcement on a filesystem\n" ++"\n" ++" If a filesystem is mounted and has quota accounting enabled, but not\n" ++" quota enforcement, enforcement can be enabled with this command.\n" ++" With the -v (verbose) option, the status of the filesystem will be\n" ++" reported after the operation is complete.\n" ++" The affected quota type is -g (groups), -p (projects) or -u (users)\n" ++" and defaults to user quota (multiple types can be specified).\n" ++"\n" ++msgstr "" ++"\n" ++" włączenie wymuszania limitów w systemie plików\n" ++"\n" ++" Jeśli system plików jest podmontowany i ma włączone rozliczanie limitów,\n" ++" ale nie ma wymuszania limitów, można włączyć wymuszanie tym poleceniem.\n" ++" Z opcją -v (szczegółowość) po zakończeniu operacji zostanie zraportowany\n" ++" stan systemu plików.\n" ++" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy);\n" ++" domyślnie polecenie dotyczy limitów użytkowników (można podać wiele rodzajów).\n" ++"\n" + +-#: .././io/madvise.c:32 ++#: .././quota/state.c:88 + #, c-format + msgid "" + "\n" +-" advise the page cache about access patterns expected for a mapping\n" ++" disable quota enforcement on a filesystem\n" + "\n" +-" Modifies page cache behavior when operating on the current mapping.\n" +-" The range arguments are required by some advise commands ([*] below).\n" +-" With no arguments, the POSIX_MADV_NORMAL advice is implied.\n" +-" -d -- don't need these pages (POSIX_MADV_DONTNEED) [*]\n" +-" -r -- expect random page references (POSIX_MADV_RANDOM)\n" +-" -s -- expect sequential page references (POSIX_MADV_SEQUENTIAL)\n" +-" -w -- will need these pages (POSIX_MADV_WILLNEED) [*]\n" +-" Notes:\n" +-" NORMAL sets the default readahead setting on the file.\n" +-" RANDOM sets the readahead setting on the file to zero.\n" +-" SEQUENTIAL sets double the default readahead setting on the file.\n" +-" WILLNEED forces the maximum readahead.\n" ++" If a filesystem is mounted and is currently enforcing quota, this\n" ++" provides a mechanism to switch off the enforcement, but continue to\n" ++" perform used space (and used inodes) accounting.\n" ++" The affected quota type is -g (groups), -p (projects) or -u (users).\n" + "\n" + msgstr "" + "\n" +-" doradzenie buforowi stron w sprawie oczekiwanych schematów dostępu do odwzorowań\n" ++" wyłączenie wymuszania limitów w systemie plików\n" + "\n" +-" madvise modyfikuje zachowanie bufora stron przy operacjach na bieżącym\n" +-" odwzorowaniu. Niektóre polecenia madvise ([*] poniżej) wymagają podania zakresu.\n" +-" Bez argumentów zakłada się doradzenie POSIX_MADV_NORMAL.\n" +-" -d - podane strony nie są wymagane (POSIX_MADV_DONTNEED) [*]\n" +-" -r - należy oczekiwać losowych odwołań do stron (POSIX_MADV_RANDOM)\n" +-" -s - należy oczekiwać sekwencyjnych odwołań do stron (POSIX_MADV_SEQUENTIAL)\n" +-" -w - podane strony będą potrzebne (POSIX_MADV_WILLNEED) [*]\n" +-" Uwagi:\n" +-" NORMAL ustawia domyślną wartość czytania z wyprzedzeniem dla pliku.\n" +-" RANDOM ustawia czytanie z wyprzedzeniem dla pliku na zero.\n" +-" SEQUENTIAL ustawia podwójną domyślną wartość czytania z wyprzedzeniem.\n" +-" WILLNEED wymusza maksymalne czytanie z wyprzedzeniem.\n" ++" Jeśli system plików jest podmontowany i aktualnie wymusza przestrzeganie\n" ++" limitów, tym poleceniem można wyłączyć wymuszanie, ale nadal pozostawić\n" ++" rozliczanie wykorzystanego miejsca (oraz i-węzłów).\n" ++" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy).\n" + "\n" + +-#: .././io/madvise.c:87 .././io/mincore.c:48 .././io/mmap.c:206 +-#: .././io/mmap.c:301 .././io/mmap.c:387 .././io/mmap.c:546 +-#: .././io/prealloc.c:55 .././io/pwrite.c:284 .././io/sendfile.c:126 +-#: .././io/fadvise.c:92 ++#: .././quota/state.c:102 + #, c-format +-msgid "non-numeric offset argument -- %s\n" +-msgstr "nieliczbowy argument będący offsetem - %s\n" ++msgid "" ++"\n" ++" remove any space being used by the quota subsystem\n" ++"\n" ++" Once quota has been switched 'off' on a filesystem, the space that\n" ++" was allocated to holding quota metadata can be freed via this command.\n" ++" The affected quota type is -g (groups), -p (projects) or -u (users)\n" ++" and defaults to user quota (multiple types can be specified).\n" ++"\n" ++msgstr "" ++"\n" ++" zwolnienie miejsca zajmowanego przez podsystem quota\n" ++"\n" ++" Po wyłączeniu limitów dla systemu plików można tym poleceniem zwolnić miejsce\n" ++" przydzielone na przechowywanie metadanych quot.\n" ++" Rodzaj limitów podaje się opcją -g (grupy), -p (projekty) lub -u (użytkownicy);\n" ++" domyślnie polecenie dotyczy limitów użytkowników (można podać wiele rodzajów).\n" ++"\n" + +-#: .././io/madvise.c:94 .././io/mincore.c:54 .././io/mmap.c:212 +-#: .././io/mmap.c:308 .././io/mmap.c:394 .././io/mmap.c:553 +-#: .././io/pread.c:330 .././io/pread.c:338 .././io/prealloc.c:60 +-#: .././io/pwrite.c:290 .././io/sendfile.c:133 .././io/fadvise.c:99 ++#: .././quota/state.c:121 + #, c-format +-msgid "non-numeric length argument -- %s\n" +-msgstr "nieliczbowy argument będący długością - %s\n" ++msgid "%s quota state on %s (%s)\n" ++msgstr "stan limitów %s na %s (%s)\n" + +-#: .././io/madvise.c:98 .././io/mincore.c:58 ++#: .././quota/state.c:123 + #, c-format +-msgid "length argument too large -- %lld\n" +-msgstr "zbyt duży argument będący długością - %lld\n" ++msgid " Accounting: %s\n" ++msgstr " Rozliczanie: %s\n" + +-#: .././io/madvise.c:127 +-msgid "[-drsw] [off len]" +-msgstr "[-drsw] [offset długość]" ++#: .././quota/state.c:123 .././quota/state.c:124 ++msgid "ON" ++msgstr "WŁĄCZONE" + +-#: .././io/madvise.c:128 +-msgid "give advice about use of memory" +-msgstr "doradzenie w sprawie użycia pamięci" ++#: .././quota/state.c:123 .././quota/state.c:124 ++msgid "OFF" ++msgstr "WYŁĄCZONE" + +-#: .././io/mincore.c:92 .././io/mincore.c:102 ++#: .././quota/state.c:124 + #, c-format +-msgid "0x%lx %lu pages (%llu : %lu)\n" +-msgstr "0x%lx %lu stron (%llu : %lu)\n" +- +-#: .././io/mincore.c:122 +-msgid "[off len]" +-msgstr "[offset długość]" +- +-#: .././io/mincore.c:123 +-msgid "find mapping pages that are memory resident" +-msgstr "odnalezienie stron odwzorowań przechowywanych w pamięci" ++msgid " Enforcement: %s\n" ++msgstr " Wymuszanie: %s\n" + +-#: .././io/mmap.c:76 ++#: .././quota/state.c:126 + #, c-format +-msgid "offset (%lld) is before start of mapping (%lld)\n" +-msgstr "offset (%lld) przed początkiem odwzorowania (%lld)\n" ++msgid " Inode: #%llu (%llu blocks, %lu extents)\n" ++msgstr " I-węzeł: #%llu (%llu bloków, %lu ekstentów)\n" + +-#: .././io/mmap.c:82 ++#: .././quota/state.c:131 + #, c-format +-msgid "offset (%lld) is beyond end of mapping (%lld)\n" +-msgstr "offset (%lld) za końcem odwzorowania (%lld)\n" ++msgid " Inode: N/A\n" ++msgstr " I-węzeł: N/A\n" + +-#: .././io/mmap.c:87 ++#: .././quota/state.c:140 + #, c-format +-msgid "range (%lld:%lld) is beyond mapping (%lld:%ld)\n" +-msgstr "przedział (%lld:%lld) poza odwzorowaniem (%lld:%ld)\n" ++msgid "%s grace time: %s\n" ++msgstr "czas pobłażliwości %s: %s\n" + +-#: .././io/mmap.c:93 ++#: .././quota/state.c:157 + #, c-format +-msgid "offset address (%p) is not page aligned\n" +-msgstr "adres offsetu (%p) nie jest wyrównany do rozmiaru strony\n" ++msgid "%s quota are not enabled on %s\n" ++msgstr "Limity %s nie są włączone na %s\n" + +-#: .././io/mmap.c:133 +-#, c-format +-msgid "" +-"\n" +-" maps a range within the current file into memory\n" +-"\n" +-" Example:\n" +-" 'mmap -rw 0 1m' - maps one megabyte from the start of the current file\n" +-"\n" +-" Memory maps a range of a file for subsequent use by other xfs_io commands.\n" +-" With no arguments, mmap shows the current mappings. The current mapping\n" +-" can be set by using the single argument form (mapping number or address).\n" +-" If two arguments are specified (a range), a new mapping is created and the\n" +-" following options are available:\n" +-" -r -- map with PROT_READ protection\n" +-" -w -- map with PROT_WRITE protection\n" +-" -x -- map with PROT_EXEC protection\n" +-" If no protection mode is specified, all are used by default.\n" +-"\n" +-msgstr "" +-"\n" +-" odwzorowanie przedziału z bieżącego pliku w pamięci\n" +-"\n" +-"Przykład:\n" +-" 'mmap -rw 0 1m' - odwzorowuje 1MB od początku bieżącego pliku\n" +-"\n" +-" mmap odwzorowuje w pamięci przedział z pliku do dalszego wykorzystania przez\n" +-" inne polecenia xfs_io.\n" +-" Bez argumentów mmap pokazuje aktualne odwzorowania. Bieżące odwzorowanie\n" +-" można ustawić przy użyciu formy jednoargumentowej (mmap numer lub adres).\n" +-" Jeśli podano dwa argumenty (przedział), tworzone jest nowe odwzorowanie\n" +-" i dostępne są następujące opcje:\n" +-" -r - odwzorowanie z ochroną PROT_READ\n" +-" -w - odwzorowanie z ochroną PROT_WRITE\n" +-" -x - odwzorowanie z ochroną PROT_EXEC\n" +-" Jeśli nie podano trybu ochrony, domyślnie używane są wszystkie.\n" +-"\n" ++#: .././quota/state.c:527 .././quota/state.c:543 .././quota/state.c:551 ++#: .././quota/state.c:559 ++msgid "[-gpu] [-v]" ++msgstr "[-gpu] [-v]" + +-#: .././io/mmap.c:167 .././io/mmap.c:174 .././io/init.c:105 +-#, c-format +-msgid "no mapped regions, try 'help mmap'\n" +-msgstr "nie ma podmapowanych regionów, spróbuj 'help mmap'\n" ++#: .././quota/state.c:528 ++msgid "permanently switch quota off for a path" ++msgstr "wyłączenie limitów na stałe dla ścieżki" + +-#: .././io/mmap.c:168 .././io/mmap.c:175 .././io/mmap.c:178 .././io/init.c:101 +-#: .././io/open.c:273 +-#, c-format +-msgid "no files are open, try 'help open'\n" +-msgstr "nie ma otwartych plików, spróbuj 'help open'\n" ++#: .././quota/state.c:535 ++msgid "[-gpu] [-a] [-v] [-f file]" ++msgstr "[-gpu] [-a] [-v] [-f plik]" + +-#: .././io/mmap.c:254 +-#, c-format +-msgid "" +-"\n" +-" flushes a range of bytes in the current memory mapping\n" +-"\n" +-" Writes all modified copies of pages over the specified range (or entire\n" +-" mapping if no range specified) to their backing storage locations. Also,\n" +-" optionally invalidates so that subsequent references to the pages will be\n" +-" obtained from their backing storage locations (instead of cached copies).\n" +-" -a -- perform asynchronous writes (MS_ASYNC)\n" +-" -i -- invalidate mapped pages (MS_INVALIDATE)\n" +-" -s -- perform synchronous writes (MS_SYNC)\n" +-"\n" +-msgstr "" +-"\n" +-" zrzucenie przedziału bajtów w bieżącym odwzorowaniu pamięci\n" +-"\n" +-" msync zapisuje wszystkie zmodyfikowane kopie stron z podanego przedziału\n" +-" (lub całego odwzorowania, jeśli nie podano przedziału) do miejsca\n" +-" przechowywania danych. Opcjonalnie unieważnia bufor, żeby dalsze odwołania\n" +-" do tych stron odbywały się z miejsca przechowywania danych (zamiast kopii\n" +-" w pamięci podręcznej).\n" +-" -a - wykonanie zapisu asynchronicznego (MS_ASYNC)\n" +-" -i - unieważnienie odwzorowanych stron (MS_INVALIDATE)\n" +-" -s - wykonanie zapisu synchronicznego (MS_SYNC)\n" +-"\n" ++#: .././quota/state.c:536 ++msgid "get overall quota state information" ++msgstr "uzyskanie ogólnych informacji o stanie quot" + +-#: .././io/mmap.c:330 ++#: .././quota/state.c:544 ++msgid "enable quota enforcement" ++msgstr "włączenie wymuszania limitów" ++ ++#: .././quota/state.c:552 ++msgid "disable quota enforcement" ++msgstr "wyłączenie wymuszania limitów" ++ ++#: .././quota/state.c:560 ++msgid "remove quota extents from a filesystem" ++msgstr "usunięcie ekstentów związanych z limitami z systemu plików" ++ ++#: .././quota/util.c:59 + #, c-format +-msgid "" +-"\n" +-" reads a range of bytes in the current memory mapping\n" +-"\n" +-" Example:\n" +-" 'mread -v 512 20' - dumps 20 bytes read from 512 bytes into the mapping\n" +-"\n" +-" Accesses a range of the current memory mapping, optionally dumping it to\n" +-" the standard output stream (with -v option) for subsequent inspection.\n" +-" -f -- verbose mode, dump bytes with offsets relative to start of file.\n" +-" -r -- reverse order; start accessing from the end of range, moving backward\n" +-" -v -- verbose mode, dump bytes with offsets relative to start of mapping.\n" +-" The accesses are performed sequentially from the start offset by default.\n" +-" Notes:\n" +-" References to whole pages following the end of the backing file results\n" +-" in delivery of the SIGBUS signal. SIGBUS signals may also be delivered\n" +-" on various filesystem conditions, including quota exceeded errors, and\n" +-" for physical device errors (such as unreadable disk blocks). No attempt\n" +-" has been made to catch signals at this stage...\n" +-"\n" +-msgstr "" +-"\n" +-" odczytanie przedziału bajtów w bieżącym odwzorowaniu pamięci\n" +-"\n" +-" Przykład:\n" +-" 'mread -v 512 20' - zrzucenie 20 bajtów odczytanych od 512 bajtu\n" +-" w odwzorowaniu\n" +-"\n" +-" mread odwołuje się do przedziału bieżącego odwzorowania pamięci, opcjonalnie\n" +-" zrzucając go na strumień standardowego wyjścia (z opcją -v) do dalszych badań.\n" +-" -f - tryb szczegółowy, zrzucenie bajtów z offsetami względem początku pliku.\n" +-" -r - odwrotna kolejność; dostęp począwszy od końca przedziału do początku.\n" +-" -v - tryb szczegółowy, zrzucenie bajtów z offsetami względem początku\n" +-" odwzorowania.\n" +-" Dostępy są wykonywane sekwencyjnie, domyślnie od offsetu początkowego.\n" +-" Uwagi:\n" +-" Odwołania do całych stron za końcem pliku powodują w efekcie sygnał SIGBUS.\n" +-" Sygnały SIGBUS mogą być wywołane także przy różnych zdarzeniach związanych\n" +-" z systemem plików, włącznie z błędami przekroczenia limitów (quota) oraz\n" +-" fizycznymi błędami urządzenia (takimi jak nieczytelne bloki dysku). Na tym\n" +-" etapie nie ma prób wyłapania sygnałów...\n" +-"\n" ++msgid "[-none-]" ++msgstr "[-brak-]" + +-#: .././io/mmap.c:494 ++#: .././quota/util.c:59 + #, c-format +-msgid "" +-"\n" +-" dirties a range of bytes in the current memory mapping\n" +-"\n" +-" Example:\n" +-" 'mwrite 512 20 - writes 20 bytes at 512 bytes into the current mapping.\n" +-"\n" +-" Stores a byte into memory for a range within a mapping.\n" +-" The default stored value is 'X', repeated to fill the range specified.\n" +-" -S -- use an alternate seed character\n" +-" -r -- reverse order; start storing from the end of range, moving backward\n" +-" The stores are performed sequentially from the start offset by default.\n" +-"\n" +-msgstr "" +-"\n" +-" zmiana przedziału bajtów w bieżącym odwzorowaniu pamięci\n" +-"\n" +-" Przykład:\n" +-" 'mwrite 512 20' - zapisuje 20 bajtów od 512 bajtu w bieżącym odwzorowaniu.\n" +-"\n" +-" mwrite zapisuje bajt do przedziału pamięci w ramach odwzorowania.\n" +-" Domyślnie zapisywaną wartością jest 'X', powtarzane do wypełnienia przedziału.\n" +-" -S - użycie alternatywnego znaku\n" +-" -r - odwrotna kolejność; rozpoczęcie zapisywania od końca przedziału do\n" +-" początku\n" +-" Zapisy są wykonywane kolejno, domyślnie od offsetu początkowego.\n" +-"\n" ++msgid "[--none--]" ++msgstr "[--brak--]" + +-#: .././io/mmap.c:530 .././io/pread.c:315 .././io/pwrite.c:251 +-#: .././io/pwrite.c:270 ++#: .././quota/util.c:62 + #, c-format +-msgid "non-numeric seed -- %s\n" +-msgstr "nieliczbowy zarodek - %s\n" ++msgid "[------]" ++msgstr "[------]" + +-#: .././io/mmap.c:586 +-msgid "[N] | [-rwx] [off len]" +-msgstr "[N] | [-rwx] [offset długość]" ++#: .././quota/util.c:62 ++#, c-format ++msgid "[--------]" ++msgstr "[--------]" + +-#: .././io/mmap.c:588 +-msgid "mmap a range in the current file, show mappings" +-msgstr "odwzorowanie przedziału w bieżącym pliku, pokazanie odwzorowań" ++# XXX: ngettext() ++#: .././quota/util.c:66 .././quota/util.c:69 ++msgid "day" ++msgstr "dzień" + +-#: .././io/mmap.c:597 +-msgid "[-r] [off len]" +-msgstr "[-r] [offset długość]" ++#: .././quota/util.c:66 .././quota/util.c:69 ++msgid "days" ++msgstr "dni" + +-#: .././io/mmap.c:599 +-msgid "reads data from a region in the current memory mapping" +-msgstr "odczyt danych z regionu w bieżącym odwzorowaniu pamięci" ++#: .././quota/util.c:194 ++msgid "Blocks" ++msgstr "Bloki" + +-#: .././io/mmap.c:608 +-msgid "[-ais] [off len]" +-msgstr "[-ais] [offset długość]" ++#: .././quota/util.c:194 ++msgid "Inodes" ++msgstr "I-węzły" + +-#: .././io/mmap.c:609 +-msgid "flush a region in the current memory mapping" +-msgstr "zrzucenie regionu w bieżącym odwzorowaniu pamięci" ++#: .././quota/util.c:194 ++msgid "Realtime Blocks" ++msgstr "Bloki realtime" + +-#: .././io/mmap.c:618 +-msgid "unmaps the current memory mapping" +-msgstr "usunięcie bieżącego odwzorowania pamięci" ++#: .././quota/util.c:209 ++msgid "User" ++msgstr "użytkowników" + +-#: .././io/mmap.c:626 +-msgid "[-r] [-S seed] [off len]" +-msgstr "[-r] [-S wartość] [offset długość]" ++#: .././quota/util.c:209 ++msgid "Group" ++msgstr "grup" + +-#: .././io/mmap.c:628 +-msgid "writes data into a region in the current memory mapping" +-msgstr "zapis danych do regionu w bieżącym odwzorowaniu pamięci" ++#: .././quota/util.c:209 ++msgid "Project" ++msgstr "projektów" + +-#: .././io/parent.c:49 ++#: .././quota/util.c:417 + #, c-format +-msgid "%s%s" +-msgstr "%s%s" ++msgid "%s: open on %s failed: %s\n" ++msgstr "%s: open dla %s nie powiodło się: %s\n" + +-#: .././io/parent.c:54 ++#: .././quota/util.c:423 + #, c-format +-msgid "inode-path for inode: %llu is incorrect - path \"%s\" non-existent\n" +-msgstr "inode-path dla i-węzła: %llu jest niepoprawna - ścieżka \"%s\" nie istnieje\n" ++msgid "%s: fdopen on %s failed: %s\n" ++msgstr "%s: fdopen dla %s nie powiodło się: %s\n" + +-#: .././io/parent.c:58 ++#: .././repair/agheader.c:40 + #, c-format +-msgid "path \"%s\" does not stat for inode: %llu; err = %s\n" +-msgstr "ścieżka \"%s\" nie pozwala na stat dla i-węzła: %llu; błąd = %s\n" ++msgid "bad magic # 0x%x for agf %d\n" ++msgstr "błędna liczba magiczna 0x%x dla agf %d\n" + +-#: .././io/parent.c:67 ++#: .././repair/agheader.c:49 + #, c-format +-msgid "path \"%s\" found\n" +-msgstr "ścieżki \"%s\" nie znaleziono\n" ++msgid "bad version # %d for agf %d\n" ++msgstr "błędny numer wersji %d dla agf %d\n" + +-#: .././io/parent.c:73 ++#: .././repair/agheader.c:58 + #, c-format +-msgid "inode-path for inode: %llu is incorrect - wrong inode#\n" +-msgstr "inode-path dla i-węzła: %llu jest niepoprawna - niewłaściwy numer i-węzła\n" ++msgid "bad sequence # %d for agf %d\n" ++msgstr "błędny numer sekwencji %d dla agf %d\n" + +-#: .././io/parent.c:77 .././io/parent.c:107 ++#: .././repair/agheader.c:68 + #, c-format +-msgid "ino mismatch for path \"%s\" %llu vs %llu\n" +-msgstr "niezgodność i-węzła dla ścieżki \"%s\" %llu vs %llu\n" ++msgid "bad length %d for agf %d, should be %d\n" ++msgstr "błędna długość %d dla agf %d, powinno być %d\n" + +-#: .././io/parent.c:85 ++#: .././repair/agheader.c:81 + #, c-format +-msgid "inode number match: %llu\n" +-msgstr "zgodność numeru i-węzła: %llu\n" ++msgid "bad length %d for agf %d, should be %\n" ++msgstr "błędna długość %d dla agf %d, powinno być %\n" + +-#: .././io/parent.c:95 ++#: .././repair/agheader.c:95 + #, c-format +-msgid "parent path \"%s\" does not stat: %s\n" +-msgstr "ścieżka nadrzędna \"%s\" nie pozwala na stat: %s\n" ++msgid "flfirst %d in agf %d too large (max = %zu)\n" ++msgstr "flfirst %d w agf %d zbyt duże (maksimum = %zu)\n" + +-#: .././io/parent.c:103 ++#: .././repair/agheader.c:103 + #, c-format +-msgid "inode-path for inode: %llu is incorrect - wrong parent inode#\n" +-msgstr "inode-path dla i-węzła: %llu jest niepoprawna - niewłaściwy numer i-węzła nadrzędnego\n" ++msgid "fllast %d in agf %d too large (max = %zu)\n" ++msgstr "fllast %d w agf %d zbyt duże (maksimum = %zu)\n" + +-#: .././io/parent.c:116 ++#: .././repair/agheader.c:120 + #, c-format +-msgid "parent ino match for %llu\n" +-msgstr "zgodność numeru i-węzła nadrzędnego dla %llu\n" ++msgid "bad uuid %s for agf %d\n" ++msgstr "błędny uuid %s dla agf %d\n" + +-#: .././io/parent.c:138 ++#: .././repair/agheader.c:138 + #, c-format +-msgid "parentpaths failed for ino %llu: %s\n" +-msgstr "parentpaths nie powiodło się dla i-węzła %llu: %s\n" ++msgid "bad magic # 0x%x for agi %d\n" ++msgstr "błędna liczba magiczna 0x%x dla agi %d\n" + +-#: .././io/parent.c:149 ++#: .././repair/agheader.c:147 + #, c-format +-msgid "inode-path for inode: %llu is missing\n" +-msgstr "brak inode-path dla i-węzła: %llu\n" ++msgid "bad version # %d for agi %d\n" ++msgstr "błędny numer wersji %d dla agi %d\n" + +-#: .././io/parent.c:173 ++#: .././repair/agheader.c:156 + #, c-format +-msgid "can't stat mount point \"%s\": %s\n" +-msgstr "nie można wykonać stat na punkcie montowania \"%s\": %s\n" ++msgid "bad sequence # %d for agi %d\n" ++msgstr "błędny numer sekwencji %d dla agi %d\n" + +-#: .././io/parent.c:194 ++#: .././repair/agheader.c:166 + #, c-format +-msgid "failed to get bulkstat information for inode %llu\n" +-msgstr "nie udało się uzyskać informacji bulkstat dla i-węzła %llu\n" ++msgid "bad length # %d for agi %d, should be %d\n" ++msgstr "błędna długość %d dla agi %d, powinno być %d\n" + +-#: .././io/parent.c:200 ++#: .././repair/agheader.c:179 + #, c-format +-msgid "failed to get valid bulkstat information for inode %llu\n" +-msgstr "nie udało się uzyskać prawidłowych informacji bulkstat dla i-węzła %llu\n" ++msgid "bad length # %d for agi %d, should be %\n" ++msgstr "błędna długość %d dla agi %d, powinno być %\n" + +-#: .././io/parent.c:212 ++#: .././repair/agheader.c:198 + #, c-format +-msgid "checking inode %llu\n" +-msgstr "sprawdzanie i-węzła %llu\n" ++msgid "bad uuid %s for agi %d\n" ++msgstr "błędny uuid %s dla agi %d\n" + +-#: .././io/parent.c:227 ++#: .././repair/agheader.c:298 + #, c-format +-msgid "syssgi bulkstat failed: %s\n" +-msgstr "syssgi bulkstat nie powiodło się: %s\n" ++msgid "zeroing unused portion of %s superblock (AG #%u)\n" ++msgstr "zerowanie nieużywanej części superbloku %s (AG #%u)\n" + +-#: .././io/parent.c:249 +-#, c-format +-msgid "unable to open \"%s\" for jdm: %s\n" +-msgstr "nie udało się otworzyć \"%s\" dla jdm: %s\n" ++#: .././repair/agheader.c:299 .././repair/agheader.c:314 ++msgid "primary" ++msgstr "głównego" + +-#: .././io/parent.c:259 +-#, c-format +-msgid "unable to allocate buffers: %s\n" +-msgstr "nie udało się przydzielić buforów: %s\n" ++#: .././repair/agheader.c:299 .././repair/agheader.c:314 ++msgid "secondary" ++msgstr "zapasowego" + +-#: .././io/parent.c:268 ++#: .././repair/agheader.c:313 + #, c-format +-msgid "num errors: %d\n" +-msgstr "liczba błędów: %d\n" ++msgid "would zero unused portion of %s superblock (AG #%u)\n" ++msgstr "nieużywana część superbloku %s (AG #%u) zostałaby wyzerowana\n" + +-#: .././io/parent.c:270 ++#: .././repair/agheader.c:331 + #, c-format +-msgid "succeeded checking %llu inodes\n" +-msgstr "udało się sprawdzić %llu i-węzłów\n" ++msgid "bad flags field in superblock %d\n" ++msgstr "błędne pole flag w superbloku %d\n" + +-#: .././io/parent.c:281 ++#: .././repair/agheader.c:348 + #, c-format +-msgid "p_ino = %llu\n" +-msgstr "p_ino = %llu\n" ++msgid "non-null user quota inode field in superblock %d\n" ++msgstr "niezerowe pole i-węzła limitów użytkowników w superbloku %d\n" + +-#: .././io/parent.c:282 ++#: .././repair/agheader.c:361 + #, c-format +-msgid "p_gen = %u\n" +-msgstr "p_gen = %u\n" ++msgid "non-null group quota inode field in superblock %d\n" ++msgstr "niezerowe pole i-węzła limitów grup w superbloku %d\n" + +-#: .././io/parent.c:283 ++#: .././repair/agheader.c:374 + #, c-format +-msgid "p_reclen = %u\n" +-msgstr "p_reclen = %u\n" ++msgid "non-null project quota inode field in superblock %d\n" ++msgstr "niezerowe pole i-węzła limitów projektu w superbloku %d\n" + +-#: .././io/parent.c:285 ++#: .././repair/agheader.c:386 + #, c-format +-msgid "p_name = \"%s%s\"\n" +-msgstr "p_name = \"%s%s\"\n" ++msgid "non-null quota flags in superblock %d\n" ++msgstr "niezerowe flagi limitów w superbloku %d\n" + +-#: .././io/parent.c:287 ++#: .././repair/agheader.c:404 + #, c-format +-msgid "p_name = \"%s\"\n" +-msgstr "p_name = \"%s\"\n" ++msgid "bad shared version number in superblock %d\n" ++msgstr "błędny numer wersji dzielonej w superbloku %d\n" + +-#: .././io/parent.c:309 ++#: .././repair/agheader.c:416 + #, c-format +-msgid "%s: failed path_to_fshandle \"%s\": %s\n" +-msgstr "%s: path_to_fshandle nie powiodło się dla \"%s\": %s\n" ++msgid "bad inode alignment field in superblock %d\n" ++msgstr "błędne pole wyrównania i-węzłów w superbloku %d\n" + +-#: .././io/parent.c:316 ++#: .././repair/agheader.c:429 + #, c-format +-msgid "%s: path_to_handle failed for \"%s\"\n" +-msgstr "%s: path_to_handle nie powiodło się dla \"%s\"\n" ++msgid "bad stripe unit/width fields in superblock %d\n" ++msgstr "błędne pola jednostki/szerokości pasa w superbloku %d\n" + +-#: .././io/parent.c:323 ++#: .././repair/agheader.c:447 + #, c-format +-msgid "%s: unable to allocate parent buffer: %s\n" +-msgstr "%s: nie udało się przydzielić bufora nadrzędnego: %s\n" ++msgid "bad log/data device sector size fields in superblock %d\n" ++msgstr "błędne pola rozmiaru sektora urządzenia logu/danych w superbloku %d\n" + +-#: .././io/parent.c:344 ++#: .././repair/agheader.c:478 + #, c-format +-msgid "%s: %s call failed for \"%s\": %s\n" +-msgstr "%s: wywołanie %s nie powiodło się dla \"%s\": %s\n" ++msgid "bad on-disk superblock %d - %s\n" ++msgstr "błędny superblok %d na dysku - %s\n" + +-#: .././io/parent.c:353 ++#: .././repair/agheader.c:485 + #, c-format +-msgid "%s: inode-path is missing\n" +-msgstr "%s: brak inode-path\n" ++msgid "primary/secondary superblock %d conflict - %s\n" ++msgstr "konflikt głównego/zapasowego superbloku %d - %s\n" + +-#: .././io/parent.c:384 ++#: .././repair/attr_repair.c:110 + #, c-format +-msgid "file argument, \"%s\", is not in a mounted XFS filesystem\n" +-msgstr "argument plikowy \"%s\" nie jest na podmontowanym systemie plików XFS\n" ++msgid "bad range claimed [%d, %d) in da block\n" ++msgstr "błędny przedział [%d, %d) przypisany w bloku da\n" + +-#: .././io/parent.c:424 ++#: .././repair/attr_repair.c:117 + #, c-format +-msgid "" +-"\n" +-" list the current file's parents and their filenames\n" +-"\n" +-" -c -- check the current file's file system for parent consistency\n" +-" -p -- list the current file's parents and their full paths\n" +-" -v -- verbose mode\n" +-"\n" +-msgstr "" +-"\n" +-" wypisanie rodziców bieżącego pliku i ich nazw\n" +-"\n" +-" -c - sprawdzenie systemu plików pod kątem spójności rodziców pliku\n" +-" -p - wypisanie rodziców bieżącego pliku i ich pełnych ścieżek\n" +-" -v - tryb szczegółowy\n" +-"\n" +- +-#: .././io/parent.c:440 +-msgid "[-cpv]" +-msgstr "[-cpv]" +- +-#: .././io/parent.c:442 +-msgid "print or check parent inodes" +-msgstr "wypisanie lub sprawdzenie i-węzłów nadrzędnych" ++msgid "byte range end [%d %d) in da block larger than blocksize %d\n" ++msgstr "koniec przedziału bajtów [%d %d) w bloku da większy niż rozmiar bloku %d\n" + +-#: .././io/pread.c:32 ++#: .././repair/attr_repair.c:124 + #, c-format +-msgid "" +-"\n" +-" reads a range of bytes in a specified block size from the given offset\n" +-"\n" +-" Example:\n" +-" 'pread -v 512 20' - dumps 20 bytes read from 512 bytes into the file\n" +-"\n" +-" Reads a segment of the currently open file, optionally dumping it to the\n" +-" standard output stream (with -v option) for subsequent inspection.\n" +-" The reads are performed in sequential blocks starting at offset, with the\n" +-" blocksize tunable using the -b option (default blocksize is 4096 bytes),\n" +-" unless a different pattern is requested.\n" +-" -B -- read backwards through the range from offset (backwards N bytes)\n" +-" -F -- read forwards through the range of bytes from offset (default)\n" +-" -v -- be verbose, dump out buffers (used when reading forwards)\n" +-" -R -- read at random offsets in the range of bytes\n" +-" -Z N -- zeed the random number generator (used when reading randomly)\n" +-" (heh, zorry, the -s/-S arguments were already in use in pwrite)\n" +-" When in \"random\" mode, the number of read operations will equal the\n" +-" number required to do a complete forward/backward scan of the range.\n" +-" Note that the offset within the range is chosen at random each time\n" +-" (an offset may be read more than once when operating in this mode).\n" +-"\n" +-msgstr "" +-"\n" +-" odczytanie przedziału bajtów w podanym rozmiarze bloku od podanego offsetu\n" +-"\n" +-" Przykład:\n" +-" 'pread -v 512 20' - zrzucenie 20 bajtów odczytanych od 512 bajtu w pliku\n" +-"\n" +-" pread odczytuje segment aktualnie otwartego pliku, opcjonalnie zrzucając\n" +-" zawartość na strumień standardowego wyjścia (z opcją -v) dla dalszych badań.\n" +-" Odczyty są wykonywane sekwencyjnie blokami począwszy od offsetu z rozmiarem\n" +-" bloku ustawianym przy użyciu opcji -b (domyślny rozmiar bloku to 4096 bajtów),\n" +-" chyba że zażądano innego schematu.\n" +-" -B - odczyt przedziału od tyłu począwszy od offsetu (N bajtów do tyłu)\n" +-" -F - odczyt przedziału od przodu począwszy od offsetu (domyślny)\n" +-" -v - tryb szczegółowy, zrzucenie bufora (przy odczycie od przodu)\n" +-" -R - odczyt losowych offsetów z przedziału bajtów\n" +-" -Z N - (\"zeed\") nakarmienie generatora liczb losowych (przy odczycie losowym)\n" +-" (nieztety opcje -s/-S pasujące do \"seed\" były już zajęte w pwrite)\n" +-" W przypadku trybu losowego liczba operacji odczytu będzie równa liczbie\n" +-" potrzebnej do pełnego przeskanowania od przodu lub od tyłu całego przedziału.\n" +-" Należy zauważyć, że offset w przedziale jest wybierany za każdym razem losowo\n" +-" (dowolny offset może być w tym trybie czytany więcej niż raz).\n" +-"\n" ++msgid "multiply claimed byte %d in da block\n" ++msgstr "wielokrotnie użyty bajt %d w bloku da\n" + +-#: .././io/pread.c:286 .././io/pwrite.c:217 ++#: .././repair/attr_repair.c:177 + #, c-format +-msgid "non-numeric bsize -- %s\n" +-msgstr "nieliczbowy rozmiar bloku - %s\n" ++msgid "can't read block %u (fsbno %) for directory inode %\n" ++msgstr "nie można odczytać bloku %u (fsbno %) dla i-węzła katalogu %\n" + +-#: .././io/pread.c:375 ++#: .././repair/attr_repair.c:181 + #, c-format +-msgid "read %lld/%lld bytes at offset %lld\n" +-msgstr "odczytano %lld/%lld bajtów od offsetu %lld\n" ++msgid "can't read block %u (fsbno %) for attrbute fork of inode %\n" ++msgstr "nie można odczytać bloku %u (fsbno %) dla gałęzi atrybutów i-węzła %\n" + +-#: .././io/pread.c:377 .././io/pwrite.c:336 .././io/sendfile.c:163 ++#: .././repair/attr_repair.c:192 + #, c-format +-msgid "%s, %d ops; %s (%s/sec and %.4f ops/sec)\n" +-msgstr "%s, %d operacji; %s (%s/sek i %.4f operacji/sek)\n" +- +-#: .././io/pread.c:396 +-msgid "[-b bs] [-v] off len" +-msgstr "[-b rozm_bloku] [-v] offset długość" +- +-#: .././io/pread.c:397 +-msgid "reads a number of bytes at a specified offset" +-msgstr "odczyt podanej liczby bajtów od podanego offsetu" ++msgid "bad dir/attr magic number in inode %, file bno = %u, fsbno = %\n" ++msgstr "błędna liczba magiczna katalogu/atrybutu w i-węźle %, bno pliku = %u, fsbno = %\n" + +-#: .././io/prealloc.c:216 .././io/prealloc.c:224 .././io/prealloc.c:232 +-#: .././io/prealloc.c:240 .././io/prealloc.c:250 .././io/prealloc.c:276 +-msgid "off len" +-msgstr "offset długość" ++#: .././repair/attr_repair.c:200 .././repair/dir2.c:212 ++#, c-format ++msgid "bad record count in inode %, count = %d, max = %d\n" ++msgstr "błędna liczba rekordów w i-węźle %, liczba = %d, maksimum = %d\n" + +-#: .././io/prealloc.c:217 +-msgid "allocates zeroed space for part of a file" +-msgstr "przydzielenie wyzerowanej przestrzeni dla części pliku" ++#: .././repair/attr_repair.c:219 .././repair/dir2.c:236 ++#, c-format ++msgid "bad directory btree for directory inode %\n" ++msgstr "błędne b-drzewo katalogu dla i-węzła katalogu %\n" + +-#: .././io/prealloc.c:225 +-msgid "frees space associated with part of a file" +-msgstr "zwolnienie miejsca związanego z częścią pliku" ++#: .././repair/attr_repair.c:223 ++#, c-format ++msgid "bad attribute fork btree for inode %\n" ++msgstr "błędne b-drzewo gałęzi atrybutów dla i-węzła %\n" + +-#: .././io/prealloc.c:234 +-msgid "reserves space associated with part of a file" +-msgstr "zarezerwowanie miejsca związanego z częścią pliku" ++#: .././repair/attr_repair.c:276 ++#, c-format ++msgid "release_da_cursor_int got unexpected non-null bp, dabno = %u\n" ++msgstr "release_da_cursor_int otrzymało nieoczekiwany niepusty bp, dabno = %u\n" + +-#: .././io/prealloc.c:243 +-msgid "frees reserved space associated with part of a file" +-msgstr "zwolnienie zarezerwowanego miejsca związanego z częścią pliku" ++#: .././repair/attr_repair.c:348 ++#, c-format ++msgid "directory/attribute block used/count inconsistency - %d/%hu\n" ++msgstr "niespójność wartości used/count bloku katalogu/atrybutu - %d/%hu\n" + +-#: .././io/prealloc.c:252 +-msgid "Converts the given range of a file to allocated zeros" +-msgstr "Zamiana podanego przedziału pliku na przydzielone zera" ++#: .././repair/attr_repair.c:358 .././repair/dir2.c:361 ++#, c-format ++msgid "directory/attribute block hashvalue inconsistency, expected > %u / saw %u\n" ++msgstr "niespójność wartości hasza bloku katalogu/atrybutu - oczekiwano > %u, widziano %u\n" + +-#: .././io/prealloc.c:266 +-msgid "[-k] [-p] off len" +-msgstr "[-k] [-p] offset długość" ++#: .././repair/attr_repair.c:365 .././repair/dir2.c:368 ++#, c-format ++msgid "bad directory/attribute forward block pointer, expected 0, saw %u\n" ++msgstr "błędny wskaźnik bloku w przód katalogu/atrybutu - oczekiwano 0, widziano %u\n" + +-#: .././io/prealloc.c:268 +-msgid "allocates space associated with part of a file via fallocate" +-msgstr "przydzielenie miejsca powiązanego z częścią pliku przez fallocate" ++#: .././repair/attr_repair.c:371 ++#, c-format ++msgid "bad directory block in dir ino %\n" ++msgstr "błędny blok katalogu w i-węźle katalogu %\n" + +-#: .././io/prealloc.c:278 +-msgid "de-allocates space assocated with part of a file via fallocate" +-msgstr "zwolnienie miejsca powiązanego z częścią pliku przez fallocate" ++#: .././repair/attr_repair.c:399 ++#, c-format ++msgid "" ++"correcting bad hashval in non-leaf dir/attr block\n" ++"\tin (level %d) in inode %.\n" ++msgstr "" ++"poprawiono błędne hashval w bloku katalogu/atrybutu nie będącego liściem\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././io/pwrite.c:31 ++#: .././repair/attr_repair.c:407 + #, c-format + msgid "" +-"\n" +-" writes a range of bytes (in block size increments) from the given offset\n" +-"\n" +-" Example:\n" +-" 'pwrite 512 20' - writes 20 bytes at 512 bytes into the open file\n" +-"\n" +-" Writes into a segment of the currently open file, using either a buffer\n" +-" filled with a set pattern (0xcdcdcdcd) or data read from an input file.\n" +-" The writes are performed in sequential blocks starting at offset, with the\n" +-" blocksize tunable using the -b option (default blocksize is 4096 bytes),\n" +-" unless a different write pattern is requested.\n" +-" -S -- use an alternate seed number for filling the write buffer\n" +-" -i -- input file, source of data to write (used when writing forward)\n" +-" -d -- open the input file for direct IO\n" +-" -s -- skip a number of bytes at the start of the input file\n" +-" -w -- call fdatasync(2) at the end (included in timing results)\n" +-" -W -- call fsync(2) at the end (included in timing results)\n" +-" -B -- write backwards through the range from offset (backwards N bytes)\n" +-" -F -- write forwards through the range of bytes from offset (default)\n" +-" -R -- write at random offsets in the specified range of bytes\n" +-" -Z N -- zeed the random number generator (used when writing randomly)\n" +-" (heh, zorry, the -s/-S arguments were already in use in pwrite)\n" +-"\n" ++"would correct bad hashval in non-leaf dir/attr block\n" ++"\tin (level %d) in inode %.\n" + msgstr "" +-"\n" +-" zapisanie przedziału bajtów w podanym rozmiarze bloku od podanego offsetu\n" +-"\n" +-" Przykład:\n" +-" 'pwrite 512 20' - zapisanie 20 bajtów odczytanych od 512 bajtu w pliku\n" +-"\n" +-" pwrite zapisuje segment aktualnie otwartego pliku, używając bufora wypełnionego\n" +-" ustawionym wzorcem (0xcdcdcdcd) lub danymi odczytanymi z pliku wejściowego.\n" +-" Zapisy są wykonywane sekwencyjnie blokami począwszy od offsetu z rozmiarem\n" +-" bloku ustawianym przy użyciu opcji -b (domyślny rozmiar bloku to 4096 bajtów),\n" +-" chyba że zażądano innego schematu.\n" +-" -S - użycie innej liczby do wypełnienia bufora zapisu\n" +-" -i - plik wejściowy, źródło danych do zapisania (przy pisaniu od przodu)\n" +-" -d - otwarcie pliku wejściowego dla bezpośredniego we/wy\n" +-" -s - pominięcie podanej liczby bajtów od początku pliku wejściowego\n" +-" -w - wywołanie fdatasync(2) na końcu (wliczane w wyniki czasowe)\n" +-" -W - wywołanie fsync(2) na końcu (wliczane w wyniki czasowe)\n" +-" -B - zapis przedziału od tyłu począwszy od offsetu (N bajtów do tyłu)\n" +-" -F - zapis przedziału od przodu począwszy od offsetu (domyślny)\n" +-" -R - zapis losowych offsetów z przedziału bajtów\n" +-" -Z N - (\"zeed\") nakarmienie generatora liczb losowych (przy zapisie losowym)\n" +-" (nieztety opcje -s/-S pasujące do \"seed\" były już zajęte w pwrite)\n" +-"\n" ++"błędne hashval zostałoby poprawione w bloku katalogu/atrybutu nie będącego liściem\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././io/pwrite.c:244 ++#: .././repair/attr_repair.c:549 .././repair/dir2.c:537 + #, c-format +-msgid "non-numeric skip -- %s\n" +-msgstr "nieliczbowy liczba bajtów do pominięcia - %s\n" ++msgid "can't get map info for block %u of directory inode %\n" ++msgstr "nie można uzyskać informacji o mapie dla bloku %u i-węzła katalogu %\n" + +-#: .././io/pwrite.c:334 ++#: .././repair/attr_repair.c:559 + #, c-format +-msgid "wrote %lld/%lld bytes at offset %lld\n" +-msgstr "zapisano %lld/%lld bajtów od offsetu %lld\n" +- +-#: .././io/pwrite.c:359 +-msgid "[-i infile [-d] [-s skip]] [-b bs] [-S seed] [-wW] off len" +-msgstr "[-i plik_wej [-d] [-s do_pominięcia]] [-b rozm_bloku] [-S zarodek] [-wW] offset długość" +- +-#: .././io/pwrite.c:361 +-msgid "writes a number of bytes at a specified offset" +-msgstr "zapis podanej liczby bajtów od podanego offsetu" ++msgid "can't read block %u (%) for directory inode %\n" ++msgstr "nie można odczytać bloku %u (%) dla i-węzła katalogu %\n" + +-#: .././io/resblks.c:39 ++#: .././repair/attr_repair.c:575 + #, c-format +-msgid "non-numeric argument -- %s\n" +-msgstr "nieliczbowy argument - %s\n" ++msgid "bad magic number %x in block %u (%) for directory inode %\n" ++msgstr "błędna liczba magiczna %x w bloku %u (%) dla i-węzła katalogu %\n" + +-#: .././io/resblks.c:51 ++#: .././repair/attr_repair.c:582 + #, c-format +-msgid "reserved blocks = %llu\n" +-msgstr "zarezerwowane bloki = %llu\n" ++msgid "bad back pointer in block %u (%) for directory inode %\n" ++msgstr "błędny wskaźnik wstecz w bloku %u (%) dla i-węzła katalogu %\n" + +-#: .././io/resblks.c:53 ++#: .././repair/attr_repair.c:588 + #, c-format +-msgid "available reserved blocks = %llu\n" +-msgstr "dostępne zarezerwowane bloki = %llu\n" ++msgid "entry count %d too large in block %u (%) for directory inode %\n" ++msgstr "liczba wpisów %d zbyt duża w bloku %u (%) dla i-węzła katalogu %\n" + +-#: .././io/resblks.c:66 +-msgid "[blocks]" +-msgstr "[bloki]" ++#: .././repair/attr_repair.c:595 ++#, c-format ++msgid "bad level %d in block %u (%) for directory inode %\n" ++msgstr "błędny poziom %d w bloku %u (%) dla i-węzła katalogu %\n" + +-#: .././io/resblks.c:68 +-msgid "get and/or set count of reserved filesystem blocks" +-msgstr "pobranie i/lub ustawienie liczby zarezerwowanych bloków w systemie plików" ++#: .././repair/attr_repair.c:660 ++#, c-format ++msgid "" ++"correcting bad hashval in interior dir/attr block\n" ++"\tin (level %d) in inode %.\n" ++msgstr "" ++"poprawiono błędne hashval w wewnętrznym bloku katalogu/atrybutu\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././io/sendfile.c:32 ++#: .././repair/attr_repair.c:668 + #, c-format + msgid "" +-"\n" +-" transfer a range of bytes from the given offset between files\n" +-"\n" +-" Example:\n" +-" 'send -f 2 512 20' - writes 20 bytes at 512 bytes into the open file\n" +-"\n" +-" Copies data between one file descriptor and another. Because this copying\n" +-" is done within the kernel, sendfile does not need to transfer data to and\n" +-" from user space.\n" +-" -f -- specifies an input file from which to source data to write\n" +-" -i -- specifies an input file name from which to source data to write.\n" +-" An offset and length in the source file can be optionally specified.\n" +-"\n" ++"would correct bad hashval in interior dir/attr block\n" ++"\tin (level %d) in inode %.\n" + msgstr "" +-"\n" +-" przesłanie między plikami przedziału bajtów od podanego offsetu\n" +-"\n" +-" Przykład:\n" +-" 'send -f 2 512 20' - zapisanie 20 bajtów od 512 bajtu do otwartego pliku\n" +-"\n" +-" sendfile kopiuje dane między jednym deskryptorem pliku a innym. Ponieważ to\n" +-" kopiowanie jest wykonywane przez jądro, sendfile nie potrzebuje przesyłać\n" +-" danych do i z przestrzeni użytkownika.\n" +-" -f - podanie plików wejściowego z którego dane mają być czytane\n" +-" -i - podanie nazwy pliku wejściowego z którego dane mają być czytane\n" +-" Opcjonalnie można podać offset i długość danych w pliku źródłowym.\n" +-"\n" ++"błędne hashval zostałoby poprawione w wewnętrznym bloku katalogu/atrybutu\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././io/sendfile.c:161 ++#: .././repair/attr_repair.c:758 ++msgid "entry contains illegal value in attribute named SGI_ACL_FILE or SGI_ACL_DEFAULT\n" ++msgstr "wpis zawiera niedozwoloną wartość w atrybucie SGI_ACL_FILE lub SGI_ACL_DEFAULT\n" ++ ++#: .././repair/attr_repair.c:780 ++msgid "entry contains illegal value in attribute named SGI_MAC_LABEL\n" ++msgstr "wpis zawiera niedozwoloną wartość w atrybucie SGI_MAC_LABEL\n" ++ ++#: .././repair/attr_repair.c:786 ++msgid "entry contains illegal value in attribute named SGI_CAP_FILE\n" ++msgstr "wpis zawiera niedozwoloną wartość w atrybucie SGI_CAP_FILE\n" ++ ++#: .././repair/attr_repair.c:825 + #, c-format +-msgid "sent %lld/%lld bytes from offset %lld\n" +-msgstr "przesłano %lld/%lld bajtów od offsetu %lld\n" ++msgid "there are no attributes in the fork for inode %\n" ++msgstr "nie ma atrybutów w gałęzi dla i-węzła %\n" + +-#: .././io/sendfile.c:186 +-msgid "-i infile | -f N [off len]" +-msgstr "-i plik_wej | -f N [offset długość]" ++#: .././repair/attr_repair.c:833 ++#, c-format ++msgid "would junk the attribute fork since count is 0 for inode %\n" ++msgstr "gałąź atrybutów zostałaby usunięta ponieważ licznik wynosi 0 dla i-węzła %\n" + +-#: .././io/sendfile.c:188 +-msgid "Transfer data directly between file descriptors" +-msgstr "Przesłanie danych bezpośrednio między deskryptorami plików" ++#: .././repair/attr_repair.c:853 ++msgid "zero length name entry in attribute fork," ++msgstr "wpis nazwy zerowej długości w gałęzi atrybutów," + +-#: .././io/shutdown.c:59 +-msgid "[-f]" +-msgstr "[-f]" ++#: .././repair/attr_repair.c:856 .././repair/attr_repair.c:876 ++#, c-format ++msgid " truncating attributes for inode % to %d\n" ++msgstr " ucięto atrybuty dla i-węzła % do %d\n" + +-#: .././io/shutdown.c:61 +-msgid "shuts down the filesystem where the current file resides" +-msgstr "wyłączenie systemu plików na którym znajduje się bieżący plik" ++#: .././repair/attr_repair.c:861 .././repair/attr_repair.c:882 ++#, c-format ++msgid " would truncate attributes for inode % to %d\n" ++msgstr " atrybuty dla i-węzła % zostałyby ucięte do %d\n" + +-#: .././io/truncate.c:38 ++#: .././repair/attr_repair.c:873 ++msgid "name or value attribute lengths are too large,\n" ++msgstr "długości nazwy lub wartości atrybutów są zbyt duże,\n" ++ ++#: .././repair/attr_repair.c:895 ++msgid "entry contains illegal character in shortform attribute name\n" ++msgstr "wpis zawiera niedozwolony znak w nazwie atrybutu krótkiego\n" ++ ++#: .././repair/attr_repair.c:901 ++msgid "entry has INCOMPLETE flag on in shortform attribute\n" ++msgstr "wpis ma flagę NIEPEŁNY w atrybucie krótkim\n" ++ ++#: .././repair/attr_repair.c:918 + #, c-format +-msgid "non-numeric truncate argument -- %s\n" +-msgstr "nieliczbowy argument truncate - %s\n" ++msgid "removing attribute entry %d for inode %\n" ++msgstr "usunięto wpis atrybutu %d dla i-węzła %\n" + +-#: .././io/truncate.c:58 +-msgid "off" +-msgstr "offset" ++#: .././repair/attr_repair.c:930 ++#, c-format ++msgid "would remove attribute entry %d for inode %\n" ++msgstr "wpis atrybutu %d dla i-węzła % zostałby usunięty\n" + +-#: .././io/truncate.c:60 +-msgid "truncates the current file at the given offset" +-msgstr "ucięcie bieżącego pliku na podanym offsecie" ++#: .././repair/attr_repair.c:945 ++#, c-format ++msgid "would have corrected attribute entry count in inode % from %d to %d\n" ++msgstr "liczba wpisów atrybutów w i-węźle % zostałaby poprawiona z %d na %d\n" + +-#: .././io/attr.c:59 ++#: .././repair/attr_repair.c:949 + #, c-format +-msgid "" +-"\n" +-" displays the set of extended inode flags associated with the current file\n" +-"\n" +-" Each individual flag is displayed as a single character, in this order:\n" +-" r -- file data is stored in the realtime section\n" +-" p -- file has preallocated extents (cannot be changed using chattr)\n" +-" i -- immutable, file cannot be modified\n" +-" a -- append-only, file can only be appended to\n" +-" s -- all updates are synchronous\n" +-" A -- the access time is not updated for this inode\n" +-" d -- do not include this file in a dump of the filesystem\n" +-" t -- child created in this directory has realtime bit set by default\n" +-" P -- child created in this directory has parents project ID by default\n" +-" n -- symbolic links cannot be created in this directory\n" +-" e -- for non-realtime files, observe the inode extent size value\n" +-" E -- children created in this directory inherit the extent size value\n" +-" f -- do not include this file when defragmenting the filesystem\n" +-" S -- enable filestreams allocator for this directory\n" +-"\n" +-" Options:\n" +-" -R -- recursively descend (useful when current file is a directory)\n" +-" -D -- recursively descend, but only list attributes on directories\n" +-" -a -- show all flags which can be set alongside those which are set\n" +-" -v -- verbose mode; show long names of flags, not single characters\n" +-"\n" +-msgstr "" +-"\n" +-" wyświetlanie zbioru rozszerzonych flag i-węzłów związanych z bieżącym plikiem\n" +-"\n" +-" Każda flaga jest wyświetlana jako pojedynczy znak, w tej kolejności:\n" +-" r - dane pliku są zapisane w sekcji realtime\n" +-" p - plik ma już przydzielone ekstenty (nie do zmiany przez chattr)\n" +-" i - niezmienny, pliku nie można modyfikować\n" +-" a - tylko do dopisywania, do pliku można tylko dopisywać\n" +-" s - wszystkie uaktualnienia są synchroniczne\n" +-" A - czas dostępu nie jest uaktualniany dla tego i-węzła\n" +-" d - nie dołączanie pliku do zrzutu systemu plików\n" +-" t - wpisy tworzone w tym katalogu mają domyślnie ustawiony bit realtime\n" +-" P - wpisy tworzone w tym katalogu mają domyślnie ID projektu rodzica\n" +-" n - w tym katalogu nie można tworzyć dowiązań symbolicznych\n" +-" e - dla plików nie-realtime - przestrzeganie wartości rozmiaru ekstentu i-węzła\n" +-" E - wpisy tworzone w tym katalogu dziedziczą wartość rozmiaru ekstentu\n" +-" f - nie uwzględnianie tego pliku przy defragmentacji systemu plików\n" +-" S - włączenie przydzielania strumieni plikowych dla tego katalogu\n" +-"\n" +-" Opcje:\n" +-" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" +-" -D - rekurencyjne zagłębianie się, ale wypisywanie atrybutów tylko katalogów\n" +-" -a - pokazywanie wszystkich flag, które można ustawić, obok ustawionych\n" +-" -v - tryb szczegółowy; pokazywanie długich nazw flag zamiast pojedynczych znaków\n" +-"\n" ++msgid "corrected attribute entry count in inode %, was %d, now %d\n" ++msgstr "poprawiono liczbę wpisów atrybutów w i-węźle % - było %d, jest %d\n" + +-#: .././io/attr.c:90 ++#: .././repair/attr_repair.c:960 + #, c-format +-msgid "" +-"\n" +-" modifies the set of extended inode flags associated with the current file\n" +-"\n" +-" Examples:\n" +-" 'chattr +a' - sets the append-only flag\n" +-" 'chattr -a' - clears the append-only flag\n" +-"\n" +-" -R -- recursively descend (useful when current file is a directory)\n" +-" -D -- recursively descend, only modifying attributes on directories\n" +-" +/-r -- set/clear the realtime flag\n" +-" +/-i -- set/clear the immutable flag\n" +-" +/-a -- set/clear the append-only flag\n" +-" +/-s -- set/clear the sync flag\n" +-" +/-A -- set/clear the no-atime flag\n" +-" +/-d -- set/clear the no-dump flag\n" +-" +/-t -- set/clear the realtime inheritance flag\n" +-" +/-P -- set/clear the project ID inheritance flag\n" +-" +/-n -- set/clear the no-symbolic-links flag\n" +-" +/-e -- set/clear the extent-size flag\n" +-" +/-E -- set/clear the extent-size inheritance flag\n" +-" +/-f -- set/clear the no-defrag flag\n" +-" +/-S -- set/clear the filestreams allocator flag\n" +-" Note1: user must have certain capabilities to modify immutable/append-only.\n" +-" Note2: immutable/append-only files cannot be deleted; removing these files\n" +-" requires the immutable/append-only flag to be cleared first.\n" +-" Note3: the realtime flag can only be set if the filesystem has a realtime\n" +-" section, and the (regular) file must be empty when the flag is set.\n" +-"\n" +-msgstr "" +-"\n" +-" zmiana zbioru rozszerzonych flag i-węzłów związanych z bieżącym plikiem\n" +-"\n" +-" Przykłady:\n" +-" 'chattr +a' - ustawia flagę tylko do dopisywania\n" +-" 'chattr -a' - zdejmuje flagę tylko do dopisywania\n" +-"\n" +-" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" +-" -D - rekurencyjne zagłębianie się, ale zmiana atrybutów tylko katalogów\n" +-" +/-r - ustawienie/zdjęcie flagi realtime\n" +-" +/-i - ustawienie/zdjęcie flagi immutable (niezmienności)\n" +-" +/-a - ustawienie/zdjęcie flagi append-only (tylko do dopisywania)\n" +-" +/-s - ustawienie/zdjęcie flagi sync (synchronicznego zapisu)\n" +-" +/-A - ustawienie/zdjęcie flagi no-atime\n" +-" +/-d - ustawienie/zdjęcie flagi no-dump\n" +-" +/-t - ustawienie/zdjęcie flagi dziedziczenia realtime\n" +-" +/-P - ustawienie/zdjęcie flagi dziedziczenia ID projektu\n" +-" +/-n - ustawienie/zdjęcie flagi braku dowiązań symbolicznych\n" +-" +/-e - ustawienie/zdjęcie flagi rozmiaru ekstentu\n" +-" +/-E - ustawienie/zdjęcie flagi dziedziczenia rozmiaru ekstentu\n" +-" +/-f - ustawienie/zdjęcie flagi no-defrag\n" +-" +/-S - ustawienie/zdjęcie flagi przydzielania strumieni plikowych\n" +-" Uwaga1: użytkownik musi mieć pewne uprawnienia do zmiany flag\n" +-" immutable/append-only\n" +-" Uwaga2: plików immutable/append-only nie można usuwać; usuwanie tych plików\n" +-" wymaga zdjęcia flag immutable/append-only przed usunięciem.\n" +-" Uwaga3: flagę realtime można ustawić tylko jeśli system plików ma sekcję\n" +-" realtime i (zwykły) plik musi być pusty przy ustawianiu flagi.\n" +-"\n" ++msgid "would have corrected attribute totsize in inode % from %d to %d\n" ++msgstr "totsize atrybutów w i-węźle % zostałby poprawiony z %d na %d\n" + +-#: .././io/attr.c:256 .././io/attr.c:327 ++#: .././repair/attr_repair.c:965 + #, c-format +-msgid "%s: cannot set flags on %s: %s\n" +-msgstr "%s: nie można ustawić flag %s: %s\n" ++msgid "corrected attribute entry totsize in inode %, was %d, now %d\n" ++msgstr "poprawiono totsize wpisu atrybutów w i-węźle % - było %d, jest %d\n" + +-#: .././io/attr.c:291 .././io/attr.c:305 ++#: .././repair/attr_repair.c:999 + #, c-format +-msgid "%s: unknown flag\n" +-msgstr "%s: nieznana flaga\n" ++msgid "remote block for attributes of inode % is missing\n" ++msgstr "brak odległego bloku dla atrybutów i-węzła %\n" + +-#: .././io/attr.c:311 ++#: .././repair/attr_repair.c:1008 + #, c-format +-msgid "%s: bad chattr command, not +/-X\n" +-msgstr "%s: złe polecenie chattr - nie +/-X\n" ++msgid "can't read remote block for attributes of inode %\n" ++msgstr "nie można odczytać odległego bloku dla atrybutów i-węzła %\n" + +-#: .././io/attr.c:338 +-msgid "[-R|-D] [+/-" +-msgstr "[-R|-D] [+/-" ++#: .././repair/attr_repair.c:1015 ++#, c-format ++msgid "Corrupt remote block for attributes of inode %\n" ++msgstr "Uszkodzony odległy blok dla atrybutów i-węzła %\n" + +-#: .././io/attr.c:343 +-msgid "change extended inode flags on the currently open file" +-msgstr "zmiana rozszerzonych flag i-węzłów aktualnie otwartego pliku" ++#: .././repair/attr_repair.c:1055 ++#, c-format ++msgid "attribute entry %d in attr block %u, inode % has bad name (namelen = %d)\n" ++msgstr "wpis atrybutu %d w bloku atrybutów %u, i-węźle % ma błędną nazwę (namelen = %d)\n" + +-#: .././io/attr.c:348 +-msgid "[-R|-D|-a|-v]" +-msgstr "[-R|-D|-a|-v]" ++#: .././repair/attr_repair.c:1072 ++#, c-format ++msgid "bad hashvalue for attribute entry %d in attr block %u, inode %\n" ++msgstr "błędna wartość hasza dla wpisu atrybutu %d w bloku atrybutów %u, i-węźle %\n" + +-#: .././io/attr.c:353 +-msgid "list extended inode flags set on the currently open file" +-msgstr "wypisanie rozszerzonych flag i-węzłów aktualnie otwartego pliku" ++#: .././repair/attr_repair.c:1082 ++#, c-format ++msgid "bad security value for attribute entry %d in attr block %u, inode %\n" ++msgstr "błędna wartość bezpieczeństwa dla wpisu atrybutu %d w bloku atrybutów %u, i-węźle %\n" + +-#: .././io/bmap.c:30 ++#: .././repair/attr_repair.c:1115 + #, c-format +-msgid "" +-"\n" +-" prints the block mapping for an XFS file's data or attribute forks\n" +-" Example:\n" +-" 'bmap -vp' - tabular format verbose map, including unwritten extents\n" +-"\n" +-" bmap prints the map of disk blocks used by the current file.\n" +-" The map lists each extent used by the file, as well as regions in the\n" +-" file that do not have any corresponding blocks (holes).\n" +-" By default, each line of the listing takes the following form:\n" +-" extent: [startoffset..endoffset]: startblock..endblock\n" +-" Holes are marked by replacing the startblock..endblock with 'hole'.\n" +-" All the file offsets and disk blocks are in units of 512-byte blocks.\n" +-" -a -- prints the attribute fork map instead of the data fork.\n" +-" -d -- suppresses a DMAPI read event, offline portions shown as holes.\n" +-" -l -- also displays the length of each extent in 512-byte blocks.\n" +-" -n -- query n extents.\n" +-" -p -- obtain all unwritten extents as well (w/ -v show which are unwritten.)\n" +-" -v -- Verbose information, specify ag info. Show flags legend on 2nd -v\n" +-" Note: the bmap for non-regular files can be obtained provided the file\n" +-" was opened appropriately (in particular, must be opened read-only).\n" +-"\n" +-msgstr "" +-"\n" +-" wypisanie mapowania bloków dla danych lub atrybutów pliku na XFS-ie\n" +-" Przykład:\n" +-" 'bmap -vp' - szczegółowa mapa w formacie tabeli wraz z nie zapisanymi\n" +-" ekstentami\n" +-"\n" +-" bmap wypisuje mapę bloków dysku używanych przez bieżący plik.\n" +-" Mapa opisuje każdy ekstent użyty przez plik, a także regiony w pliku\n" +-" nie mające przypisanych bloków (dziury).\n" +-" Domyślnie każda linia listingu przyjmuje następującą postać:\n" +-" ekstent: [offsetpocz..offsetkońc]: blokpocz..blokkońc\n" +-" Dziury są oznaczane przez zastąpienie blokpocz..blokkońc przez 'dziura'.\n" +-" Wszystkie offsety w plikach i bloki dysku są w jednostkach 512-bajtowych.\n" +-" -a - wypisanie mapy gałęzi atrybutów zamiast gałęzi danych.\n" +-" -d - pominięcie zdarzenia odczytu DMAPI, pokazanie części offline jako dziur.\n" +-" -l - wyświetlenie także długości każdego fragmentu w 512-bajtowych blokach.\n" +-" -n - odpytanie n ekstentów.\n" +-" -p - wypisanie także nie zapisanych ekstentów (z -v pokazuje, które są nie\n" +-" zapisane).\n" +-" -v - szczegółowe informacje z podaniem informacji ag; legenda drugim -v\n" +-" Uwaga: bmap dla plików nie będących plikami zwykłymi można uzyskać pod\n" +-" warunkiem, że plik został otwarty odpowiednio (w szczególności musi być\n" +-" otwarty tylko do odczytu).\n" +-"\n" ++msgid "inconsistent remote attribute entry %d in attr block %u, ino %\n" ++msgstr "niespójny wpis odległego atrybutu %d w bloku atrybutów %u, i-węźle %\n" + +-#: .././io/bmap.c:123 ++#: .././repair/attr_repair.c:1125 + #, c-format +-msgid "%s: can't get geometry [\"%s\"]: %s\n" +-msgstr "%s: nie można uzyskać geometrii [\"%s\"]: %s\n" ++msgid "cannot malloc enough for remotevalue attribute for inode %\n" ++msgstr "nie można przydzielić wystarczająco dużo dla atrybutu remotevalue dla i-węzła %\n" + +-#: .././io/bmap.c:131 ++#: .././repair/attr_repair.c:1127 ++msgid "SKIPPING this remote attribute\n" ++msgstr "POMINIĘTO ten atrybut odległy\n" ++ ++#: .././repair/attr_repair.c:1133 + #, c-format +-msgid "%s: cannot read attrs on \"%s\": %s\n" +-msgstr "%s: nie można odczytać atrybutów \"%s\": %s\n" ++msgid "remote attribute get failed for entry %d, inode %\n" ++msgstr "pobranie odległego atrybutu nie powiodło się dla wpisu %d, i-węzła %\n" + +-#: .././io/bmap.c:197 ++#: .././repair/attr_repair.c:1140 + #, c-format +-msgid "%s: xfsctl(XFS_IOC_GETBMAPX) iflags=0x%x [\"%s\"]: %s\n" +-msgstr "%s: xfsctl(XFS_IOC_GETBMAPX) iflags=0x%x [\"%s\"]: %s\n" ++msgid "remote attribute value check failed for entry %d, inode %\n" ++msgstr "sprawdzenie wartości odległego atrybutu nie powiodło się dla wpisu %d, i-węzła %\n" + +-#: .././io/bmap.c:228 ++#: .././repair/attr_repair.c:1178 + #, c-format +-msgid "%s: cannot realloc %d bytes\n" +-msgstr "%s: nie można wykonać realloc na %d bajtów\n" ++msgid "bad attribute count %d in attr block %u, inode %\n" ++msgstr "błędna liczba atrybutów %d w bloku atrybutów %u, i-węźle %\n" + +-#: .././io/bmap.c:237 ++#: .././repair/attr_repair.c:1193 + #, c-format +-msgid "%s: no extents\n" +-msgstr "%s: brak ekstentów\n" ++msgid "bad attribute nameidx %d in attr block %u, inode %\n" ++msgstr "błędny nameidx atrybutu %d w bloku atrybutów %u, i-węźle %\n" + +-#: .././io/bmap.c:260 ++#: .././repair/attr_repair.c:1202 + #, c-format +-msgid " %lld blocks\n" +-msgstr " %lld bloków\n" ++msgid "attribute entry #%d in attr block %u, inode % is INCOMPLETE\n" ++msgstr "wpis atrybutu #%d w bloku atrybutów %u, i-węźle % jest NIEPEŁNY\n" + +-#: .././io/bmap.c:341 +-msgid "RT-BLOCK-RANGE" +-msgstr "ZAKRES-BLOKÓW-RT" ++#: .././repair/attr_repair.c:1213 ++#, c-format ++msgid "attribute entry %d in attr block %u, inode % claims already used space\n" ++msgstr "wpis atrybutu %d w bloku atrybutów %u, i-węźle % odwołuje się do już użytego miejsca\n" + +-#: .././io/bmap.c:342 +-msgid "AG" +-msgstr "AG" ++#: .././repair/attr_repair.c:1236 ++#, c-format ++msgid "attribute entry %d in attr block %u, inode % claims used space\n" ++msgstr "wpis atrybutu %d w bloku atrybutów %u, i-węźle % odwołuje się do używanego miejsca\n" + +-#: .././io/bmap.c:343 +-msgid "AG-OFFSET" +-msgstr "OFFSET-AG" ++#: .././repair/attr_repair.c:1260 ++#, c-format ++msgid "- resetting first used heap value from %d to %d in block %u of attribute fork of inode %\n" ++msgstr "- przestawiono pierwszą używaną wartość sterty z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" + +-#: .././io/bmap.c:345 +-msgid " FLAGS" +-msgstr " FLAGI" ++#: .././repair/attr_repair.c:1268 ++#, c-format ++msgid "- would reset first used value from %d to %d in block %u of attribute fork of inode %\n" ++msgstr "- pierwsza używana wartość zostałaby przestawiona z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" + +-#: .././io/bmap.c:413 ++#: .././repair/attr_repair.c:1278 + #, c-format +-msgid " FLAG Values:\n" +-msgstr " Wartości FLAG:\n" ++msgid "- resetting usedbytes cnt from %d to %d in block %u of attribute fork of inode %\n" ++msgstr "- przestawiono liczbę użytych bajtów z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" + +-#: .././io/bmap.c:414 ++#: .././repair/attr_repair.c:1286 + #, c-format +-msgid " %*.*o Unwritten preallocated extent\n" +-msgstr " %*.*o Nie zapisany, już przydzielony ekstent\n" ++msgid "- would reset usedbytes cnt from %d to %d in block %u of attribute fork of %\n" ++msgstr "- liczba użytych bajtów zostałaby przestawiona z %d na %d w bloku %u gałęzi atrybutów i-węzła %\n" + +-#: .././io/bmap.c:416 ++#: .././repair/attr_repair.c:1341 + #, c-format +-msgid " %*.*o Doesn't begin on stripe unit\n" +-msgstr " %*.*o Nie zaczyna się od jednostki pasa\n" ++msgid "can't map block %u for attribute fork for inode %\n" ++msgstr "nie można odwzorować bloku %u dla gałęzi atrybutów dla i-węzła %\n" + +-#: .././io/bmap.c:418 ++#: .././repair/attr_repair.c:1351 + #, c-format +-msgid " %*.*o Doesn't end on stripe unit\n" +-msgstr " %*.*o Nie kończy się na jednostce pasa\n" ++msgid "can't read file block %u (fsbno %) for attribute fork of inode %\n" ++msgstr "nie można odczytać bloku pliku %u (fsbno %) dla gałęzi atrybutów i-węzła %\n" + +-#: .././io/bmap.c:420 ++#: .././repair/attr_repair.c:1365 + #, c-format +-msgid " %*.*o Doesn't begin on stripe width\n" +-msgstr " %*.*o Nie zaczyna się na szerokości pasa\n" ++msgid "bad attribute leaf magic %#x for inode %\n" ++msgstr "błędna liczba magiczna liścia atrybutu %#x dla i-węzła %\n" + +-#: .././io/bmap.c:422 ++#: .././repair/attr_repair.c:1396 + #, c-format +-msgid " %*.*o Doesn't end on stripe width\n" +-msgstr " %*.*o Nie kończy się na szerokości pasa\n" ++msgid "bad sibling back pointer for block %u in attribute fork for inode %\n" ++msgstr "błędny wskaźnik wsteczny dla bloku %u w gałęzi atrybutów dla i-węzła %\n" + +-#: .././io/bmap.c:438 +-msgid "[-adlpv] [-n nx]" +-msgstr "[-adlpv] [-n nx]" ++#: .././repair/attr_repair.c:1423 ++#, c-format ++msgid "bad hash path in attribute fork for inode %\n" ++msgstr "błędna ścieżka hasza w gałęzi atrybutów dla i-węzła %\n" + +-#: .././io/bmap.c:439 +-msgid "print block mapping for an XFS file" +-msgstr "wypisanie mapowania bloków dla pliku na XFS-ie" ++#: .././repair/attr_repair.c:1523 ++#, c-format ++msgid "block 0 of inode % attribute fork is missing\n" ++msgstr "brak bloku 0 i-węzła % gałęzi atrybutów\n" + +-#: .././io/fadvise.c:31 ++#: .././repair/attr_repair.c:1530 + #, c-format +-msgid "" +-"\n" +-" advise the page cache about expected I/O patterns on the current file\n" +-"\n" +-" Modifies kernel page cache behaviour when operating on the current file.\n" +-" The range arguments are required by some advise commands ([*] below).\n" +-" With no arguments, the POSIX_FADV_NORMAL advice is implied.\n" +-" -d -- don't need these pages (POSIX_FADV_DONTNEED) [*]\n" +-" -n -- data will be accessed once (POSIX_FADV_NOREUSE) [*]\n" +-" -r -- expect random page references (POSIX_FADV_RANDOM)\n" +-" -s -- expect sequential page references (POSIX_FADV_SEQUENTIAL)\n" +-" -w -- will need these pages (POSIX_FADV_WILLNEED) [*]\n" +-" Notes: these interfaces are not supported in Linux kernels before 2.6.\n" +-" NORMAL sets the default readahead setting on the file.\n" +-" RANDOM sets the readahead setting on the file to zero.\n" +-" SEQUENTIAL sets double the default readahead setting on the file.\n" +-" WILLNEED and NOREUSE are equivalent, and force the maximum readahead.\n" +-"\n" +-msgstr "" +-"\n" +-" doradzenie buforowi stron w sprawie oczekiwanych schematów we/wy na bieżącym\n" +-" pliku\n" +-"\n" +-" fadvise modyfikuje zachowanie bufora stron przy operacjach na bieżącym pliku.\n" +-" Niektóre polecenia fadvise ([*] poniżej) wymagają podania zakresu.\n" +-" Bez argumentów zakłada się doradzenie POSIX_FADV_NORMAL.\n" +-" -d - podane strony nie są wymagane (POSIX_FADV_DONTNEED) [*]\n" +-" -n - dostęp do danych będzie jednokrotny (POSIX_FADV_NOREUSE) [*]\n" +-" -r - należy oczekiwać losowych odwołań do stron (POSIX_FADV_RANDOM)\n" +-" -s - należy oczekiwać sekwencyjnych odwołań do stron (POSIX_FADV_SEQUENTIAL)\n" +-" -w - podane strony będą potrzebne (POSIX_FADV_WILLNEED) [*]\n" +-" Uwagi: te interfejsy nie były obsługiwane przez jądra Linuksa przed 2.6.\n" +-" NORMAL ustawia domyślną wartość czytania z wyprzedzeniem dla pliku.\n" +-" RANDOM ustawia czytanie z wyprzedzeniem dla pliku na zero.\n" +-" SEQUENTIAL ustawia podwójną domyślną wartość czytania z wyprzedzeniem.\n" +-" WILLNEED i NOREUSE są równoznaczne i wymuszają maksymalne czytanie\n" +-" z wyprzedzeniem.\n" +-"\n" +- +-#: .././io/fadvise.c:122 +-msgid "[-dnrsw] [off len]" +-msgstr "[-dnrsw] [offset długość]" ++msgid "agno of attribute fork of inode % out of regular partition\n" ++msgstr "agno gałęzi atrybutów i-węzła % spoza zwykłej partycji\n" + +-#: .././io/fadvise.c:123 +-msgid "advisory commands for sections of a file" +-msgstr "polecenia doradcze dla sekcji pliku" ++#: .././repair/attr_repair.c:1538 ++#, c-format ++msgid "can't read block 0 of inode % attribute fork\n" ++msgstr "nie można odczytać bloku 0 i-węzła % gałęzi atrybutów\n" + +-#: .././io/fsync.c:59 +-msgid "calls fsync(2) to flush all in-core file state to disk" +-msgstr "wywołanie fsync(2) aby zrzucić cały stan pliku z pamięci na dysk" ++#: .././repair/attr_repair.c:1555 ++#, c-format ++msgid "clearing forw/back pointers in block 0 for attributes in inode %\n" ++msgstr "wyczyszczono wskaźniki forw/back w bloku 0 dla atrybutów w i-węźle %\n" + +-#: .././io/fsync.c:66 +-msgid "calls fdatasync(2) to flush the files in-core data to disk" +-msgstr "wywołanie fdatasync(2) aby zrzucić dane pliku z pamięci na dysk" ++#: .././repair/attr_repair.c:1563 ++#, c-format ++msgid "would clear forw/back pointers in block 0 for attributes in inode %\n" ++msgstr "wskaźniki forw/back w bloku 0 dla atrybutów w i-węźle % zostałyby wyczyszczone\n" + +-#: .././io/file.c:39 ++#: .././repair/attr_repair.c:1595 + #, c-format +-msgid "%c%03d%c %-14s (%s,%s,%s,%s%s%s%s)\n" +-msgstr "%c%03d%c %-14s (%s,%s,%s,%s%s%s%s)\n" ++msgid "bad attribute leaf magic # %#x for dir ino %\n" ++msgstr "błędna liczba magiczna liścia atrybutu %#x dla i-węzła katalogu %\n" + +-#: .././io/file.c:41 +-msgid "foreign" +-msgstr "obcy" ++#: .././repair/attr_repair.c:1620 ++#, c-format ++msgid "Too many ACL entries, count %d\n" ++msgstr "Za dużo wpisów ACL, liczba %d\n" + +-#: .././io/file.c:41 +-msgid "xfs" +-msgstr "xfs" ++#: .././repair/attr_repair.c:1629 ++msgid "cannot malloc enough for ACL attribute\n" ++msgstr "nie można wykonać wystarczającego malloc dla atrybutu ACL\n" + +-#: .././io/file.c:42 .././io/open.c:82 +-msgid "sync" +-msgstr "synchr" ++#: .././repair/attr_repair.c:1630 ++msgid "SKIPPING this ACL\n" ++msgstr "POMINIĘTO ten ACL\n" + +-#: .././io/file.c:42 .././io/open.c:82 +-msgid "non-sync" +-msgstr "niesynchr" ++#: .././repair/attr_repair.c:1678 .././repair/dinode.c:2053 ++#, c-format ++msgid "illegal attribute format %d, ino %\n" ++msgstr "niedozwolony format atrybutu %d, i-węzeł %\n" + +-#: .././io/file.c:43 .././io/open.c:83 +-msgid "direct" +-msgstr "bezpośredni" ++#: .././repair/avl.c:1011 .././repair/avl64.c:1032 ++#, c-format ++msgid "avl_insert: Warning! duplicate range [%llu,%llu]\n" ++msgstr "avl_insert: Uwaga! powtórzony przedział [%llu,%llu]\n" + +-#: .././io/file.c:43 .././io/open.c:83 +-msgid "non-direct" +-msgstr "niebezpośredni" ++#: .././repair/avl.c:1206 .././repair/avl64.c:1227 ++#, c-format ++msgid "Command [fpdir] : " ++msgstr "Polecenie [fpdir] : " + +-#: .././io/file.c:44 .././io/open.c:84 +-msgid "read-only" +-msgstr "tylko do odczytu" ++#: .././repair/avl.c:1215 .././repair/avl64.c:1236 ++#, c-format ++msgid "end of range ? " ++msgstr "koniec przedziału? " + +-#: .././io/file.c:44 .././io/open.c:84 +-msgid "read-write" +-msgstr "odczyt i zapis" ++#: .././repair/avl.c:1226 .././repair/avl64.c:1247 ++#, c-format ++msgid "Cannot find %d\n" ++msgstr "Nie można odnaleźć %d\n" + +-#: .././io/file.c:45 .././io/open.c:85 +-msgid ",real-time" +-msgstr ",real-time" ++#: .././repair/avl.c:1239 .././repair/avl64.c:1260 ++#, c-format ++msgid "size of range ? " ++msgstr "rozmiar przedziału? " + +-#: .././io/file.c:46 .././io/open.c:86 +-msgid ",append-only" +-msgstr ",tylko dopisywanie" ++#: .././repair/avl.c:1250 .././repair/avl64.c:1271 ++#, c-format ++msgid "End of range ? " ++msgstr "Koniec przedziału? " + +-#: .././io/file.c:47 .././io/open.c:87 +-msgid ",non-block" +-msgstr ",nieblokujący" ++#: .././repair/avl.c:1254 .././repair/avl64.c:1275 ++#, c-format ++msgid "checklen 0/1 ? " ++msgstr "checklen 0/1 ? " + +-#: .././io/file.c:99 +-msgid "set the current file" +-msgstr "ustawienie bieżącego pliku" ++#: .././repair/avl.c:1261 .././repair/avl64.c:1282 ++#, c-format ++msgid "Found something\n" ++msgstr "Znaleziono coś\n" + +-#: .././io/file.c:108 +-msgid "list current open files and memory mappings" +-msgstr "wypisanie aktualnie otwartych plików i odwzorowań w pamięci" ++#: .././repair/bmap.c:53 ++#, c-format ++msgid "" ++"Number of extents requested in blkmap_alloc (%d) overflows 32 bits.\n" ++"If this is not a corruption, then you will need a 64 bit system\n" ++"to repair this filesystem.\n" ++msgstr "" ++"Liczba ekstentów żądanych w blkmap_alloc (%d) przepełnia 32 bity.\n" ++"Jeśli nie jest to efekt uszkodzenia, do naprawy tego systemu plików\n" ++"niezbędny jest system 64-bitowy.\n" + +-#: .././io/init.c:35 ++#: .././repair/bmap.c:66 + #, c-format +-msgid "Usage: %s [-adfmrRstx] [-p prog] [-c cmd]... file\n" +-msgstr "Składnia: %s [-adfmrRstx] [-p program] [-c polecenie]... plik\n" ++msgid "malloc failed in blkmap_alloc (%zu bytes)\n" ++msgstr "malloc nie powiodło się w blkmap_alloc (%zu bajtów)\n" + +-#: .././io/init.c:111 ++#: .././repair/bmap.c:174 + #, c-format +-msgid "foreign file active, %s command is for XFS filesystems only\n" +-msgstr "aktywny jest plik obcy, polecenie %s jest tylko dla systemów plików XFS\n" ++msgid "blkmap_getn malloc failed (% bytes)\n" ++msgstr "malloc w blkmap_getn nie powiodło się (% bajtów)\n" + +-#: .././io/init.c:156 .././io/open.c:295 ++#: .././repair/bmap.c:281 + #, c-format +-msgid "non-numeric mode -- %s\n" +-msgstr "tryb nieliczbowy - %s\n" ++msgid "" ++"Number of extents requested in blkmap_grow (%d) overflows 32 bits.\n" ++"You need a 64 bit system to repair this filesystem.\n" ++msgstr "" ++"Liczba ekstentów żądanych w blkmap_grow (%d) przepełnia 32 bity.\n" ++"Do naprawy tego systemu plików niezbędny jest system 64-bitowy.\n" + +-#: .././io/open.c:53 +-msgid "socket" +-msgstr "gniazdo" ++#: .././repair/bmap.c:289 ++#, c-format ++msgid "" ++"Number of extents requested in blkmap_grow (%d) overflowed the\n" ++"maximum number of supported extents (%d).\n" ++msgstr "" ++"Liczba ekstentów żądanych w blkmap_grow (%d) przepełniła maksymalną\n" ++"liczbę obsługiwanych ekstentów (%d).\n" + +-#: .././io/open.c:55 +-msgid "directory" +-msgstr "katalog" ++#: .././repair/bmap.c:297 ++msgid "realloc failed in blkmap_grow\n" ++msgstr "realloc nie powiodło się w blkmap_grow\n" + +-#: .././io/open.c:57 +-msgid "char device" +-msgstr "urządzenie znakowe" ++#: .././repair/dino_chunks.c:57 ++#, c-format ++msgid "cannot read agbno (%u/%u), disk block %\n" ++msgstr "nie można odczytać agbno (%u/%u), blok dysku %\n" + +-#: .././io/open.c:59 +-msgid "block device" +-msgstr "urządzenie blokowe" ++#: .././repair/dino_chunks.c:150 ++#, c-format ++msgid "uncertain inode block %d/%d already known\n" ++msgstr "niepewny blok i-węzła %d/%d już znany\n" + +-#: .././io/open.c:61 +-msgid "regular file" +-msgstr "plik zwykły" ++#: .././repair/dino_chunks.c:166 .././repair/dino_chunks.c:438 ++#: .././repair/dino_chunks.c:497 ++#, c-format ++msgid "inode block %d/%d multiply claimed, (state %d)\n" ++msgstr "blok i-węzła %d/%d już przypisany (stan %d)\n" + +-#: .././io/open.c:63 +-msgid "symbolic link" +-msgstr "dowiązanie symboliczne" ++#: .././repair/dino_chunks.c:173 .././repair/dino_chunks.c:502 ++#, c-format ++msgid "inode block %d/%d bad state, (state %d)\n" ++msgstr "blok i-węzła (%d/%d) w błędnym stanie (stan %d)\n" + +-#: .././io/open.c:65 +-msgid "fifo" +-msgstr "potok" ++#: .././repair/dino_chunks.c:445 ++#, c-format ++msgid "uncertain inode block overlap, agbno = %d, ino = %\n" ++msgstr "niepewny blok i-węzła pokrywa się, agbno = %d, i-węzeł %\n" + +-#: .././io/open.c:80 .././io/open.c:719 ++#: .././repair/dino_chunks.c:484 + #, c-format +-msgid "fd.path = \"%s\"\n" +-msgstr "fd.path = \"%s\"\n" ++msgid "uncertain inode block % already known\n" ++msgstr "niepewny blok i-węzła % już znany\n" + +-#: .././io/open.c:81 ++#: .././repair/dino_chunks.c:621 + #, c-format +-msgid "fd.flags = %s,%s,%s%s%s%s\n" +-msgstr "fd.flags = %s,%s,%s%s%s%s\n" ++msgid "failed to allocate %zd bytes of memory\n" ++msgstr "nie udało się przydzielić %zd bajtów pamięci\n" + +-#: .././io/open.c:91 ++#: .././repair/dino_chunks.c:633 + #, c-format +-msgid "stat.ino = %lld\n" +-msgstr "stat.ino = %lld\n" ++msgid "cannot read inode %, disk block %, cnt %d\n" ++msgstr "nie można odczytać i-węzła %, blok dysku %, cnt %d\n" + +-#: .././io/open.c:92 ++#: .././repair/dino_chunks.c:750 .././repair/dino_chunks.c:939 + #, c-format +-msgid "stat.type = %s\n" +-msgstr "stat.type = %s\n" ++msgid "bad state in block map %d\n" ++msgstr "błędny stan w mapie bloku %d\n" + +-#: .././io/open.c:93 ++#: .././repair/dino_chunks.c:754 .././repair/dino_chunks.c:945 + #, c-format +-msgid "stat.size = %lld\n" +-msgstr "stat.size = %lld\n" ++msgid "inode block % multiply claimed, state was %d\n" ++msgstr "blok i-węzła % wielokrotnie przydzielony, stan był %d\n" + +-#: .././io/open.c:94 ++#: .././repair/dino_chunks.c:796 + #, c-format +-msgid "stat.blocks = %lld\n" +-msgstr "stat.blocks = %lld\n" ++msgid "imap claims in-use inode % is free, " ++msgstr "imap twierdzi, że używany i-węzeł % jest wolny, " + +-#: .././io/open.c:96 ++#: .././repair/dino_chunks.c:801 ++msgid "correcting imap\n" ++msgstr "poprawiono imap\n" ++ ++#: .././repair/dino_chunks.c:803 ++msgid "would correct imap\n" ++msgstr "imap zostałoby poprawione\n" ++ ++#: .././repair/dino_chunks.c:858 + #, c-format +-msgid "stat.atime = %s" +-msgstr "stat.atime = %s" ++msgid "cleared root inode %\n" ++msgstr "wyczyszczono główny i-węzeł %\n" + +-#: .././io/open.c:97 ++#: .././repair/dino_chunks.c:862 + #, c-format +-msgid "stat.mtime = %s" +-msgstr "stat.mtime = %s" ++msgid "would clear root inode %\n" ++msgstr "główny węzeł % zostałby wyczyszczony\n" + +-#: .././io/open.c:98 ++#: .././repair/dino_chunks.c:870 + #, c-format +-msgid "stat.ctime = %s" +-msgstr "stat.ctime = %s" ++msgid "cleared realtime bitmap inode %\n" ++msgstr "wyczyszczono i-węzeł bitmapy realtime %\n" + +-#: .././io/open.c:107 ++#: .././repair/dino_chunks.c:874 + #, c-format +-msgid "fsxattr.xflags = 0x%x " +-msgstr "fsxattr.xflags = 0x%x " ++msgid "would clear realtime bitmap inode %\n" ++msgstr "i-węzeł bitmapy realtime % zostałby wyczyszczony\n" + +-#: .././io/open.c:109 ++#: .././repair/dino_chunks.c:882 + #, c-format +-msgid "fsxattr.projid = %u\n" +-msgstr "fsxattr.projid = %u\n" ++msgid "cleared realtime summary inode %\n" ++msgstr "wyczyszczono i-węzeł opisu realtime %\n" + +-#: .././io/open.c:110 ++#: .././repair/dino_chunks.c:886 + #, c-format +-msgid "fsxattr.extsize = %u\n" +-msgstr "fsxattr.extsize = %u\n" ++msgid "would clear realtime summary inode %\n" ++msgstr "i-węzeł opisu realtime % zostałby wyczyszczony\n" + +-#: .././io/open.c:111 ++#: .././repair/dino_chunks.c:890 + #, c-format +-msgid "fsxattr.nextents = %u\n" +-msgstr "fsxattr.nextents = %u\n" ++msgid "cleared inode %\n" ++msgstr "wyczyszczono i-węzeł %\n" + +-#: .././io/open.c:112 ++#: .././repair/dino_chunks.c:893 + #, c-format +-msgid "fsxattr.naextents = %u\n" +-msgstr "fsxattr.naextents = %u\n" ++msgid "would have cleared inode %\n" ++msgstr "i-węzeł % zostałby wyczyszczony\n" ++ ++#: .././repair/dino_chunks.c:1100 .././repair/dino_chunks.c:1135 ++#: .././repair/dino_chunks.c:1249 ++msgid "found inodes not in the inode allocation tree\n" ++msgstr "znaleziono i-węzły nieobecne w drzewie alokacji i-węzłów\n" ++ ++#: .././repair/dinode.c:52 ++msgid "real-time" ++msgstr "realtime" ++ ++#: .././repair/dinode.c:53 ++msgid "regular" ++msgstr "zwykłym" + +-#: .././io/open.c:117 ++#: .././repair/dinode.c:76 + #, c-format +-msgid "dioattr.mem = 0x%x\n" +-msgstr "dioattr.mem = 0x%x\n" ++msgid "clearing inode % attributes\n" ++msgstr "wyczyszczono atrybuty i-węzła %\n" + +-#: .././io/open.c:118 ++#: .././repair/dinode.c:79 + #, c-format +-msgid "dioattr.miniosz = %u\n" +-msgstr "dioattr.miniosz = %u\n" ++msgid "would have cleared inode % attributes\n" ++msgstr "atrybuty i-węzła % zostałyby wyczyszczone\n" + +-#: .././io/open.c:119 ++#: .././repair/dinode.c:443 + #, c-format +-msgid "dioattr.maxiosz = %u\n" +-msgstr "dioattr.maxiosz = %u\n" ++msgid "inode % - bad rt extent start block number %, offset %\n" ++msgstr "i-węzeł % - błędny numer bloku początkowego ekstentu rt %, offset %\n" + +-#: .././io/open.c:235 ++#: .././repair/dinode.c:451 + #, c-format +-msgid "" +-"\n" +-" opens a new file in the requested mode\n" +-"\n" +-" Example:\n" +-" 'open -cd /tmp/data' - creates/opens data file read-write for direct IO\n" +-"\n" +-" Opens a file for subsequent use by all of the other xfs_io commands.\n" +-" With no arguments, open uses the stat command to show the current file.\n" +-" -F -- foreign filesystem file, disallow XFS-specific commands\n" +-" -a -- open with the O_APPEND flag (append-only mode)\n" +-" -d -- open with O_DIRECT (non-buffered IO, note alignment constraints)\n" +-" -f -- open with O_CREAT (create the file if it doesn't exist)\n" +-" -m -- permissions to use in case a new file is created (default 0600)\n" +-" -n -- open with O_NONBLOCK\n" +-" -r -- open with O_RDONLY, the default is O_RDWR\n" +-" -s -- open with O_SYNC\n" +-" -t -- open with O_TRUNC (truncate the file to zero length if it exists)\n" +-" -R -- mark the file as a realtime XFS file immediately after opening it\n" +-" Note1: usually read/write direct IO requests must be blocksize aligned;\n" +-" some kernels, however, allow sectorsize alignment for direct IO.\n" +-" Note2: the bmap for non-regular files can be obtained provided the file\n" +-" was opened correctly (in particular, must be opened read-only).\n" +-"\n" +-msgstr "" +-"\n" +-" otwarcie nowego pliku w żądanym trybie\n" +-"\n" +-" Przykład:\n" +-" 'open -cd /tmp/data' - utworzenie/otwarcie pliku danych do odczytu i zapisu\n" +-" z bezpośrednim we/wy\n" +-"\n" +-" open otwiera plik do późniejszego wykorzystania przez wszystkie inne polecenia\n" +-" xfs_io.\n" +-" Bez argumentów używa polecenia stat do pokazania bieżącego pliku.\n" +-" -F - plik na obcym systemie plików, zabronienie używania poleceń dla XFS-a\n" +-" -a - otwarcie z flagą O_APPEND (w trybie tylko dopisywania)\n" +-" -d - otwarcie z flagą O_DIRECT (niebuforowane we/wy, ograniczenia wyrównania)\n" +-" -f - otwarcie z flagą O_CREAT (utworzenie pliku jeśli nie istnieje)\n" +-" -m - uprawnienia do użycia w przypadku tworzenia pliku (domyślnie 0600)\n" +-" -n - otwarcie z flagą O_NONBLOCK\n" +-" -r - otwarcie z flagą O_RDONLY (domyślne jest O_RDWR)\n" +-" -s - otwarcie z flagą O_SYNC\n" +-" -t - otwarcie z flagą O_TRUNC (ucięcie do zerowej długości jeśli istnieje)\n" +-" -R - oznaczenie pliku jako realtime na XFS-ie zaraz po otwarciu\n" +-" Uwaga1: zwykle żądania bezpośredniego we/wy muszą być wyrównane do rozmiaru\n" +-" bloku; niektóre jądra pozwalają na wyrównanie do rozmiaru sektora\n" +-" Uwaga2: bmap dla plików innych niż zwykłe można uzyskać pod warunkiem, że\n" +-" plik zostanie poprawnie otwarty (w szczególności tylko do odczytu).\n" ++msgid "inode % - bad rt extent last block number %, offset %\n" ++msgstr "i-węzeł % - błędny numer bloku końcowego ekstentu rt %, offset %\n" + +-#: .././io/open.c:374 ++#: .././repair/dinode.c:459 + #, c-format +-msgid "" +-"\n" +-" displays the project identifier associated with the current path\n" +-"\n" +-" Options:\n" +-" -R -- recursively descend (useful when current path is a directory)\n" +-" -D -- recursively descend, but only list projects on directories\n" +-"\n" +-msgstr "" +-"\n" +-" wyświetlenie identyfikatora projektu związanego z bieżącą ścieżką\n" +-"\n" +-" Opcje:\n" +-" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" +-" -D - rekurencyjne zagłębianie się, ale wypisywanie projektów tylko katalogów\n" +-"\n" ++msgid "inode % - bad rt extent overflows - start %, end %, offset %\n" ++msgstr "i-węzeł % - błędne przepełnienie ekstentu rt - początek %, koniec %, offset %\n" + +-#: .././io/open.c:440 ++#: .././repair/dinode.c:476 + #, c-format +-msgid "projid = %u\n" +-msgstr "projid = %u\n" ++msgid "malformed rt inode extent [% %] (fs rtext size = %u)\n" ++msgstr "zniekształcony ekstent i-węzła rt [% %] (rozmiar fs rtext = %u)\n" + +-#: .././io/open.c:448 ++#: .././repair/dinode.c:497 + #, c-format +-msgid "" +-"\n" +-" modifies the project identifier associated with the current path\n" +-"\n" +-" -R -- recursively descend (useful when current path is a directory)\n" +-" -D -- recursively descend, only modifying projects on directories\n" +-"\n" +-msgstr "" +-"\n" +-" modyfikacja identyfikatora projektu związanego z bieżącą ścieżką\n" +-"\n" +-" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" +-" -D - rekurencyjne zagłębianie się, ale zmiana projektów tylko katalogów\n" +-"\n" ++msgid "data fork in rt ino % claims dup rt extent,off - %, start - %, count %\n" ++msgstr "gałąź danych w i-węźle rt % odwołuje się do powtórzonego ekstentu rt, offset %, początek %, liczba %\n" + +-#: .././io/open.c:507 ++#: .././repair/dinode.c:516 + #, c-format +-msgid "invalid project ID -- %s\n" +-msgstr "nieprawidłowy ID projektu - %s\n" ++msgid "bad state in rt block map %\n" ++msgstr "błędny stan w mapie bloku rt %\n" + +-#: .././io/open.c:523 ++#: .././repair/dinode.c:522 + #, c-format +-msgid "" +-"\n" +-" report or modify preferred extent size (in bytes) for the current path\n" +-"\n" +-" -R -- recursively descend (useful when current path is a directory)\n" +-" -D -- recursively descend, only modifying extsize on directories\n" +-"\n" +-msgstr "" +-"\n" +-" odczyt lub zmiana preferowanego rozmiaru ekstentu (w bajtach) dla bieżącej\n" +-" ścieżki\n" +-"\n" +-" -R - rekurencyjne zagłębianie się (przydatne kiedy bieżący plik jest katalogiem)\n" +-" -D - rekurencyjne zagłębianie się, ale zmiana extsize tylko katalogów\n" +-"\n" ++msgid "data fork in rt inode % found metadata block % in rt bmap\n" ++msgstr "gałąź danych w i-węźle rt % - znaleziono blok metadanych % w bmapie rt\n" + +-#: .././io/open.c:566 ++#: .././repair/dinode.c:530 + #, c-format +-msgid "invalid target file type - file %s\n" +-msgstr "nieprawidłowy rodzaj bliku docelowego - plik %s\n" ++msgid "data fork in rt inode % claims used rt block %\n" ++msgstr "gałąź danych w i-węźle rt % odwołuje się do używanego bloku rt %\n" + +-#: .././io/open.c:652 ++#: .././repair/dinode.c:536 + #, c-format +-msgid "non-numeric extsize argument -- %s\n" +-msgstr "nieliczbowy argument extsize - %s\n" ++msgid "illegal state %d in rt block map %\n" ++msgstr "niedozwolony stan %d w mapie bloku rt %\n" + +-#: .././io/open.c:699 ++#: .././repair/dinode.c:599 + #, c-format +-msgid "invalid setfl argument -- '%c'\n" +-msgstr "nieprawidłowy argument setfl - '%c'\n" ++msgid "bmap rec out of order, inode % entry %d [o s c] [% % %], %d [% % %]\n" ++msgstr "rekord bmap uszkodzony, i-węzeł % wpis %d [o s c] [% % %], %d [% % %]\n" + +-#: .././io/open.c:723 ++#: .././repair/dinode.c:615 + #, c-format +-msgid "statfs.f_bsize = %lld\n" +-msgstr "statfs.f_bsize = %lld\n" ++msgid "zero length extent (off = %, fsbno = %) in ino %\n" ++msgstr "ekstent zerowej długości (off = %, fsbno = %) w i-węźle %\n" + +-#: .././io/open.c:724 ++#: .././repair/dinode.c:646 + #, c-format +-msgid "statfs.f_blocks = %lld\n" +-msgstr "statfs.f_blocks = %lld\n" ++msgid "inode % - bad extent starting block number %, offset %\n" ++msgstr "i-węzeł % - błędny numer bloku początkowego ekstentu %, offset %\n" + +-#: .././io/open.c:726 ++#: .././repair/dinode.c:654 + #, c-format +-msgid "statfs.f_frsize = %lld\n" +-msgstr "statfs.f_frsize = %lld\n" ++msgid "inode % - bad extent last block number %, offset %\n" ++msgstr "i-węzeł % - błędny numer bloku końcowego ekstentu %, offset %\n" + +-#: .././io/open.c:728 ++#: .././repair/dinode.c:662 + #, c-format +-msgid "statfs.f_bavail = %lld\n" +-msgstr "statfs.f_bavail = %lld\n" ++msgid "inode % - bad extent overflows - start %, end %, offset %\n" ++msgstr "i-węzeł % - błędne przepełnienie ekstentu - początek %, koniec %, offset %\n" + +-#: .././io/open.c:730 ++#: .././repair/dinode.c:672 + #, c-format +-msgid "statfs.f_files = %lld\n" +-msgstr "statfs.f_files = %lld\n" ++msgid "inode % - extent offset too large - start %, count %, offset %\n" ++msgstr "i-węzeł % - offset ekstentu zbyt duży - początek %, liczba %, offset %\n" + +-#: .././io/open.c:731 ++#: .././repair/dinode.c:693 + #, c-format +-msgid "statfs.f_ffree = %lld\n" +-msgstr "statfs.f_ffree = %lld\n" ++msgid "" ++"Fatal error: inode % - blkmap_set_ext(): %s\n" ++"\t%s fork, off - %, start - %, cnt %\n" ++msgstr "" ++"Błąd krytyczny: i-węzeł % - blkmap_set_ext(): %s\n" ++"\tgałąź %s, offset %, początek %, liczba %\n" + +-#: .././io/open.c:738 ++#: .././repair/dinode.c:724 + #, c-format +-msgid "geom.bsize = %u\n" +-msgstr "geom.bsize = %u\n" ++msgid "%s fork in ino % claims dup extent, off - %, start - %, cnt %\n" ++msgstr "gałąź %s w i-węźle % odwołuje się do powtórzonego ekstentu, offset %, początek %, liczba %\n" + +-#: .././io/open.c:739 ++#: .././repair/dinode.c:743 + #, c-format +-msgid "geom.agcount = %u\n" +-msgstr "geom.agcount = %u\n" ++msgid "%s fork in ino % claims free block %\n" ++msgstr "gałąź %s w i-węźle % odwołuje się do wolnego bloku %\n" + +-#: .././io/open.c:740 ++#: .././repair/dinode.c:751 + #, c-format +-msgid "geom.agblocks = %u\n" +-msgstr "geom.agblocks = %u\n" ++msgid "bad state in block map %\n" ++msgstr "błędny stan w mapie bloku %\n" + +-#: .././io/open.c:741 ++#: .././repair/dinode.c:757 + #, c-format +-msgid "geom.datablocks = %llu\n" +-msgstr "geom.datablocks = %llu\n" ++msgid "%s fork in inode % claims metadata block %\n" ++msgstr "gałąź %s w i-węźle % odwołuje się do bloku metadanych %\n" + +-#: .././io/open.c:743 ++#: .././repair/dinode.c:765 + #, c-format +-msgid "geom.rtblocks = %llu\n" +-msgstr "geom.rtblocks = %llu\n" ++msgid "%s fork in %s inode % claims used block %\n" ++msgstr "gałąź %s w i-węźle %s % odwołuje się do używanego bloku %\n" + +-#: .././io/open.c:745 ++#: .././repair/dinode.c:771 + #, c-format +-msgid "geom.rtextents = %llu\n" +-msgstr "geom.rtextents = %llu\n" ++msgid "illegal state %d in block map %\n" ++msgstr "niedozwolony stan %d w mapie bloku %\n" + +-#: .././io/open.c:747 ++#: .././repair/dinode.c:784 + #, c-format +-msgid "geom.rtextsize = %u\n" +-msgstr "geom.rtextsize = %u\n" ++msgid "correcting nextents for inode %\n" ++msgstr "poprawiono nextents dla i-węzła %\n" + +-#: .././io/open.c:748 ++#: .././repair/dinode.c:857 + #, c-format +-msgid "geom.sunit = %u\n" +-msgstr "geom.sunit = %u\n" ++msgid "cannot read inode (%u/%u), disk block %\n" ++msgstr "nie można odczytać i-węzła (%u/%u), blok dysku %\n" + +-#: .././io/open.c:749 ++#: .././repair/dinode.c:928 + #, c-format +-msgid "geom.swidth = %u\n" +-msgstr "geom.swidth = %u\n" ++msgid "bad level %d in inode % bmap btree root block\n" ++msgstr "błędny poziom %d w bloku głównym bmap btree i-węzła %\n" + +-#: .././io/open.c:754 ++#: .././repair/dinode.c:934 + #, c-format +-msgid "counts.freedata = %llu\n" +-msgstr "counts.freedata = %llu\n" ++msgid "bad numrecs 0 in inode % bmap btree root block\n" ++msgstr "błędne numrecs 0 w bloku głównym bmap btree i-węzła %\n" + +-#: .././io/open.c:756 ++#: .././repair/dinode.c:943 + #, c-format +-msgid "counts.freertx = %llu\n" +-msgstr "counts.freertx = %llu\n" ++msgid "indicated size of %s btree root (%d bytes) greater than space in inode % %s fork\n" ++msgstr "oznaczony rozmiar korzenia b-drzewa %s (%d bajtów) większy niż miejsce w i-węźle % gałęzi %s\n" + +-#: .././io/open.c:758 ++#: .././repair/dinode.c:963 .././repair/scan.c:428 + #, c-format +-msgid "counts.freeino = %llu\n" +-msgstr "counts.freeino = %llu\n" ++msgid "bad bmap btree ptr 0x%llx in ino %\n" ++msgstr "błędny wskaźnik bmap btree 0x%llx w i-węźle %\n" + +-#: .././io/open.c:760 ++#: .././repair/dinode.c:982 + #, c-format +-msgid "counts.allocino = %llu\n" +-msgstr "counts.allocino = %llu\n" +- +-#: .././io/open.c:775 +-msgid "[-acdrstx] [path]" +-msgstr "[-acdrstx] [ścieżka]" ++msgid "correcting key in bmbt root (was %llu, now %) in inode % %s fork\n" ++msgstr "poprawiono klucz w korzeniu bmbt (był %llu, jest %) w i-węźle % gałęzi %s\n" + +-#: .././io/open.c:776 +-msgid "open the file specified by path" +-msgstr "otwarcie pliku określonego ścieżką" ++#: .././repair/dinode.c:994 ++#, c-format ++msgid "bad key in bmbt root (is %llu, would reset to %) in inode % %s fork\n" ++msgstr "błędny klucz w korzeniu bmbt (jest %llu, zostałby przestawiony na %) w i-węźle % gałęzi %s\n" + +-#: .././io/open.c:784 +-msgid "[-v]" +-msgstr "[-v]" ++#: .././repair/dinode.c:1011 ++#, c-format ++msgid "out of order bmbt root key % in inode % %s fork\n" ++msgstr "niepoprawny klucz korzenia bmbt % w i-węźle % gałęzi %s\n" + +-#: .././io/open.c:785 +-msgid "statistics on the currently open file" +-msgstr "statystyki dla aktualnie otwartego pliku" ++#: .././repair/dinode.c:1028 ++#, c-format ++msgid "extent count for ino % %s fork too low (%) for file format\n" ++msgstr "i-węzeł %: liczba ekstentów dla odgałęzienia %s zbyt mała (%) dla formatu pliku\n" + +-#: .././io/open.c:793 +-msgid "close the current open file" +-msgstr "zamknięcie bieżącego otwartego pliku" ++#: .././repair/dinode.c:1039 ++#, c-format ++msgid "bad fwd (right) sibling pointer (saw % should be NULLDFSBNO)\n" ++msgstr "błędny wskaźnik fwd (prawy) (widziano %, powinno być NULLDFSBNO)\n" + +-#: .././io/open.c:797 +-msgid "[-adx]" +-msgstr "[-adx]" ++#: .././repair/dinode.c:1042 ++#, c-format ++msgid "\tin inode % (%s fork) bmap btree block %\n" ++msgstr "\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" + +-#: .././io/open.c:800 +-msgid "set/clear append/direct flags on the open file" +-msgstr "ustawienie/zdjęcie flag dopisywania/bezpośredniego we/wy dla otwartego pliku" ++#: .././repair/dinode.c:1124 ++#, c-format ++msgid "local inode % data fork is too large (size = %lld, max = %d)\n" ++msgstr "gałąź danych lokalnego i-węzła % zbyt duża (rozmiar = %lld, maksimum = %d)\n" + +-#: .././io/open.c:806 +-msgid "statistics on the filesystem of the currently open file" +-msgstr "statystyki dla systemu plików aktualnie otwartego pliku" ++#: .././repair/dinode.c:1132 ++#, c-format ++msgid "local inode % attr fork too large (size %d, max = %d)\n" ++msgstr "gałąź atrybutów lokalnego i-węzła % zbyt duża (rozmiar %d, maksimum = %d)\n" + +-#: .././io/open.c:810 +-msgid "[-D | -R] projid" +-msgstr "[-D | -R] projid" ++#: .././repair/dinode.c:1139 ++#, c-format ++msgid "local inode % attr too small (size = %d, min size = %zd)\n" ++msgstr "gałąź atrybutów lokalnego i-węzła % zbyt mała (rozmiar = %d, minimum = %zd)\n" + +-#: .././io/open.c:815 +-msgid "change project identifier on the currently open file" +-msgstr "zmiana identyfikatora projektu aktualnie otwartego pliku" ++#: .././repair/dinode.c:1163 ++#, c-format ++msgid "mismatch between format (%d) and size (%) in symlink ino %\n" ++msgstr "niezgodność między formatem (%d) a rozmiarem (%) w i-węźle dowiązania symbolicznego %\n" + +-#: .././io/open.c:820 +-msgid "[-D | -R]" +-msgstr "[-D | -R]" ++#: .././repair/dinode.c:1170 ++#, c-format ++msgid "mismatch between format (%d) and size (%) in symlink inode %\n" ++msgstr "niezgodność między formatem (%d) a rozmiarem (%) w i-węźle dowiązania symbolicznego %\n" + +-#: .././io/open.c:825 +-msgid "list project identifier set on the currently open file" +-msgstr "wypisanie identyfikatora projektu aktualnie otwartego pliku" ++#: .././repair/dinode.c:1185 ++#, c-format ++msgid "bad number of extents (%d) in symlink % data fork\n" ++msgstr "błędna liczba ekstentów (%d) w gałęzi danych dowiązania symbolicznego %\n" + +-#: .././io/open.c:830 +-msgid "[-D | -R] [extsize]" +-msgstr "[-D | -R] [rozmiar_fragmentu]" ++#: .././repair/dinode.c:1198 ++#, c-format ++msgid "bad extent #%d offset (%) in symlink % data fork\n" ++msgstr "błędny offset ekstentu %d (%) w gałęzi danych dowiązania symbolicznego %\n" + +-#: .././io/open.c:835 +-msgid "get/set preferred extent size (in bytes) for the open file" +-msgstr "pobranie/ustawienie preferowanego rozmiaru ekstentu (w bajtach) dla otwartego pliku" ++#: .././repair/dinode.c:1204 ++#, c-format ++msgid "bad extent #%d count (%) in symlink % data fork\n" ++msgstr "błędna liczba ekstentów #%d (%) w gałęzi danych dowiązania symbolicznego %\n" + +-#: .././growfs/xfs_growfs.c:34 ++#: .././repair/dinode.c:1262 + #, c-format +-msgid "" +-"Usage: %s [options] mountpoint\n" +-"\n" +-"Options:\n" +-"\t-d grow data/metadata section\n" +-"\t-l grow log section\n" +-"\t-r grow realtime section\n" +-"\t-n don't change anything, just show geometry\n" +-"\t-I allow inode numbers to exceed %d significant bits\n" +-"\t-i convert log from external to internal format\n" +-"\t-t alternate location for mount table (/etc/mtab)\n" +-"\t-x convert log from internal to external format\n" +-"\t-D size grow data/metadata section to size blks\n" +-"\t-L size grow/shrink log section to size blks\n" +-"\t-R size grow realtime section to size blks\n" +-"\t-e size set realtime extent size to size blks\n" +-"\t-m imaxpct set inode max percent to imaxpct\n" +-"\t-V print version information\n" +-msgstr "" +-"Składnia: %s [opcje] punkt_montowania\n" +-"\n" +-"Opcje:\n" +-"\t-d powiększenie sekcji danych/metadanych\n" +-"\t-l powiększenie sekcji logu\n" +-"\t-r powiększenie sekcji realtime\n" +-"\t-n bez zmian, tylko pokazanie geometrii\n" +-"\t-I zezwolenie na przekroczenie %d bitów przez numery i-węzłów\n" +-"\t-i przekształcenie logu z formatu zewnętrznego na wewnętrzny\n" +-"\t-t inne położenie tabeli montowań (/etc/mtab)\n" +-"\t-x przekształcenie logu z formatu wewnętrznego na zewnętrzny\n" +-"\t-D rozmiar powiększenie sekcji danych/metadanych do rozmiaru w blokach\n" +-"\t-L rozmiar powiększenie/zmniejszenie sekcji logu do rozmiaru w blokach\n" +-"\t-R rozmiar powiększenie sekcji realtime do rozmiaru w blokach\n" +-"\t-e rozmiar stawienie rozmiaru ekstentu realtime na rozmiar w blokach\n" +-"\t-m imaxpct ustawienie maksymalnego procentu i-węzłów na imaxpct\n" +-"\t-V wypisanie informacji o wersji\n" ++msgid "cannot read inode %, file block %d, NULL disk block\n" ++msgstr "nie można odczytać i-węzła %, blok pliku %d, zerowy blok dysku\n" ++ ++#: .././repair/dinode.c:1284 ++#, c-format ++msgid "cannot read inode %, file block %d, disk block %\n" ++msgstr "nie można odczytać i-węzła %, blok pliku %d, blok dysku %\n" + +-#: .././growfs/xfs_growfs.c:68 ++#: .././repair/dinode.c:1290 + #, c-format + msgid "" +-"meta-data=%-22s isize=%-6u agcount=%u, agsize=%u blks\n" +-" =%-22s sectsz=%-5u attr=%u\n" +-"data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" +-" =%-22s sunit=%-6u swidth=%u blks\n" +-"naming =version %-14u bsize=%-6u ascii-ci=%d\n" +-"log =%-22s bsize=%-6u blocks=%u, version=%u\n" +-" =%-22s sectsz=%-5u sunit=%u blks, lazy-count=%u\n" +-"realtime =%-22s extsz=%-6u blocks=%llu, rtextents=%llu\n" ++"Bad symlink buffer CRC, block %, inode %.\n" ++"Correcting CRC, but symlink may be bad.\n" + msgstr "" +-"metadane=%-22s isize=%-6u agcount=%u, agsize=%u bloków\n" +-" =%-22s sectsz=%-5u attr=%u\n" +-"dane =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n" +-" =%-22s sunit=%-6u swidth=%u bloków\n" +-"nazwy =wersja %-14u bsize=%-6u\n" +-" ascii-ci=%d\n" +-"log =%-22s bsize=%-6u blocks=%u, wersja=%u\n" +-" =%-22s sectsz=%-5u sunit=%u bloków, lazy-count=%u\n" +-"realtime=%-22s extsz=%-6u blocks=%llu, rtextents=%llu\n" +- +-#: .././growfs/xfs_growfs.c:83 .././growfs/xfs_growfs.c:444 +-#: .././growfs/xfs_growfs.c:445 +-msgid "internal" +-msgstr "wewnętrzny" ++"Błędna suma kontrolna bufora dowiązania symbolicznego, blok %, i-węzeł %.\n" ++"Poprawianie CRC, ale dowiązanie symboliczne może być błędne.\n" + +-#: .././growfs/xfs_growfs.c:83 .././growfs/xfs_growfs.c:86 +-#: .././growfs/xfs_growfs.c:444 .././growfs/xfs_growfs.c:445 +-msgid "external" +-msgstr "zewnętrzny" +- +-#: .././growfs/xfs_growfs.c:199 ++#: .././repair/dinode.c:1303 + #, c-format +-msgid "%s: %s is not a mounted XFS filesystem\n" +-msgstr "%s: %s nie jest podmontowanym systemem plików XFS\n" ++msgid "bad symlink header ino %, file block %d, disk block %\n" ++msgstr "błędny i-węzeł nagłówka dowiązania symbolicznego %, blok pliku %d, blok dysku %\n" + +-#: .././growfs/xfs_growfs.c:216 ++#: .././repair/dinode.c:1346 + #, c-format +-msgid "%s: specified file [\"%s\"] is not on an XFS filesystem\n" +-msgstr "%s: podany plik [\"%s\"] nie jest na systemie plików XFS\n" ++msgid "symlink in inode % too long (%llu chars)\n" ++msgstr "dowiązanie symboliczne w i-węźle % zbyt długie (%llu znaków)\n" + +-#: .././growfs/xfs_growfs.c:233 ++#: .././repair/dinode.c:1378 + #, c-format +-msgid "%s: cannot determine geometry of filesystem mounted at %s: %s\n" +-msgstr "%s: nie można określić geometrii systemu plików podmontowanego pod %s: %s\n" ++msgid "found illegal null character in symlink inode %\n" ++msgstr "znaleziono niedozwolony znak null w i-węźle dowiązania symbolicznego %\n" + +-#: .././growfs/xfs_growfs.c:268 ++#: .././repair/dinode.c:1392 .././repair/dinode.c:1402 + #, c-format +-msgid "%s: failed to access data device for %s\n" +-msgstr "%s: nie udało się uzyskać dostępu do urządzenia z danymi dla %s\n" ++msgid "component of symlink in inode % too long\n" ++msgstr "składnik dowiązania symbolicznego w i-węźle % zbyt długi\n" + +-#: .././growfs/xfs_growfs.c:273 ++#: .././repair/dinode.c:1428 + #, c-format +-msgid "%s: failed to access external log for %s\n" +-msgstr "%s: nie udało się uzyskać dostępu do zewnętrznego logu dla %s\n" ++msgid "inode % has bad inode type (IFMNT)\n" ++msgstr "i-węzeł % ma błędny typ i-węzła (IFMNT)\n" + +-#: .././growfs/xfs_growfs.c:279 ++#: .././repair/dinode.c:1439 + #, c-format +-msgid "%s: failed to access realtime device for %s\n" +-msgstr "%s: nie udało się uzyskać dostępu do urządzenia realtime dla %s\n" ++msgid "size of character device inode % != 0 (% bytes)\n" ++msgstr "rozmiar i-węzła urządzenia znakowego % != 0 (% bajtów)\n" + +-#: .././growfs/xfs_growfs.c:314 ++#: .././repair/dinode.c:1444 + #, c-format +-msgid "data size %lld too large, maximum is %lld\n" +-msgstr "rozmiar danych %lld zbyt duży, maksymalny to %lld\n" ++msgid "size of block device inode % != 0 (% bytes)\n" ++msgstr "rozmiar i-węzła urządzenia blokowego % != 0 (% bajtów)\n" + +-#: .././growfs/xfs_growfs.c:321 ++#: .././repair/dinode.c:1449 + #, c-format +-msgid "data size %lld too small, old size is %lld\n" +-msgstr "rozmiar danych %lld zbyt mały, stary rozmiar to %lld\n" ++msgid "size of socket inode % != 0 (% bytes)\n" ++msgstr "rozmiar i-węzła gniazda % != 0 (% bajtów)\n" + +-#: .././growfs/xfs_growfs.c:329 ++#: .././repair/dinode.c:1454 + #, c-format +-msgid "data size unchanged, skipping\n" +-msgstr "rozmiar danych nie zmieniony, pominięto\n" ++msgid "size of fifo inode % != 0 (% bytes)\n" ++msgstr "rozmiar i-węzła potoku % != 0 (% bajtów)\n" + +-#: .././growfs/xfs_growfs.c:332 ++#: .././repair/dinode.c:1458 + #, c-format +-msgid "inode max pct unchanged, skipping\n" +-msgstr "maksymalny procent i-węzłów nie zmieniony, pominięto\n" ++msgid "Internal error - process_misc_ino_types, illegal type %d\n" ++msgstr "Błąd wewnętrzny - process_misc_ino_types, niedozwolony typ %d\n" + +-#: .././growfs/xfs_growfs.c:339 .././growfs/xfs_growfs.c:378 +-#: .././growfs/xfs_growfs.c:413 ++#: .././repair/dinode.c:1485 + #, c-format +-msgid "%s: growfs operation in progress already\n" +-msgstr "%s: operacja growfs już trwa\n" ++msgid "size of character device inode % != 0 (% blocks)\n" ++msgstr "rozmiar i-węzła urządzenia znakowego % != 0 (% bloków)\n" + +-#: .././growfs/xfs_growfs.c:343 ++#: .././repair/dinode.c:1490 + #, c-format +-msgid "%s: XFS_IOC_FSGROWFSDATA xfsctl failed: %s\n" +-msgstr "%s: xfsctl XFS_IOC_FSGROWFSDATA nie powiodło się: %s\n" ++msgid "size of block device inode % != 0 (% blocks)\n" ++msgstr "rozmiar i-węzła urządzenia blokowego % != 0 (% bloków)\n" + +-#: .././growfs/xfs_growfs.c:359 ++#: .././repair/dinode.c:1495 + #, c-format +-msgid "realtime size %lld too large, maximum is %lld\n" +-msgstr "rozmiar realtime %lld zbyt duży, maksymalny to %lld\n" ++msgid "size of socket inode % != 0 (% blocks)\n" ++msgstr "rozmiar i-węzła gniazda % != 0 (% bloków)\n" + +-#: .././growfs/xfs_growfs.c:365 ++#: .././repair/dinode.c:1500 + #, c-format +-msgid "realtime size %lld too small, old size is %lld\n" +-msgstr "rozmiar realtime %lld zbyt mały, stary rozmiar to %lld\n" ++msgid "size of fifo inode % != 0 (% blocks)\n" ++msgstr "rozmiar i-węzła potoku % != 0 (% bloków)\n" + +-#: .././growfs/xfs_growfs.c:371 ++#: .././repair/dinode.c:1578 + #, c-format +-msgid "realtime size unchanged, skipping\n" +-msgstr "rozmiar realtime nie zmieniony, pominięto\n" ++msgid "root inode % has bad type 0x%x\n" ++msgstr "i-węzeł główny % ma błędny typ 0x%x\n" + +-#: .././growfs/xfs_growfs.c:382 +-#, c-format +-msgid "%s: realtime growth not implemented\n" +-msgstr "%s: powiększanie realtime nie jest zaimplementowane\n" ++#: .././repair/dinode.c:1582 ++msgid "resetting to directory\n" ++msgstr "przestawiono na katalog\n" + +-#: .././growfs/xfs_growfs.c:386 +-#, c-format +-msgid "%s: XFS_IOC_FSGROWFSRT xfsctl failed: %s\n" +-msgstr "%s: xfsctl XFS_IOC_FSGROWFSRT nie powiodło się: %s\n" ++#: .././repair/dinode.c:1586 ++msgid "would reset to directory\n" ++msgstr "zostałby przestawiony na katalog\n" + +-#: .././growfs/xfs_growfs.c:407 ++#: .././repair/dinode.c:1592 + #, c-format +-msgid "log size unchanged, skipping\n" +-msgstr "rozmiar logu nie zmieniony, pominięto\n" ++msgid "user quota inode % has bad type 0x%x\n" ++msgstr "i-węzeł limitu użytkownika % ma błędny typ 0x%x\n" + +-#: .././growfs/xfs_growfs.c:417 ++#: .././repair/dinode.c:1601 + #, c-format +-msgid "%s: log growth not supported yet\n" +-msgstr "%s: powiększanie logu nie jest jeszcze obsługiwane\n" ++msgid "group quota inode % has bad type 0x%x\n" ++msgstr "i-węzeł limitu grupy % ma błędny typ 0x%x\n" + +-#: .././growfs/xfs_growfs.c:421 ++#: .././repair/dinode.c:1610 + #, c-format +-msgid "%s: XFS_IOC_FSGROWFSLOG xfsctl failed: %s\n" +-msgstr "%s: xfsctl XFS_IOC_FSGROWFSLOG nie powiodło się: %s\n" ++msgid "project quota inode % has bad type 0x%x\n" ++msgstr "i-węzeł limitu projektu % ma błędny typ 0x%x\n" + +-#: .././growfs/xfs_growfs.c:429 ++#: .././repair/dinode.c:1620 + #, c-format +-msgid "%s: XFS_IOC_FSGEOMETRY xfsctl failed: %s\n" +-msgstr "%s: xfsctl XFS_IOC_FSGEOMETRY nie powiodło się: %s\n" ++msgid "realtime summary inode % has bad type 0x%x, " ++msgstr "i-węzeł opisu realtime % ma błędny typ 0x%x, " + +-#: .././growfs/xfs_growfs.c:434 +-#, c-format +-msgid "data blocks changed from %lld to %lld\n" +-msgstr "bloki danych zmienione z %lld na %lld\n" ++#: .././repair/dinode.c:1623 .././repair/dinode.c:1644 ++msgid "resetting to regular file\n" ++msgstr "przestawiono na zwykły plik\n" + +-#: .././growfs/xfs_growfs.c:437 ++#: .././repair/dinode.c:1627 .././repair/dinode.c:1648 ++msgid "would reset to regular file\n" ++msgstr "zostałby przestawiony na zwykły plik\n" ++ ++#: .././repair/dinode.c:1632 + #, c-format +-msgid "inode max percent changed from %d to %d\n" +-msgstr "maksymalny procent i-węzłów zmieniony z %d na %d\n" ++msgid "bad # of extents (%u) for realtime summary inode %\n" ++msgstr "błędna liczba ekstentów (%u) dla i-węzłą opisu realtime %\n" + +-#: .././growfs/xfs_growfs.c:440 ++#: .././repair/dinode.c:1641 + #, c-format +-msgid "log blocks changed from %d to %d\n" +-msgstr "bloki logu zmienione z %d na %d\n" ++msgid "realtime bitmap inode % has bad type 0x%x, " ++msgstr "i-węzeł bitmapy realtime % ma błędny typ 0x%x, " + +-#: .././growfs/xfs_growfs.c:443 ++#: .././repair/dinode.c:1653 + #, c-format +-msgid "log changed from %s to %s\n" +-msgstr "log zmieniony - był %s, jest %s\n" ++msgid "bad # of extents (%u) for realtime bitmap inode %\n" ++msgstr "błędna liczba ekstentów (%u) dla i-węzłą bitmapy realtime %\n" + +-#: .././growfs/xfs_growfs.c:447 ++#: .././repair/dinode.c:1688 + #, c-format +-msgid "realtime blocks changed from %lld to %lld\n" +-msgstr "bloki realtime zmienione z %lld na %lld\n" ++msgid "mismatch between format (%d) and size (%) in directory ino %\n" ++msgstr "niezgodność między formatem (%d) a rozmiarem (%) w i-węźle katalogu %\n" + +-#: .././growfs/xfs_growfs.c:450 ++#: .././repair/dinode.c:1694 + #, c-format +-msgid "realtime extent size changed from %d to %d\n" +-msgstr "rozmiar ekstentu realtime zmieniony z %d na %d\n" ++msgid "directory inode % has bad size %\n" ++msgstr "i-węzeł katalogu % ma błędny rozmiar %\n" + +-#: .././fsr/xfs_fsr.c:196 ++#: .././repair/dinode.c:1702 + #, c-format +-msgid "%s: cannot read %s\n" +-msgstr "%s: nie można odczytać %s\n" ++msgid "bad data fork in symlink %\n" ++msgstr "błędna gałąź danych w dowiązaniu symbolicznym %\n" + +-#: .././fsr/xfs_fsr.c:275 ++#: .././repair/dinode.c:1723 + #, c-format +-msgid "%s: Stats not yet supported for XFS\n" +-msgstr "%s: statystyki nie są jeszcze obsługiwane dla XFS-a\n" ++msgid "found inode % claiming to be a real-time file\n" ++msgstr "znaleziono i-węzeł % twierdzący, że należy do pliku realtime\n" + +-#: .././fsr/xfs_fsr.c:339 ++#: .././repair/dinode.c:1732 + #, c-format +-msgid "%s: could not stat: %s: %s\n" +-msgstr "%s: nie można wykonać stat: %s: %s\n" ++msgid "realtime bitmap inode % has bad size % (should be %)\n" ++msgstr "i-węzeł bitmapy realtime % ma błędny rozmiar % (powinien być %)\n" + +-#: .././fsr/xfs_fsr.c:358 ++#: .././repair/dinode.c:1743 + #, c-format +-msgid "%s: char special not supported: %s\n" +-msgstr "%s: urządzenia znakowe nie są obsługiwane: %s\n" ++msgid "realtime summary inode % has bad size % (should be %d)\n" ++msgstr "i-węzeł opisu realtime % ma błędny rozmiar % (powinien być %d)\n" + +-#: .././fsr/xfs_fsr.c:364 ++#: .././repair/dinode.c:1771 + #, c-format +-msgid "%s: cannot defragment: %s: Not XFS\n" +-msgstr "%s: nie można zdefragmentować: %s: to nie jest XFS\n" ++msgid "bad attr fork offset %d in dev inode %, should be %d\n" ++msgstr "błędny offset gałęzi atrybutów %d w i-węźle urządzenia %, powinien być %d\n" + +-#: .././fsr/xfs_fsr.c:374 ++#: .././repair/dinode.c:1783 + #, c-format +-msgid "%s: not fsys dev, dir, or reg file, ignoring\n" +-msgstr "%s: nie jest urządzeniem z systemem plików, katalogiem ani zwykłym plikiem, zignorowano\n" ++msgid "bad attr fork offset %d in inode %, max=%d\n" ++msgstr "błędny offset gałęzi atrybutów %d w i-węźle %, maksimum=%d\n" + +-#: .././fsr/xfs_fsr.c:389 ++#: .././repair/dinode.c:1790 + #, c-format +-msgid "" +-"Usage: %s [-d] [-v] [-n] [-s] [-g] [-t time] [-p passes] [-f leftf] [-m mtab]\n" +-" %s [-d] [-v] [-n] [-s] [-g] xfsdev | dir | file ...\n" +-"\n" +-"Options:\n" +-" -n Do nothing, only interesting with -v. Not\n" +-" effective with in mtab mode.\n" +-" -s\t\tPrint statistics only.\n" +-" -g Print to syslog (default if stdout not a tty).\n" +-" -t time How long to run in seconds.\n" +-" -p passes\tNumber of passes before terminating global re-org.\n" +-" -f leftoff Use this instead of %s.\n" +-" -m mtab Use something other than /etc/mtab.\n" +-" -d Debug, print even more.\n" +-" -v\t\tVerbose, more -v's more verbose.\n" +-msgstr "" +-"Składnia: %s [-d] [-v] [-n] [-s] [-g] [-t czas] [-p przebiegi] [-f leftf] [-m mtab]\n" +-" %s [-d] [-v] [-n] [-s] [-g] xfsdev | katalog | plik ...\n" +-"\n" +-"Opcje:\n" +-" -n Nie robienie niczego, przydatne tylko z -v.\n" +-" Nieprzydatne w trybie mtab.\n" +-" -s Tylko wypisanie statystyk.\n" +-" -g Pisanie do sysloga (domyślne jeśli stdout to nie tty).\n" +-" -t czas Czas działania w sekundach.\n" +-" -p przebiegi Liczba przebiegów przed zakończeniem reorganizacji.\n" +-" -f leftoff Użycie tego pliku zamiast %s.\n" +-" -m mtab Użycie pliku innego niż /etc/mtab.\n" +-" -d Diagnostyka, dużo więcej informacji.\n" +-" -v Tym więcej szczegółów, im więcej opcji -v.\n" ++msgid "unexpected inode format %d\n" ++msgstr "nieoczekiwany format i-węzła %d\n" + +-#: .././fsr/xfs_fsr.c:420 ++#: .././repair/dinode.c:1811 + #, c-format +-msgid "could not open mtab file: %s\n" +-msgstr "nie udało się otworzyć pliku mtab: %s\n" ++msgid "correcting nblocks for inode %, was %llu - counted %\n" ++msgstr "poprawiono nblocks dla i-węzła % - było %llu, naliczono %\n" + +-#: .././fsr/xfs_fsr.c:426 .././fsr/xfs_fsr.c:458 ++#: .././repair/dinode.c:1818 + #, c-format +-msgid "out of memory: %s\n" +-msgstr "brak pamięci: %s\n" ++msgid "bad nblocks %llu for inode %, would reset to %\n" ++msgstr "błędne nblocks %llu dla i-węzła %, zostałoby przestawione na %\n" + +-#: .././fsr/xfs_fsr.c:449 ++#: .././repair/dinode.c:1826 + #, c-format +-msgid "Skipping %s: not mounted rw\n" +-msgstr "Pominięto %s: nie zamontowany rw\n" ++msgid "too many data fork extents (%) in inode %\n" ++msgstr "zbyt dużo ekstentów gałęzi danych (%) w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:463 ++#: .././repair/dinode.c:1833 + #, c-format +-msgid "out of memory on realloc: %s\n" +-msgstr "brak pamięci przy realloc: %s\n" ++msgid "correcting nextents for inode %, was %d - counted %\n" ++msgstr "poprawiono nextents dla i-węzła % - było %d, naliczono %\n" + +-#: .././fsr/xfs_fsr.c:474 ++#: .././repair/dinode.c:1841 + #, c-format +-msgid "strdup(%s) failed\n" +-msgstr "strdup(%s) nie powiodło się\n" ++msgid "bad nextents %d for inode %, would reset to %\n" ++msgstr "błędne nextents %d dla i-węzła %, zostałoby przestawione na %\n" + +-#: .././fsr/xfs_fsr.c:484 ++#: .././repair/dinode.c:1849 + #, c-format +-msgid "no rw xfs file systems in mtab: %s\n" +-msgstr "brak w pliku mtab systemów plików xfs w trybie rw: %s\n" ++msgid "too many attr fork extents (%) in inode %\n" ++msgstr "zbyt dużo ekstentów gałęzi atrybutów (%) w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:488 ++#: .././repair/dinode.c:1856 + #, c-format +-msgid "Found %d mounted, writable, XFS filesystems\n" +-msgstr "Liczba znalezionych zamontowanych, zapisywalnych systemów plików XFS: %d\n" ++msgid "correcting anextents for inode %, was %d - counted %\n" ++msgstr "poprawiono anextents dla i-węzła % - było %d, naliczono %\n" + +-#: .././fsr/xfs_fsr.c:518 ++#: .././repair/dinode.c:1863 + #, c-format +-msgid "%s: open failed\n" +-msgstr "%s: open nie powiodło się\n" ++msgid "bad anextents %d for inode %, would reset to %\n" ++msgstr "błędne anextents %d dla i-węzła %, zostałoby przestawione na %\n" + +-#: .././fsr/xfs_fsr.c:533 ++#: .././repair/dinode.c:1875 + #, c-format +-msgid "Can't use %s: mode=0%o own=%d nlink=%d\n" +-msgstr "Nie można użyć %s: mode=0%o own=%d nlink=%d\n" ++msgid "nblocks (%) smaller than nextents for inode %\n" ++msgstr "nblocks (%) mniejsze niż nextents dla i-węzła %\n" + +-#: .././fsr/xfs_fsr.c:553 ++#: .././repair/dinode.c:1940 .././repair/dinode.c:1978 + #, c-format +-msgid "could not read %s, starting with %s\n" +-msgstr "nie można odczytać %s, rozpoczęcie z %s\n" ++msgid "unknown format %d, ino % (mode = %d)\n" ++msgstr "nieznany format %d, i-węzeł % (tryb = %d)\n" + +-#: .././fsr/xfs_fsr.c:590 ++#: .././repair/dinode.c:1945 + #, c-format +-msgid "START: pass=%d ino=%llu %s %s\n" +-msgstr "START: przebieg=%d i-węzeł=%llu %s %s\n" ++msgid "bad data fork in inode %\n" ++msgstr "błędna gałąź danych w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:607 ++#: .././repair/dinode.c:2016 + #, c-format +-msgid "Completed all %d passes\n" +-msgstr "Zakończono wszystkie przebiegi w liczbie %d\n" ++msgid "bad attribute format %d in inode %, " ++msgstr "błędny format atrybutów %d w i-węźle %, " + +-#: .././fsr/xfs_fsr.c:617 +-msgid "couldn't fork sub process:" +-msgstr "nie udało się uruchomić podprocesu:" ++#: .././repair/dinode.c:2019 ++msgid "resetting value\n" ++msgstr "przestawiono wartość\n" + +-#: .././fsr/xfs_fsr.c:654 +-#, c-format +-msgid "open(%s) failed: %s\n" +-msgstr "open(%s) nie powiodło się: %s\n" ++#: .././repair/dinode.c:2023 ++msgid "would reset value\n" ++msgstr "wartość zostałaby przestawiona\n" + +-#: .././fsr/xfs_fsr.c:661 ++#: .././repair/dinode.c:2068 + #, c-format +-msgid "write(%s) failed: %s\n" +-msgstr "write(%s) nie powiodło się: %s\n" ++msgid "bad attribute fork in inode %" ++msgstr "błędna gałąź atrybutów w i-węźle %" + +-#: .././fsr/xfs_fsr.c:668 +-#, c-format +-msgid "%s startpass %d, endpass %d, time %d seconds\n" +-msgstr "%s pocz. przebieg %d, końc. przebieg %d, czas %d sekund\n" ++#: .././repair/dinode.c:2072 ++msgid ", clearing attr fork\n" ++msgstr ", wyczyszczono gałąź atrybutów\n" + +-#: .././fsr/xfs_fsr.c:690 +-#, c-format +-msgid "%s start inode=%llu\n" +-msgstr "%s pocz. i-węzeł=%llu\n" ++#: .././repair/dinode.c:2081 ++msgid ", would clear attr fork\n" ++msgstr ", gałąź atrybutów zostałaby wyczyszczona\n" + +-#: .././fsr/xfs_fsr.c:695 ++#: .././repair/dinode.c:2109 + #, c-format +-msgid "unable to get handle: %s: %s\n" +-msgstr "nie udało się uzyskać uchwytu: %s: %s\n" ++msgid "illegal attribute fmt %d, ino %\n" ++msgstr "niedozwolony format atrybutów %d, i-węzeł %\n" + +-#: .././fsr/xfs_fsr.c:701 ++#: .././repair/dinode.c:2129 + #, c-format +-msgid "unable to open: %s: %s\n" +-msgstr "nie udało się otworzyć: %s: %s\n" ++msgid "problem with attribute contents in inode %\n" ++msgstr "problem z zawartością atrybutu w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:707 +-#, c-format +-msgid "Skipping %s: could not get XFS geometry\n" +-msgstr "Pominięto %s: nie można odczytać geometrii XFS\n" ++#: .././repair/dinode.c:2137 ++msgid "would clear attr fork\n" ++msgstr "gałąź atrybutów zostałaby wyczyszczona\n" + +-#: .././fsr/xfs_fsr.c:739 ++#: .././repair/dinode.c:2180 + #, c-format +-msgid "could not open: inode %llu\n" +-msgstr "nie udało się otworzyć: i-węzeł %llu\n" ++msgid "version 2 inode % claims > %u links, " ++msgstr "i-węzeł % w wersji 2 odwołuje się do > %u dowiązań, " + +-#: .././fsr/xfs_fsr.c:769 +-#, c-format +-msgid "%s: xfs_bulkstat: %s\n" +-msgstr "%s: xfs_bulkstat: %s\n" ++#: .././repair/dinode.c:2184 ++msgid "updating superblock version number\n" ++msgstr "uaktualniono numer wersji superbloku\n" + +-#: .././fsr/xfs_fsr.c:795 +-#, c-format +-msgid "%s: Directory defragmentation not supported\n" +-msgstr "%s: Defragmentacja katalogów nie jest obsługiwana\n" ++#: .././repair/dinode.c:2187 ++msgid "would update superblock version number\n" ++msgstr "numer wersji superbloku zostałby uaktualniony\n" + +-#: .././fsr/xfs_fsr.c:814 ++#: .././repair/dinode.c:2195 + #, c-format +-msgid "unable to construct sys handle for %s: %s\n" +-msgstr "nie udało się utworzyć uchwytu systemowego dla %s: %s\n" ++msgid "WARNING: version 2 inode % claims > %u links, " ++msgstr "UWAGA: i-węzeł % w wersji 2 odwołuje się do > %u dowiązań, " + +-#: .././fsr/xfs_fsr.c:825 ++#: .././repair/dinode.c:2198 + #, c-format +-msgid "unable to open sys handle for %s: %s\n" +-msgstr "nie udało się otworzyć uchwytu systemowego dla %s: %s\n" ++msgid "" ++"converting back to version 1,\n" ++"this may destroy %d links\n" ++msgstr "" ++"przekształcanie z powrotem do wersji 1,\n" ++"może to zniszczyć %d dowiązań\n" + +-#: .././fsr/xfs_fsr.c:831 ++#: .././repair/dinode.c:2208 + #, c-format +-msgid "unable to get bstat on %s: %s\n" +-msgstr "nie udało się uzyskać bstat na %s: %s\n" ++msgid "" ++"would convert back to version 1,\n" ++"\tthis might destroy %d links\n" ++msgstr "" ++"zostałby przekształcony z powrotem do wersji 1,\n" ++"\tco mogłoby zniszczyć %d dowiązań\n" + +-#: .././fsr/xfs_fsr.c:839 ++#: .././repair/dinode.c:2223 + #, c-format +-msgid "unable to open handle %s: %s\n" +-msgstr "nie udało się otworzyć uchwytu %s: %s\n" ++msgid "found version 2 inode %, " ++msgstr "znaleziono i-węzeł % w wersji 2, " + +-#: .././fsr/xfs_fsr.c:847 +-#, c-format +-msgid "Unable to get geom on fs for: %s\n" +-msgstr "Nie udało się odczytać geometrii systemu plików dla: %s\n" ++#: .././repair/dinode.c:2225 ++msgid "converting back to version 1\n" ++msgstr "przekształcono z powrotem do wersji 1\n" + +-#: .././fsr/xfs_fsr.c:896 +-#, c-format +-msgid "sync failed: %s: %s\n" +-msgstr "sync nie powiodło się: %s: %s\n" ++#: .././repair/dinode.c:2231 ++msgid "would convert back to version 1\n" ++msgstr "zostałby przekształcony z powrotem do wersji 1\n" + +-#: .././fsr/xfs_fsr.c:902 ++#: .././repair/dinode.c:2245 + #, c-format +-msgid "%s: zero size, ignoring\n" +-msgstr "%s: zerowy rozmiar, zignorowano\n" ++msgid "clearing obsolete nlink field in version 2 inode %, was %d, now 0\n" ++msgstr "wyczyszczono przestarzałe pole nlink w i-węźle % w wersji 2 - było %d, jest 0\n" + +-#: .././fsr/xfs_fsr.c:921 ++#: .././repair/dinode.c:2251 + #, c-format +-msgid "locking check failed: %s\n" +-msgstr "sprawdzenie blokowania nie powiodło się: %s\n" ++msgid "would clear obsolete nlink field in version 2 inode %, currently %d\n" ++msgstr "przestarzałe pole nlink w i-węźle % w wersji 2 zostałoby wyczyszczone, aktualnie %d\n" + +-#: .././fsr/xfs_fsr.c:928 ++#: .././repair/dinode.c:2320 + #, c-format +-msgid "mandatory lock: %s: ignoring\n" +-msgstr "obowiązkowa blokada: %s: zignorowano\n" ++msgid "bad magic number 0x%x on inode %%c" ++msgstr "błędna liczba magiczna 0x%x w i-węźle %%c" + +-#: .././fsr/xfs_fsr.c:941 +-#, c-format +-msgid "unable to get fs stat on %s: %s\n" +-msgstr "nie udało się uzyskać stat fs na %s: %s\n" ++#: .././repair/dinode.c:2325 ++msgid " resetting magic number\n" ++msgstr " przestawiono liczbę magiczną\n" + +-#: .././fsr/xfs_fsr.c:948 +-#, c-format +-msgid "insufficient freespace for: %s: size=%lld: ignoring\n" +-msgstr "niewystarczająca ilość miejsca dla: %s: rozmiar=%lld: zignorowano\n" ++#: .././repair/dinode.c:2329 ++msgid " would reset magic number\n" ++msgstr " liczba magiczna zostałaby przestawiona\n" + +-#: .././fsr/xfs_fsr.c:955 ++#: .././repair/dinode.c:2338 + #, c-format +-msgid "failed to get inode attrs: %s\n" +-msgstr "nie udało się uzyskać atrybutów i-węzła: %s\n" ++msgid "bad version number 0x%x on inode %%c" ++msgstr "błędny numer wersji 0x%x w i-węźle %%c" + +-#: .././fsr/xfs_fsr.c:960 +-#, c-format +-msgid "%s: immutable/append, ignoring\n" +-msgstr "%s: niezmienny/tylko do dołączania, zignorowano\n" ++#: .././repair/dinode.c:2343 ++msgid " resetting version number\n" ++msgstr " przestawiono numer wersji\n" ++ ++#: .././repair/dinode.c:2349 ++msgid " would reset version number\n" ++msgstr " numer wersji zostałby przestawiony\n" + +-#: .././fsr/xfs_fsr.c:965 ++#: .././repair/dinode.c:2362 + #, c-format +-msgid "%s: marked as don't defrag, ignoring\n" +-msgstr "%s: oznaczony jako nie do defragmentacji, zignorowano\n" ++msgid "inode identifier %llu mismatch on inode %\n" ++msgstr "niezgodność identyfikatora i-węzła %llu dla i-węzła %\n" + +-#: .././fsr/xfs_fsr.c:971 ++#: .././repair/dinode.c:2371 + #, c-format +-msgid "cannot get realtime geometry for: %s\n" +-msgstr "nie można uzyskać geometrii realtime dla: %s\n" ++msgid "UUID mismatch on inode %\n" ++msgstr "niezgodność UUID-a dla i-węzła %\n" + +-#: .././fsr/xfs_fsr.c:976 ++#: .././repair/dinode.c:2384 + #, c-format +-msgid "low on realtime free space: %s: ignoring file\n" +-msgstr "mało wolnego miejsca realtime: %s: plik zignorowany\n" ++msgid "bad (negative) size % on inode %\n" ++msgstr "błędny (ujemny) rozmiar % w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:983 ++#: .././repair/dinode.c:2417 + #, c-format +-msgid "cannot open: %s: Permission denied\n" +-msgstr "nie można otworzyć: %s: brak uprawnień\n" ++msgid "imap claims a free inode % is in use, " ++msgstr "imap odwołuje się do wolnego bloku %, który jest w użyciu, " + +-#: .././fsr/xfs_fsr.c:1040 .././fsr/xfs_fsr.c:1085 .././fsr/xfs_fsr.c:1131 +-msgid "could not set ATTR\n" +-msgstr "nie udało się ustawić ATTR\n" ++#: .././repair/dinode.c:2419 ++msgid "correcting imap and clearing inode\n" ++msgstr "poprawiono imap i wyczyszczono i-węzeł\n" + +-#: .././fsr/xfs_fsr.c:1049 +-#, c-format +-msgid "unable to stat temp file: %s\n" +-msgstr "nie udało się wykonać stat na pliku tymczasowym: %s\n" ++#: .././repair/dinode.c:2423 ++msgid "would correct imap and clear inode\n" ++msgstr "poprawiono by imap i wyczyszczono by i-węzeł\n" + +-#: .././fsr/xfs_fsr.c:1068 ++#: .././repair/dinode.c:2440 + #, c-format +-msgid "unable to get bstat on temp file: %s\n" +-msgstr "nie udało się uzyskać bstat pliku tymczasowego: %s\n" ++msgid "bad inode format in inode %\n" ++msgstr "błędny format i-węzła w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:1073 ++#: .././repair/dinode.c:2456 + #, c-format +-msgid "orig forkoff %d, temp forkoff %d\n" +-msgstr "orig forkoff %d, temp forkoff %d\n" ++msgid "Bad flags set in inode %\n" ++msgstr "Błędne flagi ustawione w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:1105 ++#: .././repair/dinode.c:2467 + #, c-format +-msgid "forkoff diff %d too large!\n" +-msgstr "różnica forkoff %d zbyt duża!\n" +- +-#: .././fsr/xfs_fsr.c:1139 +-msgid "set temp attr\n" +-msgstr "ustawianie atrybutów pliku tymczasowego\n" ++msgid "inode % has RT flag set but there is no RT device\n" ++msgstr "i-węzeł % ma ustawioną flagę RT, ale nie ma urządzenia RT\n" + +-#: .././fsr/xfs_fsr.c:1178 ++#: .././repair/dinode.c:2479 + #, c-format +-msgid "%s already fully defragmented.\n" +-msgstr "%s jest już całkowicie zdefragmentowany.\n" ++msgid "inode % not rt bitmap\n" ++msgstr "i-węzeł % nie jest bitmapą rt\n" + +-#: .././fsr/xfs_fsr.c:1183 ++#: .././repair/dinode.c:2493 + #, c-format +-msgid "%s extents=%d can_save=%d tmp=%s\n" +-msgstr "%s extents=%d can_save=%d tmp=%s\n" ++msgid "directory flags set on non-directory inode %\n" ++msgstr "flagi katalogu ustawione dla nie będącego katalogiem i-węzła %\n" + +-#: .././fsr/xfs_fsr.c:1189 ++#: .././repair/dinode.c:2507 + #, c-format +-msgid "could not open tmp file: %s: %s\n" +-msgstr "nie udało się otworzyć pliku tymczasowego: %s: %s\n" ++msgid "file flags set on non-file inode %\n" ++msgstr "flagi pliku ustawione dla nie będącego plikiem i-węzła %\n" + +-#: .././fsr/xfs_fsr.c:1197 +-#, c-format +-msgid "failed to set ATTR fork on tmp: %s:\n" +-msgstr "nie udało się ustawić odgałęzienia ATTR na tmp: %s\n" ++#: .././repair/dinode.c:2516 ++msgid ", fixing bad flags.\n" ++msgstr ", poprawiono błędne flagi.\n" + +-#: .././fsr/xfs_fsr.c:1205 +-#, c-format +-msgid "could not set inode attrs on tmp: %s\n" +-msgstr "nie udało się ustawić atrybutów i-węzła na tmp: %s\n" ++#: .././repair/dinode.c:2520 ++msgid ", would fix bad flags.\n" ++msgstr ", poprawionoby błędne flagi.\n" + +-#: .././fsr/xfs_fsr.c:1213 ++#: .././repair/dinode.c:2571 + #, c-format +-msgid "could not get DirectIO info on tmp: %s\n" +-msgstr "nie udało się uzyskać informacji o bezpośrednim we/wy na tmp: %s\n" ++msgid "bad inode type %#o inode %\n" ++msgstr "błędny typ i-węzła %#o w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:1229 ++#: .././repair/dinode.c:2595 + #, c-format +-msgid "DEBUG: fsize=%lld blsz_dio=%d d_min=%d d_max=%d pgsz=%d\n" +-msgstr "DEBUG: fsize=%lld blsz_dio=%d d_min=%d d_max=%d pgsz=%d\n" ++msgid "bad non-zero extent size %u for non-realtime/extsize inode %, " ++msgstr "błędny niezerowy rozmiar ekstentu %u dla extsize i-węzła nie-realtime %, " + +-#: .././fsr/xfs_fsr.c:1236 ++#: .././repair/dinode.c:2598 ++msgid "resetting to zero\n" ++msgstr "przestawiono na zero\n" ++ ++#: .././repair/dinode.c:2602 ++msgid "would reset to zero\n" ++msgstr "zostałby przestawiony na zero\n" ++ ++#: .././repair/dinode.c:2655 + #, c-format +-msgid "could not allocate buf: %s\n" +-msgstr "nie udało się przydzielić bufora: %s\n" ++msgid "problem with directory contents in inode %\n" ++msgstr "problem z zawartością katalogu w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:1247 ++#: .././repair/dinode.c:2663 + #, c-format +-msgid "could not open fragfile: %s : %s\n" +-msgstr "nie udało się otworzyć pliku frag: %s: %s\n" ++msgid "problem with symbolic link in inode %\n" ++msgstr "problem z dowiązaniem symbolicznym w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:1264 ++#: .././repair/dinode.c:2758 + #, c-format +-msgid "could not trunc tmp %s\n" +-msgstr "nie udało się uciąć tmp %s\n" ++msgid "processing inode %d/%d\n" ++msgstr "analiza i-węzła %d/%d\n" + +-#: .././fsr/xfs_fsr.c:1279 ++#: .././repair/dir2.c:56 + #, c-format +-msgid "could not pre-allocate tmp space: %s\n" +-msgstr "nie udało się wstępnie przydzielić miejsca tmp: %s\n" ++msgid "malloc failed (%zu bytes) dir2_add_badlist:ino %\n" ++msgstr "malloc nie powiodło się (%zu bajtów) w dir2_add_badlist:ino %\n" + +-#: .././fsr/xfs_fsr.c:1290 +-msgid "Couldn't rewind on temporary file\n" +-msgstr "Nie udało się przewinąć pliku tymczasowego\n" ++#: .././repair/dir2.c:118 .././repair/prefetch.c:238 ++msgid "couldn't malloc dir2 buffer list\n" ++msgstr "nie można przydzielić listy bufora dir2\n" + +-#: .././fsr/xfs_fsr.c:1299 ++#: .././repair/dir2.c:181 .././repair/dir2.c:548 .././repair/dir2.c:1598 + #, c-format +-msgid "Temporary file has %d extents (%d in original)\n" +-msgstr "Plik tymczasowy ma ekstentów: %d (%d w oryginale)\n" ++msgid "can't read block %u for directory inode %\n" ++msgstr "nie można odczytać bloku %u dla i-węzła katalogu %\n" + +-#: .././fsr/xfs_fsr.c:1302 ++#: .././repair/dir2.c:193 + #, c-format +-msgid "No improvement will be made (skipping): %s\n" +-msgstr "Nie nastąpi poprawa (pominięto): %s\n" ++msgid "found non-root LEAFN node in inode % bno = %u\n" ++msgstr "znaleziono niegłówny węzeł LEAFN w i-węźle % bno = %u\n" + +-#: .././fsr/xfs_fsr.c:1346 ++#: .././repair/dir2.c:203 + #, c-format +-msgid "bad read of %d bytes from %s: %s\n" +-msgstr "błędny odczyt %d bajtów z %s: %s\n" ++msgid "bad dir magic number 0x%x in inode % bno = %u\n" ++msgstr "błędna liczba magiczna katalogu 0x%x w i-węźle % bno = %u\n" + +-#: .././fsr/xfs_fsr.c:1350 .././fsr/xfs_fsr.c:1384 ++#: .././repair/dir2.c:225 + #, c-format +-msgid "bad write of %d bytes to %s: %s\n" +-msgstr "błędny zapis %d bajtów do %s: %s\n" ++msgid "bad header depth for directory inode %\n" ++msgstr "błędna głębokość nagłówka dla i-węzła katalogu %\n" + +-#: .././fsr/xfs_fsr.c:1367 ++#: .././repair/dir2.c:285 + #, c-format +-msgid "bad write2 of %d bytes to %s: %s\n" +-msgstr "błędny zapis 2 %d bajtów do %s: %s\n" ++msgid "release_dir2_cursor_int got unexpected non-null bp, dabno = %u\n" ++msgstr "release_dir2_cursor_int otrzymał nieoczekiwany niezerowy bp, dabno = %u\n" + +-#: .././fsr/xfs_fsr.c:1372 ++#: .././repair/dir2.c:352 + #, c-format +-msgid "bad copy to %s\n" +-msgstr "błędna kopia do %s\n" ++msgid "directory block used/count inconsistency - %d / %hu\n" ++msgstr "niespójność wartości used/count bloku katalogu - %d / %hu\n" + +-#: .././fsr/xfs_fsr.c:1407 ++#: .././repair/dir2.c:374 + #, c-format +-msgid "failed to fchown tmpfile %s: %s\n" +-msgstr "nie udało się wykonać fchown na pliku tymczasowym %s: %s\n" ++msgid "bad directory block in inode %\n" ++msgstr "błędny blok katalogu w i-węźle %\n" + +-#: .././fsr/xfs_fsr.c:1418 ++#: .././repair/dir2.c:394 + #, c-format +-msgid "%s: file type not supported\n" +-msgstr "%s: tym pliku nie obsługiwany\n" ++msgid "" ++"correcting bad hashval in non-leaf dir block\n" ++"\tin (level %d) in inode %.\n" ++msgstr "" ++"poprawiono błędne hashval w bloku katalogu nie będącego liściem\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././fsr/xfs_fsr.c:1422 ++#: .././repair/dir2.c:402 + #, c-format +-msgid "%s: file modified defrag aborted\n" +-msgstr "%s: plik zmodyfikowany, defragmentacja przerwana\n" ++msgid "" ++"would correct bad hashval in non-leaf dir block\n" ++"\tin (level %d) in inode %.\n" ++msgstr "" ++"błędne hashval w bloku katalogu nie będącego liściem zostałoby poprawione\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././fsr/xfs_fsr.c:1427 ++#: .././repair/dir2.c:564 + #, c-format +-msgid "%s: file busy\n" +-msgstr "%s: plik zajęty\n" ++msgid "bad magic number %x in block %u for directory inode %\n" ++msgstr "błędna liczba magiczna %x w bloku %u dla i-węzła katalogu %\n" + +-#: .././fsr/xfs_fsr.c:1429 ++#: .././repair/dir2.c:571 + #, c-format +-msgid "XFS_IOC_SWAPEXT failed: %s: %s\n" +-msgstr "XFS_IOC_SWAPEXT nie powiodło się: %s: %s\n" ++msgid "bad back pointer in block %u for directory inode %\n" ++msgstr "błędny wskaźnik wstecz w bloku %u dla i-węzła katalogu %\n" + +-#: .././fsr/xfs_fsr.c:1438 ++#: .././repair/dir2.c:577 + #, c-format +-msgid "extents before:%d after:%d %s %s\n" +-msgstr "ekstentów przed: %d po: %d %s %s\n" ++msgid "entry count %d too large in block %u for directory inode %\n" ++msgstr "liczba wpisów %d zbyt duża w bloku %u dla i-węzła katalogu %\n" + +-#: .././fsr/xfs_fsr.c:1464 ++#: .././repair/dir2.c:584 + #, c-format +-msgid "tmp file name too long: %s\n" +-msgstr "nazwa pliku tymczasowego zbyt długa: %s\n" ++msgid "bad level %d in block %u for directory inode %\n" ++msgstr "błędny poziom %d w bloku %u dla i-węzła katalogu %\n" + +-#: .././fsr/xfs_fsr.c:1513 ++#: .././repair/dir2.c:625 + #, c-format +-msgid "realloc failed: %s\n" +-msgstr "realloc nie powiodło się: %s\n" ++msgid "" ++"correcting bad hashval in interior dir block\n" ++"\tin (level %d) in inode %.\n" ++msgstr "" ++"poprawiono błędne hashval w wewnętrznym bloku katalogu\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././fsr/xfs_fsr.c:1526 ++#: .././repair/dir2.c:633 + #, c-format +-msgid "malloc failed: %s\n" +-msgstr "malloc nie powiodło się: %s\n" ++msgid "" ++"would correct bad hashval in interior dir block\n" ++"\tin (level %d) in inode %.\n" ++msgstr "" ++"błędne hashval w wewnętrznym bloku katalogu zostałoby poprawione\n" ++"\tw i-węźle (poziomu %d) %.\n" + +-#: .././fsr/xfs_fsr.c:1556 +-#, c-format +-msgid "failed reading extents: inode %llu" +-msgstr "nie udało się odczytać ekstentów: i-węzeł %llu" ++#: .././repair/dir2.c:668 ++msgid "couldn't malloc dir2 shortform copy\n" ++msgstr "nie udało się przydzielić krótkiej kopii dir2\n" + +-#: .././fsr/xfs_fsr.c:1606 +-msgid "failed reading extents" +-msgstr "nie udało się odczytać ekstentów" ++#: .././repair/dir2.c:804 ++msgid "current" ++msgstr "bieżącego i-węzła" ++ ++#: .././repair/dir2.c:807 .././repair/dir2.c:1329 ++msgid "invalid" ++msgstr "nieprawidłowego i-węzła" ++ ++#: .././repair/dir2.c:810 .././repair/dir2.c:1331 ++msgid "realtime bitmap" ++msgstr "i-węzła bitmapy realtime" ++ ++#: .././repair/dir2.c:813 .././repair/dir2.c:1333 ++msgid "realtime summary" ++msgstr "i-węzła opisu realtime" ++ ++#: .././repair/dir2.c:816 .././repair/dir2.c:1335 ++msgid "user quota" ++msgstr "i-węzła limitów użytkownika" + +-#: .././fsr/xfs_fsr.c:1694 .././fsr/xfs_fsr.c:1708 ++#: .././repair/dir2.c:819 .././repair/dir2.c:1337 ++msgid "group quota" ++msgstr "i-węzła limitów grupy" ++ ++#: .././repair/dir2.c:822 .././repair/dir2.c:1339 ++msgid "project quota" ++msgstr "i-węzła limitów projektu" ++ ++#: .././repair/dir2.c:840 .././repair/dir2.c:1369 ++msgid "free" ++msgstr "free" ++ ++#: .././repair/dir2.c:857 .././repair/dir2.c:1349 ++msgid "non-existent" ++msgstr "nie istniejącego i-węzła" ++ ++#: .././repair/dir2.c:862 + #, c-format +-msgid "tmpdir already exists: %s\n" +-msgstr "katalog tymczasowy już istnieje: %s\n" ++msgid "entry \"%*.*s\" in shortform directory % references %s inode %\n" ++msgstr "wpis \"%*.*s\" w krótkim katalogu % odwołuje się do %s %\n" + +-#: .././fsr/xfs_fsr.c:1697 ++#: .././repair/dir2.c:882 + #, c-format +-msgid "could not create tmpdir: %s: %s\n" +-msgstr "nie udało się utworzyć katalogu tymczasowego: %s: %s\n" ++msgid "zero length entry in shortform dir %, resetting to %d\n" ++msgstr "wpis zerowej długości w krótkim katalogu %, przestawiono na %d\n" + +-#: .././fsr/xfs_fsr.c:1710 ++#: .././repair/dir2.c:887 + #, c-format +-msgid "cannot create tmpdir: %s: %s\n" +-msgstr "nie można utworzyć katalogu tymczasowego: %s: %s\n" ++msgid "zero length entry in shortform dir %, would set to %d\n" ++msgstr "wpis zerowej długości w krótkim katalogu %, zostałby przestawiony na %d\n" + +-#: .././fsr/xfs_fsr.c:1748 .././fsr/xfs_fsr.c:1756 ++#: .././repair/dir2.c:892 + #, c-format +-msgid "could not remove tmpdir: %s: %s\n" +-msgstr "nie udało się usunąć katalogu tymczasowego: %s: %s\n" ++msgid "zero length entry in shortform dir %" ++msgstr "wpis zerowej długości w krótkim katalogu %" + +-#: .././estimate/xfs_estimate.c:76 ++#: .././repair/dir2.c:895 + #, c-format +-msgid "" +-"Usage: %s [opts] directory [directory ...]\n" +-"\t-b blocksize (fundamental filesystem blocksize)\n" +-"\t-i logsize (internal log size)\n" +-"\t-e logsize (external log size)\n" +-"\t-v prints more verbose messages\n" +-"\t-h prints this usage message\n" +-"\n" +-"Note:\tblocksize may have 'k' appended to indicate x1024\n" +-"\tlogsize may also have 'm' appended to indicate (1024 x 1024)\n" +-msgstr "" +-"Składnia: %s [opcje] katalog [katalog ...]\n" +-"\t-b rozmiar_bloku (rozmiar bloku zasadniczego systemu plików)\n" +-"\t-i rozmiar_logu (rozmiar logu wewnętrznego)\n" +-"\t-e rozmiar_logu (rozmiar logu zewnętrznego)\n" +-"\t-v wypisywanie bardziej szczegółowych komunikatów\n" +-"\t-h wypisanie tej informacji o sposobie użycia\n" +-"\n" ++msgid ", junking %d entries\n" ++msgstr ", wyrzucono %d wpisów\n" + +-#: .././estimate/xfs_estimate.c:106 ++#: .././repair/dir2.c:898 + #, c-format +-msgid "blocksize %llu too small\n" +-msgstr "rozmiar bloku %llu jest zbyt mały\n" ++msgid ", would junk %d entries\n" ++msgstr ", %d wpisów zostałoby wyrzucone\n" + +-#: .././estimate/xfs_estimate.c:111 ++#: .././repair/dir2.c:916 + #, c-format +-msgid "blocksize %llu too large\n" +-msgstr "rozmiar bloku %llu jest zbyt duży\n" ++msgid "size of last entry overflows space left in in shortform dir %, " ++msgstr "rozmiar ostatniego wpisu przekracza miejsce pozostałe w krótkim katalogu %, " + +-#: .././estimate/xfs_estimate.c:118 ++#: .././repair/dir2.c:919 + #, c-format +-msgid "already have external log noted, can't have both\n" +-msgstr "już jest przypisany zewnętrzny log, nie mogą istnieć oba\n" ++msgid "resetting to %d\n" ++msgstr "przestawiono na %d\n" + +-#: .././estimate/xfs_estimate.c:127 ++#: .././repair/dir2.c:924 + #, c-format +-msgid "already have internal log noted, can't have both\n" +-msgstr "już jest przypisany wewnętrzny log, nie mogą istnieć oba\n" ++msgid "would reset to %d\n" ++msgstr "zostałby przestawiony na %d\n" + +-#: .././estimate/xfs_estimate.c:157 ++#: .././repair/dir2.c:929 + #, c-format +-msgid "directory bsize blocks megabytes logsize\n" +-msgstr "katalog rozmb bloków megabajtów rozm.logu\n" ++msgid "size of entry #%d overflows space left in in shortform dir %\n" ++msgstr "rozmiar wpisu #%d przekracza miejsce pozostałe w krótkim katalogu %\n" + +-#: .././estimate/xfs_estimate.c:171 ++#: .././repair/dir2.c:934 + #, c-format +-msgid "dirsize=%llu\n" +-msgstr "dirsize=%llu\n" ++msgid "junking entry #%d\n" ++msgstr "wyrzucono wpis #%d\n" + +-#: .././estimate/xfs_estimate.c:172 ++#: .././repair/dir2.c:938 + #, c-format +-msgid "fullblocks=%llu\n" +-msgstr "fullblocks=%llu\n" ++msgid "junking %d entries\n" ++msgstr "wyrzucono %d wpisów\n" + +-#: .././estimate/xfs_estimate.c:173 ++#: .././repair/dir2.c:943 + #, c-format +-msgid "isize=%llu\n" +-msgstr "isize=%llu\n" ++msgid "would junk entry #%d\n" ++msgstr "wpis #%d zostałby wyrzucony\n" + +-#: .././estimate/xfs_estimate.c:175 ++#: .././repair/dir2.c:947 + #, c-format +-msgid "%llu regular files\n" +-msgstr "%llu plików zwykłych\n" ++msgid "would junk %d entries\n" ++msgstr "%d wpisów zostałoby wyrzuconych\n" + +-#: .././estimate/xfs_estimate.c:176 ++#: .././repair/dir2.c:966 + #, c-format +-msgid "%llu symbolic links\n" +-msgstr "%llu dowiązań symbolicznych\n" ++msgid "entry contains illegal character in shortform dir %\n" ++msgstr "wpis zawiera niedozwolony znak w krótkim katalogu %\n" + +-#: .././estimate/xfs_estimate.c:177 ++#: .././repair/dir2.c:973 + #, c-format +-msgid "%llu directories\n" +-msgstr "%llu katalogów\n" ++msgid "entry contains offset out of order in shortform dir %\n" ++msgstr "wpis zawiera uszkodzony offset w krótkim katalogu %\n" + +-#: .././estimate/xfs_estimate.c:178 ++#: .././repair/dir2.c:1030 + #, c-format +-msgid "%llu special files\n" +-msgstr "%llu plików specjalnych\n" ++msgid "junking entry \"%s\" in directory inode %\n" ++msgstr "wyrzucono wpis \"%s\" w i-węźle katalogu %\n" + +-#: .././estimate/xfs_estimate.c:191 ++#: .././repair/dir2.c:1034 + #, c-format +-msgid "%s will take about %.1f megabytes\n" +-msgstr "%s zajmie około %.1f megabajtów\n" ++msgid "would have junked entry \"%s\" in directory inode %\n" ++msgstr "wpis \"%s\" w i-węźle katalogu % zostałby wyrzucony\n" + +-#: .././estimate/xfs_estimate.c:198 ++#: .././repair/dir2.c:1059 + #, c-format +-msgid "%-39s %5llu %8llu %10.1fMB %10llu\n" +-msgstr "%-39s %5llu %8llu %10.1fMB %10llu\n" ++msgid "would have corrected entry count in directory % from %d to %d\n" ++msgstr "liczba wpisów w katalogu % zostałaby poprawiona z %d na %d\n" + +-#: .././estimate/xfs_estimate.c:204 ++#: .././repair/dir2.c:1063 + #, c-format +-msgid "\twith the external log using %llu blocks " +-msgstr "\tz zewnętrznym logiem zajmującym %llu bloków " ++msgid "corrected entry count in directory %, was %d, now %d\n" ++msgstr "poprawiono liczbę wpisów w katalogu % - było %d, jest %d\n" + +-#: .././estimate/xfs_estimate.c:206 ++#: .././repair/dir2.c:1074 + #, c-format +-msgid "or about %.1f megabytes\n" +-msgstr "lub około %.1f megabajtów\n" ++msgid "would have corrected i8 count in directory % from %d to %d\n" ++msgstr "liczba i8 zostałaby poprawiona w katalogu % z %d na %d\n" + +-#: .././db/convert.c:171 ++#: .././repair/dir2.c:1078 + #, c-format +-msgid "bad argument count %d to convert, expected 3,5,7,9 arguments\n" +-msgstr "błędna liczba argumentów %d do konwersji, oczekiwano 3,5,7,9 argumentów\n" ++msgid "corrected i8 count in directory %, was %d, now %d\n" ++msgstr "poprawiono liczbę i8 w katalogu % - było %d, jest %d\n" + +-#: .././db/convert.c:176 .././db/convert.c:183 ++#: .././repair/dir2.c:1092 + #, c-format +-msgid "unknown conversion type %s\n" +-msgstr "nieznany rodzaj konwersji %s\n" ++msgid "would have corrected directory % size from % to %\n" ++msgstr "rozmiar katalogu % zostałby poprawiony z % na %\n" + +-#: .././db/convert.c:187 +-msgid "result type same as argument\n" +-msgstr "typ wyniku taki sam jak argument\n" ++#: .././repair/dir2.c:1097 ++#, c-format ++msgid "corrected directory % size, was %, now %\n" ++msgstr "poprawiono rozmiar katalogu % - było %, jest %\n" + +-#: .././db/convert.c:191 ++#: .././repair/dir2.c:1109 + #, c-format +-msgid "conflicting conversion type %s\n" +-msgstr "konflikt typu konwersji %s\n" ++msgid "directory % offsets too high\n" ++msgstr "offsety zbyt duże w katalogu %\n" + +-#: .././db/convert.c:270 ++#: .././repair/dir2.c:1115 + #, c-format +-msgid "%s is not a number\n" +-msgstr "%s nie jest liczbą\n" ++msgid "would have corrected entry offsets in directory %\n" ++msgstr "offsety wpisów w katalogu % zostałyby poprawione\n" + +-#: .././db/check.c:372 +-msgid "free block usage information" +-msgstr "informacje o wykorzystaniu wolnych bloków" ++#: .././repair/dir2.c:1119 ++#, c-format ++msgid "corrected entry offsets in directory %\n" ++msgstr "poprawiono offsety wpisów w katalogu %\n" + +-#: .././db/check.c:375 +-msgid "[-s|-v] [-n] [-t] [-b bno]... [-i ino] ..." +-msgstr "[-s|-v] [-n] [-t] [-b bno]... [-i ino] ..." ++#: .././repair/dir2.c:1138 ++#, c-format ++msgid "bogus .. inode number (%) in directory inode %, " ++msgstr "błędny numer i-węzła .. (%) w i-węźle katalogu %, " + +-#: .././db/check.c:376 +-msgid "get block usage and check consistency" +-msgstr "uzyskanie informacji o wykorzystaniu bloków i sprawdzenie spójności" ++#: .././repair/dir2.c:1142 .././repair/dir2.c:1177 ++msgid "clearing inode number\n" ++msgstr "wyczyszczono numer i-węzła\n" + +-#: .././db/check.c:379 +-msgid "[-n count] [-x minlen] [-y maxlen] [-s seed] [-0123] [-t type] ..." +-msgstr "[-n liczba] [-x minlen] [-y maxlen] [-s seed] [-0123] [-t typ] ..." ++#: .././repair/dir2.c:1148 .././repair/dir2.c:1183 ++msgid "would clear inode number\n" ++msgstr "numer i-węzła zostałby wyczyszczony\n" + +-#: .././db/check.c:380 +-msgid "trash randomly selected block(s)" +-msgstr "zaśmiecenie losowo wybranych bloków" ++#: .././repair/dir2.c:1156 ++#, c-format ++msgid "corrected root directory % .. entry, was %, now %\n" ++msgstr "poprawiono wpis .. głównego katalogu % - było %, jest %\n" + +-#: .././db/check.c:383 +-msgid "[-n] [-c blockcount]" +-msgstr "[-n] [-c liczba-bloków]" ++#: .././repair/dir2.c:1164 ++#, c-format ++msgid "would have corrected root directory % .. entry from % to %\n" ++msgstr "wpis .. głównego katalogu % zostałby poprawiony z % na %\n" + +-#: .././db/check.c:384 +-msgid "print usage for current block(s)" +-msgstr "wypisanie wykorzystania bieżących bloków" ++#: .././repair/dir2.c:1174 ++#, c-format ++msgid "bad .. entry in directory inode %, points to self, " ++msgstr "błędny wpis .. w i-węźle katalogu %, wskazuje na siebie, " + +-#: .././db/check.c:387 +-msgid "[-s] [-i ino] ..." +-msgstr "[-s] [-i ino] ..." ++#: .././repair/dir2.c:1287 ++#, c-format ++msgid "corrupt block %u in directory inode %\n" ++msgstr "uszkodzony blok %u w i-węźle katalogu %\n" + +-#: .././db/check.c:388 +-msgid "print inode-name pairs" +-msgstr "wypisanie par i-węzeł - nazwa" ++#: .././repair/dir2.c:1290 ++msgid "\twill junk block\n" ++msgstr "\tblok zostanie wyrzucony\n" + +-#: .././db/check.c:408 +-#, c-format +-msgid "-i %lld bad inode number\n" +-msgstr "-i %lld - błędny numer i-węzła\n" ++#: .././repair/dir2.c:1292 ++msgid "\twould junk block\n" ++msgstr "\tblok zostałby wyrzucony\n" + +-#: .././db/check.c:420 ++#: .././repair/dir2.c:1378 + #, c-format +-msgid "inode %lld add link, now %u\n" +-msgstr "i-węzeł %lld - dodano dowiązanie, teraz %u\n" ++msgid "entry \"%*.*s\" at block %d offset % in directory inode % references %s inode %\n" ++msgstr "wpis \"%*.*s\" w bloku %d offsecie % w i-węźle katalogu % odwołuje się do %s %\n" + +-#: .././db/check.c:447 ++#: .././repair/dir2.c:1389 + #, c-format +-msgid "inode %lld parent %lld\n" +-msgstr "i-węzeł %lld - rodzic %lld\n" +- +-#: .././db/check.c:760 +-msgid "block usage information not allocated\n" +-msgstr "informacja o wykorzystaniu bloków nie przydzielona\n" +- +-#: .././db/check.c:798 +-msgid "already have block usage information\n" +-msgstr "już istnieje informacja o wykorzystaniu bloków\n" +- +-#: .././db/check.c:814 .././db/check.c:922 +-msgid "WARNING: this may be a newer XFS filesystem.\n" +-msgstr "UWAGA: to może być nowszy system plików XFS.\n" ++msgid "entry at block %u offset % in directory inode %has 0 namelength\n" ++msgstr "wpis w bloku %u offsecie % w i-węźle katalogu % ma zerową długość nazwy\n" + +-#: .././db/check.c:850 ++#: .././repair/dir2.c:1402 + #, c-format +-msgid "sb_icount %lld, counted %lld\n" +-msgstr "sb_icount %lld, naliczono %lld\n" ++msgid "\tclearing inode number in entry at offset %...\n" ++msgstr "\twyczyszczono numer i-węzła we wpisie o offsecie %...\n" + +-#: .././db/check.c:856 ++#: .././repair/dir2.c:1409 + #, c-format +-msgid "sb_ifree %lld, counted %lld\n" +-msgstr "sb_ifree %lld, naliczono %lld\n" ++msgid "\twould clear inode number in entry at offset %...\n" ++msgstr "\tnumer i-węzła we wpisie o offsecie % zostałby wyczyszczony...\n" + +-#: .././db/check.c:862 ++#: .././repair/dir2.c:1422 + #, c-format +-msgid "sb_fdblocks %lld, counted %lld\n" +-msgstr "sb_fdblocks %lld, naliczono %lld\n" ++msgid "entry at block %u offset % in directory inode % has illegal name \"%*.*s\": " ++msgstr "wpis w bloku %u offsecie % w i-węźle katalogu % ma niedozwoloną nazwę \"%*.*s\": " + +-#: .././db/check.c:868 ++#: .././repair/dir2.c:1452 + #, c-format +-msgid "sb_fdblocks %lld, aggregate AGF count %lld\n" +-msgstr "sb_fdblocks %lld, łączny licznik AGF %lld\n" ++msgid "bad .. entry in directory inode %, points to self: " ++msgstr "błędny wpis .. w i-węźle katalogu %, wskazuje na siebie: " + +-#: .././db/check.c:874 ++#: .././repair/dir2.c:1463 + #, c-format +-msgid "sb_frextents %lld, counted %lld\n" +-msgstr "sb_frextents %lld, naliczono %lld\n" ++msgid "bad .. entry in root directory inode %, was %: " ++msgstr "błędny wpis w i-węźle głównego katalogu %, było %: " + +-#: .././db/check.c:881 +-#, c-format +-msgid "sb_features2 (0x%x) not same as sb_bad_features2 (0x%x)\n" +-msgstr "sb_features2 (0x%x) różni się od sb_bad_features2 (0x%x)\n" ++#: .././repair/dir2.c:1466 .././repair/dir2.c:1498 .././repair/phase2.c:184 ++#: .././repair/phase2.c:193 .././repair/phase2.c:202 ++msgid "correcting\n" ++msgstr "poprawiono\n" + +-#: .././db/check.c:890 +-#, c-format +-msgid "sb versionnum missing attr bit %x\n" +-msgstr "sb versionnum - brak bitu atrybutu %x\n" ++#: .././repair/dir2.c:1470 .././repair/dir2.c:1502 .././repair/phase2.c:186 ++#: .././repair/phase2.c:195 .././repair/phase2.c:204 ++msgid "would correct\n" ++msgstr "zostałby poprawiony\n" + +-#: .././db/check.c:897 ++#: .././repair/dir2.c:1482 + #, c-format +-msgid "sb versionnum missing nlink bit %x\n" +-msgstr "sb versionnum - brak bitu nlink %x\n" ++msgid "multiple .. entries in directory inode %: " ++msgstr "wiele wpisów .. w i-węźle katalogu %: " + +-#: .././db/check.c:904 ++#: .././repair/dir2.c:1495 + #, c-format +-msgid "sb versionnum missing quota bit %x\n" +-msgstr "sb versionnum - brak bitu quota %x\n" ++msgid "bad . entry in directory inode %, was %: " ++msgstr "błędny wpis . w i-węźle katalogu %, było %: " + +-#: .././db/check.c:911 ++#: .././repair/dir2.c:1507 + #, c-format +-msgid "sb versionnum extra align bit %x\n" +-msgstr "sb versionnum - nadmiarowy bit align %x\n" +- +-#: .././db/check.c:951 +-msgid "zeroed" +-msgstr "wyzerowano" +- +-#: .././db/check.c:951 +-msgid "set" +-msgstr "ustawiono" +- +-#: .././db/check.c:951 +-msgid "flipped" +-msgstr "przełączono" +- +-#: .././db/check.c:951 +-msgid "randomized" +-msgstr "ulosowiono" ++msgid "multiple . entries in directory inode %: " ++msgstr "wiele wpisów . w i-węźle katalogu %: " + +-#: .././db/check.c:961 ++#: .././repair/dir2.c:1517 + #, c-format +-msgid "can't read block %u/%u for trashing\n" +-msgstr "nie można odczytać bloku %u/%u w celu zaśmiecenia\n" ++msgid "entry \"%*.*s\" in directory inode % points to self: " ++msgstr "wpis \"%*.*s\" w i-węźle katalogu % wskazuje na siebie: " + +-#: .././db/check.c:991 +-#, c-format +-msgid "blocktrash: %u/%u %s block %d bit%s starting %d:%d %s\n" +-msgstr "blocktrash: %u/%u %s blok %d bit%s początek %d:%d %s\n" ++#: .././repair/dir2.c:1528 ++msgid "clearing entry\n" ++msgstr "wyczyszczono wpis\n" + +-#: .././db/check.c:1023 .././db/check.c:1180 +-msgid "must run blockget first\n" +-msgstr "najpierw trzeba wykonać blockget\n" ++#: .././repair/dir2.c:1530 ++msgid "would clear entry\n" ++msgstr "wpis zostałby wyczyszczony\n" + +-#: .././db/check.c:1067 ++#: .././repair/dir2.c:1543 + #, c-format +-msgid "bad blocktrash count %s\n" +-msgstr "błędna liczba bloków do zaśmiecenia %s\n" ++msgid "bad bestfree table in block %u in directory inode %: " ++msgstr "błędna tablica bestfree w bloku %u w i-węźle katalogu %: " + +-#: .././db/check.c:1081 +-#, c-format +-msgid "bad blocktrash type %s\n" +-msgstr "błędny typ zaśmiecania %s\n" ++#: .././repair/dir2.c:1546 ++msgid "repairing table\n" ++msgstr "naprawiono tablicę\n" + +-#: .././db/check.c:1090 +-#, c-format +-msgid "bad blocktrash min %s\n" +-msgstr "błędny początek zaśmiecania %s\n" ++#: .././repair/dir2.c:1550 ++msgid "would repair table\n" ++msgstr "tablica zostałaby naprawiona\n" + +-#: .././db/check.c:1098 ++#: .././repair/dir2.c:1589 + #, c-format +-msgid "bad blocktrash max %s\n" +-msgstr "błędny koniec zaśmiecania %s\n" +- +-#: .././db/check.c:1103 +-msgid "bad option for blocktrash command\n" +-msgstr "błędna opcja polecenia blocktrash\n" +- +-#: .././db/check.c:1108 +-msgid "bad min/max for blocktrash command\n" +-msgstr "błędny początek/koniec polecenia blocktrash\n" +- +-#: .././db/check.c:1134 +-msgid "blocktrash: no matching blocks\n" +-msgstr "blocktrash: brak pasujących bloków\n" ++msgid "block %u for directory inode % is missing\n" ++msgstr "brak bloku %u dla i-węzła katalogu %\n" + +-#: .././db/check.c:1138 ++#: .././repair/dir2.c:1609 + #, c-format +-msgid "blocktrash: seed %u\n" +-msgstr "blocktash: zarodek %u\n" ++msgid "bad directory block magic # %#x in block %u for directory inode %\n" ++msgstr "błędna liczba magiczna bloku katalogu %#x w bloku %u dla i-węzła katalogu %\n" + +-#: .././db/check.c:1196 ++#: .././repair/dir2.c:1658 + #, c-format +-msgid "bad blockuse count %s\n" +-msgstr "błędna liczba bloków dla blockuse: %s\n" +- +-#: .././db/check.c:1202 .././db/check.c:1887 +-msgid "must run blockget -n first\n" +-msgstr "najpierw trzeba wykonać blockget -n\n" +- +-#: .././db/check.c:1208 +-msgid "bad option for blockuse command\n" +-msgstr "błędna opcja dla polecenia blockuse\n" ++msgid "bad entry count in block %u of directory inode %\n" ++msgstr "błędna liczba wpisów w bloku %u i-węzła katalogu %\n" + +-#: .././db/check.c:1215 ++#: .././repair/dir2.c:1666 + #, c-format +-msgid "block %llu (%u/%u) type %s" +-msgstr "blok %llu (%u/%u) typu %s" ++msgid "bad hash ordering in block %u of directory inode %\n" ++msgstr "błędna kolejność hasza w bloku %u i-węzła katalogu %\n" + +-#: .././db/check.c:1219 ++#: .././repair/dir2.c:1674 + #, c-format +-msgid " inode %lld" +-msgstr " i-węzeł %lld" ++msgid "bad stale count in block %u of directory inode %\n" ++msgstr "błędna liczba stale %u i-węzła katalogu %\n" + +-#: .././db/check.c:1257 ++#: .././repair/dir2.c:1723 + #, c-format +-msgid "block %u/%u expected type %s got %s\n" +-msgstr "blok %u/%u: oczekiwano typu %s, otrzymano %s\n" ++msgid "can't map block %u for directory inode %\n" ++msgstr "nie można odwzorować bloku %u dla i-węzła katalogu %\n" + +-#: .././db/check.c:1289 ++#: .././repair/dir2.c:1733 + #, c-format +-msgid "blocks %u/%u..%u claimed by inode %lld\n" +-msgstr "blok %u/%u..%u przypisany do i-węzła %lld\n" ++msgid "can't read file block %u for directory inode %\n" ++msgstr "nie można odczytać bloku pliku %u dla i-węzła katalogu %\n" + +-#: .././db/check.c:1297 ++#: .././repair/dir2.c:1745 + #, c-format +-msgid "block %u/%u claimed by inode %lld, previous inum %lld\n" +-msgstr "blok %u/%u przypisany do i-węzła %lld, poprzedni inum %lld\n" ++msgid "bad directory leaf magic # %#x for directory inode % block %u\n" ++msgstr "błędna liczba magiczna liścia katalogu %#x dla i-węzła katalogu % bloku %u\n" + +-#: .././db/check.c:1326 ++#: .././repair/dir2.c:1773 + #, c-format +-msgid "link count mismatch for inode %lld (name %s), nlink %d, counted %d\n" +-msgstr "niezgodność liczby dowiązań dla i-węzła %lld (nazwa %s), nlink %d, naliczono %d\n" ++msgid "bad sibling back pointer for block %u in directory inode %\n" ++msgstr "błędny wskaźnik wstecz dla bloku %u w i-węźle katalogu %\n" + +-#: .././db/check.c:1334 ++#: .././repair/dir2.c:1798 + #, c-format +-msgid "disconnected inode %lld, nlink %d\n" +-msgstr "odłączony i-węzeł %lld, nlink %d\n" ++msgid "bad hash path in directory %\n" ++msgstr "błędna ścieżka hasza w katalogu %\n" + +-#: .././db/check.c:1338 ++#: .././repair/dir2.c:1908 + #, c-format +-msgid "allocated inode %lld has 0 link count\n" +-msgstr "przydzielony i-węzeł %lld ma zerową liczbę dowiązań\n" ++msgid "block % for directory inode % is missing\n" ++msgstr "brak bloku % dla i-węzła katalogu %\n" + +-#: .././db/check.c:1348 ++#: .././repair/dir2.c:1917 + #, c-format +-msgid "inode %lld name %s\n" +-msgstr "i-węzeł %lld o nazwie %s\n" ++msgid "can't read block % for directory inode %\n" ++msgstr "nie można odczytać bloku % dla i-węzła katalogu %\n" + +-#: .././db/check.c:1382 .././db/check.c:1397 ++#: .././repair/dir2.c:1925 + #, c-format +-msgid "block %u/%u out of range\n" +-msgstr "blok %u/%u poza zakresem\n" ++msgid "bad directory block magic # %#x in block % for directory inode %\n" ++msgstr "błędna liczba magiczna bloku katalogu %#x w bloku % dla i-węzła katalogu %\n" + +-#: .././db/check.c:1385 .././db/check.c:1400 ++#: .././repair/dir2.c:2002 + #, c-format +-msgid "blocks %u/%u..%u out of range\n" +-msgstr "bloki %u/%u..%u poza zakresem\n" ++msgid "bad size/format for directory %\n" ++msgstr "błędny rozmiar/format dla katalogu %\n" + +-#: .././db/check.c:1423 ++#: .././repair/dir2.c:2009 + #, c-format +-msgid "rtblock %llu expected type %s got %s\n" +-msgstr "rtblok %llu - oczekiwano typu %s, otrzymano %s\n" ++msgid "no . entry for directory %\n" ++msgstr "brak wpisu . dla katalogu %\n" + +-#: .././db/check.c:1443 ++#: .././repair/dir2.c:2019 + #, c-format +-msgid "rtblocks %llu..%llu claimed by inode %lld\n" +-msgstr "rtbloki %llu..%llu przypisane do i-węzła %lld\n" ++msgid "no .. entry for directory %\n" ++msgstr "brak wpisu .. dla katalogu %\n" + +-#: .././db/check.c:1452 ++#: .././repair/dir2.c:2021 + #, c-format +-msgid "rtblock %llu claimed by inode %lld, previous inum %lld\n" +-msgstr "rtblok %llu przypisany do i-węzłą %lld, poprzedni inum %lld\n" ++msgid "no .. entry for root directory %\n" ++msgstr "brak wpisu .. dla katalogu głównego %\n" + +-#: .././db/check.c:1470 ++#: .././repair/incore.c:230 + #, c-format +-msgid "root inode %lld is missing\n" +-msgstr "brak głównego i-węzła %lld\n" ++msgid "couldn't allocate realtime block map, size = %\n" ++msgstr "nie udało się przydzielić mapy bloków realtime, size = %\n" + +-#: .././db/check.c:1475 +-#, c-format +-msgid "root inode %lld is not a directory\n" +-msgstr "główny i-węzeł %lld nie jest katalogiem\n" ++#: .././repair/incore.c:295 ++msgid "couldn't allocate block map btree roots\n" ++msgstr "nie udało się przydzielić korzeni b-drzewa mapy bloków\n" + +-#: .././db/check.c:1491 +-#, c-format +-msgid "rtblock %llu out of range\n" +-msgstr "rtblok %llu poza zakresem\n" ++#: .././repair/incore.c:299 ++msgid "couldn't allocate block map locks\n" ++msgstr "nie udało się przydzielić blokad mapy bloków\n" + +-#: .././db/check.c:1515 +-#, c-format +-msgid "blocks %u/%u..%u claimed by block %u/%u\n" +-msgstr "bloki %u/%u..%u przypisane do bloku %u/%u\n" ++#: .././repair/incore_ext.c:135 .././repair/incore_ext.c:562 ++msgid "couldn't allocate new extent descriptor.\n" ++msgstr "nie udało się przydzielić nowego deskryptora ekstentu.\n" + +-#: .././db/check.c:1524 +-#, c-format +-msgid "setting block %u/%u to %s\n" +-msgstr "ustawianie bloku %u/%u na %s\n" ++#: .././repair/incore_ext.c:232 ++msgid "duplicate bno extent range\n" ++msgstr "powtórzony przedział ekstentów bno\n" + +-#: .././db/check.c:1547 +-#, c-format +-msgid "setting rtblock %llu to %s\n" +-msgstr "ustawianie rtbloku %llu na %s\n" ++#: .././repair/incore_ext.c:369 ++msgid ": duplicate bno extent range\n" ++msgstr ": powtórzony przedział ekstentów bno\n" + +-#: .././db/check.c:1593 +-#, c-format +-msgid "block %u/%u type %s not expected\n" +-msgstr "blok %u/%u typu %s nie oczekiwany\n" ++#: .././repair/incore_ext.c:644 .././repair/incore_ext.c:699 ++msgid "duplicate extent range\n" ++msgstr "powtórzony przedział ekstentów\n" + +-#: .././db/check.c:1614 +-#, c-format +-msgid "rtblock %llu type %s not expected\n" +-msgstr "rtblok %llu typu %s nie oczekiwany\n" ++#: .././repair/incore_ext.c:752 .././repair/incore_ext.c:756 ++msgid "couldn't malloc dup extent tree descriptor table\n" ++msgstr "nie udało się przydzielić tablicy deskryptorów drzewa powtórzonych ekstentów\n" + +-#: .././db/check.c:1651 +-#, c-format +-msgid "dir ino %lld missing leaf entry for %x/%x\n" +-msgstr "i-węzeł katalogu %lld - brak wpisu liścia dla %x/%x\n" ++#: .././repair/incore_ext.c:761 ++msgid "couldn't malloc free by-bno extent tree descriptor table\n" ++msgstr "nie udało się przydzielić tablicy deskryptorów drzewa wolnych ekstentów wg bno\n" + +-#: .././db/check.c:1770 +-#, c-format +-msgid "bad superblock magic number %x, giving up\n" +-msgstr "błędna liczba magiczna superbloku %x, poddaję się\n" ++#: .././repair/incore_ext.c:766 ++msgid "couldn't malloc free by-bcnt extent tree descriptor table\n" ++msgstr "nie udało się przydzielić tablicy deskryptorów drzewa wolnych ekstentów wg bcnt\n" + +-#: .././db/check.c:1824 +-msgid "bad option for blockget command\n" +-msgstr "błędna opcja dla polecenia blockget\n" ++#: .././repair/incore_ext.c:772 ++msgid "couldn't malloc bno extent tree descriptor\n" ++msgstr "nie udało się przydzielić deskryptora drzewa ekstentów wg bno\n" + +-#: .././db/check.c:1904 +-#, c-format +-msgid "bad option -%c for ncheck command\n" +-msgstr "błędna opcja -%c dla polecenia ncheck\n" ++#: .././repair/incore_ext.c:776 ++msgid "couldn't malloc bcnt extent tree descriptor\n" ++msgstr "nie udało się przydzielić deskryptora drzewa ekstentów wg bcnt\n" + +-#: .././db/check.c:1977 .././db/check.c:2946 +-#, c-format +-msgid "block 0 for directory inode %lld is missing\n" +-msgstr "brak bloku 0 dla i-węzła katalogu %lld\n" ++#: .././repair/incore_ext.c:787 ++msgid "couldn't malloc dup rt extent tree descriptor\n" ++msgstr "nie udało się przydzielić deskryptora drzewa powtórzonych ekstentów rt\n" + +-#: .././db/check.c:1997 .././db/check.c:2957 +-#, c-format +-msgid "can't read block 0 for directory inode %lld\n" +-msgstr "nie można odczytać bloku 0 dla i-węzła katalogu %lld\n" ++#: .././repair/incore_ino.c:47 ++msgid "could not allocate nlink array\n" ++msgstr "Nie udało się przydzielić tablicy nlink\n" + +-#: .././db/check.c:2043 +-#, c-format +-msgid "inode %lld extent [%lld,%lld,%lld,%d]\n" +-msgstr "ekstent i-węzła %lld [%lld,%lld,%lld,%d]\n" ++#: .././repair/incore_ino.c:225 ++msgid "could not allocate ftypes array\n" ++msgstr "nie udało się przydzielić tablicy ftypes\n" + +-#: .././db/check.c:2046 +-#, c-format +-msgid "bmap rec out of order, inode %lld entry %d\n" +-msgstr "błędna kolejność bmap rec - i-węzeł %lld, wpis %d\n" ++#: .././repair/incore_ino.c:251 ++msgid "inode map malloc failed\n" ++msgstr "przydzielenie mapy i-węzłów nie powiodło się\n" + +-#: .././db/check.c:2052 +-#, c-format +-msgid "inode %lld bad rt block number %lld, offset %lld\n" +-msgstr "i-węzeł %lld - błędny numer bloku rt %lld, offset %lld\n" ++#: .././repair/incore_ino.c:364 ++msgid "add_aginode_uncertain - duplicate inode range\n" ++msgstr "add_aginode_uncertain - powtórzony przedział i-węzłów\n" + +-#: .././db/check.c:2062 .././db/check.c:2068 +-#, c-format +-msgid "inode %lld bad block number %lld [%d,%d], offset %lld\n" +-msgstr "i-węzeł %lld - błędny numer bloku %lld [%d,%d], offset %lld\n" ++#: .././repair/incore_ino.c:459 ++msgid "add_inode - duplicate inode range\n" ++msgstr "add_inode - powtórzony przedział i-węzłów\n" + +-#: .././db/check.c:2086 .././db/check.c:2100 ++#: .././repair/incore_ino.c:553 + #, c-format +-msgid "inode %lld block %lld at offset %lld\n" +-msgstr "i-węzeł %lld: blok %lld pod offsetem %lld\n" ++msgid "good inode list is --\n" ++msgstr "lista dobrych i-węzłów to:\n" + +-#: .././db/check.c:2127 ++#: .././repair/incore_ino.c:556 + #, c-format +-msgid "level for ino %lld %s fork bmap root too large (%u)\n" +-msgstr "i-węzeł %lld: poziom bmap root odgałęzienia %s zbyt duży (%u)\n" ++msgid "uncertain inode list is --\n" ++msgstr "lista niepewnych i-węzłów to:\n" + +-#: .././db/check.c:2139 ++#: .././repair/incore_ino.c:561 + #, c-format +-msgid "numrecs for ino %lld %s fork bmap root too large (%u)\n" +-msgstr "i-węzeł %lld: liczba rekordów bmap root odgałęzienia %s zbyt duża (%u)\n" ++msgid "agno %d -- no inodes\n" ++msgstr "agno %d - brak i-węzłów\n" + +-#: .././db/check.c:2166 ++#: .././repair/incore_ino.c:565 + #, c-format +-msgid "extent count for ino %lld %s fork too low (%d) for file format\n" +-msgstr "i-węzeł %lld: liczba ekstentów dla odgałęzienia %s zbyt mała (%d) dla formatu pliku\n" ++msgid "agno %d\n" ++msgstr "agno %d\n" + +-#: .././db/check.c:2216 .././db/check.c:3297 ++#: .././repair/incore_ino.c:569 + #, c-format +-msgid "bad directory data magic # %#x for dir ino %lld block %d\n" +-msgstr "błędna liczba magiczna danych katalogu %#x dla i-węzła katalogu %lld, blok %d\n" ++msgid "\tptr = %lx, start = 0x%x, free = 0x%llx, confirmed = 0x%llx\n" ++msgstr "\tptr = %lx, start = 0x%x, wolne = 0x%llx, potwierdzone = 0x%llx\n" + +-#: .././db/check.c:2233 +-#, c-format +-msgid "bad block directory tail for dir ino %lld\n" +-msgstr "błędny koniec katalogu bloku dla i-węzła katalogu %lld\n" ++#: .././repair/incore_ino.c:620 ++msgid "couldn't malloc parent list table\n" ++msgstr "nie udało się przydzielić tablicy listy rodziców\n" + +-#: .././db/check.c:2278 +-#, c-format +-msgid "dir %lld block %d bad free entry at %d\n" +-msgstr "katalog %lld, blok %d: błędny wolny wpis pod %d\n" ++#: .././repair/incore_ino.c:631 .././repair/incore_ino.c:677 ++msgid "couldn't memalign pentries table\n" ++msgstr "nie udało się memalign na tablicy pentries\n" + +-#: .././db/check.c:2302 +-#, c-format +-msgid "dir %lld block %d zero length entry at %d\n" +-msgstr "katalog %lld, blok %d: wpis zerowej długości pod %d\n" ++#: .././repair/incore_ino.c:735 ++msgid "could not malloc inode extra data\n" ++msgstr "nie udało się przydzielić dodatkowych danych i-węzła\n" + +-#: .././db/check.c:2311 +-#, c-format +-msgid "dir %lld block %d bad entry at %d\n" +-msgstr "katalog %lld, blok %d: błędny wpis pod %d\n" ++#: .././repair/incore_ino.c:801 ++msgid "couldn't malloc inode tree descriptor table\n" ++msgstr "nie udało się przydzielić tablicy deskryptorów drzewa i-węzłów\n" + +-#: .././db/check.c:2329 +-#, c-format +-msgid "dir %lld block %d entry %*.*s %lld\n" +-msgstr "katalog %lld, blok %d, wpis %*.*s %lld\n" ++#: .././repair/incore_ino.c:805 ++msgid "couldn't malloc uncertain ino tree descriptor table\n" ++msgstr "nie udało się przydzielić tablicy deskryptorów drzewa i-węzłów niepewnych\n" + +-#: .././db/check.c:2336 +-#, c-format +-msgid "dir %lld block %d entry %*.*s bad inode number %lld\n" +-msgstr "katalog %lld, blokd %d, epis %*.*s: błędny number i-węzła %lld\n" ++#: .././repair/incore_ino.c:810 ++msgid "couldn't malloc inode tree descriptor\n" ++msgstr "nie udało się przydzielić deskryptora drzewa i-węzłów\n" + +-#: .././db/check.c:2346 .././db/check.c:3020 +-#, c-format +-msgid "multiple .. entries in dir %lld (%lld, %lld)\n" +-msgstr "wiele wpisów .. w katalogu %lld (%lld, %lld)\n" ++#: .././repair/incore_ino.c:814 ++msgid "couldn't malloc uncertain ino tree descriptor\n" ++msgstr "nie udało się przydzielić deskryptora drzewa i-węzłów niepewnych\n" + +-#: .././db/check.c:2363 .././db/check.c:3037 +-#, c-format +-msgid "dir %lld entry . inode number mismatch (%lld)\n" +-msgstr "katalog %lld, wpis .: niezgodność numeru i-węzła (%lld)\n" ++#: .././repair/incore_ino.c:822 ++msgid "couldn't malloc uncertain inode cache area\n" ++msgstr "nie udało się przydzielić obszaru pamięci podręcznej i-węzłów niepewnych\n" + +-#: .././db/check.c:2376 ++#: .././repair/init.c:46 + #, c-format +-msgid "dir %lld block %d bad count %u\n" +-msgstr "katalog %lld, blok %d: błędny licznik %u\n" ++msgid "getrlimit(RLIMIT_FSIZE) failed!\n" ++msgstr "getrlimit(RLIMIT_FSIZE) nie powiodło się!\n" + +-#: .././db/check.c:2387 .././db/check.c:3311 ++#: .././repair/init.c:54 + #, c-format +-msgid "dir %lld block %d extra leaf entry %x %x\n" +-msgstr "katalog %lld, blok %d: nadmiarowy wpis liścia %x %x\n" ++msgid "setrlimit failed - current: %lld, max: %lld\n" ++msgstr "setrlimit nie powiodło się - bieżący: %lld, max: %lld\n" + +-#: .././db/check.c:2399 ++#: .././repair/init.c:107 + #, c-format +-msgid "dir %lld block %d bad bestfree data\n" +-msgstr "katalog %lld, blok %d: błędne dane bestfree\n" ++msgid "Unmount or use the dangerous (-d) option to repair a read-only mounted filesystem\n" ++msgstr "Aby naprawić system plików zamontowany do odczytu, trzeba go odmontować lub użyć opcji niebezpiecznej (-d).\n" + +-#: .././db/check.c:2407 +-#, c-format +-msgid "dir %lld block %d bad block tail count %d (stale %d)\n" +-msgstr "katalog %lld, blok %d: błędny licznik końca bloku %d (stale %d)\n" ++#: .././repair/init.c:109 ++msgid "couldn't initialize XFS library\n" ++msgstr "nie udało się zainicjować biblioteki XFS\n" + +-#: .././db/check.c:2416 +-#, c-format +-msgid "dir %lld block %d bad stale tail count %d\n" +-msgstr "katalog %lld, blok %d: błędny licznik końca stale %d\n" ++#: .././repair/phase1.c:28 ++msgid "Sorry, could not find valid secondary superblock\n" ++msgstr "Niestety nie znaleziono poprawnego zapasowego superbloku\n" + +-#: .././db/check.c:2422 +-#, c-format +-msgid "dir %lld block %d consecutive free entries\n" +-msgstr "katalog %lld, blok %d: kolejne wolne wpisy\n" ++#: .././repair/phase1.c:29 ++msgid "Exiting now.\n" ++msgstr "Zakończono.\n" + +-#: .././db/check.c:2428 ++#: .././repair/phase1.c:40 + #, c-format +-msgid "dir %lld block %d entry/unused tag mismatch\n" +-msgstr "katalog %lld, blok %d: niezgodność znacznika wpis/nieużywany\n" ++msgid "could not allocate ag header buffer (%d bytes)\n" ++msgstr "nie udało się przydzielić bufora nagłówka ag (%d bajtów)\n" + +-#: .././db/check.c:2481 +-#, c-format +-msgid "no . entry for directory %lld\n" +-msgstr "brak wpisu . dla katalogu %lld\n" ++#: .././repair/phase1.c:58 ++msgid "Phase 1 - find and verify superblock...\n" ++msgstr "Faza 1 - szukanie i sprawdzanie superbloku...\n" + +-#: .././db/check.c:2486 +-#, c-format +-msgid "no .. entry for directory %lld\n" +-msgstr "brak wpisu .. dla katalogu %lld\n" ++#: .././repair/phase1.c:75 ++msgid "error reading primary superblock\n" ++msgstr "błąd podczas odczytu głównego superbloku\n" + +-#: .././db/check.c:2490 ++#: .././repair/phase1.c:81 + #, c-format +-msgid ". and .. same for non-root directory %lld\n" +-msgstr ". i .. są takie same dla katalogu %lld (nie będącego głównym)\n" ++msgid "bad primary superblock - %s !!!\n" ++msgstr "błędny główny superblok - %s!!!\n" + +-#: .././db/check.c:2495 ++#: .././repair/phase1.c:88 + #, c-format +-msgid "root directory %lld has .. %lld\n" +-msgstr "główny katalog %lld ma .. %lld\n" ++msgid "couldn't verify primary superblock - %s !!!\n" ++msgstr "nie udało się sprawdzić głównego superbloku - %s!!!\n" + +-#: .././db/check.c:2525 .././db/check.c:2560 +-#, c-format +-msgid "bad size (%lld) or format (%d) for directory inode %lld\n" +-msgstr "błędny rozmiar (%lld) lub format (%d) dla i-węzła katalogu %lld\n" ++#: .././repair/phase1.c:106 ++msgid "superblock has a features2 mismatch, correcting\n" ++msgstr "superblok ma niepasujące features2, poprawianie\n" + +-#: .././db/check.c:2588 ++#: .././repair/phase1.c:123 + #, c-format +-msgid "bad number of extents %d for inode %lld\n" +-msgstr "błędna liczba ekstentów %d dla i-węzła %lld\n" ++msgid "Enabling lazy-counters\n" ++msgstr "Włączanie leniwych liczników\n" + +-#: .././db/check.c:2660 ++#: .././repair/phase1.c:128 + #, c-format +-msgid "bad magic number %#x for inode %lld\n" +-msgstr "błędna liczba magiczna %#x dla i-węzła %lld\n" ++msgid "Disabling lazy-counters\n" ++msgstr "Wyłączanie leniwych liczników\n" + +-#: .././db/check.c:2667 ++#: .././repair/phase1.c:131 + #, c-format +-msgid "bad version number %#x for inode %lld\n" +-msgstr "błędny numer wersji %#x dla i-węzła %lld\n" ++msgid "Lazy-counters are already %s\n" ++msgstr "Leniwe liczniki już są %s\n" + +-#: .././db/check.c:2675 +-#, c-format +-msgid "bad nblocks %lld for free inode %lld\n" +-msgstr "błędna liczba bloków %lld dla wolnego i-węzła %lld\n" ++#: .././repair/phase1.c:132 ++msgid "enabled" ++msgstr "włączone" + +-#: .././db/check.c:2686 +-#, c-format +-msgid "bad nlink %d for free inode %lld\n" +-msgstr "błądna liczba dowiązań %d dla wolnego i-węzła %lld\n" ++#: .././repair/phase1.c:132 ++msgid "disabled" ++msgstr "wyłączone" + +-#: .././db/check.c:2692 +-#, c-format +-msgid "bad mode %#o for free inode %lld\n" +-msgstr "błędne uprawnienia %#o dla wolnego i-węzła %lld\n" ++#: .././repair/phase1.c:139 ++msgid "writing modified primary superblock\n" ++msgstr "zapisano zmodyfikowany główny superblok\n" + +-#: .././db/check.c:2701 +-#, c-format +-msgid "bad next unlinked %#x for inode %lld\n" +-msgstr "błędny następny niedowiązany %#x dla i-węzła %lld\n" ++#: .././repair/phase1.c:142 ++msgid "would write modified primary superblock\n" ++msgstr "zmodyfikowany główny superblok zostałby zapisany\n" + +-#: .././db/check.c:2711 ++#: .././repair/phase2.c:69 + #, c-format +-msgid "bad format %d for inode %lld type %#o\n" +-msgstr "błędny format %d dla i-węzła %lld typu %#o\n" ++msgid "zero_log: cannot find log head/tail (xlog_find_tail=%d), zeroing it anyway\n" ++msgstr "zero_log: nie znaleziono początku/końca logu (xlog_find_tail=%d), wyzerowano go\n" + +-#: .././db/check.c:2718 ++#: .././repair/phase2.c:75 + #, c-format +-msgid "bad fork offset %d for inode %lld\n" +-msgstr "błędny offset odgałęzienia %d dla i-węzła %lld\n" ++msgid "zero_log: head block % tail block %\n" ++msgstr "zero_log: blok początku % blok końca %\n" + +-#: .././db/check.c:2725 +-#, c-format +-msgid "bad attribute format %d for inode %lld\n" +-msgstr "błędny format atrybutu %d dla i-węzła %lld\n" ++#: .././repair/phase2.c:81 ++msgid "" ++"ALERT: The filesystem has valuable metadata changes in a log which is being\n" ++"destroyed because the -L option was used.\n" ++msgstr "" ++"UWAGA: system plików zawiera wartościowe zmiany metadanych w logu, który jest\n" ++"niszczony, ponieważ użyto opcji -L.\n" + +-#: .././db/check.c:2731 +-#, c-format +-msgid "inode %lld mode %#o fmt %s afmt %s nex %d anex %d nblk %lld sz %lld%s%s%s%s%s%s%s\n" +-msgstr "i-węzeł %lld mode %#o fmt %s afmt %s nex %d anex %d nblk %lld sz %lld%s%s%s%s%s%s%s\n" ++#: .././repair/phase2.c:85 ++msgid "" ++"ERROR: The filesystem has valuable metadata changes in a log which needs to\n" ++"be replayed. Mount the filesystem to replay the log, and unmount it before\n" ++"re-running xfs_repair. If you are unable to mount the filesystem, then use\n" ++"the -L option to destroy the log and attempt a repair.\n" ++"Note that destroying the log may cause corruption -- please attempt a mount\n" ++"of the filesystem before doing this.\n" ++msgstr "" ++"BŁĄD: system plików zawiera wartościowe zmiany metadanych w logu, który\n" ++"musi być odtworzony. Należy podmontować system plików, aby odtworzyć log,\n" ++"a następnie odmontować go przed ponownym uruchomieniem xfs_repair. Jeśli\n" ++"systemu plików nie da się podmontować, można użyć opcji -L, aby zniszczyć\n" ++"log i spróbować naprawić system plików.\n" ++"Należy zauważyć, że zniszczenie logu może spowodować uszkodzenia danych -\n" ++"proszę najpierw spróbować podmontować system plików.\n" + +-#: .././db/check.c:2851 +-#, c-format +-msgid "bad nblocks %lld for inode %lld, counted %lld\n" +-msgstr "błędna liczba bloków %lld dla i-węzła %lld, naliczono %lld\n" ++#: .././repair/phase2.c:127 ++msgid "This filesystem has an external log. Specify log device with the -l option.\n" ++msgstr "Ten system plików ma zewnętrzny log. Należy podać urządzenie logu przy użyciu opcji -l.\n" + +-#: .././db/check.c:2858 ++#: .././repair/phase2.c:130 + #, c-format +-msgid "bad nextents %d for inode %lld, counted %d\n" +-msgstr "błędna liczba ekstentów %d dla i-węzła %lld, naliczono %d\n" ++msgid "Phase 2 - using external log on %s\n" ++msgstr "Faza 2 - użycie zewnętrznego logu na %s\n" + +-#: .././db/check.c:2864 +-#, c-format +-msgid "bad anextents %d for inode %lld, counted %d\n" +-msgstr "błędne anextents %d dla i-węzła %lld, naliczono %d\n" ++#: .././repair/phase2.c:132 ++msgid "Phase 2 - using internal log\n" ++msgstr "Faza 2 - użycie wewnętrznego logu\n" + +-#: .././db/check.c:2916 +-#, c-format +-msgid "local inode %lld data is too large (size %lld)\n" +-msgstr "dane lokalnego i-węzła %lld zbyt duże (rozmiar %lld)\n" ++#: .././repair/phase2.c:136 ++msgid " - zero log...\n" ++msgstr " - zerowanie logu...\n" + +-#: .././db/check.c:2925 +-#, c-format +-msgid "local inode %lld attr is too large (size %d)\n" +-msgstr "atrybuty lokalnego i-węzła %lld zbyt duże (rozmiar %d)\n" ++#: .././repair/phase2.c:140 ++msgid " - scan filesystem freespace and inode maps...\n" ++msgstr " - przeszukiwanie wolnego miejsca i map i-węzłów w systemie plików...\n" + +-#: .././db/check.c:2990 +-#, c-format +-msgid "bad directory leaf magic # %#x for dir ino %lld\n" +-msgstr "błędna liczba magiczna liścia katalogu %#x dla i-węzła katalogu %lld\n" ++#: .././repair/phase2.c:156 ++msgid "root inode chunk not found\n" ++msgstr "nie znaleziono danych głównego i-węzła\n" + +-#: .././db/check.c:3003 .././db/check.c:3768 +-#, c-format +-msgid "dir %lld entry %*.*s %lld\n" +-msgstr "katalog %lld wpis %*.*s %lld\n" ++#: .././repair/phase2.c:175 ++msgid " - found root inode chunk\n" ++msgstr " - znaleziono dane głównego i-węzła\n" + +-#: .././db/check.c:3010 .././db/check.c:3664 .././db/check.c:3756 +-#, c-format +-msgid "dir %lld entry %*.*s bad inode number %lld\n" +-msgstr "katalog %lld wpis %*.*s: błędny numer i-węzła %lld\n" ++#: .././repair/phase2.c:181 ++msgid "root inode marked free, " ++msgstr "główny i-węzeł oznaczony jako wolny, " + +-#: .././db/check.c:3089 .././db/check.c:3358 +-#, c-format +-msgid "dir inode %lld block %u=%llu\n" +-msgstr "i-węzeł katalogu %lld, blok %u=%llu\n" ++#: .././repair/phase2.c:190 ++msgid "realtime bitmap inode marked free, " ++msgstr "i-węzeł bitmapy realtime oznaczony jako wolny, " + +-#: .././db/check.c:3101 .././db/check.c:3368 +-#, c-format +-msgid "can't read block %u for directory inode %lld\n" +-msgstr "nie można odczytać bloku %u dla i-węzła katalogu %lld\n" ++#: .././repair/phase2.c:199 ++msgid "realtime summary inode marked free, " ++msgstr "i-węzeł opisu realtime oznaczony jako wolny, " + +-#: .././db/check.c:3115 .././db/check.c:3381 ++#: .././repair/phase3.c:45 + #, c-format +-msgid "multiple .. entries in dir %lld\n" +-msgstr "wiele wpisów .. w katalogu %lld\n" ++msgid "cannot read agi block % for ag %u\n" ++msgstr "nie można odczytać bloku agi % dla ag %u\n" + +-#: .././db/check.c:3137 ++#: .././repair/phase3.c:76 .././repair/phase4.c:139 .././repair/phase5.c:1485 ++#: .././repair/phase6.c:3051 + #, c-format +-msgid "missing free index for data block %d in dir ino %lld\n" +-msgstr "brak indeksu wolnego miejsca dla bloku danych %d w i-węźle katalogu %lld\n" ++msgid " - agno = %d\n" ++msgstr " - agno = %d\n" + +-#: .././db/check.c:3163 +-#, c-format +-msgid "bad free block magic # %#x for dir ino %lld block %d\n" +-msgstr "błędna liczba magiczna wolnego bloku %#x dla i-węzła katalogu %lld, blok %d\n" ++#: .././repair/phase3.c:93 ++msgid "Phase 3 - for each AG...\n" ++msgstr "Faza 3 - dla każdej AG...\n" + +-#: .././db/check.c:3173 +-#, c-format +-msgid "bad free block firstdb %d for dir ino %lld block %d\n" +-msgstr "błędne firstdb wolnego bloku %d dla i-węzła katalogu %lld, blok %d\n" ++#: .././repair/phase3.c:95 ++msgid " - scan and clear agi unlinked lists...\n" ++msgstr " - przeszukiwanie i czyszczenie odłączonych list agi...\n" + +-#: .././db/check.c:3186 +-#, c-format +-msgid "bad free block nvalid/nused %d/%d for dir ino %lld block %d\n" +-msgstr "błędne liczby nvalid/nused (%d/%d) wolnych bloków w i-węźle katalogu %lld, blok %d\n" ++#: .././repair/phase3.c:97 ++msgid " - scan (but don't clear) agi unlinked lists...\n" ++msgstr " - przeszukiwanie (ale nie czyszczenie) odłączonych list agi...\n" + +-#: .././db/check.c:3200 +-#, c-format +-msgid "bad free block ent %d is %d should be %d for dir ino %lld block %d\n" +-msgstr "błędna liczba ent %d (równa %d, powinna być %d) wolnego bloku w i-węźle katalogu %lld, blok %d\n" ++#: .././repair/phase3.c:117 ++msgid " - process known inodes and perform inode discovery...\n" ++msgstr " - przetwarzanie znanych i-węzłów i rozpoznawanie i-węzłów...\n" + +-#: .././db/check.c:3214 +-#, c-format +-msgid "bad free block nused %d should be %d for dir ino %lld block %d\n" +-msgstr "błędna liczba nused (%d, powinna być %d) wolnego bloku w i-węźle katalogu %lld, blok %d\n" ++#: .././repair/phase3.c:128 ++msgid " - process newly discovered inodes...\n" ++msgstr " - przetwarzanie nowo rozpoznanych i-węzłów...\n" + +-#: .././db/check.c:3243 +-#, c-format +-msgid "bad leaf block forw/back pointers %d/%d for dir ino %lld block %d\n" +-msgstr "błędne wskaźniki przód/tył (%d/%d) bloku liścia w i-węźle katalogu %lld, blok %d\n" ++#: .././repair/phase4.c:174 ++msgid "Phase 4 - check for duplicate blocks...\n" ++msgstr "Faza 4 - sprawdzanie powtórzonych bloków...\n" + +-#: .././db/check.c:3252 +-#, c-format +-msgid "single leaf block for dir ino %lld block %d should be at block %d\n" +-msgstr "blok pojedynczego liścia dla i-węzłu katalogu %lld, blok %d powinien być w bloku %d\n" ++#: .././repair/phase4.c:175 ++msgid " - setting up duplicate extent list...\n" ++msgstr " - tworzenie listy powtórzonych ekstentów...\n" + +-#: .././db/check.c:3264 +-#, c-format +-msgid "bestfree %d for dir ino %lld block %d doesn't match table value %d\n" +-msgstr "bestfree %d dla i-węzła katalogu %lld, blok %d nie zgadza się z wartością w tablicy %d\n" ++#: .././repair/phase4.c:189 ++msgid "root inode would be lost\n" ++msgstr "główny i-węzeł zostałby utracony\n" + +-#: .././db/check.c:3288 +-#, c-format +-msgid "bad node block level %d for dir ino %lld block %d\n" +-msgstr "błędny poziom bloku węzła %d dla i-węzła katalogu %lld, blok %d\n" ++#: .././repair/phase4.c:191 ++msgid "root inode lost\n" ++msgstr "główny i-węzeł utracony\n" + +-#: .././db/check.c:3320 ++#: .././repair/phase4.c:208 + #, c-format +-msgid "dir %lld block %d stale mismatch %d/%d\n" +-msgstr "katalog %lld, blok %d: niezgodność liczby stale %d/%d\n" ++msgid "unknown block state, ag %d, block %d\n" ++msgstr "nieznany stan bloku, ag %d, blok %d\n" + +-#: .././db/check.c:3352 ++#: .././repair/phase4.c:241 + #, c-format +-msgid "can't read root block for directory inode %lld\n" +-msgstr "nie można odczytać głównego bloku dla i-węzła katalogu %lld\n" ++msgid "unknown rt extent state, extent %\n" ++msgstr "nieznany stan ekstentu rt, ekstent %\n" + +-#: .././db/check.c:3441 +-#, c-format +-msgid "can't read block %lld for %s quota inode (fsblock %lld)\n" +-msgstr "nie można odczytać bloku %lld i-węzła limitów %s (blok fs %lld)\n" ++#: .././repair/phase4.c:290 ++msgid " - check for inodes claiming duplicate blocks...\n" ++msgstr " - szukanie i-węzłów odwołujących się do powtórzonych bloków...\n" + +-#: .././db/check.c:3451 +-#, c-format +-msgid "%s dqblk %lld entry %d id %u bc %lld ic %lld rc %lld\n" +-msgstr "%s dqblk %lld wpis %d id %u bc %lld ic %lld rc %lld\n" ++#: .././repair/phase5.c:210 ++msgid "could not set up btree block array\n" ++msgstr "nie udało się utworzyć tablicy bloków b-drzewa\n" + +-#: .././db/check.c:3459 +-#, c-format +-msgid "bad magic number %#x for %s dqblk %lld entry %d id %u\n" +-msgstr "błędna liczba magiczna %#x dla dqblk %s %lld, wpis %d, id %u\n" ++#: .././repair/phase5.c:222 ++msgid "error - not enough free space in filesystem\n" ++msgstr "błąd - za mało wolnego miejsca w systemie plików\n" + +-#: .././db/check.c:3468 ++#: .././repair/phase5.c:436 + #, c-format +-msgid "bad version number %#x for %s dqblk %lld entry %d id %u\n" +-msgstr "błędny numer wersji %#x dla dqblk %s %lld, wpis %d, id %u\n" ++msgid "can't rebuild fs trees -- not enough free space on ag %u\n" ++msgstr "nie można przebudować drzew systemu plików - za mało wolnego miejsca w ag %u\n" + +-#: .././db/check.c:3478 ++#: .././repair/phase5.c:459 + #, c-format +-msgid "bad flags %#x for %s dqblk %lld entry %d id %u\n" +-msgstr "błędne flagi %#x dla dqblk %s %lld, wpis %d, id %u\n" ++msgid "ag %u - not enough free space to build freespace btrees\n" ++msgstr "ag %u - za mało wolnego miejsca na przebudowanie b-drzew wolnego miejsca\n" + +-#: .././db/check.c:3487 ++#: .././repair/phase5.c:494 + #, c-format +-msgid "bad id %u for %s dqblk %lld entry %d id %u\n" +-msgstr "błędne id %u dla dqblk %s %lld, wpis %d, id %u\n" ++msgid "not enough free blocks left to describe all free blocks in AG %u\n" ++msgstr "za mało wolnych bloków na opisanie wszystkich wolnych bloków w AG %u\n" + +-#: .././db/check.c:3533 ++#: .././repair/phase5.c:1364 + #, c-format +-msgid "block %lld for rtbitmap inode is missing\n" +-msgstr "brak bloku %lld dla i-węzła rtbitmapy\n" ++msgid "lost %d blocks in ag %u\n" ++msgstr "utracono %d bloków w ag %u\n" + +-#: .././db/check.c:3544 ++#: .././repair/phase5.c:1367 + #, c-format +-msgid "can't read block %lld for rtbitmap inode\n" +-msgstr "nie można odczytać bloku %lld dla i-węzła rtbitmapy\n" ++msgid "thought we were going to lose %d blocks in ag %u, actually lost %d\n" ++msgstr "przewidywano utracenie %d bloków w ag %u, a utracono %d\n" + +-#: .././db/check.c:3600 +-#, c-format +-msgid "block %lld for rtsummary inode is missing\n" +-msgstr "brak bloku %lld dla i-węzła rtsummary\n" ++#: .././repair/phase5.c:1436 .././repair/xfs_repair.c:887 ++msgid "couldn't get superblock\n" ++msgstr "nie udało się pobrać superbloku\n" + +-#: .././db/check.c:3611 ++#: .././repair/phase5.c:1508 + #, c-format +-msgid "can't read block %lld for rtsummary inode\n" +-msgstr "nie można odczytać bloku %lld dla i-węzła rtsummary\n" ++msgid "unable to rebuild AG %u. Not enough free space in on-disk AG.\n" ++msgstr "nie udało się przebudować AG %u. Za mało wolnego miejsca w AG na dysku.\n" + +-#: .././db/check.c:3644 .././db/check.c:3748 ++#: .././repair/phase5.c:1543 + #, c-format +-msgid "dir %lld entry . %lld\n" +-msgstr "katalog %lld, wpis . %lld\n" ++msgid "unable to rebuild AG %u. No free space.\n" ++msgstr "nie udało się przebudować AG %u. Brak wolnego miejsca.\n" + +-#: .././db/check.c:3652 ++#: .././repair/phase5.c:1570 + #, c-format +-msgid "dir %llu bad size in entry at %d\n" +-msgstr "katalog %llu: błędny rozmiar we wpisie przy %d\n" ++msgid "lost %d blocks in agno %d, sorry.\n" ++msgstr "niestety utracono %d bloków w agno %d.\n" + +-#: .././db/check.c:3676 +-#, c-format +-msgid "dir %lld entry %*.*s offset %d %lld\n" +-msgstr "katalog %lld wpis %*.*s offset %d %lld\n" ++#: .././repair/phase5.c:1639 ++msgid "Phase 5 - rebuild AG headers and trees...\n" ++msgstr "Faza 5 - przebudowywanie nagłówków i drzew AG...\n" + +-#: .././db/check.c:3681 +-#, c-format +-msgid "dir %lld entry %*.*s bad offset %d\n" +-msgstr "katalog %lld wpis %*.*s błędny offset %d\n" ++#: .././repair/phase5.c:1669 ++msgid "cannot alloc sb_icount_ag buffers\n" ++msgstr "nie można przydzielić buforów sb_icount_ag\n" + +-#: .././db/check.c:3694 +-#, c-format +-msgid "dir %llu size is %lld, should be %u\n" +-msgstr "katalog %llu: rozmiar %lld, powinien być %u\n" ++#: .././repair/phase5.c:1673 ++msgid "cannot alloc sb_ifree_ag buffers\n" ++msgstr "nie można przydzielić buforów sb_ifree_ag\n" + +-#: .././db/check.c:3702 +-#, c-format +-msgid "dir %llu offsets too high\n" +-msgstr "katalog %llu: offsety zbyt duże\n" ++#: .././repair/phase5.c:1677 ++msgid "cannot alloc sb_fdblocks_ag buffers\n" ++msgstr "nie można przydzielić buforów sb_fdblocks_ag\n" + +-#: .././db/check.c:3713 .././db/check.c:3782 +-#, c-format +-msgid "dir %lld entry .. bad inode number %lld\n" +-msgstr "katalog %lld wpis .. - błędny numer i-węzła %lld\n" ++#: .././repair/phase5.c:1696 ++msgid " - generate realtime summary info and bitmap...\n" ++msgstr " - generowanie opisu i bitmapy realtime...\n" + +-#: .././db/check.c:3718 .././db/check.c:3787 +-#, c-format +-msgid "dir %lld entry .. %lld\n" +-msgstr "katalog %lld wpis .. %lld\n" ++#: .././repair/phase5.c:1701 ++msgid " - reset superblock...\n" ++msgstr " - przestawianie superbloku...\n" + +-#: .././db/check.c:3721 ++#: .././repair/phase6.c:64 + #, c-format +-msgid "dir %lld i8count mismatch is %d should be %d\n" +-msgstr "katalog %lld: niezgodność i8count: jest %d, powinno być %d\n" ++msgid "malloc failed add_dotdot_update (%zu bytes)\n" ++msgstr "malloc nie powiodło się w add_dotdot_update (%zu bajtów)\n" + +-#: .././db/check.c:3773 ++#: .././repair/phase6.c:216 + #, c-format +-msgid "dir %llu size is %lld, should be %d\n" +-msgstr "katalog %llu: rozmiar wynosi %lld, powinien być %d\n" ++msgid "malloc failed in dir_hash_add (%zu bytes)\n" ++msgstr "malloc nie powiodło się w dir_hash_add (%zu bajtów)\n" + +-#: .././db/check.c:3864 +-#, c-format +-msgid "%s quota id %u, have/exp" +-msgstr "limit %s id %u: jest/exp" ++#: .././repair/phase6.c:270 ++msgid "ok" ++msgstr "ok" + +-#: .././db/check.c:3867 +-#, c-format +-msgid " bc %lld/%lld" +-msgstr " bc %lld/%lld" ++#: .././repair/phase6.c:271 ++msgid "duplicate leaf" ++msgstr "powtórzony liść" + +-#: .././db/check.c:3871 +-#, c-format +-msgid " ic %lld/%lld" +-msgstr " ic %lld/%lld" ++#: .././repair/phase6.c:272 ++msgid "hash value mismatch" ++msgstr "niezgodność wartości hasza" + +-#: .././db/check.c:3875 +-#, c-format +-msgid " rc %lld/%lld" +-msgstr " rc %lld/%lld" ++#: .././repair/phase6.c:273 ++msgid "no data entry" ++msgstr "brak wpisu danych" + +-#: .././db/check.c:3931 +-#, c-format +-msgid "can't read superblock for ag %u\n" +-msgstr "nie można odczytać superbloku dla ag %u\n" ++#: .././repair/phase6.c:274 ++msgid "no leaf entry" ++msgstr "brak wpisu liścia" + +-#: .././db/check.c:3940 +-#, c-format +-msgid "bad sb magic # %#x in ag %u\n" +-msgstr "błędna liczba magiczna %#x superbloku w ag %u\n" ++#: .././repair/phase6.c:275 ++msgid "bad stale count" ++msgstr "błędna liczba stale" + +-#: .././db/check.c:3946 ++#: .././repair/phase6.c:283 + #, c-format +-msgid "bad sb version # %#x in ag %u\n" +-msgstr "błędny numer wersji %#x superbloku w ag %u\n" ++msgid "bad hash table for directory inode % (%s): " ++msgstr "błędna tablica haszująca dla i-węzła katalogu % (%s): " + +-#: .././db/check.c:3956 .././db/sb.c:201 +-msgid "mkfs not completed successfully\n" +-msgstr "mkfs nie zakończony pomyślnie\n" ++#: .././repair/phase6.c:286 ++msgid "rebuilding\n" ++msgstr "przebudowano\n" + +-#: .././db/check.c:3968 .././db/frag.c:365 +-#, c-format +-msgid "can't read agf block for ag %u\n" +-msgstr "nie można odczytać bloku agf dla ag %u\n" ++#: .././repair/phase6.c:288 ++msgid "would rebuild\n" ++msgstr "zostałaby przebudowana\n" + +-#: .././db/check.c:3974 +-#, c-format +-msgid "bad agf magic # %#x in ag %u\n" +-msgstr "błędna liczba magiczna agf %#x w ag %u\n" ++#: .././repair/phase6.c:324 ++msgid "calloc failed in dir_hash_init\n" ++msgstr "calloc nie powiodło się w dir_hash_init\n" + +-#: .././db/check.c:3980 +-#, c-format +-msgid "bad agf version # %#x in ag %u\n" +-msgstr "błędny numer wersji agf %#x w ag %u\n" ++#: .././repair/phase6.c:471 ++msgid "ran out of disk space!\n" ++msgstr "brak miejsca na dysku!\n" + +-#: .././db/check.c:3996 .././db/frag.c:374 ++#: .././repair/phase6.c:473 + #, c-format +-msgid "can't read agi block for ag %u\n" +-msgstr "nie można odczytać bloku agi w ag %u\n" ++msgid "xfs_trans_reserve returned %d\n" ++msgstr "xfs_trans_reserve zwróciło %d\n" + +-#: .././db/check.c:4002 ++#: .././repair/phase6.c:506 .././repair/phase6.c:616 + #, c-format +-msgid "bad agi magic # %#x in ag %u\n" +-msgstr "błędna liczba magiczna agi %#x w ag %u\n" ++msgid "couldn't iget realtime bitmap inode -- error - %d\n" ++msgstr "nie udało się wykonać iget dla i-węzła bitmapy realtime - błąd %d\n" + +-#: .././db/check.c:4008 ++#: .././repair/phase6.c:571 + #, c-format +-msgid "bad agi version # %#x in ag %u\n" +-msgstr "błędny numer wersji agi # %#x w ag %u\n" ++msgid "couldn't allocate realtime bitmap, error = %d\n" ++msgstr "nie udało się przydzielić bitmapy realtime, błąd = %d\n" + +-#: .././db/check.c:4048 ++#: .././repair/phase6.c:584 + #, c-format +-msgid "agf_btreeblks %u, counted %u in ag %u\n" +-msgstr "agf_btreeblks %u, naliczono %u w ag %u\n" ++msgid "allocation of the realtime bitmap failed, error = %d\n" ++msgstr "przydzielenie bitmapy realtime nie powiodło się, błąd = %d\n" + +-#: .././db/check.c:4072 ++#: .././repair/phase6.c:630 + #, c-format +-msgid "agi unlinked bucket %d is %u in ag %u (inode=%lld)\n" +-msgstr "agi unlinked bucket %d is %u in ag %u (inode=%lld)\n" ++msgid "couldn't map realtime bitmap block %, error = %d\n" ++msgstr "nie udało się odwzorować bloku bitmapy realtime %, błąd = %d\n" + +-#: .././db/check.c:4109 ++#: .././repair/phase6.c:643 + #, c-format +-msgid "can't read agfl block for ag %u\n" +-msgstr "nie można odczytać bloku agfl dla ag %u\n" ++msgid "can't access block % (fsbno %) of realtime bitmap inode %\n" ++msgstr "brak dostępu do bloku % (fsbno %) i-węzła bitmapy realtime %\n" + +-#: .././db/check.c:4128 ++#: .././repair/phase6.c:688 .././repair/phase6.c:763 + #, c-format +-msgid "freeblk count %u != flcount %u in ag %u\n" +-msgstr "liczba freeblk %u != flcount %u w ag %u\n" ++msgid "couldn't iget realtime summary inode -- error - %d\n" ++msgstr "nie udało się wykonać iget dla i-węzła opisu realtime - błąd %d\n" + +-#: .././db/check.c:4157 .././db/check.c:4185 .././db/frag.c:397 +-#: .././db/frag.c:420 .././db/freesp.c:270 ++#: .././repair/phase6.c:702 + #, c-format +-msgid "can't read btree block %u/%u\n" +-msgstr "nie można odczytać bloku b-drzewa %u/%u\n" ++msgid "couldn't map realtime summary inode block %, error = %d\n" ++msgstr "nie udało się odwzorować bloku i-węzła opisu realtime %, błąd = %d\n" + +-#: .././db/check.c:4218 ++#: .././repair/phase6.c:715 + #, c-format +-msgid "bad magic # %#x in inode %lld bmbt block %u/%u\n" +-msgstr "błędna liczba magiczna %#x w i-węźle %lld, blok bmbt %u/%u\n" ++msgid "can't access block % (fsbno %) of realtime summary inode %\n" ++msgstr "brak dostępu do bloku % (fsbno %) i-węzła opisu realtime %\n" + +-#: .././db/check.c:4225 ++#: .././repair/phase6.c:833 + #, c-format +-msgid "expected level %d got %d in inode %lld bmbt block %u/%u\n" +-msgstr "oczekiwano poziomu %d, a uzyskano %d w i-węźle %lld, blok bmbt %u/%u\n" ++msgid "couldn't allocate realtime summary inode, error = %d\n" ++msgstr "nie udało się przydzielić i-węzła opisu realtime, błąd = %d\n" + +-#: .././db/check.c:4237 .././db/check.c:4254 ++#: .././repair/phase6.c:846 + #, c-format +-msgid "bad btree nrecs (%u, min=%u, max=%u) in inode %lld bmap block %lld\n" +-msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w i-węźle %lld, blok bitmapy %lld\n" ++msgid "allocation of the realtime summary ino failed, error = %d\n" ++msgstr "przydzielenie i-węzła opisu realtime nie powiodło się, błąd = %d\n" + +-#: .././db/check.c:4282 ++#: .././repair/phase6.c:878 + #, c-format +-msgid "bad magic # %#x in btbno block %u/%u\n" +-msgstr "błędna liczba magiczna %#x w bloku btbno %u/%u\n" ++msgid "could not iget root inode -- error - %d\n" ++msgstr "nie udało się wykonać iget dla głównego i-węzła - błąd %d\n" + +-#: .././db/check.c:4291 ++#: .././repair/phase6.c:960 + #, c-format +-msgid "expected level %d got %d in btbno block %u/%u\n" +-msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku btbno %u/%u\n" ++msgid "%d - couldn't iget root inode to obtain %s\n" ++msgstr "%d - nie udało się wykonać iget dla głównego węzła, aby uzyskać %s\n" + +-#: .././db/check.c:4300 .././db/check.c:4328 .././db/check.c:4373 +-#: .././db/check.c:4404 ++#: .././repair/phase6.c:993 + #, c-format +-msgid "bad btree nrecs (%u, min=%u, max=%u) in btbno block %u/%u\n" +-msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w bloku btbno %u/%u\n" ++msgid "%s inode allocation failed %d\n" ++msgstr "przydzielenie i-węzłą %s nie powiodło się - %d\n" + +-#: .././db/check.c:4355 ++#: .././repair/phase6.c:1040 + #, c-format +-msgid "bad magic # %#x in btcnt block %u/%u\n" +-msgstr "błędna liczba magiczna %#x w bloku btcbt %u/%u\n" ++msgid "can't make %s, createname error %d\n" ++msgstr "nie można zrobić %s, błąd createname %d\n" + +-#: .././db/check.c:4364 ++#: .././repair/phase6.c:1060 + #, c-format +-msgid "expected level %d got %d in btcnt block %u/%u\n" +-msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku btcnt %u/%u\n" ++msgid "%s directory creation failed -- bmapf error %d\n" ++msgstr "tworzenie katalogu %s nie powiodło się - błąd bmapf %d\n" + +-#: .././db/check.c:4435 ++#: .././repair/phase6.c:1105 + #, c-format +-msgid "bad magic # %#x in inobt block %u/%u\n" +-msgstr "błędna liczba magiczna %#x w bloku inobt %u/%u\n" ++msgid "%d - couldn't iget orphanage inode\n" ++msgstr "%d - nie udało się wykonać iget dla i-węzła sierocińca\n" + +-#: .././db/check.c:4442 ++#: .././repair/phase6.c:1118 + #, c-format +-msgid "expected level %d got %d in inobt block %u/%u\n" +-msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku inobt %u/%u\n" ++msgid "%d - couldn't iget disconnected inode\n" ++msgstr "%d - nie udało się wykonać iget dla odłączonego i-węzła\n" + +-#: .././db/check.c:4451 .././db/check.c:4517 ++#: .././repair/phase6.c:1137 .././repair/phase6.c:1180 ++#: .././repair/phase6.c:1237 + #, c-format +-msgid "bad btree nrecs (%u, min=%u, max=%u) in inobt block %u/%u\n" +-msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w bloku inobt %u/%u\n" ++msgid "space reservation failed (%d), filesystem may be out of space\n" ++msgstr "nie udało się zarezerwować miejsca (%d), może brakować miejsca w systemie plików\n" + +-#: .././db/check.c:4486 .././db/frag.c:489 ++#: .././repair/phase6.c:1148 .././repair/phase6.c:1192 ++#: .././repair/phase6.c:1248 + #, c-format +-msgid "can't read inode block %u/%u\n" +-msgstr "nie można odczytać bloku i-węzła %u/%u\n" ++msgid "name create failed in %s (%d), filesystem may be out of space\n" ++msgstr "tworzenie nazwy nie powiodło się w %s (%d), może brakować miejsca w systemie plików\n" + +-#: .././db/check.c:4504 ++#: .././repair/phase6.c:1161 + #, c-format +-msgid "ir_freecount/free mismatch, inode chunk %u/%u, freecount %d nfree %d\n" +-msgstr "niezgodność ir_freecount/free, porcja i-węzłów %u/%u, freecount %d nfree %d\n" ++msgid "creation of .. entry failed (%d), filesystem may be out of space\n" ++msgstr "tworzenie wpisu .. nie powiodło się (%d), może brakować miejsca w systemie plików\n" + +-#: .././db/check.c:4559 ++#: .././repair/phase6.c:1170 + #, c-format +-msgid "setting inode to %lld for block %u/%u\n" +-msgstr "ustawianie i-węzła na %lld dla bloku %u/%u\n" ++msgid "bmap finish failed (err - %d), filesystem may be out of space\n" ++msgstr "zakończenie bmap nie powiodło się (błąd %d), może brakować miejsca w systemie plików\n" + +-#: .././db/check.c:4591 ++#: .././repair/phase6.c:1211 + #, c-format +-msgid "setting inode to %lld for rtblock %llu\n" +-msgstr "ustawianie i-węzła na %lld dla rtbloku %llu\n" ++msgid "name replace op failed (%d), filesystem may be out of space\n" ++msgstr "operacja zastąpienia nazwy nie powiodła się (%d), może brakować miejsca w systemie plików\n" + +-#: .././db/check.c:4607 ++#: .././repair/phase6.c:1218 .././repair/phase6.c:1258 ++#: .././repair/phase6.c:1388 + #, c-format +-msgid "inode %lld nlink %u %s dir\n" +-msgstr "i-węzeł %lld nlink %u katalog %s\n" +- +-#: .././db/attrset.c:38 +-msgid "[-r|-s|-p|-u] [-n] [-R|-C] [-v n] name" +-msgstr "[-r|-s|-p|-u] [-n] [-R|-C] [-v n] nazwa" +- +-#: .././db/attrset.c:39 +-msgid "set the named attribute on the current inode" +-msgstr "ustawienie atrybutu o podanej nazwie w bieżącym i-węźle" +- +-#: .././db/attrset.c:42 +-msgid "[-r|-s|-p|-u] [-n] name" +-msgstr "[-r|-s|-p|-u] [-n] nazwa" ++msgid "bmap finish failed (%d), filesystem may be out of space\n" ++msgstr "zakończenie bmap nie powiodło się (%d), może brakować miejsca w systemie plików\n" + +-#: .././db/attrset.c:43 +-msgid "remove the named attribute from the current inode" +-msgstr "usunięcie atrybutu o podanej nazwie z bieżącego i-węzła" ++#: .././repair/phase6.c:1275 ++msgid ", marking entry to be junked\n" ++msgstr ", zaznaczono wpis do wyrzucenia\n" + +-#: .././db/attrset.c:49 +-msgid "" +-"\n" +-" The 'attr_set' and 'attr_remove' commands provide interfaces for debugging\n" +-" the extended attribute allocation and removal code.\n" +-" Both commands require an attribute name to be specified, and the attr_set\n" +-" command allows an optional value length (-v) to be provided as well.\n" +-" There are 4 namespace flags:\n" +-" -r -- 'root'\n" +-" -u -- 'user'\t\t(default)\n" +-" -s -- 'secure'\n" +-"\n" +-" For attr_set, these options further define the type of set operation:\n" +-" -C -- 'create' - create attribute, fail if it already exists\n" +-" -R -- 'replace' - replace attribute, fail if it does not exist\n" +-" The backward compatibility mode 'noattr2' can be emulated (-n) also.\n" +-"\n" +-msgstr "" +-"\n" +-" Polecenia 'attr_set' i 'attr_remove' udostępniają interfejsy do diagnostyki\n" +-" kodu przydzielania i usuwania rozszerzonych atrybutów.\n" +-" Oba polecenia wymagają podania nazwy atrybutu, a polecenie attr_set\n" +-" pozwala dodatkowo podać opcjonalną długość wartości (-v).\n" +-" Są 4 flagi przestrzeni nazw:\n" +-" -r - 'root'\n" +-" -u - 'user' (domyślna)\n" +-" -s - 'secure'\n" +-"\n" +-" Dla attr_set poniższe opcje określają rodzaj operacji ustawiania:\n" +-" -C - 'create' - utworzenie atrybutu; nie powiedzie się, jeśli już istnieje\n" +-" -R - 'replace' - zastąpienie atrybutu; nie powiedzie się, jeśli nie istnieje\n" +-" Możliwa jest także emulacja trybu kompatybilności wstecznej 'noattr2' (-n).\n" +-"\n" ++#: .././repair/phase6.c:1279 ++msgid ", would junk entry\n" ++msgstr ", wpis zostałby wyrzucony\n" + +-#: .././db/attrset.c:86 .././db/attrset.c:189 .././db/addr.c:72 +-#: .././db/print.c:74 .././db/type.c:102 .././db/write.c:101 +-msgid "no current type\n" +-msgstr "brak bieżącego typu\n" ++#: .././repair/phase6.c:1313 ++#, c-format ++msgid "rebuilding directory inode %\n" ++msgstr "przebudowywanie i-węzła katalogu %\n" + +-#: .././db/attrset.c:90 .././db/attrset.c:193 +-msgid "current type is not inode\n" +-msgstr "bieżący typ nie jest i-węzłem\n" ++#: .././repair/phase6.c:1337 ++#, c-format ++msgid "xfs_bmap_last_offset failed -- error - %d\n" ++msgstr "xfs_bmap_last_offset nie powiodło się - błąd %d\n" + +-#: .././db/attrset.c:125 ++#: .././repair/phase6.c:1344 + #, c-format +-msgid "bad attr_set valuelen %s\n" +-msgstr "błędna długość wartości %s dla attr_set\n" ++msgid "xfs_bunmapi failed -- error - %d\n" ++msgstr "xfs_bunmapi nie powiodło się - błąd %d\n" + +-#: .././db/attrset.c:131 +-msgid "bad option for attr_set command\n" +-msgstr "błędna opcja dla polecenia attr_set\n" ++#: .././repair/phase6.c:1380 ++#, c-format ++msgid "name create failed in ino % (%d), filesystem may be out of space\n" ++msgstr "tworzenie nazwy nie powiodło się w i-węźle % (%d), może brakować miejsca w systemie plików\n" + +-#: .././db/attrset.c:137 +-msgid "too few options for attr_set (no name given)\n" +-msgstr "za mało opcji dla attr_set (nie podano nazwy)\n" ++#: .././repair/phase6.c:1446 ++#, c-format ++msgid "shrink_inode failed inode % block %u\n" ++msgstr "shrink_inode nie powiodło się dla i-węzła % bloku %u\n" + +-#: .././db/attrset.c:146 ++#: .././repair/phase6.c:1534 + #, c-format +-msgid "cannot allocate buffer (%d)\n" +-msgstr "nie udało się przydzielić bufora (%d)\n" ++msgid "realloc failed in longform_dir2_entry_check_data (%zu bytes)\n" ++msgstr "realloc nie powiodło się w longform_dir2_entry_check_data (%zu bajtów)\n" + +-#: .././db/attrset.c:155 .././db/attrset.c:230 ++#: .././repair/phase6.c:1591 + #, c-format +-msgid "failed to iget inode %llu\n" +-msgstr "operacja iget na i-węźle %llu nie powiodła się\n" ++msgid "empty data block %u in directory inode %: " ++msgstr "pusty blok danych %u w i-węźle katalogu %: " + +-#: .././db/attrset.c:162 ++#: .././repair/phase6.c:1595 + #, c-format +-msgid "failed to set attr %s on inode %llu\n" +-msgstr "ustawianie atrybutu %s w i-węźle %llu nie powiodło się\n" ++msgid "corrupt block %u in directory inode %: " ++msgstr "uszkodzony blok %u w i-węźle katalogu %: " + +-#: .././db/attrset.c:217 +-msgid "bad option for attr_remove command\n" +-msgstr "błędna opcja dla polecenia attr_remove\n" ++#: .././repair/phase6.c:1599 ++msgid "junking block\n" ++msgstr "wyrzucono blok\n" + +-#: .././db/attrset.c:223 +-msgid "too few options for attr_remove (no name given)\n" +-msgstr "za mało opcji dla attr_remove (nie podano nazwy)\n" ++#: .././repair/phase6.c:1602 ++msgid "would junk block\n" ++msgstr "blok zostałby wyrzucony\n" + +-#: .././db/attrset.c:236 ++#: .././repair/phase6.c:1625 + #, c-format +-msgid "failed to remove attr %s from inode %llu\n" +-msgstr "usunięcie atrybutu %s z i-węzła %llu nie powiodło się\n" ++msgid "bad directory block magic # %#x for directory inode % block %d: " ++msgstr "błędna liczba magiczna bloku katalogu %#x dla i-węzła katalogu % bloku %d: " + +-#: .././db/bmap.c:39 +-msgid "[-ad] [block [len]]" +-msgstr "[-ad] [blok [długość]]" ++#: .././repair/phase6.c:1628 ++#, c-format ++msgid "fixing magic # to %#x\n" ++msgstr "poprawiono liczbę magiczną na %#x\n" + +-#: .././db/bmap.c:40 +-msgid "show block map for current file" +-msgstr "pokazanie mapy bloków dla bieżącego pliku" ++#: .././repair/phase6.c:1632 ++#, c-format ++msgid "would fix magic # to %#x\n" ++msgstr "liczba magiczna zostałaby poprawiona na %#x\n" + +-#: .././db/bmap.c:153 .././db/inode.c:390 +-msgid "no current inode\n" +-msgstr "brak bieżącego i-węzła\n" ++#: .././repair/phase6.c:1653 ++#, c-format ++msgid "directory inode % block %u has consecutive free entries: " ++msgstr "i-węzeł katalogu % blok %u ma kolejne wolne wpisy: " + +-#: .././db/bmap.c:166 +-msgid "bad option for bmap command\n" +-msgstr "błędna opcja dla polecenia bmap\n" ++#: .././repair/phase6.c:1656 ++msgid "joining together\n" ++msgstr "połączono\n" ++ ++#: .././repair/phase6.c:1665 ++msgid "would join together\n" ++msgstr "zostałyby połączone\n" + +-#: .././db/bmap.c:183 ++#: .././repair/phase6.c:1697 + #, c-format +-msgid "bad block number for bmap %s\n" +-msgstr "błędny numer bloku dla bmap %s\n" ++msgid "entry \"%s\" in directory inode % points to non-existent inode %" ++msgstr "wpis \"%s\" w i-węźle katalogu % wskazuje na nie istniejący i-węzeł %" + +-#: .././db/bmap.c:191 ++#: .././repair/phase6.c:1714 + #, c-format +-msgid "bad len for bmap %s\n" +-msgstr "błędna długość dla bmap %s\n" ++msgid "entry \"%s\" in directory inode % points to free inode %" ++msgstr "wpis \"%s\" w i-węźle katalogu % wskazuje na wolny i-węzeł %" + +-#: .././db/bmap.c:214 ++#: .././repair/phase6.c:1732 .././repair/phase6.c:2530 + #, c-format +-msgid "%s offset %lld startblock %llu (%u/%u) count %llu flag %u\n" +-msgstr "%s oofset %lld blok-pocz %llu (%u/%u) liczba %llu flaga %u\n" ++msgid "%s (ino %) in root (%) is not a directory" ++msgstr "%s (i-węzeł %) w katalogu głównym (%) nie jest katalogiem" + +-#: .././db/addr.c:35 +-msgid "[field-expression]" +-msgstr "[wyrażenie-pól]" ++#: .././repair/phase6.c:1754 .././repair/phase6.c:2552 ++#, c-format ++msgid "entry \"%s\" (ino %) in dir % is a duplicate name" ++msgstr "wpis \"%s\" (i-węzeł %) w katalogu % jest powtórzoną nazwą" + +-#: .././db/addr.c:36 +-msgid "set current address" +-msgstr "ustawienie bieżącego adresu" ++#: .././repair/phase6.c:1785 ++#, c-format ++msgid "entry \"%s\" (ino %) in dir % is not in the the first block" ++msgstr "wpis \"%s\" (i-węzeł %) w katalogu % nie jest w pierwszym bloku" + +-#: .././db/addr.c:42 +-msgid "" +-"\n" +-" 'addr' uses the given field to set the filesystem address and type\n" +-"\n" +-" Examples:\n" +-"\n" +-" sb\n" +-" a rootino - set the type to inode and set position to the root inode\n" +-" a u.bmx[0].startblock (for inode with blockmap)\n" +-"\n" +-msgstr "" +-"\n" +-" 'addr' wykorzystuje podane pole do ustawienia adresu w systemie plików i typu\n" +-"\n" +-" Przykłady:\n" +-"\n" +-" sb\n" +-" a rootino - ustawienie typu na i-węzeł i pozycji na i-węzeł główny\n" +-" a u.bmx[0].startblock (dla i-węzła z mapą bloków)\n" +-"\n" ++#: .././repair/phase6.c:1811 ++#, c-format ++msgid "entry \"%s\" in dir % is not the first entry" ++msgstr "wpis \"%s\" w katalogu % nie jest pierwszym wpisem" + +-#: .././db/addr.c:82 ++#: .././repair/phase6.c:1837 .././repair/phase6.c:2621 + #, c-format +-msgid "no fields for type %s\n" +-msgstr "brak pól dla typu %s\n" ++msgid "would fix ftype mismatch (%d/%d) in directory/child inode %/%\n" ++msgstr "niezgodność ftype (%d/%d) w i-węźle katalogu/potomnym %/% zostałaby poprawiona\n" + +-#: .././db/addr.c:95 +-msgid "array not allowed for addr command\n" +-msgstr "tablica nie jest dozwolona dla polecenia addr\n" ++#: .././repair/phase6.c:1842 .././repair/phase6.c:2626 ++#, c-format ++msgid "fixing ftype mismatch (%d/%d) in directory/child inode %/%\n" ++msgstr "niezgodność ftype (%d/%d) w i-węźle katalogu/potomnym %/% zostanie poprawiona\n" + +-#: .././db/addr.c:105 ++#: .././repair/phase6.c:1875 + #, c-format +-msgid "no next type for field %s\n" +-msgstr "brak następnego typu dla pola %s\n" ++msgid "entry \"%s\" in dir % points to an already connected directory inode %\n" ++msgstr "wpis \"%s\" w katalogu % wskazuje na już podłączony i-węzeł katalogu %\n" + +-#: .././db/addr.c:112 ++#: .././repair/phase6.c:1884 .././repair/phase6.c:2590 + #, c-format +-msgid "no addr function for field %s (type %s)\n" +-msgstr "brak funkcji addr dla pola %s (typu %s)\n" ++msgid "entry \"%s\" in dir ino % doesn't have a .. entry, will set it in ino %.\n" ++msgstr "wpis \"%s\" w i-węźle katalogu % nie ma wpisu .., zostanie ustawiony w i-węźle %.\n" + +-#: .././db/agf.c:35 .././db/agfl.c:36 .././db/agi.c:35 .././db/sb.c:42 +-msgid "[agno]" +-msgstr "[agno]" +- +-#: .././db/agf.c:36 +-msgid "set address to agf header" +-msgstr "ustawienie adresu na nagłówek agf" +- +-#: .././db/agf.c:79 +-msgid "" +-"\n" +-" set allocation group free block list\n" +-"\n" +-" Example:\n" +-"\n" +-" agf 2 - move location to AGF in 2nd filesystem allocation group\n" +-"\n" +-" Located in the second sector of each allocation group, the AGF\n" +-" contains the root of two different freespace btrees:\n" +-" The 'cnt' btree keeps track freespace indexed on section size.\n" +-" The 'bno' btree tracks sections of freespace indexed on block number.\n" +-msgstr "" +-"\n" +-" ustawienie listy wolnych bloków grupy alokacji\n" +-"\n" +-" Przykład:\n" +-"\n" +-" agf 2 - zmiana pozycji na AGF w 2. grupie alokacji systemu plików\n" +-"\n" +-" Położony w drugim sektorze każdej grupy alokacji AGF zawiera korzeń\n" +-" dwóch różnych b-drzew wolnej przestrzeni:\n" +-" b-drzewo 'cnt' śledzi wolne miejsce indeksowane rozmiarem sekcji\n" +-" b-drzewo 'bno' śledzi sekcje wolnego miejsca indeksowane numerem bloku.\n" ++#: .././repair/phase6.c:1894 ++#, c-format ++msgid "entry \"%s\" in dir inode % inconsistent with .. value (%) in ino %\n" ++msgstr "wpis \"%s\" w i-węźle katalogu % niespójny z wartością .. (%) w i-węźle %\n" + +-#: .././db/agf.c:104 .././db/agfl.c:90 .././db/agi.c:89 .././db/sb.c:151 ++#: .././repair/phase6.c:1906 + #, c-format +-msgid "bad allocation group number %s\n" +-msgstr "błędny numer grupy alokacji %s\n" ++msgid "\twill clear entry \"%s\"\n" ++msgstr "\twpis \"%s\" zostanie wyczyszczony\n" + +-#: .././db/agfl.c:37 +-msgid "set address to agfl block" +-msgstr "ustawienie adresu na blok agfl" ++#: .././repair/phase6.c:1909 ++#, c-format ++msgid "\twould clear entry \"%s\"\n" ++msgstr "\twpis \"%s\" zostałby wyczyszczony\n" + +-#: .././db/agfl.c:63 +-msgid "" +-"\n" +-" set allocation group freelist\n" +-"\n" +-" Example:\n" +-"\n" +-" agfl 5\n" +-" Located in the fourth sector of each allocation group,\n" +-" the agfl freelist for internal btree space allocation is maintained\n" +-" for each allocation group. This acts as a reserved pool of space\n" +-" separate from the general filesystem freespace (not used for user data).\n" +-"\n" +-msgstr "" +-"\n" +-" ustawienie listy wolnego miejsca grupy alokacji\n" +-"\n" +-" Przykład:\n" +-"\n" +-" agfl 5\n" +-" Położona w 4. sektorze każdej grupy alokacji lista wolnego miejsca agfl\n" +-" służąca do wewnętrznego przydzielania miejsca dla b-drzew jest utrzymywana\n" +-" dla każdej grupy alokacji. Działa jako zarezerwowana pula miejsca oddzielona\n" +-" od ogólnego wolnego miejsca w systemie plików (nie używana dla danych\n" +-" użytkownika).\n" +-"\n" ++#: .././repair/phase6.c:1956 ++#, c-format ++msgid "can't read block %u for directory inode %, error %d\n" ++msgstr "nie można odczytać bloku %u dla i-węzła katalogu %, błąd %d\n" + +-#: .././db/agi.c:36 +-msgid "set address to agi header" +-msgstr "ustawienie adresu na nagłówek agi" ++#: .././repair/phase6.c:1974 .././repair/phase6.c:2074 ++#, c-format ++msgid "leaf block %u for directory inode % bad header\n" ++msgstr "błędny nagłówek bloku liścia %u dla i-węzła katalogu %\n" + +-#: .././db/agi.c:64 +-msgid "" +-"\n" +-" set allocation group inode btree\n" +-"\n" +-" Example:\n" +-"\n" +-" agi 3 (set location to 3rd allocation group inode btree and type to 'agi')\n" +-"\n" +-" Located in the 3rd 512 byte block of each allocation group,\n" +-" the agi inode btree tracks all used/free inodes in the allocation group.\n" +-" Inodes are allocated in 16k 'chunks', each btree entry tracks a 'chunk'.\n" +-"\n" +-msgstr "" +-"\n" +-" ustawienie b-drzewa i-węzła grupy alokacji\n" +-"\n" +-" Przykład:\n" +-"\n" +-" agi 3 (ustawienie położenia na b-drzewo i-węzła 3. grupy alokacji i typu na 'agi')\n" +-"\n" +-" Położone w 3. 512-bajtowym bloku każdej grupy alokacji, b-drzewo i-węzła agi\n" +-" śledzi wszystkie używane i wolne i-węzły w grupie alokacji.\n" +-" I-węzły są przydzielane w 16k porcjach (chunk), każdy wpis b-drzewa śledzi\n" +-" jedną.\n" +-"\n" ++#: .././repair/phase6.c:1991 ++#, c-format ++msgid "leaf block %u for directory inode % bad tail\n" ++msgstr "błędna końcówka bloku liścia %u dla i-węzła katalogu %\n" + +-#: .././db/block.c:43 .././db/block.c:49 +-msgid "filoff" +-msgstr "filoff" ++#: .././repair/phase6.c:2045 ++#, c-format ++msgid "can't read leaf block %u for directory inode %, error %d\n" ++msgstr "nie można odczytać bloku liścia %u dla i-węzła katalogu %, błąd %d\n" + +-#: .././db/block.c:44 +-msgid "set address to file offset (attr fork)" +-msgstr "ustawienie adresu na offset w pliku (gałąź atrybutów)" ++#: .././repair/phase6.c:2060 ++#, c-format ++msgid "unknown magic number %#x for block %u in directory inode %\n" ++msgstr "nieznana liczba magiczna %#x dla bloku %u w i-węźle katalogu %\n" + +-#: .././db/block.c:46 +-msgid "[d]" +-msgstr "[d]" ++#: .././repair/phase6.c:2099 ++#, c-format ++msgid "can't read freespace block %u for directory inode %, error %d\n" ++msgstr "nie można odczytać bloku wolnego miejsca %u dla i-węzła katalogu %, błąd %d\n" + +-#: .././db/block.c:47 +-msgid "set address to daddr value" +-msgstr "ustawienie adresu na wartość daddr" ++#: .././repair/phase6.c:2114 ++#, c-format ++msgid "free block %u for directory inode % bad header\n" ++msgstr "błędny nagłówek wolnego bloku %u dla i-węzła katalogu %\n" + +-#: .././db/block.c:50 +-msgid "set address to file offset (data fork)" +-msgstr "ustawienie adresu na offset w pliku (gałąź danych)" ++#: .././repair/phase6.c:2124 ++#, c-format ++msgid "free block %u entry %i for directory ino % bad\n" ++msgstr "błędny wpis wolnego bloku %u numer %i dla i-węzła katalogu %\n" + +-#: .././db/block.c:52 +-msgid "[fsb]" +-msgstr "[fsb]" ++#: .././repair/phase6.c:2134 ++#, c-format ++msgid "free block %u for directory inode % bad nused\n" ++msgstr "błędna liczba nused w wolnym bloku %u dla i-węzła katalogu %\n" + +-#: .././db/block.c:53 +-msgid "set address to fsblock value" +-msgstr "ustawienie adresu na wartość fsblock" ++#: .././repair/phase6.c:2145 ++#, c-format ++msgid "missing freetab entry %u for directory inode %\n" ++msgstr "brak wpisu freetab %u dla i-węzła katalogu %\n" + +-#: .././db/block.c:59 +-msgid "" +-"\n" +-" Example:\n" +-"\n" +-" 'ablock 23' - sets the file position to the 23rd filesystem block in\n" +-" the inode's attribute fork. The filesystem block size is specified in\n" +-" the superblock.\n" +-"\n" +-msgstr "" +-"\n" +-" Przykład:\n" +-"\n" +-" 'ablock 23' ustawia pozycję w pliku na 23. blok systemu plików w gałęzi\n" +-" atrybutów i-węzła. Rozmiar bloku systemu plików jest określony w superbloku.\n" +-"\n" ++#: .././repair/phase6.c:2184 ++#, c-format ++msgid "malloc failed in longform_dir2_entry_check (% bytes)\n" ++msgstr "malloc nie powiodło się w longform_dir2_entry_check (% bajtów)\n" + +-#: .././db/block.c:82 .././db/block.c:177 ++#: .././repair/phase6.c:2217 + #, c-format +-msgid "bad block number %s\n" +-msgstr "błędny numer bloku %s\n" ++msgid "realloc failed in longform_dir2_entry_check (%zu bytes)\n" ++msgstr "realloc nie powiodło się w longform_dir2_entry_check (%zu bajtów)\n" + +-#: .././db/block.c:90 +-msgid "no attribute data for file\n" +-msgstr "brak danych atrybutów dla pliku\n" ++#: .././repair/phase6.c:2229 ++#, c-format ++msgid "can't read data block %u for directory inode % error %d\n" ++msgstr "nie można odczytać bloku danych %u dla i-węzła katalogu %, błąd %d\n" + +-#: .././db/block.c:96 +-msgid "file attr block is unmapped\n" +-msgstr "blok atrybutów pliku nie ma odwzorowania\n" ++#: .././repair/phase6.c:2322 ++msgid "would junk entry\n" ++msgstr "wpis zostałby wyrzucony\n" + +-#: .././db/block.c:119 +-msgid "" +-"\n" +-" Example:\n" +-"\n" +-" 'daddr 102' - sets position to the 102nd absolute disk block\n" +-" (512 byte block).\n" +-msgstr "" +-"\n" +-" Przykład:\n" +-"\n" +-" 'daddr 102' ustawia pozycję na 102. (bezwzględnie) blok dysku\n" +-" (blok 512-bajtowy).\n" ++#: .././repair/phase6.c:2346 ++msgid "junking entry\n" ++msgstr "wyrzucono wpis\n" + +-#: .././db/block.c:135 ++#: .././repair/phase6.c:2392 + #, c-format +-msgid "current daddr is %lld\n" +-msgstr "bieżący daddr to %lld\n" ++msgid "would set .. in sf dir inode % to %\n" ++msgstr "wpis .. w i-węźle katalogu sf % zostałby ustawiony na %\n" + +-#: .././db/block.c:141 ++#: .././repair/phase6.c:2396 + #, c-format +-msgid "bad daddr %s\n" +-msgstr "błędny daddr %s\n" ++msgid "setting .. in sf dir inode % to %\n" ++msgstr "ustawiono wpis .. w i-węźle katalogu sf % na %\n" + +-#: .././db/block.c:153 +-msgid "" +-"\n" +-" Example:\n" +-"\n" +-" 'dblock 23' - sets the file position to the 23rd filesystem block in\n" +-" the inode's data fork. The filesystem block size is specified in the\n" +-" superblock.\n" +-"\n" +-msgstr "" +-"\n" +-" Przykład:\n" +-"\n" +-" 'dblock 23' ustawia pozycję w pliku na 23. blok systemu plików w gałęzi\n" +-" danych i-węzła. Rozmiar bloku systemu plików jest określony w superbloku.\n" +-"\n" ++#: .././repair/phase6.c:2497 ++#, c-format ++msgid "entry \"%s\" in shortform directory % references non-existent inode %\n" ++msgstr "wpis \"%s\" w krótkim katalogu % odwołuje się do nie istniejącego i-węzła %\n" + +-#: .././db/block.c:185 +-msgid "no type for file data\n" +-msgstr "brak typu dla danych pliku\n" ++#: .././repair/phase6.c:2514 ++#, c-format ++msgid "entry \"%s\" in shortform directory inode % points to free inode %\n" ++msgstr "wpis \"%s\" w i-węźle krótkiego katalogu % wskazuje na wolny i-węzeł %\n" + +-#: .././db/block.c:192 +-msgid "file data block is unmapped\n" +-msgstr "blok danych plików nie ma odwzorowania\n" ++#: .././repair/phase6.c:2576 ++#, c-format ++msgid "entry \"%s\" in directory inode % references already connected inode %.\n" ++msgstr "wpis \"%s\" w i-węźle katalogu % odwołuje się do już podłączonego i-węzła %.\n" + +-#: .././db/block.c:210 +-msgid "" +-"\n" +-" Example:\n" +-"\n" +-" 'fsblock 1023' - sets the file position to the 1023rd filesystem block.\n" +-" The filesystem block size is specified in the superblock and set during\n" +-" mkfs time. Offset is absolute (not AG relative).\n" +-"\n" +-msgstr "" +-"\n" +-" Przykład:\n" +-"\n" +-" 'fsblock 1023' ustawia pozycję w pliku na 1023. blok systemu plików.\n" +-" Rozmiar bloku systemu plików jest określony w superbloku i ustawiany w\n" +-" trakcie wykonywania mkfs. Offset jest bezwzględny (nie względem AG).\n" +-"\n" ++#: .././repair/phase6.c:2599 ++#, c-format ++msgid "entry \"%s\" in directory inode % not consistent with .. value (%) in inode %,\n" ++msgstr "wpis \"%s\" w i-węźle katalogu % niespójny z wartością .. (%) w i-węźle %,\n" + +-#: .././db/block.c:229 ++#: .././repair/phase6.c:2656 + #, c-format +-msgid "current fsblock is %lld\n" +-msgstr "bieżący fsblock to %lld\n" +- +-#: .././db/block.c:235 .././db/block.c:241 +-#, c-format +-msgid "bad fsblock %s\n" +-msgstr "błędny fsblock %s\n" ++msgid "would fix i8count in inode %\n" ++msgstr "i8count w i-węźle % zostałoby poprawione\n" + +-#: .././db/command.c:86 ++#: .././repair/phase6.c:2671 + #, c-format +-msgid "bad argument count %d to %s, expected " +-msgstr "błędny argument liczby %d dla %s, oczekiwano " ++msgid "fixing i8count in inode %\n" ++msgstr "poprawiono i8count w i-węźle %\n" + +-#: .././db/command.c:88 ++#: .././repair/phase6.c:2691 + #, c-format +-msgid "at least %d" +-msgstr "przynajmniej %d" ++msgid "setting size to % bytes to reflect junked entries\n" ++msgstr "ustawiono rozmiar na %, aby odzwierciedlał wyrzucone wpisy\n" + +-#: .././db/command.c:92 ++#: .././repair/phase6.c:2730 .././repair/phase6.c:2734 .././repair/phase7.c:84 + #, c-format +-msgid "between %d and %d" +-msgstr "od %d do %d" +- +-#: .././db/command.c:93 +-msgid " arguments\n" +-msgstr " argumentów\n" +- +-#: .././db/debug.c:27 +-msgid "[flagbits]" +-msgstr "[bity flag]" ++msgid "couldn't map inode %, err = %d\n" ++msgstr "nie udało się odwzorować i-węzła %, błąd = %d\n" + +-#: .././db/debug.c:28 +-msgid "set debug option bits" +-msgstr "ustawienie bitów opcji diagnostycznych" ++#: .././repair/phase6.c:2840 ++msgid "recreating root directory .. entry\n" ++msgstr "ponowne tworzenie wpisu .. głównego katalogu\n" + +-#: .././db/debug.c:42 ++#: .././repair/phase6.c:2859 + #, c-format +-msgid "bad value for debug %s\n" +-msgstr "błędna wartość diagnostyki %s\n" +- +-#: .././db/dquot.c:37 +-msgid "[projid|gid|uid]" +-msgstr "[projid|gid|uid]" +- +-#: .././db/dquot.c:38 +-msgid "set current address to project, group or user quota block" +-msgstr "ustawienie bieżącego adresu na blok limitu projektu, grupy lub użytkownika" ++msgid "can't make \"..\" entry in root inode %, createname error %d\n" ++msgstr "nie można utworzyć wpisu \"..\" w i-węźle głównego katalogu %, błąd createname %d\n" + +-#: .././db/dquot.c:124 +-msgid "bad option for dquot command\n" +-msgstr "błędna opcja dla polecenia dquot\n" ++#: .././repair/phase6.c:2870 ++msgid "would recreate root directory .. entry\n" ++msgstr "wpis .. głównego katalogu zostałby ponownie utworzony\n" + +-#: .././db/dquot.c:128 +-msgid "project" +-msgstr "projekt" ++#: .././repair/phase6.c:2894 ++#, c-format ++msgid "would create missing \".\" entry in dir ino %\n" ++msgstr "brakujący wpis \".\" w i-węźle katalogu % zostałby utworzony\n" + +-#: .././db/dquot.c:128 +-msgid "group" +-msgstr "grupę" ++#: .././repair/phase6.c:2901 ++#, c-format ++msgid "creating missing \".\" entry in dir ino %\n" ++msgstr "tworzenie brakującego wpisu \".\" w i-węźle katalogu %\n" + +-#: .././db/dquot.c:128 +-msgid "user" +-msgstr "użytkownika" ++#: .././repair/phase6.c:2921 ++#, c-format ++msgid "can't make \".\" entry in dir ino %, createname error %d\n" ++msgstr "nie można utworzyć wpisu \".\" w i-węźle katalogu %, błąd createname %d\n" + +-#: .././db/dquot.c:130 ++#: .././repair/phase6.c:3018 + #, c-format +-msgid "dquot command requires one %s id argument\n" +-msgstr "polecenie dquot wymaga jednego argumentu identyfikującego %s\n" ++msgid "disconnected dir inode %, " ++msgstr "odłączony i-węzeł katalogu %, " + +-#: .././db/dquot.c:137 ++#: .././repair/phase6.c:3020 + #, c-format +-msgid "no %s quota inode present\n" +-msgstr "i-węzeł limitów na %s nie jest dostępny\n" ++msgid "disconnected inode %, " ++msgstr "odłączony i-węzeł %, " + +-#: .././db/dquot.c:142 ++#: .././repair/phase6.c:3024 + #, c-format +-msgid "bad %s id for dquot %s\n" +-msgstr "błędna liczba identyfikująca %s dla dquot %s\n" ++msgid "moving to %s\n" ++msgstr "przeniesiono do %s\n" + +-#: .././db/dquot.c:154 ++#: .././repair/phase6.c:3027 + #, c-format +-msgid "no %s quota data for id %d\n" +-msgstr "brak danych limitów na %s dla id %d\n" ++msgid "would move to %s\n" ++msgstr "zostałby przeniesiony do %s\n" + +-#: .././db/echo.c:27 +-msgid "[args]..." +-msgstr "[argumenty]..." ++#: .././repair/phase6.c:3112 ++msgid "Phase 6 - check inode connectivity...\n" ++msgstr "Faza 6 - sprawdzanie łączności i-węzłów...\n" + +-#: .././db/echo.c:28 +-msgid "echo arguments" +-msgstr "wypisanie argumentów" ++#: .././repair/phase6.c:3126 ++msgid "reinitializing root directory\n" ++msgstr "ponowne inicjowanie głównego katalogu\n" + +-#: .././db/faddr.c:40 .././db/faddr.c:63 +-msgid "no current allocation group, cannot set new addr\n" +-msgstr "brak bieżącej grupy alokacji, nie można ustawić nowego adresu\n" ++#: .././repair/phase6.c:3131 ++msgid "would reinitialize root directory\n" ++msgstr "główny katalog zostałby ponownie zainicjowany\n" + +-#: .././db/faddr.c:45 .././db/faddr.c:117 .././db/faddr.c:148 +-#: .././db/faddr.c:180 .././db/faddr.c:202 .././db/faddr.c:232 +-#: .././db/faddr.c:262 .././db/faddr.c:316 .././db/faddr.c:335 +-msgid "null block number, cannot set new addr\n" +-msgstr "pusty numer bloku, nie można ustawić nowego adresu\n" ++#: .././repair/phase6.c:3137 ++msgid "reinitializing realtime bitmap inode\n" ++msgstr "ponowne inicjowanie i-węzła bitmapy realtime\n" + +-#: .././db/faddr.c:68 .././db/faddr.c:353 .././db/faddr.c:371 +-#: .././db/faddr.c:389 +-msgid "null inode number, cannot set new addr\n" +-msgstr "pusty numer i-węzła, nie można ustawić nowego adresu\n" ++#: .././repair/phase6.c:3141 ++msgid "would reinitialize realtime bitmap inode\n" ++msgstr "i-węzeł bitmapy realtime zostałby ponownie zainicjowany\n" + +-#: .././db/faddr.c:88 +-msgid "null attribute block number, cannot set new addr\n" +-msgstr "pusty number bloku atrybutów, nie można ustawić nowego adresu\n" ++#: .././repair/phase6.c:3147 ++msgid "reinitializing realtime summary inode\n" ++msgstr "ponowne inicjowanie i-węzła opisu realtime\n" + +-#: .././db/faddr.c:94 +-msgid "attribute block is unmapped\n" +-msgstr "blok atrybutów jest nieodwzorowany\n" ++#: .././repair/phase6.c:3151 ++msgid "would reinitialize realtime summary inode\n" ++msgstr "i-węzeł opisu realtime zostałby ponownie zainicjowany\n" + +-#: .././db/faddr.c:123 .././db/faddr.c:155 .././db/faddr.c:208 +-#: .././db/faddr.c:239 +-msgid "file block is unmapped\n" +-msgstr "blok pliku jest nieodwzorowany\n" ++#: .././repair/phase6.c:3157 ++msgid " - resetting contents of realtime bitmap and summary inodes\n" ++msgstr " - przestawianie zawartości i-węzłów bitmapy i opisu realtime\n" + +-#: .././db/faddr.c:285 +-msgid "null directory block number, cannot set new addr\n" +-msgstr "pusty numer bloku katalogu, nie można ustawić nowego adresu\n" ++#: .././repair/phase6.c:3160 .././repair/phase6.c:3165 ++msgid "Warning: realtime bitmap may be inconsistent\n" ++msgstr "Uwaga: bitmapa realtime może być niespójna\n" + +-#: .././db/faddr.c:292 +-msgid "directory block is unmapped\n" +-msgstr "blok katalogu jest nieodwzorowany\n" ++#: .././repair/phase6.c:3171 ++msgid " - traversing filesystem ...\n" ++msgstr " - przechodzenie systemu plików...\n" + +-#: .././db/flist.c:149 +-#, c-format +-msgid "field %s not found\n" +-msgstr "nie znaleziono pola %s\n" ++#: .././repair/phase6.c:3194 ++msgid " - traversal finished ...\n" ++msgstr " - przechodzenie zakończone...\n" + +-#: .././db/flist.c:159 ++#: .././repair/phase6.c:3195 + #, c-format +-msgid "no elements in %s\n" +-msgstr "brak elementów w %s\n" ++msgid " - moving disconnected inodes to %s ...\n" ++msgstr " - przenoszenie odłączonych i-węzłów do %s...\n" + +-#: .././db/flist.c:165 ++#: .././repair/phase7.c:43 + #, c-format +-msgid "indices %d-%d for field %s out of range %d-%d\n" +-msgstr "indeksy %d-%d dla pola %s są poza zakresem %d-%d\n" ++msgid "resetting inode % nlinks from %u to %u\n" ++msgstr "przestawiono nlinks i-węzła % z %u na %u\n" + +-#: .././db/flist.c:173 ++#: .././repair/phase7.c:49 + #, c-format +-msgid "index %d for field %s out of range %d-%d\n" +-msgstr "indeks %d dla pola %s jest poza zakresem %d-%d\n" ++msgid "nlinks %u will overflow v1 ino, ino % will be converted to version 2\n" ++msgstr "nlinks %u przepełni i-węzeł v1, i-węzeł % będzie skonwertowany do wersji 2\n" + +-#: .././db/flist.c:187 ++#: .././repair/phase7.c:56 + #, c-format +-msgid "field %s is not an array\n" +-msgstr "pole %s nie jest tablicą\n" ++msgid "would have reset inode % nlinks from %u to %u\n" ++msgstr "nlinks i-węzła % zostałoby przestawione z %u na %u\n" + +-#: .././db/flist.c:200 ++#: .././repair/phase7.c:88 + #, c-format +-msgid "field %s has no subfields\n" +-msgstr "pole %s nie ma podpól\n" ++msgid "couldn't map inode %, err = %d, can't compare link counts\n" ++msgstr "nie udało się odwzorować i-węzła %, błąd %d, nie można porównać liczby dowiązań\n" + +-#: .././db/flist.c:220 +-#, c-format +-msgid "fl@%p:\n" +-msgstr "fl@%p:\n" ++#: .././repair/phase7.c:127 ++msgid "Phase 7 - verify and correct link counts...\n" ++msgstr "Faza 7 - sprawdzanie i poprawianie liczby dowiązań...\n" + +-#: .././db/flist.c:221 +-#, c-format +-msgid "\tname=%s, fld=%p, child=%p, sibling=%p\n" +-msgstr "\tnazwa=%s, fld=%p, child=%p, sibling=%p\n" ++#: .././repair/phase7.c:129 ++msgid "Phase 7 - verify link counts...\n" ++msgstr "Faza 7 - sprawdzanie liczby dowiązań...\n" + +-#: .././db/flist.c:223 ++#: .././repair/prefetch.c:532 ++msgid "prefetch corruption\n" ++msgstr "uszkodzenie prefetch\n" ++ ++#: .././repair/prefetch.c:692 .././repair/prefetch.c:795 + #, c-format +-msgid "\tlow=%d, high=%d, flags=%d (%s%s), offset=%d\n" +-msgstr "\tlow=%d, high=%d, flagi=%d (%s%s), offset=%d\n" ++msgid "failed to create prefetch thread: %s\n" ++msgstr "nie udało się utworzyć wątku prefetch: %s\n" + +-#: .././db/flist.c:225 +-msgid "oklow " +-msgstr "oklow " ++#: .././repair/prefetch.c:832 ++msgid "failed to initialize prefetch mutex\n" ++msgstr "nie udało się zainicjować muteksu prefetch\n" + +-#: .././db/flist.c:226 +-msgid "okhigh" +-msgstr "okhigh" ++#: .././repair/prefetch.c:834 .././repair/prefetch.c:836 ++msgid "failed to initialize prefetch cond var\n" ++msgstr "nie udało się zainicjować zmiennej warunkowej prefetch\n" + +-#: .././db/flist.c:227 +-#, c-format +-msgid "\tfld->name=%s, fld->ftyp=%d (%s)\n" +-msgstr "\tfld->name=%s, fld->ftyp=%d (%s)\n" ++#: .././repair/progress.c:16 ++msgid "inodes" ++msgstr "i-węzłów" + +-#: .././db/flist.c:230 +-#, c-format +-msgid "\tfld->flags=%d (%s%s%s%s%s)\n" +-msgstr "\tfld->flags=%d (%s%s%s%s%s)\n" ++#: .././repair/progress.c:20 ++msgid "directories" ++msgstr "katalogów" + +-#: .././db/flist.c:322 +-#, c-format +-msgid "bad syntax in field name %s\n" +-msgstr "błędna składnia w nazwie pola %s\n" ++#: .././repair/progress.c:22 ++msgid "allocation groups" ++msgstr "grup alokacji" + +-#: .././db/flist.c:378 ++#: .././repair/progress.c:24 ++msgid "AGI unlinked buckets" ++msgstr "odłączonych kubełków AGI" ++ ++#: .././repair/progress.c:28 ++msgid "realtime extents" ++msgstr "ekstentów realtime" ++ ++#: .././repair/progress.c:30 ++msgid "unlinked lists" ++msgstr "odłączonych list" ++ ++#: .././repair/progress.c:37 + #, c-format +-msgid "missing closing quote %s\n" +-msgstr "brak cudzysłowu zamykającego %s\n" ++msgid " - %02d:%02d:%02d: %s - %llu of %llu %s done\n" ++msgstr " - %02d:%02d:%02d: %s - sprawdzono %llu z %llu %s\n" + +-#: .././db/flist.c:395 ++#: .././repair/progress.c:39 + #, c-format +-msgid "bad character in field %s\n" +-msgstr "błędny znak w polu %s\n" ++msgid " - %02d:%02d:%02d: %s - %llu %s done\n" ++msgstr " - %02d:%02d:%02d: %s - sprawdzono %llu %s\n" + +-#: .././db/fprint.c:98 +-msgid "null" +-msgstr "nic" ++#: .././repair/progress.c:51 ++msgid "scanning filesystem freespace" ++msgstr "przeszukiwanie wolnego miejsca w systemie plików" + +-#: .././db/hash.c:30 +-msgid "string" +-msgstr "łańcuch" ++#: .././repair/progress.c:53 ++msgid "scanning agi unlinked lists" ++msgstr "przeszukiwanie odłączonych list agi" + +-#: .././db/hash.c:31 +-msgid "calculate hash value" +-msgstr "obliczenie wartości skrótu" ++#: .././repair/progress.c:55 ++msgid "check uncertain AG inodes" ++msgstr "sprawdzanie niepewnych i-węzłów AG" + +-#: .././db/hash.c:37 +-msgid "" +-"\n" +-" 'hash' prints out the calculated hash value for a string using the\n" +-"directory/attribute code hash function.\n" +-"\n" +-" Usage: \"hash \"\n" +-"\n" +-msgstr "" +-"\n" +-" 'hash' wypisuje wartość skrótu dla łańcucha obliczoną przy użyciu funkcji\n" +-" haszującej dla katalogów/atrybutów.\n" +-"\n" +-" Składnia: \"hash <łańcuch>\"\n" +-"\n" ++#: .././repair/progress.c:57 ++msgid "process known inodes and inode discovery" ++msgstr "przetwarzanie znanych i-węzłów i rozpoznawanie i-węzłów" + +-#: .././db/help.c:89 +-#, c-format +-msgid "(or %s) " +-msgstr "(lub %s) " ++#: .././repair/progress.c:59 ++msgid "process newly discovered inodes" ++msgstr "przetwarzanie nowo rozpoznanych i-węzłów" + +-#: .././db/init.c:46 +-#, c-format +-msgid "Usage: %s [-fFrxV] [-p prog] [-l logdev] [-c cmd]... device\n" +-msgstr "Składnia: %s [-fFrxV] [-p prog] [-l urz-log] [-c polecenie]... urządzenie\n" ++#: .././repair/progress.c:61 ++msgid "setting up duplicate extent list" ++msgstr "tworzenie listy powtórzonych ekstentów" + +-#: .././db/init.c:112 +-msgid "" +-"\n" +-"fatal error -- couldn't initialize XFS library\n" +-msgstr "" +-"\n" +-"błąd krytyczny - nie udało się zainicjować biblioteki XFS\n" ++#: .././repair/progress.c:63 ++msgid "initialize realtime bitmap" ++msgstr "inicjowanie bitmapy realtime" + +-#: .././db/init.c:118 +-#, c-format +-msgid "%s: %s is invalid (cannot read first 512 bytes)\n" +-msgstr "%s: %s jest nieprawidłowy (nie można odczytać pierwszych 512 bajtów)\n" ++#: .././repair/progress.c:65 ++msgid "reset realtime bitmaps" ++msgstr "ponowne tworzenie bitmapy realtime" + +-#: .././db/init.c:129 +-#, c-format +-msgid "%s: %s is not a valid XFS filesystem (unexpected SB magic number 0x%08x)\n" +-msgstr "%s: %s nie jest poprawnym systemem plików XFS (nieoczekiwana liczba magiczna SB 0x%08x)\n" ++#: .././repair/progress.c:67 ++msgid "check for inodes claiming duplicate blocks" ++msgstr "szukanie i-węzłów odwołujących się do powtórzonych bloków" + +-#: .././db/init.c:141 +-#, c-format +-msgid "%s: device %s unusable (not an XFS filesystem?)\n" +-msgstr "%s: urządzenie %s nie nadaje się do użycia (to nie jest system plików XFS?)\n" ++#: .././repair/progress.c:69 ++msgid "rebuild AG headers and trees" ++msgstr "przebudowywanie nagłówków i drzew AG" + +-#: .././db/input.c:43 +-msgid "source-file" +-msgstr "plik-źródłowy" ++#: .././repair/progress.c:71 ++msgid "traversing filesystem" ++msgstr "przechodzenie systemu plików" + +-#: .././db/input.c:44 +-msgid "get commands from source-file" +-msgstr "odczyt poleceń z pliku-źródłowego" ++#: .././repair/progress.c:73 ++msgid "traversing all unattached subtrees" ++msgstr "przechodzenie wszystkich odłączonych poddrzew" + +-#: .././db/input.c:320 +-#, c-format +-msgid "can't open %s\n" +-msgstr "nie można otworzyć %s\n" ++#: .././repair/progress.c:75 ++msgid "moving disconnected inodes to lost+found" ++msgstr "przenoszenie odłączonych i-węzłów do lost+found" + +-#: .././db/io.c:46 +-msgid "pop location from the stack" +-msgstr "odtworzenie pozycji ze stosu" ++#: .././repair/progress.c:77 ++msgid "verify and correct link counts" ++msgstr "sprawdzanie i poprawianie liczby dowiązań" + +-#: .././db/io.c:49 +-msgid "push location to the stack" +-msgstr "zapisanie pozycji na stos" ++#: .././repair/progress.c:79 ++msgid "verify link counts" ++msgstr "sprawdzanie liczby dowiązań" + +-#: .././db/io.c:52 +-msgid "view the location stack" +-msgstr "podejrzenie stosu pozycji" ++#: .././repair/progress.c:118 ++msgid "cannot malloc pointer to done vector\n" ++msgstr "nie udało się przydzielić wskaźnika do wektora wykonania\n" + +-#: .././db/io.c:55 +-msgid "move forward to next entry in the position ring" +-msgstr "przejście na następną pozycję w kręgu" ++#: .././repair/progress.c:135 ++msgid "unable to create progress report thread\n" ++msgstr "nie udało się utworzyć wątku raportowania postępu\n" + +-#: .././db/io.c:58 +-msgid "move to the previous location in the position ring" +-msgstr "przejście na poprzednią pozycję w kręgu" ++#: .././repair/progress.c:178 ++msgid "progress_rpt: cannot malloc progress msg buffer\n" ++msgstr "progress_rpt: nie udało się przydzielić bufora komunikatów postępu\n" + +-#: .././db/io.c:61 +-msgid "show position ring or move to a specific entry" +-msgstr "pokazanie kręgu pozycji lub przejście do określonego wpisu" ++#: .././repair/progress.c:192 ++msgid "progress_rpt: cannot create timer\n" ++msgstr "progress_rpt: nie można utworzyć zegara\n" + +-#: .././db/io.c:91 +-#, c-format +-msgid "can't set block offset to %d\n" +-msgstr "nie można ustawić offsetu bloku na %d\n" ++#: .././repair/progress.c:195 ++msgid "progress_rpt: cannot set timer\n" ++msgstr "progress_rpt: nie można ustawić zegara\n" + +-#: .././db/io.c:104 +-msgid "can't pop anything from I/O stack\n" +-msgstr "nie można pobrać nic ze stosu we/wy\n" ++#: .././repair/progress.c:219 ++msgid "progress_rpt: cannot lock progress mutex\n" ++msgstr "progress_rpt: nie można zablokować muteksu\n" + +-#: .././db/io.c:132 +-msgid "" +-"\n" +-" Changes the address and data type to the first entry on the stack.\n" +-"\n" +-msgstr "" +-"\n" +-" Zmiana adresu i typu danych na pierwszy wpis ze stosu.\n" +-"\n" ++#: .././repair/progress.c:256 .././repair/progress.c:359 ++#, c-format ++msgid "%s" ++msgstr "%s" + +-#: .././db/io.c:146 ++#: .././repair/progress.c:264 + #, c-format +-msgid "\tbyte offset %lld, length %d\n" +-msgstr "\toffset w bajtach %lld, długość %d\n" ++msgid "\t- %02d:%02d:%02d: Phase %d: elapsed time %s - processed %d %s per minute\n" ++msgstr "\t- %02d:%02d:%02d: Faza %d: miniony czas %s - przetworzono %d %s na minutę\n" + +-#: .././db/io.c:147 ++#: .././repair/progress.c:269 + #, c-format +-msgid "\tbuffer block %lld (fsbno %lld), %d bb%s\n" +-msgstr "\tblok bufora %lld (fsbno %lld), %d bb%s\n" ++msgid "\t- %02d:%02d:%02d: Phase %d: %%% done - estimated remaining time %s\n" ++msgstr "\t- %02d:%02d:%02d: Faza %d: %%% zrobione - przewidywany pozostały czas %s\n" + +-#: .././db/io.c:151 +-msgid "\tblock map" +-msgstr "\tmapa bloków" ++#: .././repair/progress.c:277 ++msgid "progress_rpt: error unlock msg mutex\n" ++msgstr "progress_rpt: błąd odblokowywania muteksu komunikatów\n" + +-#: .././db/io.c:156 +-#, c-format +-msgid "\tinode %lld, dir inode %lld, type %s\n" +-msgstr "\ti-węzeł %lld, i-węzeł katalogu %lld, typ %s\n" ++#: .././repair/progress.c:283 ++msgid "cannot delete timer\n" ++msgstr "nie można usunąć zegara\n" + +-#: .././db/io.c:167 +-msgid "no entries in location ring.\n" +-msgstr "brak wpisów w kręgu pozycji.\n" ++#: .././repair/progress.c:297 ++msgid "set_progress_msg: cannot lock progress mutex\n" ++msgstr "set_progress_msg: nie można zablokować mutekstu postępu\n" + +-#: .././db/io.c:171 +-msgid " type bblock bblen fsbno inode\n" +-msgstr " typ bblok bblen fsbno i-węzeł\n" ++#: .././repair/progress.c:307 ++msgid "set_progress_msg: cannot unlock progress mutex\n" ++msgstr "set_progress_msg: nie można odblokować mutekstu postępu\n" + +-#: .././db/io.c:225 ++#: .././repair/progress.c:327 ++msgid "print_final_rpt: cannot lock progress mutex\n" ++msgstr "print_final_rpt: nie można zablokować mutekstu postępu\n" ++ ++#: .././repair/progress.c:363 ++msgid "print_final_rpt: cannot unlock progress mutex\n" ++msgstr "print_final_rpt: nie można odblokować muteksu postępu\n" ++ ++#: .././repair/progress.c:412 + #, c-format +-msgid "no such command %s\n" +-msgstr "nieznane polecenie %s\n" ++msgid "%02d:%02d:%02d" ++msgstr "%02d:%02d:%02d" + +-#: .././db/io.c:229 ++#: .././repair/progress.c:434 + #, c-format +-msgid "no push form allowed for %s\n" +-msgstr "forma push niedozwolona dla %s\n" ++msgid "%d week" ++msgstr "%d tygodni" + +-#: .././db/io.c:253 +-msgid "" +-"\n" +-" Allows you to push the current address and data type on the stack for\n" +-" later return. 'push' also accepts an additional command to execute after\n" +-" storing the current address (ex: 'push a rootino' from the superblock).\n" +-"\n" +-msgstr "" +-"\n" +-" Pozwala zapisać bieżący adres i typ danych na stos w celu późniejszego\n" +-" powrotu. 'push' akceptuje także dodatkowe polecenie do wykonania po zapisaniu\n" +-" bieżącego adresu (np. 'push a rootino' z superbloku).\n" +-"\n" ++#: .././repair/progress.c:435 .././repair/progress.c:445 ++#: .././repair/progress.c:461 .././repair/progress.c:479 ++#: .././repair/progress.c:494 ++msgid "s" ++msgstr " " + +-#: .././db/io.c:269 .././db/io.c:310 +-msgid "ring is empty\n" +-msgstr "krąg jest pusty\n" ++# XXX: ngettext() ++#: .././repair/progress.c:444 ++#, c-format ++msgid "%d day" ++msgstr "%d dni" + +-#: .././db/io.c:273 +-msgid "no further entries\n" +-msgstr "brak dalszych wpisów\n" ++#: .././repair/progress.c:451 .././repair/progress.c:468 ++#: .././repair/progress.c:486 .././repair/progress.c:496 ++msgid ", " ++msgstr ", " + +-#: .././db/io.c:293 +-msgid "" +-"\n" +-" The 'forward' ('f') command moves to the next location in the position\n" +-" ring, updating the current position and data type. If the current location\n" +-" is the top entry in the ring, then the 'forward' command will have\n" +-" no effect.\n" +-"\n" +-msgstr "" +-"\n" +-" Polecenie 'forward' ('f') przechodzi do następnej pozycji w kręgu,\n" +-" uaktualniając bieżącą pozycję i typ danych. Jeśli bieżąca pozycja\n" +-" jest szczytowym wpisem w kręgu, polecenie nie przyniesie efektu.\n" +-"\n" ++#: .././repair/progress.c:460 ++#, c-format ++msgid "%d hour" ++msgstr "%d godzin" + +-#: .././db/io.c:314 +-msgid "no previous entries\n" +-msgstr "brak poprzednich wpisów\n" ++#: .././repair/progress.c:478 ++#, c-format ++msgid "%d minute" ++msgstr "%d minut" ++ ++#: .././repair/progress.c:493 ++#, c-format ++msgid "%d second" ++msgstr "%d sekund" + +-#: .././db/io.c:334 ++#: .././repair/progress.c:514 ++#, c-format + msgid "" + "\n" +-" The 'back' ('b') command moves to the previous location in the position\n" +-" ring, updating the current position and data type. If the current location\n" +-" is the last entry in the ring, then the 'back' command will have no effect.\n" +-"\n" ++" XFS_REPAIR Summary %s\n" + msgstr "" + "\n" +-" Polecenie 'back' ('b') przechodzi do poprzedniej pozycji w kręgu,\n" +-" uaktualniając bieżącą pozycję i typ danych. Jeśli bieżąca pozycja\n" +-" jest ostatnim wpisem w kręgu, polecenie nie przyniesie efektu.\n" +-"\n" ++" Podsumowanie XFS_REPAIR %s\n" ++ ++#: .././repair/progress.c:516 ++msgid "Phase\t\tStart\t\tEnd\t\tDuration\n" ++msgstr "Faza\t\tPoczątek\tKoniec\t\tCzas trwania\n" + +-#: .././db/io.c:357 ++#: .././repair/progress.c:521 .././repair/progress.c:524 + #, c-format +-msgid "invalid entry: %d\n" +-msgstr "błędny wpis: %d\n" ++msgid "Phase %d:\tSkipped\n" ++msgstr "Faza %d:\tPominięta\n" ++ ++#: .././repair/progress.c:528 ++#, c-format ++msgid "Phase %d:\t%02d/%02d %02d:%02d:%02d\t%02d/%02d %02d:%02d:%02d\t%s\n" ++msgstr "Faza %d:\t%02d.%02d %02d:%02d:%02d\t%02d.%02d %02d:%02d:%02d\t%s\n" + +-#: .././db/io.c:374 ++#: .././repair/progress.c:534 + #, c-format + msgid "" + "\n" +-" The position ring automatically keeps track of each disk location and\n" +-" structure type for each change of position you make during your xfs_db\n" +-" session. The last %d most recent entries are kept in the ring.\n" +-"\n" +-" To display the current list of ring entries type 'ring' by itself on\n" +-" the command line. The entry highlighted by an asterisk ('*') is the\n" +-" current entry.\n" +-"\n" +-" To move to another entry in the ring type 'ring ' where is\n" +-" your desired entry from the ring position list.\n" +-"\n" +-" You may also use the 'forward' ('f') or 'back' ('b') commands to move\n" +-" to the previous or next entry in the ring, respectively.\n" +-"\n" +-" Note: Unlike the 'stack', 'push' and 'pop' commands, the ring tracks your\n" +-" location implicitly. Use the 'push' and 'pop' commands if you wish to\n" +-" store a specific location explicitly for later return.\n" +-"\n" ++"Total run time: %s\n" + msgstr "" + "\n" +-" Krąg pozycji automatycznie śledzi każde położenie na dysku i typ struktury\n" +-" dla każdej zmiany pozycji wykonywanej podczas sesji xfs_db. Ostatenie %d\n" +-" pozycji jest trzymane w kręgu.\n" +-"\n" +-" Aby wyświetlić bieżącą listę wpisów w kręgu należy napisać w linii poleceń\n" +-" po prostu 'ring'. Wpis oznaczony gwiazdką ('*') jest wpisem bieżącym.\n" +-"\n" +-" Aby przejść do innego wpisu w kręgu, należy wpisać 'ring ', gdzie\n" +-" jest numerem pożądanego wpisu na liście pozycji.\n" +-"\n" +-" Można także używać poleceń 'forward' ('f') i 'back' ('b'), aby przenieść\n" +-" się odpowiednio na poprzedni lub następny wpis w kręgu.\n" +-"\n" +-" Uwaga: w przeciwieństwie do poleceń 'stack', 'push' i 'pop', krąg śledzi\n" +-" pozycje niejawnie. Aby zapisać jawnie dane położenie w celu późniejszego\n" +-" powrotu, należy użyć poleceń 'push' i 'pop'.\n" +-"\n" +- +-#: .././db/io.c:438 .././db/io.c:481 +-#, c-format +-msgid "can't seek in filesystem at bb %lld\n" +-msgstr "nie można wykonać seek w systemie plików na bb %lld\n" ++"Całkowity czas trwania: %s\n" + +-#: .././db/io.c:515 +-msgid "nothing to write\n" +-msgstr "nie ma nic do zapisania\n" ++#: .././repair/rt.c:47 ++msgid "couldn't allocate memory for incore realtime bitmap.\n" ++msgstr "nie udało się przydzielić pamięci dla bitmapy realtime.\n" + +-#: .././db/io.c:521 +-#, c-format +-msgid "incomplete write, block: %lld\n" +-msgstr "zapis niekompletny, blok: %lld\n" ++#: .././repair/rt.c:51 ++msgid "couldn't allocate memory for incore realtime summary info.\n" ++msgstr "nie udało się przydzielić pamięci dla opisu realtime.\n" + +-#: .././db/io.c:524 ++#: .././repair/rt.c:203 + #, c-format +-msgid "write error: %s\n" +-msgstr "błąd zapisu: %s\n" ++msgid "can't find block %d for rtbitmap inode\n" ++msgstr "nie można odnaleźć bloku %d dla i-węzła bitmapy realtime\n" + +-#: .././db/io.c:529 ++#: .././repair/rt.c:211 + #, c-format +-msgid "incomplete read, block: %lld\n" +-msgstr "odczyt niekompletny, blok: %lld\n" ++msgid "can't read block %d for rtbitmap inode\n" ++msgstr "nie można odczytać bloku %d dla i-węzła bitmapy realtime\n" + +-#: .././db/io.c:532 ++#: .././repair/rt.c:265 + #, c-format +-msgid "read error: %s\n" +-msgstr "błąd odczytu: %s\n" +- +-#: .././db/io.c:548 +-msgid "set_cur no stack element to set\n" +-msgstr "set_cur: brak elementu stosu do ustawienia\n" ++msgid "block %d for rtsummary inode is missing\n" ++msgstr "brak bloku %d dla i-węzła opisu realtime\n" + +-#: .././db/io.c:554 ++#: .././repair/rt.c:273 + #, c-format +-msgid "xfs_db got a bbmap for %lld\n" +-msgstr "xfs_db ma bbmap dla %lld\n" ++msgid "can't read block %d for rtsummary inode\n" ++msgstr "nie można odczytać bloku %d dla i-węzła opisu realtime\n" + +-#: .././db/io.c:585 ++#: .././repair/sb.c:103 + msgid "" + "\n" +-" The stack is used to explicitly store your location and data type\n" +-" for later return. The 'push' operation stores the current address\n" +-" and type on the stack, the 'pop' operation returns you to the\n" +-" position and datatype of the top entry on the stack.\n" +-"\n" +-" The 'stack' allows explicit location saves, see 'ring' for implicit\n" +-" position tracking.\n" +-"\n" ++"attempting to find secondary superblock...\n" + msgstr "" + "\n" +-" Stos służy do jawnego zapisania pozycji i typu danych w celu późniejszego\n" +-" powrotu. Operacja 'push' zapisuje bieżący adres i typ na stosie, a operacja\n" +-" 'pop' odtwarza bieżący adres i typ danych z wierzchu stosu.\n" +-"\n" +-" Stos ('stack') pozwala na jawne zapisywanie pozycji; domyślnie pozycje są\n" +-" śledzone poprzez krąg (p. 'ring').\n" +-"\n" ++"próba odnalezienia zapasowego superbloku...\n" + +-#: .././db/malloc.c:27 +-#, c-format +-msgid "%s: out of memory\n" +-msgstr "%s: brak pamięci\n" ++#: .././repair/sb.c:108 ++msgid "error finding secondary superblock -- failed to memalign buffer\n" ++msgstr "błąd podczas szukania zapasowego superbloku - nie udało się memalign bufora\n" + +-#: .././db/output.c:30 +-msgid "[stop|start ]" +-msgstr "[stop|start ]" ++#: .././repair/sb.c:145 ++msgid "found candidate secondary superblock...\n" ++msgstr "znaleziono potencjalny zapasowy superblok...\n" + +-#: .././db/output.c:31 +-msgid "start or stop logging to a file" +-msgstr "rozpoczęcie lub zakończenie logowania do pliku" ++#: .././repair/sb.c:157 ++msgid "verified secondary superblock...\n" ++msgstr "sprawdzono zapasowy superblok...\n" + +-#: .././db/output.c:68 +-#, c-format +-msgid "logging to %s\n" +-msgstr "logowanie do %s\n" ++#: .././repair/sb.c:162 ++msgid "unable to verify superblock, continuing...\n" ++msgstr "nie udało się sprawdzić superbloku, kontynuacja...\n" + +-#: .././db/output.c:70 .././db/output.c:77 +-msgid "no log file\n" +-msgstr "brak pliku logu\n" ++#: .././repair/sb.c:481 ++msgid "failed to memalign superblock buffer\n" ++msgstr "nie udało się wykonać memalign dla bufora superbloku\n" + +-#: .././db/output.c:80 ++#: .././repair/sb.c:488 ++msgid "couldn't seek to offset 0 in filesystem\n" ++msgstr "nie udało się wykonać seek na offset 0 w systemie plików\n" ++ ++#: .././repair/sb.c:498 ++msgid "primary superblock write failed!\n" ++msgstr "zapis głównego superbloku nie powiódł się!\n" ++ ++#: .././repair/sb.c:516 + #, c-format +-msgid "already logging to %s\n" +-msgstr "już ustawiono logowanie do %s\n" ++msgid "error reading superblock %u -- failed to memalign buffer\n" ++msgstr "błąd podczas odczytu superbloku %u - nie udało się wykonać memalign dla bufora\n" + +-#: .././db/output.c:84 ++#: .././repair/sb.c:527 + #, c-format +-msgid "can't open %s for writing\n" +-msgstr "nie można otworzyć %s do zapisu\n" ++msgid "error reading superblock %u -- seek to offset % failed\n" ++msgstr "błąd podczas odczytu superbloku %u - seek na offset % nie powiódł się\n" + +-#: .././db/output.c:90 +-msgid "bad log command, ignored\n" +-msgstr "błędne polecenie logowania, zignorowano\n" ++#: .././repair/sb.c:536 ++#, c-format ++msgid "superblock read failed, offset %, size %d, ag %u, rval %d\n" ++msgstr "odczyt superbloku nie powiódł się, offset %, rozmiar %d, ag %u, rval %d\n" + +-#: .././db/print.c:41 +-msgid "[value]..." +-msgstr "[wartość]..." ++#: .././repair/sb.c:583 ++msgid "couldn't malloc geometry structure\n" ++msgstr "nie udało się przydzielić struktury geometrii\n" + +-#: .././db/print.c:42 +-msgid "print field values" +-msgstr "wypisanie wartości pól" ++#: .././repair/sb.c:733 ++msgid "calloc failed in verify_set_primary_sb\n" ++msgstr "calloc nie powiodło się w verify_set_primary_sb\n" + +-#: .././db/print.c:79 +-#, c-format +-msgid "no print function for type %s\n" +-msgstr "brak funkcji wypisującej dla typu %s\n" ++#: .././repair/sb.c:804 ++msgid "" ++"Only two AGs detected and they do not match - cannot validate filesystem geometry.\n" ++"Use the -o force_geometry option to proceed.\n" ++msgstr "" ++"Wykryto tylko dwie AG i nie zgadzają się - nie można sprawdzić poprawności geometrii systemu plików.\n" ++"Proszę użyć opcji -o force_geometry, aby kontynuować.\n" + +-#: .././db/print.c:153 +-msgid "(empty)\n" +-msgstr "(puste)\n" ++#: .././repair/sb.c:820 ++msgid "" ++"Only one AG detected - cannot validate filesystem geometry.\n" ++"Use the -o force_geometry option to proceed.\n" ++msgstr "" ++"Wykryto tylko dwie AG - nie można sprawdzić poprawności geometrii systemu plików.\n" ++"Proszę użyć opcji -o force_geometry, aby kontynuować.\n" + +-#: .././db/print.c:215 +-msgid "(empty)" +-msgstr "(puste)" ++#: .././repair/sb.c:835 ++msgid "Not enough matching superblocks - cannot proceed.\n" ++msgstr "Za mało pasujących superbloków - nie można kontynuować.\n" + +-#: .././db/print.c:275 +-msgid "no arguments allowed\n" +-msgstr "argumenty nie są dozwolone\n" ++#: .././repair/sb.c:850 ++msgid "could not read superblock\n" ++msgstr "nie udało się odczytać superbloku\n" + +-#: .././db/quit.c:27 +-msgid "exit xfs_db" +-msgstr "zakończenie xfs_db" ++#: .././repair/scan.c:82 .././repair/scan.c:137 ++#, c-format ++msgid "can't read btree block %d/%d\n" ++msgstr "nie można odczytać bloku b-drzewa %d/%d\n" + +-#: .././db/type.c:50 +-msgid "[newtype]" +-msgstr "[nowy-typ]" ++#: .././repair/scan.c:86 .././repair/scan.c:149 ++#, c-format ++msgid "btree block %d/%d is suspect, error %d\n" ++msgstr "blok b-drzewa %d/%d jest podejrzany, błąd %d\n" + +-#: .././db/type.c:51 +-msgid "set/show current data type" +-msgstr "ustawienie/wyświetlenie bieżącego typu danych" ++#: .././repair/scan.c:209 ++#, c-format ++msgid "bad magic # %#x in inode % (%s fork) bmbt block %\n" ++msgstr "błędna liczba magiczna %#x w i-węźle % (gałąź %s) blok bmbt %\n" + +-#: .././db/type.c:104 ++#: .././repair/scan.c:215 + #, c-format +-msgid "current type is \"%s\"\n" +-msgstr "bieżący typ to \"%s\"\n" ++msgid "expected level %d got %d in inode %, (%s fork) bmbt block %\n" ++msgstr "oczekiwano poziomu %d, a uzyskano %d w i-węźle %, (gałęzi %s) blok bmbt %\n" ++ ++#: .././repair/scan.c:225 ++#, c-format ++msgid "expected owner inode %, got %llu, bmbt block %\n" ++msgstr "oczekiwano i-węzła właściciela %, napotkano %llu, blok bmbt %\n" + +-#: .././db/type.c:106 ++#: .././repair/scan.c:245 ++#, c-format + msgid "" +-"\n" +-" supported types are:\n" +-" " ++"bad fwd (right) sibling pointer (saw % parent block says %)\n" ++"\tin inode % (%s fork) bmap btree block %\n" + msgstr "" +-"\n" +-" obsługiwane typy to:\n" +-" " ++"błędny wskaźnik w przód (prawy) (widziano %, blok nadrzędny mówi %)\n" ++"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" + +-#: .././db/type.c:121 ++#: .././repair/scan.c:255 + #, c-format +-msgid "no such type %s\n" +-msgstr "nie ma typu %s\n" ++msgid "" ++"bad back (left) sibling pointer (saw %llu parent block says %)\n" ++"\tin inode % (%s fork) bmap btree block %\n" ++msgstr "" ++"błędny wskaźnik wstecz (lewy) (widziano %llu, blok nadrzędny mówi %)\n" ++"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" + +-#: .././db/type.c:124 +-msgid "no current object\n" +-msgstr "brak bieżącego obiektu\n" ++#: .././repair/scan.c:270 ++#, c-format ++msgid "" ++"bad back (left) sibling pointer (saw %llu should be NULL (0))\n" ++"\tin inode % (%s fork) bmap btree block %\n" ++msgstr "" ++"błędny wskaźnik wstecz (lewy) (widziano %llu, powinien być NULL (0))\n" ++"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" + +-#: .././db/write.c:41 +-msgid "[field or value]..." +-msgstr "[pole lub wartość]..." ++#: .././repair/scan.c:311 ++#, c-format ++msgid "inode 0x%bmap block 0x% claimed, state is %d\n" ++msgstr "i-węzeł 0x% blok bmap 0x% przypisany, stan to %d\n" + +-#: .././db/write.c:42 +-msgid "write value to disk" +-msgstr "zapis wartości na dysk" ++#: .././repair/scan.c:318 ++#, c-format ++msgid "inode 0x% bmap block 0x% claimed, state is %d\n" ++msgstr "i-węzeł 0x% blok bmap 0x% przypisany, stan to %d\n" + +-#: .././db/write.c:58 ++#: .././repair/scan.c:333 ++#, c-format ++msgid "bad state %d, inode % bmap block 0x%\n" ++msgstr "błędny stan %d, i-węzeł % blok bmap 0x%\n" ++ ++#: .././repair/scan.c:360 .././repair/scan.c:411 ++#, c-format ++msgid "inode % bad # of bmap records (%u, min - %u, max - %u)\n" ++msgstr "błędna liczba rekordów bmap w i-węźle % (%u, minimum - %u, maksimum - %u)\n" ++ ++#: .././repair/scan.c:390 ++#, c-format ++msgid "out-of-order bmap key (file offset) in inode %, %s fork, fsbno %\n" ++msgstr "uszkodzony klucz bmap (offset pliku) w i-węźle %, gałęzi %s, fsbno %\n" ++ ++#: .././repair/scan.c:456 ++#, c-format + msgid "" +-"\n" +-" The 'write' command takes on different personalities depending on the\n" +-" type of object being worked with.\n" +-"\n" +-" Write has 3 modes:\n" +-" 'struct mode' - is active anytime you're looking at a filesystem object\n" +-" which contains individual fields (ex: an inode).\n" +-" 'data mode' - is active anytime you set a disk address directly or set\n" +-" the type to 'data'.\n" +-" 'string mode' - only used for writing symlink blocks.\n" +-"\n" +-" Examples:\n" +-" Struct mode: 'write core.uid 23' - set an inode uid field to 23.\n" +-" 'write fname \"hello\\000\"' - write superblock fname.\n" +-" (note: in struct mode strings are not null terminated)\n" +-" 'write fname #6669736800' - write superblock fname with hex.\n" +-" 'write uuid 00112233-4455-6677-8899-aabbccddeeff'\n" +-" - write superblock uuid.\n" +-" Data mode: 'write fill 0xff' - fill the entire block with 0xff's\n" +-" 'write lshift 3' - shift the block 3 bytes to the left\n" +-" 'write sequence 1 5' - write a cycle of number [1-5] through\n" +-" the entire block.\n" +-" String mode: 'write \"This_is_a_filename\" - write null terminated string.\n" +-"\n" +-" In data mode type 'write' by itself for a list of specific commands.\n" +-"\n" ++"correcting bt key (was %llu, now %) in inode %\n" ++"\t\t%s fork, btree block %\n" + msgstr "" +-"\n" +-" Polecenie 'write' ma różne osobowości w zależności od rodzaju obiektu,\n" +-" na jakim pracuje.\n" +-"\n" +-" Zapis ma trzy tryby:\n" +-" 'struct' (strukturalny) - aktywny w przypadku oglądania obiektu systemu\n" +-" plików zawierającego poszczególne pola (np. i-węzeł).\n" +-" 'data' (danych) - aktywny w przypadku bezpośredniego ustawienia adresu\n" +-" na dysku lub ustawienia typu na 'data'.\n" +-" 'string' (znakowy) - używany tylko przy zapisie bloków dowiązań\n" +-" symbolicznych.\n" +-"\n" +-" Przykłady:\n" +-" Tryb strukturalny: 'write core.uid 23' - ustawienie pola uid i-węzła na 23\n" +-" 'write fname \"hello\\000\"' - zapis nazwy pliku sb\n" +-" (uwaga: w trybie strukturalnym łańcuchy nie są zakańczane)\n" +-" 'write fname #6669736800' - zapis nazwy pliku sb w hex.\n" +-" 'write uuid 00112233-4455-6677-8899-aabbccddeeff'\n" +-" - zapis UUID-a superbloku.\n" +-" Tryb danych: 'write fill 0xff' - wypełnienie bloku bajtam 0xff\n" +-" 'write lshift 3' - przesunięcie bloku o 3 bajty w lewo\n" +-" 'write sequence 1 5' zapis cyklicznie liczb [1-5] przez\n" +-" cały blok.\n" +-" Tryb znakowy: 'write \"To_jest_nazwa_pliku\" - zapis łańcucha\n" +-" zakończonego znakiem NUL.\n" +-"\n" +-" W trybie danych samo 'write' wypisze listę bardziej specyficznych poleceń.\n" +-"\n" ++"poprawiono klucz bt (było %llu, jest %) w i-węźle %\n" ++"\t\tgałąź %s, blok b-drzewa %\n" + +-#: .././db/write.c:95 ++#: .././repair/scan.c:468 + #, c-format +-msgid "%s started in read only mode, writing disabled\n" +-msgstr "%s uruchomiono w trybie tylko do odczytu, zapis wyłączony\n" ++msgid "" ++"bad btree key (is %llu, should be %) in inode %\n" ++"\t\t%s fork, btree block %\n" ++msgstr "" ++"błędny klucz b-drzewa (jest %llu, powinno być %) w i-węźle %\n" ++"\t\tgałąź %s, blok b-drzewa %\n" + +-#: .././db/write.c:107 ++#: .././repair/scan.c:486 + #, c-format +-msgid "no handler function for type %s, write unsupported.\n" +-msgstr "brak funkcji obsługującej dla typu %s, zapis nie obsługiwany.\n" ++msgid "" ++"bad fwd (right) sibling pointer (saw % should be NULLDFSBNO)\n" ++"\tin inode % (%s fork) bmap btree block %\n" ++msgstr "" ++"błędny wskaźnik w przód (prawy) (widziano %, powinien być NULLDFSBNO)\n" ++"\tw i-węźle % (gałęzi %s) bloku bmap btree %\n" + +-#: .././db/write.c:167 .././db/write.c:196 .././db/write.c:226 +-#: .././db/write.c:258 .././db/write.c:293 .././db/write.c:342 +-#: .././db/write.c:371 ++#: .././repair/scan.c:544 + #, c-format +-msgid "length (%d) too large for data block size (%d)" +-msgstr "długość (%d) zbyt duża dla rozmiaru bloku danych (%d)" ++msgid "bad magic # %#x in bt%s block %d/%d\n" ++msgstr "błędna liczba magiczna %#x w bloku bt%s %d/%d\n" + +-#: .././db/write.c:559 +-msgid "usage: write fieldname value\n" +-msgstr "składnia: write nazwa-pola wartość\n" ++#: .././repair/scan.c:562 ++#, c-format ++msgid "expected level %d got %d in bt%s block %d/%d\n" ++msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku bt%s %d/%d\n" + +-#: .././db/write.c:565 ++#: .././repair/scan.c:576 + #, c-format +-msgid "unable to parse '%s'.\n" +-msgstr "nie można przeanalizować '%s'.\n" ++msgid "%s freespace btree block claimed (state %d), agno %d, bno %d, suspect %d\n" ++msgstr "blok b-drzewa wolnego miejsca %s przypisany (stan %d), agno %d, bno %d, podejrzany %d\n" + +-#: .././db/write.c:579 +-msgid "parsing error\n" +-msgstr "błąd składni\n" ++#: .././repair/scan.c:596 .././repair/scan.c:697 ++#, c-format ++msgid "bad btree nrecs (%u, min=%u, max=%u) in bt%s block %u/%u\n" ++msgstr "błędna liczba rekordów b-drzewa (%u, min=%u, max=%u) w bt%s, blok %u/%u\n" + +-#: .././db/write.c:598 ++#: .././repair/scan.c:614 + #, c-format +-msgid "unable to convert value '%s'.\n" +-msgstr "nie można przekonwertować wartości '%s'.\n" ++msgid "invalid start block %u in record %u of %s btree block %u/%u\n" ++msgstr "błędny blok początkowy %u w rekordzie %u bloku b-drzewa %s %u/%u\n" + +-#: .././db/write.c:621 +-msgid "usage (in string mode): write \"string...\"\n" +-msgstr "składnia (w trybie znakowym): write \"łańcuch...\"\n" ++#: .././repair/scan.c:620 ++#, c-format ++msgid "invalid length %u in record %u of %s btree block %u/%u\n" ++msgstr "błędna długość %u w rekordzie %u bloku b-drzewa %s %u/%u\n" + +-#: .././db/write.c:663 +-msgid "write: invalid subcommand\n" +-msgstr "write: błędne podpolecenie\n" ++#: .././repair/scan.c:667 ++#, c-format ++msgid "block (%d,%d-%d) multiply claimed by %s space tree, state - %d\n" ++msgstr "blok (%d,%d-%d) wielokrotnie przypisany do drzewa miejsca %s, stan - %d\n" + +-#: .././db/write.c:668 ++#: .././repair/scan.c:774 + #, c-format +-msgid "write %s: invalid number of arguments\n" +-msgstr "write %s: błędna liczba argumentów\n" ++msgid "badly aligned inode rec (starting inode = %)\n" ++msgstr "błędnie wyrównany rekord i-węzła (początkowy i-węzeł = %)\n" + +-#: .././db/write.c:692 +-msgid "usage: write (in data mode)\n" +-msgstr "składnia: write (w trybie danych)\n" ++#: .././repair/scan.c:790 ++#, c-format ++msgid "bad starting inode # (% (0x%x 0x%x)) in ino rec, skipping rec\n" ++msgstr "błędny numer początkowego i-węzła (% (0x%x 0x%x)) w rekordzie i-węzła, pominięto rekord\n" + +-#: .././db/frag.c:173 ++#: .././repair/scan.c:798 + #, c-format +-msgid "actual %llu, ideal %llu, fragmentation factor %.2f%%\n" +-msgstr "obecnie %llu, idealnie %llu, współczynnik fragmentacji %.2f%%\n" ++msgid "bad ending inode # (% (0x%x 0x%zx)) in ino rec, skipping rec\n" ++msgstr "błędny numer końcowego i-węzła (% (0x%x 0x%zx)) w rekordzie i-węzła, pominięto rekord\n" + +-#: .././db/frag.c:214 +-msgid "bad option for frag command\n" +-msgstr "błędna opcja dla polecenia frag\n" ++#: .././repair/scan.c:823 ++#, c-format ++msgid "inode chunk claims used block, inobt block - agno %d, bno %d, inopb %d\n" ++msgstr "część i-węzła odwołuje się do używanego bloku, blok inobt - agno %d, bno %d, inopb %d\n" + +-#: .././db/frag.c:349 ++#: .././repair/scan.c:845 + #, c-format +-msgid "inode %lld actual %lld ideal %lld\n" +-msgstr "i-węzeł %lld obecnie %lld idealnie %lld\n" ++msgid "inode rec for ino % (%d/%d) overlaps existing rec (start %d/%d)\n" ++msgstr "rekord i-węzła dla i-węzła % (%d/%d) nachodzi na istniejący rekord (początek %d/%d)\n" + +-#: .././db/frag.c:443 .././db/frag.c:453 ++#: .././repair/scan.c:892 + #, c-format +-msgid "invalid numrecs (%u) in %s block\n" +-msgstr "błędne numrecs (%u) w bloku %s\n" ++msgid "ir_freecount/free mismatch, inode chunk %d/%u, freecount %d nfree %d\n" ++msgstr "niezgodność ir_freecount/free, porcja i-węzłów %d/%u, freecount %d nfree %d\n" + +-#: .././db/metadump.c:55 +-msgid "[-e] [-g] [-m max_extent] [-w] [-o] filename" +-msgstr "[-e] [-g] [-m max_extent] [-w] [-o] nazwa-pliku" ++#: .././repair/scan.c:939 ++#, c-format ++msgid "bad magic # %#x in inobt block %d/%d\n" ++msgstr "błędna liczba magiczna %#x w bloku inobt %d/%d\n" + +-#: .././db/metadump.c:56 +-msgid "dump metadata to a file" +-msgstr "zrzut metadanych do pliku" ++#: .././repair/scan.c:947 ++#, c-format ++msgid "expected level %d got %d in inobt block %d/%d\n" ++msgstr "oczekiwano poziomu %d, a uzyskano %d w bloku inobt %d/%d\n" + +-#: .././db/metadump.c:86 ++#: .././repair/scan.c:969 + #, c-format +-msgid "" +-"\n" +-" The 'metadump' command dumps the known metadata to a compact file suitable\n" +-" for compressing and sending to an XFS maintainer for corruption analysis \n" +-" or xfs_repair failures.\n" +-"\n" +-" Options:\n" +-" -e -- Ignore read errors and keep going\n" +-" -g -- Display dump progress\n" +-" -m -- Specify max extent size in blocks to copy (default = %d blocks)\n" +-" -o -- Don't obfuscate names and extended attributes\n" +-" -w -- Show warnings of bad metadata information\n" +-"\n" +-msgstr "" +-"\n" +-" Polecenie 'metadump' zrzuca znane metadane do zwięzłego pliku nadającego się\n" +-" do skompresowania i wysłania prowadzącym projekt XFS w celu analizy uszkodzeń\n" +-" lub błędów xfs_repair.\n" +-"\n" +-" Opcje:\n" +-" -e - ignorowanie błędów odczytu i kontynuowanie\n" +-" -g - wyświetlanie postępu\n" +-" -m - określenie maksymalnego rozmiaru ekstentu (w blokach) do skopiowania\n" +-" (domyślnie %d bloków)\n" +-" -o - bez zaciemniania nazw i rozszerzonych atrybutów\n" +-" -w - wyświetlanie ostrzeżeń o błędnych metadanych\n" +-"\n" ++msgid "inode btree block claimed (state %d), agno %d, bno %d, suspect %d\n" ++msgstr "blok b-drzewa i-węzłów przypisany (stan %d), agno %d, bno %d, podejrzany %d\n" + +-#: .././db/freesp.c:106 ++#: .././repair/scan.c:992 + #, c-format +-msgid "total free extents %lld\n" +-msgstr "razem wolnych ekstentów: %lld\n" ++msgid "dubious inode btree block header %d/%d\n" ++msgstr "wątpliwy nagłówek bloku b-drzewa i-węzłów %d/%d\n" + +-#: .././db/freesp.c:107 ++#: .././repair/scan.c:1086 + #, c-format +-msgid "total free blocks %lld\n" +-msgstr "razem wolnych bloków: %lld\n" ++msgid "can't read agfl block for ag %d\n" ++msgstr "nie można odczytać bloku agfl dla ag %d\n" + +-#: .././db/freesp.c:108 ++#: .././repair/scan.c:1090 + #, c-format +-msgid "average free extent size %g\n" +-msgstr "średni rozmiar wolnego ekstentu: %g\n" ++msgid "agfl has bad CRC for ag %d\n" ++msgstr "agfl ma błędną sumę kontrolną dla ag %d\n" + +-#: .././db/freesp.c:199 +-msgid "freesp arguments: [-bcds] [-a agno] [-e binsize] [-h h1]... [-m binmult]\n" +-msgstr "argumenty freesp: [-bcds] [-a agno] [-e binsize] [-h h1]... [-m binmult]\n" ++#: .././repair/scan.c:1111 ++#, c-format ++msgid "bad agbno %u in agfl, agno %d\n" ++msgstr "błędne agbno %u w agfl, agno %d\n" + +-#: .././db/freesp.c:406 +-msgid "from" +-msgstr "od" ++#: .././repair/scan.c:1120 ++#, c-format ++msgid "freeblk count %d != flcount %d in ag %d\n" ++msgstr "liczba freeblk %d != flcount %d w ag %d\n" + +-#: .././db/freesp.c:406 +-msgid "to" +-msgstr "do" ++#: .././repair/scan.c:1146 ++#, c-format ++msgid "bad agbno %u for btbno root, agno %d\n" ++msgstr "błędne agbno %u dla głównego btbno, agno %d\n" + +-#: .././db/freesp.c:406 +-msgid "pct" +-msgstr "proc." ++#: .././repair/scan.c:1158 ++#, c-format ++msgid "bad agbno %u for btbcnt root, agno %d\n" ++msgstr "błędne agbno %u dla głównego btbcnt, agno %d\n" + +-#: .././db/inode.c:385 ++#: .././repair/scan.c:1174 + #, c-format +-msgid "bad value for inode number %s\n" +-msgstr "błędna wartość numeru i-węzła %s\n" ++msgid "agf_btreeblks %u, counted % in ag %u\n" ++msgstr "agf_btreeblks %u, naliczono % w ag %u\n" + +-#: .././db/inode.c:392 ++#: .././repair/scan.c:1197 + #, c-format +-msgid "current inode number is %lld\n" +-msgstr "numer bieżącego i-węzła to %lld\n" ++msgid "bad agbno %u for inobt root, agno %d\n" ++msgstr "błędne agbno %u dla głównego inobt, agno %d\n" + +-#: .././db/inode.c:614 ++#: .././repair/scan.c:1216 + #, c-format +-msgid "bad inode number %lld\n" +-msgstr "błędny numer i-węzła %lld\n" ++msgid "agi unlinked bucket %d is %u in ag %u (inode=%)\n" ++msgstr "niedowiązany kubełek agi %d to %u w ag %u (i-węzeł=%)\n" + +-#: .././db/sb.c:43 +-msgid "set current address to sb header" +-msgstr "ustawienie bieżącego adresu na nagłówek sb" ++#: .././repair/scan.c:1247 ++msgid "can't allocate memory for superblock\n" ++msgstr "nie można przydzielić pamięci dla superbloku\n" + +-#: .././db/sb.c:45 +-msgid "[uuid]" +-msgstr "[uuid]" ++#: .././repair/scan.c:1254 ++msgid "root superblock" ++msgstr "główny superblok" + +-#: .././db/sb.c:46 +-msgid "write/print FS uuid" +-msgstr "zapisanie/wypisanie uuida FS" ++#: .././repair/scan.c:1263 ++msgid "agf block" ++msgstr "blok agf" + +-#: .././db/sb.c:48 +-msgid "[label]" +-msgstr "[etykieta]" ++#: .././repair/scan.c:1272 ++msgid "agi block" ++msgstr "blok agi" + +-#: .././db/sb.c:49 +-msgid "write/print FS label" +-msgstr "zapisanie/wypisanie etykiety FS" ++#: .././repair/scan.c:1293 ++#, c-format ++msgid "reset bad sb for ag %d\n" ++msgstr "przestawiono błędny superblok dla ag %d\n" + +-#: .././db/sb.c:51 +-msgid "[feature | [vnum fnum]]" +-msgstr "[cecha | [vnum fnum]]" ++#: .././repair/scan.c:1296 ++#, c-format ++msgid "would reset bad sb for ag %d\n" ++msgstr "błędny superblok dla ag %d zostałby przestawiony\n" + +-#: .././db/sb.c:52 +-msgid "set feature bit(s) in the sb version field" +-msgstr "ustawienie bitów cech w polu wersji sb" ++#: .././repair/scan.c:1301 ++#, c-format ++msgid "reset bad agf for ag %d\n" ++msgstr "przestawiono błędne agf dla ag %d\n" + +-#: .././db/sb.c:124 +-msgid "" +-"\n" +-" set allocation group superblock\n" +-"\n" +-" Example:\n" +-"\n" +-" 'sb 7' - set location to 7th allocation group superblock, set type to 'sb'\n" +-"\n" +-" Located in the first sector of each allocation group, the superblock\n" +-" contains the base information for the filesystem.\n" +-" The superblock in allocation group 0 is the primary. The copies in the\n" +-" remaining allocation groups only serve as backup for filesystem recovery.\n" +-" The icount/ifree/fdblocks/frextents are only updated in superblock 0.\n" +-"\n" +-msgstr "" +-"\n" +-" ustawienie superbloku grupy alokacji\n" +-"\n" +-" Przykład:\n" +-"\n" +-" 'sb 7' - ustawienie pozycji na superblok 7. grupy alokacji i typu na 'sb'\n" +-"\n" +-" Położony w 1. sektorze każdej grupy alokacji superblok zawiera podstawowe\n" +-" informacje o systemie plików.\n" +-" Superblok w grupie alokacji 0 jest główny. Kopie w pozostałych grupach\n" +-" alokacji służą tylko jako kopie zapasowe do odtwarzania systemu plików.\n" +-" Liczby icount/ifree/fdblocks/frextents są uaktualniane tylko w superbloku 0.\n" +-"\n" ++#: .././repair/scan.c:1304 ++#, c-format ++msgid "would reset bad agf for ag %d\n" ++msgstr "błędne agf dla ag %d zostałoby przestawione\n" + +-#: .././db/sb.c:183 ++#: .././repair/scan.c:1309 + #, c-format +-msgid "can't read superblock for AG %u\n" +-msgstr "nie można odczytać superbloku dla AG %u\n" ++msgid "reset bad agi for ag %d\n" ++msgstr "przestawiono błędne agi dla ag %d\n" + +-#: .././db/sb.c:191 ++#: .././repair/scan.c:1312 + #, c-format +-msgid "bad sb magic # %#x in AG %u\n" +-msgstr "błędna liczba magiczna superbloku %#x w AG %u\n" ++msgid "would reset bad agi for ag %d\n" ++msgstr "błędna agi dla ag %d zostałoby przestawione\n" + +-#: .././db/sb.c:196 ++#: .././repair/scan.c:1317 + #, c-format +-msgid "bad sb version # %#x in AG %u\n" +-msgstr "błędny numer wersji superbloku %#x w AG %u\n" ++msgid "bad uncorrected agheader %d, skipping ag...\n" ++msgstr "błędny nie poprawiony agheader %d, pominięto ag...\n" + +-#: .././db/sb.c:218 +-msgid "aborting - external log specified for FS with an internal log\n" +-msgstr "przerwano - podano log zewnętrzny dla systemu plików z logiem wewnętrznym\n" ++#: .././repair/scan.c:1381 ++msgid "can't get %s for ag %d\n" ++msgstr "nie można uzyskać %s dla ag %d\n" + +-#: .././db/sb.c:224 +-msgid "aborting - no external log specified for FS with an external log\n" +-msgstr "przerwano - nie podano logu zewnętrznego dla systemu plików z logiem zewnętrznym\n" ++#: .././repair/scan.c:1400 ++msgid "no memory for ag header counts\n" ++msgstr "brak pamięci na liczniki nagłówków ag\n" + +-#: .././db/sb.c:242 +-msgid "ERROR: cannot find log head/tail, run xfs_repair\n" +-msgstr "BŁĄD: nie odnaleziono początku/końca logu, proszę uruchomić xfs_repair\n" ++#: .././repair/scan.c:1425 ++#, c-format ++msgid "sb_icount %, counted %\n" ++msgstr "sb_icount %, naliczono %\n" ++ ++#: .././repair/scan.c:1430 ++#, c-format ++msgid "sb_ifree %, counted %\n" ++msgstr "sb_ifree %, naliczono %\n" ++ ++#: .././repair/scan.c:1435 ++#, c-format ++msgid "sb_fdblocks %, counted %\n" ++msgstr "sb_fdblocks %, naliczono %\n" ++ ++#: .././repair/threads.c:90 ++#, c-format ++msgid "cannot create worker threads, error = [%d] %s\n" ++msgstr "nie można utworzyć wątków pracujących, błąd: [%d] %s\n" ++ ++#: .././repair/threads.c:108 ++#, c-format ++msgid "cannot allocate worker item, error = [%d] %s\n" ++msgstr "nie można przydzielić elementu pracującego, błąd: [%d] %s\n" + +-#: .././db/sb.c:247 ++#: .././repair/versions.c:70 + #, c-format ++msgid "bogus quota flags 0x%x set in superblock" ++msgstr "niepoprawne flagi limitów 0x%x ustawione w superbloku" ++ ++#: .././repair/versions.c:76 ++msgid ", bogus flags will be cleared\n" ++msgstr ", błędne flagi zostaną wyczyszczone\n" ++ ++#: .././repair/versions.c:78 ++msgid ", bogus flags would be cleared\n" ++msgstr ", błędne flagi zostałyby wyczyszczone\n" ++ ++#: .././repair/versions.c:132 ++msgid "This filesystem has uninitialized extent flags.\n" ++msgstr "Ten system plików ma niezainicjowane flagi ekstentów.\n" ++ ++#: .././repair/versions.c:140 ++msgid "This filesystem is marked shared.\n" ++msgstr "Ten system plików jest oznaczony jako współdzielony.\n" ++ ++#: .././repair/versions.c:146 + msgid "" +-"ERROR: The filesystem has valuable metadata changes in a log which needs to\n" +-"be replayed. Mount the filesystem to replay the log, and unmount it before\n" +-"re-running %s. If you are unable to mount the filesystem, then use\n" +-"the xfs_repair -L option to destroy the log and attempt a repair.\n" +-"Note that destroying the log may cause corruption -- please attempt a mount\n" +-"of the filesystem before doing this.\n" ++"This filesystem uses feature(s) not yet supported in this release.\n" ++"Please run a more recent version of xfs_repair.\n" + msgstr "" +-"BŁĄD: system plików zawiera wartościowe zmiany metadanych w logu, który\n" +-"musi być odtworzony. Należy podmontować system plików, aby odtworzyć log,\n" +-"a następnie odmontować go przed ponownym uruchomieniem %s. Jeśli\n" +-"systemu plików nie da się podmontować, można użyć opcji -L, aby zniszczyć\n" +-"log i spróbować naprawić system plików.\n" +-"Należy zauważyć, że zniszczenie logu może spowodować uszkodzenia danych -\n" +-"proszę najpierw spróbować podmontować system plików.\n" ++"Ten system plików używa możliwości jeszcze nie obsługiwanych w tym wydaniu.\n" ++"Proszę uruchomić nowszą wersję xfs_repair.\n" + +-#: .././db/sb.c:264 +-msgid "Clearing log and setting UUID\n" +-msgstr "Czyszczenei logu i ustawianie UUID-a\n" ++#: .././repair/versions.c:152 ++#, c-format ++msgid "WARNING: unknown superblock version %d\n" ++msgstr "UWAGA: nieznana wersja superbloku %d\n" + +-#: .././db/sb.c:273 +-msgid "ERROR: cannot clear the log\n" +-msgstr "BŁĄD: nie można wyczyścić logu\n" ++#: .././repair/versions.c:155 ++msgid "This filesystem contains features not understood by this program.\n" ++msgstr "Ten system plików zawiera cechę nie rozumianą przez ten program.\n" + +-#: .././db/sb.c:284 ++#: .././repair/versions.c:163 + msgid "" +-"\n" +-" write/print FS uuid\n" +-"\n" +-" Example:\n" +-"\n" +-" 'uuid' - print UUID\n" +-" 'uuid 01234567-0123-0123-0123-0123456789ab' - write UUID\n" +-" 'uuid generate' - generate and write\n" +-" 'uuid rewrite' - copy UUID from SB 0\n" +-"\n" +-"The print function checks the UUID in each SB and will warn if the UUIDs\n" +-"differ between AGs (the log is not checked). The write commands will\n" +-"set the uuid in all AGs to either a specified value, a newly generated\n" +-"value or the value found in the first superblock (SB 0) respectively.\n" +-"As a side effect of writing the UUID, the log is cleared (which is fine\n" +-"on a CLEANLY unmounted FS).\n" +-"\n" ++"WARNING: you have disallowed superblock-feature-bits-allowed\n" ++"\tbut this superblock has feature bits. The superblock\n" ++"\twill be downgraded. This may cause loss of filesystem meta-data\n" + msgstr "" ++"UWAGA: zabroniono superblock-feature-bits-allowed, ale ten\n" ++"\tsuperblok ma ustawione bity cech. Superblok zostanie zdegradowany.\n" ++"\tMoże to spowodować utratę metadanych systemu plików.\n" ++ ++#: .././repair/versions.c:168 ++msgid "" ++"WARNING: you have disallowed superblock-feature-bits-allowed\n" ++"\tbut this superblock has feature bits. The superblock\n" ++"\twould be downgraded. This might cause loss of filesystem\n" ++"\tmeta-data.\n" ++msgstr "" ++"UWAGA: zabroniono superblock-feature-bits-allowed, ale ten\n" ++"\tsuperblok ma ustawione bity cech. Superblok zostałby zdegradowany.\n" ++"\tMogłoby to spowodować utratę metadanych systemu plików.\n" ++ ++#: .././repair/versions.c:182 ++msgid "" ++"WARNING: you have disallowed attributes but this filesystem\n" ++"\thas attributes. The filesystem will be downgraded and\n" ++"\tall attributes will be removed.\n" ++msgstr "" ++"UWAGA: zabroniono używania atrybutów, ale ten system plików zawiera\n" ++"\tatrybuty. System plików zostanie zdegradowany, a wszystkie\n" ++"\tatrybuty usunięte.\n" ++ ++#: .././repair/versions.c:187 ++msgid "" ++"WARNING: you have disallowed attributes but this filesystem\n" ++"\thas attributes. The filesystem would be downgraded and\n" ++"\tall attributes would be removed.\n" ++msgstr "" ++"UWAGA: zabroniono używania atrybutów, ale ten system plików zawiera\n" ++"\tatrybuty. System plików zostałby zdegradowany, a wszystkie\n" ++"\tatrybuty usunięte.\n" ++ ++#: .././repair/versions.c:200 ++msgid "" ++"WARNING: you have disallowed attr2 attributes but this filesystem\n" ++"\thas attributes. The filesystem will be downgraded and\n" ++"\tall attr2 attributes will be removed.\n" ++msgstr "" ++"UWAGA: zabroniono używania atrybutów attr2, ale ten system plików\n" ++"\tzawiera atrybuty. System plików zostanie zdegradowany, a wszystkie\n" ++"\tatrybuty attr2 usunięte.\n" ++ ++#: .././repair/versions.c:205 ++msgid "" ++"WARNING: you have disallowed attr2 attributes but this filesystem\n" ++"\thas attributes. The filesystem would be downgraded and\n" ++"\tall attr2 attributes would be removed.\n" ++msgstr "" ++"UWAGA: zabroniono używania atrybutów attr2, ale ten system plików\n" ++"\tzawiera atrybuty. System plików zostałby zdegradowany, a wszystkie\n" ++"\tatrybuty attr2 usunięte.\n" ++ ++#: .././repair/versions.c:218 ++msgid "" ++"WARNING: you have disallowed version 2 inodes but this filesystem\n" ++"\thas version 2 inodes. The filesystem will be downgraded and\n" ++"\tall version 2 inodes will be converted to version 1 inodes.\n" ++"\tThis may cause some hard links to files to be destroyed\n" ++msgstr "" ++"UWAGA: zabroniono używania i-węzłów w wersji 2, ale ten system plików\n" ++"\tzawiera i-węzły w wersji 2. System plików zostanie zdegradowany,\n" ++"\ta wszystkie i-węzły w wersji 2 zostaną przekonwertowane do wersji 1.\n" ++"\tMoże to spowodować zniszczenie niektórych twardych dowiązań do\n" ++"\tplików.\n" ++ ++#: .././repair/versions.c:224 ++msgid "" ++"WARNING: you have disallowed version 2 inodes but this filesystem\n" ++"\thas version 2 inodes. The filesystem would be downgraded and\n" ++"\tall version 2 inodes would be converted to version 1 inodes.\n" ++"\tThis might cause some hard links to files to be destroyed\n" ++msgstr "" ++"UWAGA: zabroniono używania i-węzłów w wersji 2, ale ten system plików\n" ++"\tzawiera i-węzły w wersji 2. System plików zostałby zdegradowany,\n" ++"\ta wszystkie i-węzły w wersji 2 zostałyby przekonwertowane do\n" ++"\twersji 1. Mogłoby to spowodować zniszczenie niektórych twardych\n" ++"\tdowiązań do plików.\n" ++ ++#: .././repair/versions.c:238 ++msgid "" ++"WARNING: you have disallowed quotas but this filesystem\n" ++"\thas quotas. The filesystem will be downgraded and\n" ++"\tall quota information will be removed.\n" ++msgstr "" ++"UWAGA: zabroniono używania limitów (quot), ale ten system plików\n" ++"\tzawiera limity. System plików zostanie zdegradowany, a wszystkie\n" ++"\tinformacje o limitach usunięte.\n" ++ ++#: .././repair/versions.c:243 ++msgid "" ++"WARNING: you have disallowed quotas but this filesystem\n" ++"\thas quotas. The filesystem would be downgraded and\n" ++"\tall quota information would be removed.\n" ++msgstr "" ++"UWAGA: zabroniono używania limitów (quot), ale ten system plików\n" ++"\tzawiera limity. System plików zostałby zdegradowany, a wszystkie\n" ++"\tinformacje o limitach usunięte.\n" ++ ++#: .././repair/versions.c:271 ++msgid "" ++"WARNING: you have disallowed aligned inodes but this filesystem\n" ++"\thas aligned inodes. The filesystem will be downgraded.\n" ++"\tThis will permanently degrade the performance of this filesystem.\n" ++msgstr "" ++"UWAGA: zabroniono używania wyrównanych i-węzłów, ale ten system plików\n" ++"\tzawiera wyrównane i-węzły. System plików zostanie zdegradowany.\n" ++"\tTrwale zdegraduje to wydajność tego systemu plików.\n" ++ ++#: .././repair/versions.c:276 ++msgid "" ++"WARNING: you have disallowed aligned inodes but this filesystem\n" ++"\thas aligned inodes. The filesystem would be downgraded.\n" ++"\tThis would permanently degrade the performance of this filesystem.\n" ++msgstr "" ++"UWAGA: zabroniono używania wyrównanych i-węzłów, ale ten system plików\n" ++"\tzawiera wyrównane i-węzły. System plików zostałby zdegradowany.\n" ++"\tTrwale zdegradowałoby to wydajność tego systemu plików.\n" ++ ++#: .././repair/xfs_repair.c:81 ++#, c-format ++msgid "" ++"Usage: %s [options] device\n" + "\n" +-" zapisanie/wypisanie uuida systemu plików\n" +-"\n" +-"Przykład:\n" +-"\n" +-" 'uuid' - wypisanie UUID-a\n" +-" 'uuid 01234567-0123-0123-0123-0123456789ab' - zapisanie UUID-a\n" +-" 'uuid generate' - wygenerowanie i zapisanie\n" +-" 'uuid rewrite' - skopiowanie UUID-a z sb 0\n" +-"\n" +-"Funkcja wypisująca sprawdza UUID w każdym superbloku i ostrzega, jeśli UUID-y\n" +-"się różnią między AG (log nie jest sprawdzany). Polecenia zapisu ustawiają\n" +-"UUID we wszystkich AG odpowiednio na określoną wartość, nowo wygenerowaną\n" +-"wartość lub wartość znalezioną w pierwszym superbloku (SB 0).\n" +-"Jako efekt uboczny zapisu UUID-a czyszczony jest log (co nie jest problemem\n" +-"przy CZYSTO odmontowanym systemie plików).\n" ++"Options:\n" ++" -f The device is a file\n" ++" -L Force log zeroing. Do this as a last resort.\n" ++" -l logdev Specifies the device where the external log resides.\n" ++" -m maxmem Maximum amount of memory to be used in megabytes.\n" ++" -n No modify mode, just checks the filesystem for damage.\n" ++" -P Disables prefetching.\n" ++" -r rtdev Specifies the device where the realtime section resides.\n" ++" -v Verbose output.\n" ++" -c subopts Change filesystem parameters - use xfs_admin.\n" ++" -o subopts Override default behaviour, refer to man page.\n" ++" -t interval Reporting interval in seconds.\n" ++" -d Repair dangerously.\n" ++" -V Reports version and exits.\n" ++msgstr "" ++"Składnia: %s [opcje] urządzenie\n" + "\n" ++"Opcje:\n" ++" -f Urządzenie jest plikiem\n" ++" -L Wymuszenie wyzerowania logu. Wykonywać tylko w ostateczności.\n" ++" -l urz_logu Określenie urządzenia z zewnętrznym logiem.\n" ++" -m maks_pam Maksymalna ilość pamięci do użycia w megabajtach.\n" ++" -n Tryb bez modyfikacji, tylko sprawdzenie systemu plików.\n" ++" -P Wyłączenie prefetch.\n" ++" -r urz_rt Określenie urządzenia z sekcją realtime.\n" ++" -v Szczegółowe wyjście.\n" ++" -c podopcje Zmiana parametrów systemu plików przy użyciu xfs_admina.\n" ++" -o podopcje Zmiana domyślnego zachowania, więcej na stronie manuala.\n" ++" -t czas Okres informowania o postępach w minutach.\n" ++" -d Naprawianie w sposób niebezpieczny.\n" ++" -V Wypisanie informacji o wersji i zakończenie.\n" + +-#: .././db/sb.c:336 .././db/sb.c:488 +-msgid "invalid parameters\n" +-msgstr "błędne parametry\n" ++#: .././repair/xfs_repair.c:107 ++msgid "no error" ++msgstr "brak błędu" ++ ++#: .././repair/xfs_repair.c:108 ++msgid "bad magic number" ++msgstr "błędna liczba magiczna" ++ ++#: .././repair/xfs_repair.c:109 ++msgid "bad blocksize field" ++msgstr "błędne pole blocksize" ++ ++#: .././repair/xfs_repair.c:110 ++msgid "bad blocksize log field" ++msgstr "błędne pole logu blocksize" ++ ++#: .././repair/xfs_repair.c:111 ++msgid "bad or unsupported version" ++msgstr "błędna lub nie obsługiwana wersja" ++ ++#: .././repair/xfs_repair.c:113 ++msgid "filesystem mkfs-in-progress bit set" ++msgstr "ustawiony bit mkfs-in-progress systemu plików" ++ ++#: .././repair/xfs_repair.c:115 ++msgid "inconsistent filesystem geometry information" ++msgstr "niespójne informacje o geometrii systemu plików" ++ ++#: .././repair/xfs_repair.c:117 ++msgid "bad inode size or inconsistent with number of inodes/block" ++msgstr "błędny rozmiar i-węzła lub niespójność z liczbą i-węzłów/blok" + +-#: .././db/sb.c:343 .././db/sb.c:495 .././db/sb.c:640 +-#, c-format +-msgid "%s: not in expert mode, writing disabled\n" +-msgstr "%s: nie w trybie expert, zapis wyłączony\n" ++#: .././repair/xfs_repair.c:118 ++msgid "bad sector size" ++msgstr "błędny rozmiar sektora" + +-#: .././db/sb.c:355 +-msgid "failed to read UUID from AG 0\n" +-msgstr "nie udało się odczytać UUID-a z AG 0\n" ++#: .././repair/xfs_repair.c:120 ++msgid "AGF geometry info conflicts with filesystem geometry" ++msgstr "informacje o geometrii AGF są w konflikcie z geometrią systemu plików" + +-#: .././db/sb.c:360 +-#, c-format +-msgid "old UUID = %s\n" +-msgstr "stary UUID = %s\n" ++#: .././repair/xfs_repair.c:122 ++msgid "AGI geometry info conflicts with filesystem geometry" ++msgstr "informacje o geometrii AGI są w konflikcie z geometrią systemu plików" + +-#: .././db/sb.c:363 +-msgid "invalid UUID\n" +-msgstr "błędny UUID\n" ++#: .././repair/xfs_repair.c:124 ++msgid "AG superblock geometry info conflicts with filesystem geometry" ++msgstr "informacje o geometrii superbloku AG są w konflikcie z geometrią systemu plików" + +-#: .././db/sb.c:372 .././db/sb.c:500 .././db/sb.c:712 +-msgid "writing all SBs\n" +-msgstr "zapisywanie wszystkich superbloków\n" ++#: .././repair/xfs_repair.c:125 ++msgid "attempted to perform I/O beyond EOF" ++msgstr "próbowano wykonać operację we/wy poza końcem pliku" + +-#: .././db/sb.c:375 +-#, c-format +-msgid "failed to set UUID in AG %d\n" +-msgstr "nie udało się ustawić UUID-a w AG %d\n" ++#: .././repair/xfs_repair.c:127 ++msgid "inconsistent filesystem geometry in realtime filesystem component" ++msgstr "niespójna geometria systemu plików w składniku realtime" + +-#: .././db/sb.c:380 +-#, c-format +-msgid "new UUID = %s\n" +-msgstr "nowy UUID = %s\n" ++#: .././repair/xfs_repair.c:129 ++msgid "maximum indicated percentage of inodes > 100%" ++msgstr "określono maksymalny procent i-węzłów > 100%" + +-#: .././db/sb.c:388 +-#, c-format +-msgid "failed to read UUID from AG %d\n" +-msgstr "nie udało się odczytać UUID-a z AG %d\n" ++#: .././repair/xfs_repair.c:131 ++msgid "inconsistent inode alignment value" ++msgstr "niespójna wartość wyrównania i-węzła" + +-#: .././db/sb.c:394 +-#, c-format +-msgid "warning: UUID in AG %d differs to the primary SB\n" +-msgstr "uwaga: UUID w AG %d różni się od głównego SB\n" ++#: .././repair/xfs_repair.c:133 ++msgid "not enough secondary superblocks with matching geometry" ++msgstr "za mało zapasowych superbloków o pasującej geometrii" + +-#: .././db/sb.c:405 +-msgid "warning - external log specified for FS with an internal log\n" +-msgstr "uwaga: podano log zewnętrzny dla systemu plików z logiem wewnętrznym\n" ++#: .././repair/xfs_repair.c:135 ++msgid "bad stripe unit in superblock" ++msgstr "błędna jednostka pasa w superbloku" + +-#: .././db/sb.c:408 +-msgid "warning - no external log specified for FS with an external log\n" +-msgstr "uwaga: nie podano logu zewnętrznego dla systemu plików z logiem zewnętrznym\n" ++#: .././repair/xfs_repair.c:137 ++msgid "bad stripe width in superblock" ++msgstr "błędna szerokość pasa w superbloku" + +-#: .././db/sb.c:413 +-#, c-format +-msgid "UUID = %s\n" +-msgstr "UUID = %s\n" ++#: .././repair/xfs_repair.c:139 ++msgid "bad shared version number in superblock" ++msgstr "błędny numer wersji współdzielenia w superbloku" + +-#: .././db/sb.c:424 +-msgid "" +-"\n" +-" write/print FS label\n" +-"\n" +-" Example:\n" +-"\n" +-" 'label' - print label\n" +-" 'label 123456789012' - write label\n" +-" 'label --' - write an empty label\n" +-"\n" +-"The print function checks the label in each SB and will warn if the labels\n" +-"differ between AGs. The write commands will set the label in all AGs to the\n" +-"specified value. The maximum length of a label is 12 characters - use of a\n" +-"longer label will result in truncation and a warning will be issued.\n" +-"\n" +-msgstr "" +-"\n" +-" zapisanie/wypisanie etykiety systemu plików\n" +-"\n" +-" Przykład:\n" +-"\n" +-" 'label' - wypisanie etykiety\n" +-" 'label 123456789012' - zapisanie etykiety\n" +-" 'label --' - zapisanie etykiety pustej\n" +-"\n" +-"Funkcja wypisująca sprawdza etykietę w każdym superbloku i ostrzega, jeśli\n" +-"etykiety różnią się między AG. Polecenia zapisu ustawiają etykietw we\n" +-"wszystkich AG na określoną wartość. Maksymalna długość etykiety to 12 znaków;\n" +-"użycie etykiety dłuższej zaskutkuje ucięciem jej i wypisaniem ostrzeżenia.\n" +-"\n" ++#: .././repair/xfs_repair.c:141 ++msgid "bad CRC in superblock" ++msgstr "błędna suma kontrolna w superbloku" + +-#: .././db/sb.c:461 ++#: .././repair/xfs_repair.c:146 + #, c-format +-msgid "%s: truncating label length from %d to %d\n" +-msgstr "%s: skrócono długość etykiety z %d do %d\n" ++msgid "bad error code - %d\n" ++msgstr "błędny kod błędu - %d\n" + +-#: .././db/sb.c:503 ++#: .././repair/xfs_repair.c:154 + #, c-format +-msgid "failed to set label in AG %d\n" +-msgstr "nie udało się ustawić etykiety w AG %d\n" ++msgid "-%c %s option cannot have a value\n" ++msgstr "opcja -%c %s nie przyjmuje wartości\n" + +-#: .././db/sb.c:506 +-#, c-format +-msgid "new label = \"%s\"\n" +-msgstr "nowa etykieta = \"%s\"\n" ++#: .././repair/xfs_repair.c:245 ++msgid "-o ihash option has been removed and will be ignored\n" ++msgstr "opcja -o ihash została usunięta i zostanie zignorowana\n" + +-#: .././db/sb.c:513 +-#, c-format +-msgid "failed to read label in AG %d\n" +-msgstr "nie udało się odczytać etykiety w AG %d\n" ++#: .././repair/xfs_repair.c:250 ++msgid "-o bhash option cannot be used with -m option\n" ++msgstr "opcja -o bhash nie może być użyta wraz z opcją -m\n" + +-#: .././db/sb.c:519 +-#, c-format +-msgid "warning: AG %d label differs\n" +-msgstr "uwaga: etykieta w AG %d różni się\n" ++#: .././repair/xfs_repair.c:302 ++msgid "-m option cannot be used with -o bhash option\n" ++msgstr "opcja -m nie może być użyta wraz z opcją -o bhash\n" + +-#: .././db/sb.c:521 ++#: .././repair/xfs_repair.c:344 + #, c-format +-msgid "label = \"%s\"\n" +-msgstr "etykieta = \"%s\"\n" +- +-#: .././db/sb.c:531 + msgid "" + "\n" +-" set/print feature bits in sb version\n" +-"\n" +-" Example:\n" +-"\n" +-" 'version' - print current feature bits\n" +-" 'version extflg' - enable unwritten extents\n" +-" 'version attr1' - enable v1 inline extended attributes\n" +-" 'version attr2' - enable v2 inline extended attributes\n" +-" 'version log2' - enable v2 log format\n" +-"\n" +-"The version function prints currently enabled features for a filesystem\n" +-"according to the version field of its primary superblock.\n" +-"It can also be used to enable selected features, such as support for\n" +-"unwritten extents. The updated version is written into all AGs.\n" +-"\n" ++"fatal error -- " + msgstr "" + "\n" +-" ustawienie/wypisanie bitów cech w wersji superbloku\n" +-"\n" +-" Przykład:\n" +-"\n" +-" 'version' - wypisanie bieżących bitów cech\n" +-" 'version extflg' - włączenie nie zapisanych ekstentów\n" +-" 'version attr1' - włączenie rozszerzonych atrybutów inline v1\n" +-" 'version attr2' - włączenie rozszerzonych atrybutów inline v2\n" +-" 'version log2' - włączenie formatu logu v2\n" +-"\n" +-"Funkcja 'version' wypisuje aktualnie włączone cechy dla systemu plików\n" +-"zgodnie z polem wersji w głównym superbloku.\n" +-"Może być używana także do włączania wybranych cech, takich jak obsługa\n" +-"nie zapisanych ekstentów. Uaktualniona wersja jest zapisywana we wszystkich\n" +-"AG.\n" +-"\n" +- +-#: .././db/sb.c:560 +-msgid "Superblock has mismatched features2 fields, skipping modification\n" +-msgstr "Superblok ma niepasujące pola features2, pominięto modyfikację\n" +- +-#: .././db/sb.c:659 +-msgid "unwritten extents flag is already enabled\n" +-msgstr "flaga nie zapisanych ekstentów jest już włączona\n" +- +-#: .././db/sb.c:679 +-msgid "version 2 log format is already in use\n" +-msgstr "format logu w wersji 2 jest już w użyciu\n" +- +-#: .././db/sb.c:706 +-#, c-format +-msgid "%s: invalid version change command \"%s\"\n" +-msgstr "%s: błędne polecenie zmiany wersji \"%s\"\n" +- +-#: .././db/sb.c:715 +-#, c-format +-msgid "failed to set versionnum in AG %d\n" +-msgstr "nie udało się ustawić versionnum w AG %d\n" +- +-#: .././db/sb.c:733 +-#, c-format +-msgid "versionnum [0x%x+0x%x] = %s\n" +-msgstr "versionnum [0x%x+0x%x] = %s\n" ++"błąd krytyczny - " + +-#: .././copy/xfs_copy.c:102 ++#: .././repair/xfs_repair.c:456 + #, c-format +-msgid "Check logfile \"%s\" for more details\n" +-msgstr "Więcej szczegółów w pliku logu \"%s\"\n" ++msgid "sb root inode value % %sinconsistent with calculated value %u\n" ++msgstr "wartość i-węzła głównego superbloku % %sniespójna z obliczoną wartością %u\n" + +-#: .././copy/xfs_copy.c:108 ++#: .././repair/xfs_repair.c:463 + #, c-format +-msgid "%s: could not write to logfile \"%s\".\n" +-msgstr "%s: nie udało się zapisać pliku logu \"%s\".\n" ++msgid "resetting superblock root inode pointer to %u\n" ++msgstr "przestawiono wskaźnik i-węzła głównego superbloku na %u\n" + +-#: .././copy/xfs_copy.c:111 ++#: .././repair/xfs_repair.c:467 + #, c-format +-msgid "Aborting XFS copy -- logfile error -- reason: %s\n" +-msgstr "Przerwano XFS copy - błąd pliku logu - przyczyna: %s\n" +- +-#: .././copy/xfs_copy.c:126 .././copy/xfs_copy.c:286 .././copy/xfs_copy.c:563 +-#: .././copy/xfs_copy.c:570 +-msgid "Aborting XFS copy - reason" +-msgstr "Przerwano XFS copy - przyczyna" +- +-#: .././copy/xfs_copy.c:140 +-msgid "THE FOLLOWING COPIES FAILED TO COMPLETE\n" +-msgstr "NASTĘPUJĄCYCH KOPII NIE UDAŁO SIĘ UKOŃCZYĆ\n" +- +-#: .././copy/xfs_copy.c:144 +-msgid "write error" +-msgstr "błąd zapisu" +- +-#: .././copy/xfs_copy.c:146 +-msgid "lseek64 error" +-msgstr "błąd lseek64" ++msgid "would reset superblock root inode pointer to %u\n" ++msgstr "wskaźnik i-węzła głównego superbloku zostałby przestawiony na %u\n" + +-#: .././copy/xfs_copy.c:147 ++#: .././repair/xfs_repair.c:479 + #, c-format +-msgid " at offset %lld\n" +-msgstr " pod offsetem %lld\n" ++msgid "sb realtime bitmap inode % %sinconsistent with calculated value %u\n" ++msgstr "i-węzeł bitmapy realtime superbloku % %sniespójny z obliczoną wartością %u\n" + +-#: .././copy/xfs_copy.c:151 ++#: .././repair/xfs_repair.c:486 + #, c-format +-msgid "All copies completed.\n" +-msgstr "Wszystkie kopie ukończone.\n" ++msgid "resetting superblock realtime bitmap ino pointer to %u\n" ++msgstr "przestawiono wskaźnik i-węzła bitmapy realtime superbloku na %u\n" + +-#: .././copy/xfs_copy.c:154 ++#: .././repair/xfs_repair.c:490 + #, c-format +-msgid "See \"%s\" for more details.\n" +-msgstr "Więcej szczegółów w \"%s\".\n" ++msgid "would reset superblock realtime bitmap ino pointer to %u\n" ++msgstr "wskaźnik i-węzła bitmapy realtime superbloku zostałby przestawiony na %u\n" + +-#: .././copy/xfs_copy.c:255 ++#: .././repair/xfs_repair.c:502 + #, c-format +-msgid "%s: write error on target %d \"%s\" at offset %lld\n" +-msgstr "%s: błąd zapisu przy celu %d \"%s\" pod offsetem %lld\n" ++msgid "sb realtime summary inode % %sinconsistent with calculated value %u\n" ++msgstr "i-węzeł opisu realtime superbloku % %sniespójny z obliczoną wartością %u\n" + +-#: .././copy/xfs_copy.c:260 ++#: .././repair/xfs_repair.c:509 + #, c-format +-msgid "%s: lseek64 error on target %d \"%s\" at offset %lld\n" +-msgstr "%s: błąd lseek64 przy celu %d \"%s\" pod offsetem %lld\n" ++msgid "resetting superblock realtime summary ino pointer to %u\n" ++msgstr "przestawiono wskaźnik i-węzła opisu realtime superbloku na %u\n" + +-#: .././copy/xfs_copy.c:266 ++#: .././repair/xfs_repair.c:513 + #, c-format +-msgid "Aborting target %d - reason" +-msgstr "Przerywano zapis celu %d - przyczyna" +- +-#: .././copy/xfs_copy.c:270 +-msgid "Aborting XFS copy - no more targets.\n" +-msgstr "Przerwano XFS copy - nie ma więcej celów.\n" ++msgid "would reset superblock realtime summary ino pointer to %u\n" ++msgstr "wskaźnik i-węzła opisu realtime superbloku zostałby przestawiony na %u\n" + +-#: .././copy/xfs_copy.c:281 +-#, c-format +-msgid "%s: thread %d died unexpectedly, target \"%s\" incomplete\n" +-msgstr "%s: wątek %d zmarł nieoczekiwanie, cel \"%s\" niekompletny\n" ++#: .././repair/xfs_repair.c:559 ++msgid "" ++"Primary superblock would have been modified.\n" ++"Cannot proceed further in no_modify mode.\n" ++"Exiting now.\n" ++msgstr "" ++"Główny superblok zostałby zmodyfikowany.\n" ++"Nie można kontynuować w trybie bez modyfikacji.\n" ++"Zakończono.\n" + +-#: .././copy/xfs_copy.c:283 +-#, c-format +-msgid "%s: offset was probably %lld\n" +-msgstr "%s: offset prawdopodobnie %lld\n" ++#: .././repair/xfs_repair.c:567 ++msgid "" ++"Primary superblock bad after phase 1!\n" ++"Exiting now.\n" ++msgstr "" ++"Nieprawidłowy główny superblok po fazie 1!\n" ++"Koniec działania.\n" + +-#: .././copy/xfs_copy.c:294 +-#, c-format +-msgid "%s: Unknown child died (should never happen!)\n" +-msgstr "%s: Nieznany potomek zmarł (nie powinno się zdarzyć!)\n" ++#: .././repair/xfs_repair.c:583 ++msgid "" ++"Cannot get host filesystem geometry.\n" ++"Repair may fail if there is a sector size mismatch between\n" ++"the image and the host filesystem.\n" ++msgstr "" ++"Nie można pobrać geometrii systemu plików hosta.\n" ++"Naprawienie może się nie powieść, jeśli istnieje niespójność rozmiaru\n" ++"sektora między obrazem a systemem plików hosta.\n" + +-#: .././copy/xfs_copy.c:304 +-#, c-format +-msgid "Usage: %s [-bd] [-L logfile] source target [target ...]\n" +-msgstr "Składnia: %s [-bd] [-L plik_logu] źródło cel [cel ...]\n" ++#: .././repair/xfs_repair.c:595 ++msgid "" ++"Sector size on host filesystem larger than image sector size.\n" ++"Cannot turn off direct IO, so exiting.\n" ++msgstr "" ++"Rozmiar sektora na systemie plików hosta większy niż rozmiar sektora obrazu.\n" ++"Nie można wyłączyć bezpośredniego we/wy - zakończono działanie.\n" + +-#: .././copy/xfs_copy.c:386 ++#: .././repair/xfs_repair.c:608 + #, c-format +-msgid "%s: lseek64 failure at offset %lld\n" +-msgstr "%s: niepowodzenie lseek64 pod offsetem %lld\n" ++msgid "%s: cannot repair this filesystem. Sorry.\n" ++msgstr "%s: niestety nie można naprawić tego systemu plików.\n" + +-#: .././copy/xfs_copy.c:401 ++#: .././repair/xfs_repair.c:667 + #, c-format +-msgid "assert error: buf->length = %d, buf->size = %d\n" +-msgstr "błąd zapewnienia: buf->length = %d, buf->size = %d\n" ++msgid " - reporting progress in intervals of %s\n" ++msgstr " - informowanie o postępie w odstępach %s\n" + +-#: .././copy/xfs_copy.c:408 ++#: .././repair/xfs_repair.c:712 + #, c-format +-msgid "%s: read failure at offset %lld\n" +-msgstr "%s: błąd odczytu pod offsetem %lld\n" ++msgid " - max_mem = %lu, icount = %, imem = %, dblock = %, dmem = %\n" ++msgstr " - max_mem = %lu, icount = %, imem = %, dblock = %, dmem = %\n" + +-#: .././copy/xfs_copy.c:561 ++#: .././repair/xfs_repair.c:721 + #, c-format +-msgid "%s: couldn't open log file \"%s\"\n" +-msgstr "%s: nie udało się otworzyć pliku logu \"%s\"\n" ++msgid "" ++"Required memory for repair is greater that the maximum specified\n" ++"with the -m option. Please increase it to at least %lu.\n" ++msgstr "" ++"Pamięć wymagana do naprawy przekracza maksimum określone opcją -m.\n" ++"Proszę ją zwiększyć do co najmniej %lu.\n" + +-#: .././copy/xfs_copy.c:568 ++#: .././repair/xfs_repair.c:726 + #, c-format +-msgid "%s: couldn't set up logfile stream\n" +-msgstr "%s: nie udało się ustanowić strumienia pliku logu\n" ++msgid "" ++"Memory available for repair (%luMB) may not be sufficient.\n" ++"At least %luMB is needed to repair this filesystem efficiently\n" ++"If repair fails due to lack of memory, please\n" ++msgstr "" ++"Pamięć dostępna przy naprawie (%luMB) może nie być wystarczająca.\n" ++"Aby wydajnie naprawić ten system plików, niezbędne jest co najmniej %luMB.\n" ++"Jeśli naprawa nie powiedzie się z powodu braku pamięci, proszę\n" + +-#: .././copy/xfs_copy.c:580 +-msgid "Couldn't allocate target array\n" +-msgstr "Nie udało się przydzielić tablicy celów\n" ++#: .././repair/xfs_repair.c:732 ++msgid "turn prefetching off (-P) to reduce the memory footprint.\n" ++msgstr "wyłączyć prefetch (-P), aby zmniejszyć zużycie pamięci.\n" + +-#: .././copy/xfs_copy.c:595 ++#: .././repair/xfs_repair.c:735 + #, c-format +-msgid "%s: couldn't register atexit function.\n" +-msgstr "%s: nie udało się zarejestrować funkcji atexit.\n" ++msgid "increase system RAM and/or swap space to at least %luMB.\n" ++msgstr "proszę rozszerzyć rozmiar RAM systemu i/lub przestrzeni wymiany do co najmniej %luMB.\n" + +-#: .././copy/xfs_copy.c:604 ++#: .././repair/xfs_repair.c:750 + #, c-format +-msgid "%s: couldn't open source \"%s\"\n" +-msgstr "%s: nie udało się otworzyć źródła \"%s\"\n" ++msgid " - block cache size set to %d entries\n" ++msgstr " - rozmiar bufora bloku ustawiony na %d wpisów\n" + +-#: .././copy/xfs_copy.c:610 +-#, c-format +-msgid "%s: couldn't stat source \"%s\"\n" +-msgstr "%s: nie udało się wykonać stat na źródle \"%s\"\n" ++#: .././repair/xfs_repair.c:774 ++msgid "Found unsupported filesystem features. Exiting now.\n" ++msgstr "Znaleziono nie obsługiwane cechy systemu plików. Zakończono.\n" + +-#: .././copy/xfs_copy.c:620 ++#: .././repair/xfs_repair.c:792 + #, c-format +-msgid "%s: Cannot set direct I/O flag on \"%s\".\n" +-msgstr "%s: Nie można ustawić flagi bezpośredniego we/wy na \"%s\".\n" ++msgid "No modify flag set, skipping phase 5\n" ++msgstr "Ustawiono flagę braku modyfikacji, pominięto fazę 5\n" + +-#: .././copy/xfs_copy.c:625 +-#, c-format +-msgid "%s: xfsctl on file \"%s\" failed.\n" +-msgstr "%s: xfsctl na pliku \"%s\" nie powiodło się.\n" ++#: .././repair/xfs_repair.c:811 ++msgid "Inode allocation btrees are too corrupted, skipping phases 6 and 7\n" ++msgstr "B-drzewa alokacji i-węzłów są zbyt uszkodzone, pominięto fazy 6 i 7\n" + +-#: .././copy/xfs_copy.c:648 +-#, c-format +-msgid "%s: Warning -- a filesystem is mounted on the source device.\n" +-msgstr "%s: Uwaga - system plików jest podmontowany na urządzeniu źródłowym.\n" ++#: .././repair/xfs_repair.c:817 ++msgid "Warning: no quota inodes were found. Quotas disabled.\n" ++msgstr "Uwaga: nie znaleziono i-węzłów limitów (quot). Limity wyłączone.\n" + +-#: .././copy/xfs_copy.c:651 +-msgid "\t\tGenerated copies may be corrupt unless the source is\n" +-msgstr "\t\tWygenerowane kopie mogą być uszkodzone o ile źródło nie jest\n" ++#: .././repair/xfs_repair.c:820 ++msgid "Warning: no quota inodes were found. Quotas would be disabled.\n" ++msgstr "Uwaga: nie znaleziono i-węzłów limitów (quot). Limity zostałyby wyłączone.\n" + +-#: .././copy/xfs_copy.c:653 +-msgid "\t\tunmounted or mounted read-only. Copy proceeding...\n" +-msgstr "\t\todmontowane lub podmontowane tylko do odczytu. Kopiowanie w trakcie...\n" ++#: .././repair/xfs_repair.c:825 ++msgid "Warning: quota inodes were cleared. Quotas disabled.\n" ++msgstr "Uwaga: i-węzły limitów (quot) były wyczyszczone. Limity wyłączone.\n" + +-#: .././copy/xfs_copy.c:670 +-#, c-format ++#: .././repair/xfs_repair.c:828 ++msgid "Warning: quota inodes would be cleared. Quotas would be disabled.\n" ++msgstr "Uwaga: i-węzły limitów (quot) zostałyby wyczyszczone. Limity zostałyby wyłączone.\n" ++ ++#: .././repair/xfs_repair.c:834 + msgid "" +-"%s: couldn't initialize XFS library\n" +-"%s: Aborting.\n" ++"Warning: user quota information was cleared.\n" ++"User quotas can not be enforced until limit information is recreated.\n" + msgstr "" +-"%s: nie udało się zainicjować biblioteki XFS\n" +-"%s: Przerwano.\n" ++"Uwaga: informacje o limitach użytkowników były wyczyszczone.\n" ++"Limity użytkowników nie mogą być wymuszone do czasu odtworzenia informacji.\n" + +-#: .././copy/xfs_copy.c:684 +-#, c-format ++#: .././repair/xfs_repair.c:838 + msgid "" +-"%s: %s filesystem failed to initialize\n" +-"%s: Aborting.\n" ++"Warning: user quota information would be cleared.\n" ++"User quotas could not be enforced until limit information was recreated.\n" + msgstr "" +-"%s: Nie powiodła się inicjalizacja systemu plików %s\n" +-"%s: Przerwano.\n" ++"Uwaga: informacje o limitach użytkowników zostałyby wyczyszczone.\n" ++"Limity użytkowników nie mogłyby być wymuszone do czasu odtworzenia informacji.\n" + +-#: .././copy/xfs_copy.c:688 +-#, c-format ++#: .././repair/xfs_repair.c:846 + msgid "" +-"%s %s filesystem failed to initialize\n" +-"%s: Aborting.\n" ++"Warning: group quota information was cleared.\n" ++"Group quotas can not be enforced until limit information is recreated.\n" + msgstr "" +-"%s: Nie powiodła się inicjalizacja systemu plików %s\n" +-"%s: Przerwano.\n" ++"Uwaga: informacje o limitach grup były wyczyszczone.\n" ++"Limity grup nie mogą być wymuszone do czasu odtworzenia informacji.\n" + +-#: .././copy/xfs_copy.c:692 +-#, c-format ++#: .././repair/xfs_repair.c:850 + msgid "" +-"%s: %s has an external log.\n" +-"%s: Aborting.\n" ++"Warning: group quota information would be cleared.\n" ++"Group quotas could not be enforced until limit information was recreated.\n" + msgstr "" +-"%s: %s ma zewnętrzny log.\n" +-"%s: Przerwano.\n" ++"Uwaga: informacje o limitach grup zostałyby wyczyszczone.\n" ++"Limity grup nie mogłyby być wymuszone do czasu odtworzenia informacji.\n" + +-#: .././copy/xfs_copy.c:696 +-#, c-format ++#: .././repair/xfs_repair.c:858 + msgid "" +-"%s: %s has a real-time section.\n" +-"%s: Aborting.\n" ++"Warning: project quota information was cleared.\n" ++"Project quotas can not be enforced until limit information is recreated.\n" + msgstr "" +-"%s: %s ma sekcję real-time.\n" +-"%s: Przerwano.\n" ++"Uwaga: informacje o limitach projektów były wyczyszczone.\n" ++"Limity projektów nie mogą być wymuszone do czasu odtworzenia informacji.\n" + +-#: .././copy/xfs_copy.c:721 ++#: .././repair/xfs_repair.c:862 + msgid "" +-"Error: filesystem block size is smaller than the disk sectorsize.\n" +-"Aborting XFS copy now.\n" ++"Warning: project quota information would be cleared.\n" ++"Project quotas could not be enforced until limit information was recreated.\n" + msgstr "" +-"Błąd: rozmiar bloku systemu plików jest mniejszy niż rozmiar sektora dysku.\n" +-"Przerwano XFS copy.\n" ++"Uwaga: informacje o limitach projektów zostałyby wyczyszczone.\n" ++"Limity projektów nie mogłyby być wymuszone do czasu odtworzenia informacji.\n" + +-#: .././copy/xfs_copy.c:742 +-#, c-format +-msgid "Creating file %s\n" +-msgstr "Tworzenie pliku %s\n" ++#: .././repair/xfs_repair.c:873 ++msgid "No modify flag set, skipping filesystem flush and exiting.\n" ++msgstr "Flaga braku modyfikacji ustawiona, pominięto zrzucanie systemu plików, zakończono.\n" ++ ++#: .././repair/xfs_repair.c:892 ++msgid "Note - quota info will be regenerated on next quota mount.\n" ++msgstr "Uwaga - informacje o limitach zostaną ponownie wygenerowane przy następnym montowaniu.\n" + +-#: .././copy/xfs_copy.c:760 ++#: .././repair/xfs_repair.c:899 + #, c-format + msgid "" +-"%s: a filesystem is mounted on target device \"%s\".\n" +-"%s cannot copy to mounted filesystems. Aborting\n" ++"Note - stripe unit (%d) and width (%d) fields have been reset.\n" ++"Please set with mount -o sunit=,swidth=\n" + msgstr "" +-"%s: na urządzeniu docelowym \"%s\" jest podmontowany system plików.\n" +-"%s nie może kopiować na podmontowane systemy plików. Przerwano.\n" ++"Uwaga - pola jednostki pasa (%d) i szerokości pasa (%d) zostały przestawione.\n" ++"Proszę ustawić przy użyciu mount -o sunit=,swidth=\n" + +-#: .././copy/xfs_copy.c:771 +-#, c-format +-msgid "%s: couldn't open target \"%s\"\n" +-msgstr "%s: nie udało się otworzyć celu \"%s\"\n" ++#: .././repair/xfs_repair.c:922 ++msgid "done\n" ++msgstr "gotowe\n" ++ ++#: .././repair/xfs_repair.c:926 ++msgid "Repair of readonly mount complete. Immediate reboot encouraged.\n" ++msgstr "Naprawa systemu zamontowanego tylko do odczytu zakończona. Zalecany natychmiastowy restart systemu.\n" + +-#: .././copy/xfs_copy.c:781 ++#: .././rtcp/xfs_rtcp.c:30 + #, c-format +-msgid "%s: cannot grow data section.\n" +-msgstr "%s: nie można powiększyć sekcji danych.\n" ++msgid "%s [-e extsize] [-p] [-V] source target\n" ++msgstr "%s [-e rozm_fragmentu] [-p] [-V] źródło cel\n" + +-#: .././copy/xfs_copy.c:789 ++#: .././rtcp/xfs_rtcp.c:69 + #, c-format +-msgid "%s: xfsctl on \"%s\" failed.\n" +-msgstr "%s: xfsctl na \"%s\" nie powiodło się.\n" ++msgid "%s: must specify files to copy\n" ++msgstr "%s: trzeba podać pliki do skopiowania\n" + +-#: .././copy/xfs_copy.c:808 ++#: .././rtcp/xfs_rtcp.c:84 + #, c-format +-msgid "%s: failed to write last block\n" +-msgstr "%s: nie udało się zapisać ostatniego bloku\n" ++msgid "%s: stat64 of %s failed\n" ++msgstr "%s: stat64 na %s nie powiodło się\n" + +-#: .././copy/xfs_copy.c:810 ++#: .././rtcp/xfs_rtcp.c:91 + #, c-format +-msgid "\tIs target \"%s\" too small?\n" +-msgstr "\tCzy cel \"%s\" jest zbyt mały?\n" ++msgid "%s: final argument is not directory\n" ++msgstr "%s: ostatni argument nie jest katalogiem\n" + +-#: .././copy/xfs_copy.c:820 +-msgid "Couldn't initialize global thread mask\n" +-msgstr "Nie udało się zainicjować globalnej maski wątków\n" ++#: .././rtcp/xfs_rtcp.c:138 ++#, c-format ++msgid "%s: failed stat64 on %s: %s\n" ++msgstr "%s: nie udało się wykonać stat64 na %s: %s\n" + +-#: .././copy/xfs_copy.c:827 +-msgid "Error initializing wbuf 0\n" +-msgstr "Błąd inicjalizacji wbuf 0\n" ++#: .././rtcp/xfs_rtcp.c:159 ++#, c-format ++msgid "%s: %s filesystem has no realtime partition\n" ++msgstr "%s: system plików %s nie ma partycji realtime\n" + +-#: .././copy/xfs_copy.c:835 +-msgid "Error initializing btree buf 1\n" +-msgstr "Błąd inicjalizacji btree buf 1\n" ++#: .././rtcp/xfs_rtcp.c:180 .././rtcp/xfs_rtcp.c:208 ++#, c-format ++msgid "%s: open of %s failed: %s\n" ++msgstr "%s: otwarcie %s nie powiodło się: %s\n" + +-#: .././copy/xfs_copy.c:840 +-msgid "Error creating first semaphore.\n" +-msgstr "Błąd tworzenia pierwszego semafora.\n" ++#: .././rtcp/xfs_rtcp.c:197 ++#, c-format ++msgid "%s: set attributes on %s failed: %s\n" ++msgstr "%s: ustawienie atrybutów dla %s nie powiodło się: %s\n" + +-#: .././copy/xfs_copy.c:855 +-msgid "Couldn't malloc space for thread args\n" +-msgstr "Nie udało się przydzielić miejsca na argumenty wątku\n" ++#: .././rtcp/xfs_rtcp.c:215 ++#, c-format ++msgid "%s: get attributes of %s failed: %s\n" ++msgstr "%s: pobranie atrybutów %s nie powiodło się: %s\n" + +-#: .././copy/xfs_copy.c:867 ++#: .././rtcp/xfs_rtcp.c:225 .././rtcp/xfs_rtcp.c:262 + #, c-format +-msgid "Error creating thread mutex %d\n" +-msgstr "Błąd podczas tworzenia sekcji krytycznej %d wątku\n" ++msgid "%s: %s is not a realtime file.\n" ++msgstr "%s: %s nie jest plikiem realtime.\n" + +-#: .././copy/xfs_copy.c:884 ++#: .././rtcp/xfs_rtcp.c:235 + #, c-format +-msgid "Error creating thread for target %d\n" +-msgstr "Błąd podczas tworzenia wątku dla celu %d\n" ++msgid "%s: %s file extent size is %d, instead of %d.\n" ++msgstr "%s: plik %s ma rozmiar ekstentu %d zamiast %d.\n" + +-#: .././copy/xfs_copy.c:974 +-msgid "WARNING: source filesystem inconsistent.\n" +-msgstr "UWAGA: źródłowy system plików niespójny.\n" ++#: .././rtcp/xfs_rtcp.c:248 .././rtcp/xfs_rtcp.c:271 ++#, c-format ++msgid "%s: open of %s source failed: %s\n" ++msgstr "%s: otwarcie źródła %s nie powiodło się: %s\n" + +-#: .././copy/xfs_copy.c:976 +-msgid " A leaf btree rec isn't a leaf. Aborting now.\n" +-msgstr " Liść rekordu b-drzewa nie jest liściem. Przerwano.\n" ++#: .././rtcp/xfs_rtcp.c:285 ++#, c-format ++msgid "%s: couldn't get direct I/O information: %s\n" ++msgstr "%s: nie udało się uzyskać informacji o bezpośrednim we/wy: %s\n" + +-#~ msgid "Unknown inode format.\n" +-#~ msgstr "Nieznany format i-węzła.\n" ++#: .././rtcp/xfs_rtcp.c:295 ++#, c-format ++msgid "%s: extent size %d not a multiple of %d.\n" ++msgstr "%s: rozmiar ekstentu %d nie jest wielokrotnością %d.\n" + +-# XXX msgid bug: "0x" prefix for decimal number +-#~ msgid "inode 0x% bad # of bmap records (%u, min - %u, max - %u)\n" +-#~ msgstr "błędna liczba rekordów bmap w i-węźle 0x% (%u, minimum - %u, maksimum - %u)\n" ++#: .././rtcp/xfs_rtcp.c:309 ++#, c-format ++msgid "The size of %s is not a multiple of %d.\n" ++msgstr "Rozmiar %s nie jest wielokrotnością %d.\n" + +-#~ msgid "could not allocate expanded nlink array\n" +-#~ msgstr "Nie udało się przydzielić rozszerzonej tablicy nlink\n" ++#: .././rtcp/xfs_rtcp.c:312 ++#, c-format ++msgid "%s will be padded to %lld bytes.\n" ++msgstr "%s: zostanie dopełniony do %lld bajtów.\n" + +-#~ msgid "bmap of block #%u of inode % failed\n" +-#~ msgstr "bmap bloku #%u i-węzła % nie powiodło się\n" ++#: .././rtcp/xfs_rtcp.c:318 ++#, c-format ++msgid "Use the -p option to pad %s to a size which is a multiple of %d bytes.\n" ++msgstr "Można użyć opcji -p do dopełnienia %s do rozmiaru będącego wielokrotnością %d bajtów.\n" + +-#~ msgid "error following ag %d unlinked list\n" +-#~ msgstr "błąd podczas podążania za odłączoną listą ag %d\n" ++#: .././rtcp/xfs_rtcp.c:360 ++#, c-format ++msgid "%s: write error: %s\n" ++msgstr "%s: błąd zapisu: %s\n" + +-#~ msgid "ts_alloc: cannot allocate thread specific storage\n" +-#~ msgstr "ts_alloc: nie można przydzielić miejsca dla wątku\n" ++#: .././rtcp/xfs_rtcp.c:388 ++#, c-format ++msgid "%s: could not open %s: %s\n" ++msgstr "%s: nie udało się otworzyć %s: %s\n" +diff --git a/repair/agheader.c b/repair/agheader.c +index fc5dac9..416dbd8 100644 +--- a/repair/agheader.c ++++ b/repair/agheader.c +@@ -245,13 +245,17 @@ compare_sb(xfs_mount_t *mp, xfs_sb_t *sb) + * superblocks, not just the secondary superblocks. + */ + static int +-secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, +- xfs_agnumber_t i) ++secondary_sb_wack( ++ struct xfs_mount *mp, ++ struct xfs_buf *sbuf, ++ struct xfs_sb *sb, ++ xfs_agnumber_t i) + { +- int do_bzero; +- int size; +- char *ip; +- int rval; ++ struct xfs_dsb *dsb = XFS_BUF_TO_SBP(sbuf); ++ int do_bzero = 0; ++ int size; ++ char *ip; ++ int rval = 0;; + + rval = do_bzero = 0; + +@@ -334,12 +338,18 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, + } + + /* +- * quota inodes and flags in secondary superblocks +- * are never set by mkfs. However, they could be set +- * in a secondary if a fs with quotas was growfs'ed since +- * growfs copies the new primary into the secondaries. ++ * quota inodes and flags in secondary superblocks are never set by ++ * mkfs. However, they could be set in a secondary if a fs with quotas ++ * was growfs'ed since growfs copies the new primary into the ++ * secondaries. ++ * ++ * Also, the in-core inode flags now have different meaning to the ++ * on-disk flags, and so libxfs_sb_to_disk cannot directly write the ++ * sb_gquotino/sb_pquotino fields without specific sb_qflags being set. ++ * Hence we need to zero those fields directly in the sb buffer here. + */ +- if (sb->sb_inprogress == 1 && sb->sb_uquotino) { ++ ++ if (sb->sb_inprogress == 1 && sb->sb_uquotino != NULLFSINO) { + if (!no_modify) + sb->sb_uquotino = 0; + if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { +@@ -352,9 +362,11 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, + rval |= XR_AG_SB_SEC; + } + +- if (sb->sb_inprogress == 1 && sb->sb_gquotino) { +- if (!no_modify) ++ if (sb->sb_inprogress == 1 && sb->sb_gquotino != NULLFSINO) { ++ if (!no_modify) { + sb->sb_gquotino = 0; ++ dsb->sb_gquotino = 0; ++ } + if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { + rval |= XR_AG_SB; + do_warn( +@@ -365,9 +377,11 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, + rval |= XR_AG_SB_SEC; + } + +- if (sb->sb_inprogress == 1 && sb->sb_pquotino) { +- if (!no_modify) ++ if (sb->sb_inprogress == 1 && sb->sb_pquotino != NULLFSINO) { ++ if (!no_modify) { + sb->sb_pquotino = 0; ++ dsb->sb_pquotino = 0; ++ } + if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { + rval |= XR_AG_SB; + do_warn( +diff --git a/repair/attr_repair.c b/repair/attr_repair.c +index 5dd7e5f..a27a3ec 100644 +--- a/repair/attr_repair.c ++++ b/repair/attr_repair.c +@@ -25,7 +25,7 @@ + #include "protos.h" + #include "dir2.h" + +-static int xfs_acl_valid(xfs_acl_disk_t *daclp); ++static int xfs_acl_valid(struct xfs_mount *mp, struct xfs_acl *daclp); + static int xfs_mac_valid(xfs_mac_label_t *lp); + + /* +@@ -734,11 +734,15 @@ verify_da_path(xfs_mount_t *mp, + * If value is non-zero, then a remote attribute is being passed in + */ + static int +-valuecheck(char *namevalue, char *value, int namelen, int valuelen) ++valuecheck( ++ struct xfs_mount *mp, ++ char *namevalue, ++ char *value, ++ int namelen, ++ int valuelen) + { + /* for proper alignment issues, get the structs and memmove the values */ + xfs_mac_label_t macl; +- xfs_acl_t thisacl; + void *valuep; + int clearit = 0; + +@@ -746,18 +750,23 @@ valuecheck(char *namevalue, char *value, int namelen, int valuelen) + (strncmp(namevalue, SGI_ACL_DEFAULT, + SGI_ACL_DEFAULT_SIZE) == 0)) { + if (value == NULL) { +- memset(&thisacl, 0, sizeof(xfs_acl_t)); +- memmove(&thisacl, namevalue+namelen, valuelen); +- valuep = &thisacl; ++ valuep = malloc(valuelen); ++ if (!valuep) ++ do_error(_("No memory for ACL check!\n")); ++ memcpy(valuep, namevalue + namelen, valuelen); + } else + valuep = value; + +- if (xfs_acl_valid((xfs_acl_disk_t *)valuep) != 0) { ++ if (xfs_acl_valid(mp, valuep) != 0) { + clearit = 1; + do_warn( + _("entry contains illegal value in attribute named SGI_ACL_FILE " + "or SGI_ACL_DEFAULT\n")); + } ++ ++ if (valuep != value) ++ free(valuep); ++ + } else if (strncmp(namevalue, SGI_MAC_FILE, SGI_MAC_FILE_SIZE) == 0) { + if (value == NULL) { + memset(&macl, 0, sizeof(xfs_mac_label_t)); +@@ -800,6 +809,7 @@ valuecheck(char *namevalue, char *value, int namelen, int valuelen) + */ + static int + process_shortform_attr( ++ struct xfs_mount *mp, + xfs_ino_t ino, + xfs_dinode_t *dip, + int *repair) +@@ -904,7 +914,7 @@ process_shortform_attr( + + /* Only check values for root security attributes */ + if (currententry->flags & XFS_ATTR_ROOT) +- junkit = valuecheck((char *)¤tentry->nameval[0], ++ junkit = valuecheck(mp, (char *)¤tentry->nameval[0], + NULL, currententry->namelen, + currententry->valuelen); + +@@ -1039,6 +1049,7 @@ rmtval_get(xfs_mount_t *mp, xfs_ino_t ino, blkmap_t *blkmap, + + static int + process_leaf_attr_local( ++ struct xfs_mount *mp, + xfs_attr_leafblock_t *leaf, + int i, + xfs_attr_leaf_entry_t *entry, +@@ -1076,7 +1087,7 @@ process_leaf_attr_local( + + /* Only check values for root security attributes */ + if (entry->flags & XFS_ATTR_ROOT) { +- if (valuecheck((char *)&local->nameval[0], NULL, ++ if (valuecheck(mp, (char *)&local->nameval[0], NULL, + local->namelen, be16_to_cpu(local->valuelen))) { + do_warn( + _("bad security value for attribute entry %d in attr block %u, inode %" PRIu64 "\n"), +@@ -1134,7 +1145,7 @@ process_leaf_attr_remote( + i, ino); + goto bad_free_out; + } +- if (valuecheck((char *)&remotep->name[0], value, remotep->namelen, ++ if (valuecheck(mp, (char *)&remotep->name[0], value, remotep->namelen, + be32_to_cpu(remotep->valuelen))) { + do_warn( + _("remote attribute value check failed for entry %d, inode %" PRIu64 "\n"), +@@ -1216,15 +1227,15 @@ process_leaf_attr_block( + break; /* got an overlap */ + } + +- if (entry->flags & XFS_ATTR_LOCAL) +- thissize = process_leaf_attr_local(leaf, i, entry, ++ if (entry->flags & XFS_ATTR_LOCAL) ++ thissize = process_leaf_attr_local(mp, leaf, i, entry, + last_hashval, da_bno, ino); + else + thissize = process_leaf_attr_remote(leaf, i, entry, + last_hashval, da_bno, ino, + mp, blkmap); + if (thissize < 0) { +- clearit = 1; ++ clearit = 1; + break; + } + +@@ -1608,23 +1619,27 @@ process_longform_attr( + + + static int +-xfs_acl_from_disk(struct xfs_acl **aclp, struct xfs_acl_disk *dacl) ++xfs_acl_from_disk( ++ struct xfs_mount *mp, ++ struct xfs_icacl **aclp, ++ struct xfs_acl *dacl) + { ++ struct xfs_icacl *acl; ++ struct xfs_icacl_entry *ace; ++ struct xfs_acl_entry *dace; + int count; +- xfs_acl_t *acl; +- xfs_acl_entry_t *ace; +- xfs_acl_entry_disk_t *dace, *end; ++ int i; + + count = be32_to_cpu(dacl->acl_cnt); +- if (count > XFS_ACL_MAX_ENTRIES) { ++ if (count > XFS_ACL_MAX_ENTRIES(mp)) { + do_warn(_("Too many ACL entries, count %d\n"), count); + *aclp = NULL; + return EINVAL; + } + + +- end = &dacl->acl_entry[0] + count; +- acl = malloc((int)((char *)end - (char *)dacl)); ++ acl = malloc(sizeof(struct xfs_icacl) + ++ count * sizeof(struct xfs_icacl_entry)); + if (!acl) { + do_warn(_("cannot malloc enough for ACL attribute\n")); + do_warn(_("SKIPPING this ACL\n")); +@@ -1633,8 +1648,10 @@ xfs_acl_from_disk(struct xfs_acl **aclp, struct xfs_acl_disk *dacl) + } + + acl->acl_cnt = count; +- ace = &acl->acl_entry[0]; +- for (dace = &dacl->acl_entry[0]; dace < end; ace++, dace++) { ++ for (i = 0; i < count; i++) { ++ ace = &acl->acl_entry[i]; ++ dace = &dacl->acl_entry[i]; ++ + ace->ae_tag = be32_to_cpu(dace->ae_tag); + ace->ae_id = be32_to_cpu(dace->ae_id); + ace->ae_perm = be16_to_cpu(dace->ae_perm); +@@ -1667,7 +1684,7 @@ process_attributes( + if (aformat == XFS_DINODE_FMT_LOCAL) { + ASSERT(be16_to_cpu(asf->hdr.totsize) <= + XFS_DFORK_ASIZE(dip, mp)); +- err = process_shortform_attr(ino, dip, repair); ++ err = process_shortform_attr(mp, ino, dip, repair); + } else if (aformat == XFS_DINODE_FMT_EXTENTS || + aformat == XFS_DINODE_FMT_BTREE) { + err = process_longform_attr(mp, ino, dip, blkmap, +@@ -1686,17 +1703,19 @@ process_attributes( + * Validate an ACL + */ + static int +-xfs_acl_valid(xfs_acl_disk_t *daclp) ++xfs_acl_valid( ++ struct xfs_mount *mp, ++ struct xfs_acl *daclp) + { +- xfs_acl_t *aclp = NULL; +- xfs_acl_entry_t *entry, *e; ++ struct xfs_icacl *aclp = NULL; ++ struct xfs_icacl_entry *entry, *e; + int user = 0, group = 0, other = 0, mask = 0, mask_required = 0; + int i, j; + + if (daclp == NULL) + goto acl_invalid; + +- switch (xfs_acl_from_disk(&aclp, daclp)) { ++ switch (xfs_acl_from_disk(mp, &aclp, daclp)) { + case ENOMEM: + return 0; + case EINVAL: +diff --git a/repair/attr_repair.h b/repair/attr_repair.h +index f42536a..0d0c62c 100644 +--- a/repair/attr_repair.h ++++ b/repair/attr_repair.h +@@ -37,29 +37,49 @@ typedef __int32_t xfs_acl_type_t; + typedef __int32_t xfs_acl_tag_t; + typedef __int32_t xfs_acl_id_t; + +-typedef struct xfs_acl_entry { ++/* ++ * "icacl" = in-core ACL. There is no equivalent in the XFS kernel code, ++ * so they are magic names just for repair. The "acl" types are what the kernel ++ * code uses for the on-disk format names, so use them here too for the on-disk ++ * ACL format definitions. ++ */ ++struct xfs_icacl_entry { + xfs_acl_tag_t ae_tag; + xfs_acl_id_t ae_id; + xfs_acl_perm_t ae_perm; +-} xfs_acl_entry_t; ++}; + +-#define XFS_ACL_MAX_ENTRIES 25 +-typedef struct xfs_acl { +- __int32_t acl_cnt; +- xfs_acl_entry_t acl_entry[XFS_ACL_MAX_ENTRIES]; +-} xfs_acl_t; ++struct xfs_icacl { ++ __int32_t acl_cnt; ++ struct xfs_icacl_entry acl_entry[0]; ++}; + +-typedef struct xfs_acl_entry_disk { ++struct xfs_acl_entry { + __be32 ae_tag; + __be32 ae_id; + __be16 ae_perm; +-} xfs_acl_entry_disk_t; ++ __be16 ae_pad; ++}; + +-typedef struct xfs_acl_disk { +- __be32 acl_cnt; +- xfs_acl_entry_disk_t acl_entry[XFS_ACL_MAX_ENTRIES]; +-} xfs_acl_disk_t; ++struct xfs_acl { ++ __be32 acl_cnt; ++ struct xfs_acl_entry acl_entry[0]; ++}; + ++/* ++ * The number of ACL entries allowed is defined by the on-disk format. ++ * For v4 superblocks, that is limited to 25 entries. For v5 superblocks, it is ++ * limited only by the maximum size of the xattr that stores the information. ++ */ ++#define XFS_ACL_MAX_ENTRIES(mp) \ ++ (xfs_sb_version_hascrc(&mp->m_sb) \ ++ ? (XATTR_SIZE_MAX - sizeof(struct xfs_acl)) / \ ++ sizeof(struct xfs_acl_entry) \ ++ : 25) ++ ++#define XFS_ACL_MAX_SIZE(mp) \ ++ (sizeof(struct xfs_acl) + \ ++ sizeof(struct xfs_acl_entry) * XFS_ACL_MAX_ENTRIES((mp))) + + #define SGI_ACL_FILE "SGI_ACL_FILE" + #define SGI_ACL_DEFAULT "SGI_ACL_DEFAULT" +diff --git a/repair/dir2.c b/repair/dir2.c +index 14c1435..6b8964d 100644 +--- a/repair/dir2.c ++++ b/repair/dir2.c +@@ -28,13 +28,6 @@ + #include "progress.h" + + /* +- * Tag bad directory entries with this. +- * We can't tag them with -1 since that will look like a +- * data_unused_t instead of a data_entry_t. +- */ +-#define BADFSINO ((xfs_ino_t)0xfeffffffffffffffULL) +- +-/* + * Known bad inode list. These are seen when the leaf and node + * block linkages are incorrect. + */ +@@ -596,7 +589,13 @@ _("bad level %d in block %u for directory inode %" PRIu64 "\n"), + */ + ASSERT(cursor->level[this_level].dirty == 0 || + (cursor->level[this_level].dirty && !no_modify)); +- ++ /* ++ * If block looks ok but CRC didn't match, make sure to ++ * recompute it. ++ */ ++ if (!no_modify && ++ cursor->level[this_level].bp->b_error == EFSBADCRC) ++ cursor->level[this_level].dirty = 1; + if (cursor->level[this_level].dirty && !no_modify) + libxfs_writebuf(cursor->level[this_level].bp, 0); + else +@@ -1314,7 +1313,7 @@ process_dir2_data( + * Conditions must either set clearino to zero or set + * clearreason why it's being cleared. + */ +- if (!ino_discovery && ent_ino == BADFSINO) { ++ if (!ino_discovery && dep->name[0] == '/') { + /* + * Don't do a damned thing. We already found this + * (or did it ourselves) during phase 3. +@@ -1401,8 +1400,7 @@ _("entry at block %u offset %" PRIdPTR " in directory inode %" PRIu64 + do_warn( + _("\tclearing inode number in entry at offset %" PRIdPTR "...\n"), + (intptr_t)ptr - (intptr_t)d); +- dep->inumber = cpu_to_be64(BADFSINO); +- ent_ino = BADFSINO; ++ dep->name[0] = '/'; + *dirty = 1; + } else { + do_warn( +@@ -1415,7 +1413,7 @@ _("\twould clear inode number in entry at offset %" PRIdPTR "...\n"), + * discovery is turned on). Otherwise, we'd complain a lot + * during phase 4. + */ +- junkit = ent_ino == BADFSINO; ++ junkit = dep->name[0] == '/'; + nm_illegal = namecheck((char *)dep->name, dep->namelen); + if (ino_discovery && nm_illegal) { + do_warn( +@@ -1424,14 +1422,15 @@ _("entry at block %u offset %" PRIdPTR " in directory inode %" PRIu64 " has ille + dep->namelen, dep->namelen, dep->name); + junkit = 1; + } ++ + /* +- * Now we can mark entries with BADFSINO's bad. ++ * Ensure we write back bad entries for later processing + */ +- if (!no_modify && ent_ino == BADFSINO) { +- dep->name[0] = '/'; ++ if (!no_modify && dep->name[0] == '/') { + *dirty = 1; + junkit = 0; + } ++ + /* + * Special .. entry processing. + */ +@@ -1621,6 +1620,9 @@ _("bad directory block magic # %#x in block %u for directory inode %" PRIu64 "\n + blp = (xfs_dir2_leaf_entry_t *)btp; + rval = process_dir2_data(mp, ino, dip, ino_discovery, dirname, parent, + bp, dot, dotdot, mp->m_dirdatablk, (char *)blp, &dirty); ++ /* If block looks ok but CRC didn't match, make sure to recompute it. */ ++ if (!rval && bp->b_error == EFSBADCRC) ++ dirty = 1; + if (dirty && !no_modify) { + *repair = 1; + libxfs_writebuf(bp, 0); +@@ -1784,6 +1786,12 @@ _("bad sibling back pointer for block %u in directory inode %" PRIu64 "\n"), + } + } + current_hashval = greatest_hashval; ++ /* ++ * If block looks ok but CRC didn't match, make sure to ++ * recompute it. ++ */ ++ if (!no_modify && bp->b_error == EFSBADCRC) ++ buf_dirty = 1; + ASSERT(buf_dirty == 0 || (buf_dirty && !no_modify)); + if (buf_dirty && !no_modify) { + *repair = 1; +@@ -1927,8 +1935,12 @@ _("bad directory block magic # %#x in block %" PRIu64 " for directory inode %" P + i = process_dir2_data(mp, ino, dip, ino_discovery, dirname, + parent, bp, dot, dotdot, (xfs_dablk_t)dbno, + (char *)data + mp->m_dirblksize, &dirty); +- if (i == 0) ++ if (i == 0) { + good++; ++ /* Maybe just CRC is wrong. Make sure we correct it. */ ++ if (bp->b_error == EFSBADCRC) ++ dirty = 1; ++ } + if (dirty && !no_modify) { + *repair = 1; + libxfs_writebuf(bp, 0); +diff --git a/repair/incore.h b/repair/incore.h +index 5419884..5f8c188 100644 +--- a/repair/incore.h ++++ b/repair/incore.h +@@ -381,6 +381,33 @@ void clear_uncertain_ino_cache(xfs_agnumber_t agno); + ((ino_tree_node_t *) ((ino_node_ptr)->avl_node.avl_forw)) + + /* ++ * finobt helpers ++ */ ++static inline ino_tree_node_t * ++findfirst_free_inode_rec(xfs_agnumber_t agno) ++{ ++ ino_tree_node_t *ino_rec; ++ ++ ino_rec = findfirst_inode_rec(agno); ++ ++ while (ino_rec && !ino_rec->ir_free) ++ ino_rec = next_ino_rec(ino_rec); ++ ++ return ino_rec; ++} ++ ++static inline ino_tree_node_t * ++next_free_ino_rec(ino_tree_node_t *ino_rec) ++{ ++ ino_rec = next_ino_rec(ino_rec); ++ ++ while (ino_rec && !ino_rec->ir_free) ++ ino_rec = next_ino_rec(ino_rec); ++ ++ return ino_rec; ++} ++ ++/* + * Has an inode been processed for phase 6 (reference count checking)? + * + * add_inode_refchecked() is set on an inode when it gets traversed +diff --git a/repair/phase5.c b/repair/phase5.c +index b173597..e82eeb7 100644 +--- a/repair/phase5.c ++++ b/repair/phase5.c +@@ -74,6 +74,15 @@ typedef struct bt_status { + bt_stat_level_t level[XFS_BTREE_MAXLEVELS]; + } bt_status_t; + ++/* ++ * extra metadata for the agi ++ */ ++struct agi_stat { ++ xfs_agino_t first_agino; ++ xfs_agino_t count; ++ xfs_agino_t freecount; ++}; ++ + static __uint64_t *sb_icount_ag; /* allocated inodes per ag */ + static __uint64_t *sb_ifree_ag; /* free inodes per ag */ + static __uint64_t *sb_fdblocks_ag; /* free data blocks per ag */ +@@ -869,10 +878,11 @@ build_freespace_tree(xfs_mount_t *mp, xfs_agnumber_t agno, + */ + static void + init_ino_cursor(xfs_mount_t *mp, xfs_agnumber_t agno, bt_status_t *btree_curs, +- __uint64_t *num_inos, __uint64_t *num_free_inos) ++ __uint64_t *num_inos, __uint64_t *num_free_inos, int finobt) + { + __uint64_t ninos; + __uint64_t nfinos; ++ __uint64_t rec_nfinos; + ino_tree_node_t *ino_rec; + int num_recs; + int level; +@@ -908,13 +918,22 @@ init_ino_cursor(xfs_mount_t *mp, xfs_agnumber_t agno, bt_status_t *btree_curs, + * build up statistics + */ + for (num_recs = 0; ino_rec != NULL; ino_rec = next_ino_rec(ino_rec)) { +- ninos += XFS_INODES_PER_CHUNK; +- num_recs++; ++ rec_nfinos = 0; + for (i = 0; i < XFS_INODES_PER_CHUNK; i++) { + ASSERT(is_inode_confirmed(ino_rec, i)); + if (is_inode_free(ino_rec, i)) +- nfinos++; ++ rec_nfinos++; + } ++ ++ /* ++ * finobt only considers records with free inodes ++ */ ++ if (finobt && !rec_nfinos) ++ continue; ++ ++ nfinos += rec_nfinos; ++ ninos += XFS_INODES_PER_CHUNK; ++ num_recs++; + } + + blocks_allocated = lptr->num_blocks = howmany(num_recs, +@@ -1049,9 +1068,8 @@ prop_ino_cursor(xfs_mount_t *mp, xfs_agnumber_t agno, bt_status_t *btree_curs, + * XXX: yet more code that can be shared with mkfs, growfs. + */ + static void +-build_agi(xfs_mount_t *mp, xfs_agnumber_t agno, +- bt_status_t *btree_curs, xfs_agino_t first_agino, +- xfs_agino_t count, xfs_agino_t freecount) ++build_agi(xfs_mount_t *mp, xfs_agnumber_t agno, bt_status_t *btree_curs, ++ bt_status_t *finobt_curs, struct agi_stat *agi_stat) + { + xfs_buf_t *agi_buf; + xfs_agi_t *agi; +@@ -1072,11 +1090,11 @@ build_agi(xfs_mount_t *mp, xfs_agnumber_t agno, + else + agi->agi_length = cpu_to_be32(mp->m_sb.sb_dblocks - + (xfs_drfsbno_t) mp->m_sb.sb_agblocks * agno); +- agi->agi_count = cpu_to_be32(count); ++ agi->agi_count = cpu_to_be32(agi_stat->count); + agi->agi_root = cpu_to_be32(btree_curs->root); + agi->agi_level = cpu_to_be32(btree_curs->num_levels); +- agi->agi_freecount = cpu_to_be32(freecount); +- agi->agi_newino = cpu_to_be32(first_agino); ++ agi->agi_freecount = cpu_to_be32(agi_stat->freecount); ++ agi->agi_newino = cpu_to_be32(agi_stat->first_agino); + agi->agi_dirino = cpu_to_be32(NULLAGINO); + + for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) +@@ -1085,6 +1103,11 @@ build_agi(xfs_mount_t *mp, xfs_agnumber_t agno, + if (xfs_sb_version_hascrc(&mp->m_sb)) + platform_uuid_copy(&agi->agi_uuid, &mp->m_sb.sb_uuid); + ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) { ++ agi->agi_free_root = cpu_to_be32(finobt_curs->root); ++ agi->agi_free_level = cpu_to_be32(finobt_curs->num_levels); ++ } ++ + libxfs_writebuf(agi_buf, 0); + } + +@@ -1094,7 +1117,8 @@ build_agi(xfs_mount_t *mp, xfs_agnumber_t agno, + */ + static void + build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, +- bt_status_t *btree_curs) ++ bt_status_t *btree_curs, __uint32_t magic, ++ struct agi_stat *agi_stat, int finobt) + { + xfs_agnumber_t i; + xfs_agblock_t j; +@@ -1132,11 +1156,11 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); + memset(bt_hdr, 0, mp->m_sb.sb_blocksize); + if (xfs_sb_version_hascrc(&mp->m_sb)) +- xfs_btree_init_block(mp, lptr->buf_p, XFS_IBT_CRC_MAGIC, ++ xfs_btree_init_block(mp, lptr->buf_p, magic, + i, 0, agno, + XFS_BTREE_CRC_BLOCKS); + else +- xfs_btree_init_block(mp, lptr->buf_p, XFS_IBT_MAGIC, ++ xfs_btree_init_block(mp, lptr->buf_p, magic, + i, 0, agno, 0); + } + +@@ -1146,7 +1170,10 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, + * pointers for the parent. that can recurse up to the root + * if required. set the sibling pointers for leaf level here. + */ +- ino_rec = findfirst_inode_rec(agno); ++ if (finobt) ++ ino_rec = findfirst_free_inode_rec(agno); ++ else ++ ino_rec = findfirst_inode_rec(agno); + + if (ino_rec != NULL) + first_agino = ino_rec->ino_startnum; +@@ -1163,11 +1190,11 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); + memset(bt_hdr, 0, mp->m_sb.sb_blocksize); + if (xfs_sb_version_hascrc(&mp->m_sb)) +- xfs_btree_init_block(mp, lptr->buf_p, XFS_IBT_CRC_MAGIC, ++ xfs_btree_init_block(mp, lptr->buf_p, magic, + 0, 0, agno, + XFS_BTREE_CRC_BLOCKS); + else +- xfs_btree_init_block(mp, lptr->buf_p, XFS_IBT_MAGIC, ++ xfs_btree_init_block(mp, lptr->buf_p, magic, + 0, 0, agno, 0); + + bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); +@@ -1198,7 +1225,11 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, + bt_rec[j].ir_freecount = cpu_to_be32(inocnt); + freecount += inocnt; + count += XFS_INODES_PER_CHUNK; +- ino_rec = next_ino_rec(ino_rec); ++ ++ if (finobt) ++ ino_rec = next_free_ino_rec(ino_rec); ++ else ++ ino_rec = next_ino_rec(ino_rec); + } + + if (ino_rec != NULL) { +@@ -1224,7 +1255,11 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnumber_t agno, + } + } + +- build_agi(mp, agno, btree_curs, first_agino, count, freecount); ++ if (agi_stat) { ++ agi_stat->first_agino = first_agino; ++ agi_stat->count = count; ++ agi_stat->freecount = freecount; ++ } + } + + /* +@@ -1470,9 +1505,12 @@ phase5_func( + { + __uint64_t num_inos; + __uint64_t num_free_inos; ++ __uint64_t finobt_num_inos; ++ __uint64_t finobt_num_free_inos; + bt_status_t bno_btree_curs; + bt_status_t bcnt_btree_curs; + bt_status_t ino_btree_curs; ++ bt_status_t fino_btree_curs; + int extra_blocks = 0; + uint num_freeblocks; + xfs_extlen_t freeblks1; +@@ -1480,6 +1518,8 @@ phase5_func( + xfs_extlen_t freeblks2; + #endif + xfs_agblock_t num_extents; ++ __uint32_t magic; ++ struct agi_stat agi_stat = {0,}; + + if (verbose) + do_log(_(" - agno = %d\n"), agno); +@@ -1515,8 +1555,13 @@ phase5_func( + * on-disk btrees (includs pre-allocating all + * required blocks for the trees themselves) + */ +- init_ino_cursor(mp, agno, &ino_btree_curs, +- &num_inos, &num_free_inos); ++ init_ino_cursor(mp, agno, &ino_btree_curs, &num_inos, ++ &num_free_inos, 0); ++ ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) ++ init_ino_cursor(mp, agno, &fino_btree_curs, ++ &finobt_num_inos, &finobt_num_free_inos, ++ 1); + + sb_icount_ag[agno] += num_inos; + sb_ifree_ag[agno] += num_free_inos; +@@ -1611,15 +1656,35 @@ phase5_func( + build_agf_agfl(mp, agno, &bno_btree_curs, + &bcnt_btree_curs, freeblks1, extra_blocks); + /* +- * build inode allocation tree. this also build the agi ++ * build inode allocation tree. + */ +- build_ino_tree(mp, agno, &ino_btree_curs); ++ magic = xfs_sb_version_hascrc(&mp->m_sb) ? ++ XFS_IBT_CRC_MAGIC : XFS_IBT_MAGIC; ++ build_ino_tree(mp, agno, &ino_btree_curs, magic, &agi_stat, 0); + write_cursor(&ino_btree_curs); ++ ++ /* ++ * build free inode tree ++ */ ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) { ++ magic = xfs_sb_version_hascrc(&mp->m_sb) ? ++ XFS_FIBT_CRC_MAGIC : XFS_FIBT_MAGIC; ++ build_ino_tree(mp, agno, &fino_btree_curs, magic, ++ NULL, 1); ++ write_cursor(&fino_btree_curs); ++ } ++ ++ /* build the agi */ ++ build_agi(mp, agno, &ino_btree_curs, &fino_btree_curs, ++ &agi_stat); ++ + /* + * tear down cursors + */ + finish_cursor(&bno_btree_curs); + finish_cursor(&ino_btree_curs); ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) ++ finish_cursor(&fino_btree_curs); + finish_cursor(&bcnt_btree_curs); + /* + * release the incore per-AG bno/bcnt trees so +diff --git a/repair/phase6.c b/repair/phase6.c +index 5ae6a3d..f13069f 100644 +--- a/repair/phase6.c ++++ b/repair/phase6.c +@@ -544,7 +544,6 @@ mk_rbmino(xfs_mount_t *mp) + * commit changes + */ + libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); +- libxfs_trans_ihold(tp, ip); + libxfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_SYNC); + + /* +@@ -801,7 +800,6 @@ mk_rsumino(xfs_mount_t *mp) + * commit changes + */ + libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); +- libxfs_trans_ihold(tp, ip); + libxfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_SYNC); + + /* +@@ -1063,6 +1061,8 @@ mk_orphanage(xfs_mount_t *mp) + + + libxfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_SYNC); ++ IRELE(ip); ++ IRELE(pip); + add_inode_reached(irec,ino_offset); + + return(ino); +@@ -1260,6 +1260,8 @@ mv_orphanage( + + libxfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_SYNC); + } ++ IRELE(ino_p); ++ IRELE(orphanage_ip); + } + + static int +@@ -1330,7 +1332,6 @@ longform_dir2_rebuild( + if (error) + res_failed(error); + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + + if ((error = libxfs_bmap_last_offset(tp, ip, &lastblock, + XFS_DATA_FORK))) +@@ -1370,7 +1371,6 @@ longform_dir2_rebuild( + res_failed(error); + + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + + xfs_bmap_init(&flist, &firstblock); + error = libxfs_dir_createname(tp, ip, &p->name, p->inum, +@@ -1428,7 +1428,6 @@ dir2_kill_block( + if (error) + res_failed(error); + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + libxfs_trans_bjoin(tp, bp); + memset(&args, 0, sizeof(args)); + xfs_bmap_init(&flist, &firstblock); +@@ -1530,9 +1529,8 @@ longform_dir2_entry_check_data( + + *freetabp = freetab = realloc(freetab, FREETAB_SIZE(db + 1)); + if (!freetab) { +- do_error( +- _("realloc failed in longform_dir2_entry_check_data (%zu bytes)\n"), +- FREETAB_SIZE(db + 1)); ++ do_error(_("realloc failed in %s (%zu bytes)\n"), ++ __func__, FREETAB_SIZE(db + 1)); + } + e.v = NULLDATAOFF; + e.s = 0; +@@ -1616,7 +1614,6 @@ longform_dir2_entry_check_data( + if (error) + res_failed(error); + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + libxfs_trans_bjoin(tp, bp); + libxfs_trans_bhold(tp, bp); + xfs_bmap_init(&flist, &firstblock); +@@ -2180,8 +2177,8 @@ longform_dir2_entry_check(xfs_mount_t *mp, + *need_dot = 1; + freetab = malloc(FREETAB_SIZE(ip->i_d.di_size / mp->m_dirblksize)); + if (!freetab) { +- do_error( +- _("malloc failed in longform_dir2_entry_check (%" PRId64 " bytes)\n"), ++ do_error(_("malloc failed in %s (%" PRId64 " bytes)\n"), ++ __func__, + FREETAB_SIZE(ip->i_d.di_size / mp->m_dirblksize)); + exit(1); + } +@@ -2193,6 +2190,10 @@ longform_dir2_entry_check(xfs_mount_t *mp, + } + num_bps = freetab->naents; + bplist = calloc(num_bps, sizeof(struct xfs_buf*)); ++ if (!bplist) ++ do_error(_("calloc failed in %s (%zu bytes)\n"), ++ __func__, num_bps * sizeof(struct xfs_buf*)); ++ + /* is this a block, leaf, or node directory? */ + libxfs_dir2_isblock(NULL, ip, &isblock); + libxfs_dir2_isleaf(NULL, ip, &isleaf); +@@ -2205,16 +2206,26 @@ longform_dir2_entry_check(xfs_mount_t *mp, + int error; + + next_da_bno = da_bno + mp->m_dirblkfsbs - 1; +- if (bmap_next_offset(NULL, ip, &next_da_bno, XFS_DATA_FORK)) ++ if (bmap_next_offset(NULL, ip, &next_da_bno, XFS_DATA_FORK)) { ++ /* ++ * if this is the first block, there isn't anything we ++ * can recover so we just trash it. ++ */ ++ if (da_bno == 0) { ++ fixit++; ++ goto out_fix; ++ } + break; ++ } ++ + db = xfs_dir2_da_to_db(mp, da_bno); + if (db >= num_bps) { + /* more data blocks than expected */ + num_bps = db + 1; + bplist = realloc(bplist, num_bps * sizeof(struct xfs_buf*)); + if (!bplist) +- do_error( +- _("realloc failed in longform_dir2_entry_check (%zu bytes)\n"), ++ do_error(_("realloc failed in %s (%zu bytes)\n"), ++ __func__, + num_bps * sizeof(struct xfs_buf*)); + } + +@@ -2800,7 +2811,6 @@ process_dir_inode( + res_failed(error); + + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + + shortform_dir2_entry_check(mp, ino, ip, &dirty, + irec, ino_offset, +@@ -2848,7 +2858,6 @@ process_dir_inode( + res_failed(error); + + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + + xfs_bmap_init(&flist, &first); + +@@ -2910,7 +2919,6 @@ process_dir_inode( + res_failed(error); + + libxfs_trans_ijoin(tp, ip, 0); +- libxfs_trans_ihold(tp, ip); + + xfs_bmap_init(&flist, &first); + +@@ -2929,7 +2937,7 @@ process_dir_inode( + |XFS_TRANS_SYNC); + } + } +- libxfs_iput(ip, 0); ++ IRELE(ip); + } + + /* +diff --git a/repair/phase7.c b/repair/phase7.c +index 18f2d88..d3fe95a 100644 +--- a/repair/phase7.c ++++ b/repair/phase7.c +@@ -99,7 +99,6 @@ update_inode_nlinks( + set_nlinks(&ip->i_d, ino, nlinks, &dirty); + + if (!dirty) { +- libxfs_trans_iput(tp, ip, 0); + libxfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES); + } else { + libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); +@@ -113,6 +112,7 @@ update_inode_nlinks( + + ASSERT(error == 0); + } ++ IRELE(ip); + } + + void +diff --git a/repair/prefetch.c b/repair/prefetch.c +index 4595310..65f8456 100644 +--- a/repair/prefetch.c ++++ b/repair/prefetch.c +@@ -505,7 +505,7 @@ pf_batch_read( + first_off = LIBXFS_BBTOOFF64(XFS_BUF_ADDR(bplist[0])); + last_off = LIBXFS_BBTOOFF64(XFS_BUF_ADDR(bplist[num-1])) + + XFS_BUF_SIZE(bplist[num-1]); +- while (last_off - first_off > pf_max_bytes) { ++ while (num > 1 && last_off - first_off > pf_max_bytes) { + num--; + last_off = LIBXFS_BBTOOFF64(XFS_BUF_ADDR(bplist[num-1])) + + XFS_BUF_SIZE(bplist[num-1]); +diff --git a/repair/sb.c b/repair/sb.c +index 5e0b0f2..bc421cc 100644 +--- a/repair/sb.c ++++ b/repair/sb.c +@@ -138,6 +138,7 @@ find_secondary_sb(xfs_sb_t *rsb) + for (i = 0; !done && i < bsize; i += BBSIZE) { + c_bufsb = (char *)sb + i; + libxfs_sb_from_disk(&bufsb, (xfs_dsb_t *)c_bufsb); ++ libxfs_sb_quota_from_disk(&bufsb); + + if (verify_sb(c_bufsb, &bufsb, 0) != XR_OK) + continue; +@@ -538,6 +539,7 @@ get_sb(xfs_sb_t *sbp, xfs_off_t off, int size, xfs_agnumber_t agno) + do_error("%s\n", strerror(error)); + } + libxfs_sb_from_disk(sbp, buf); ++ libxfs_sb_quota_from_disk(sbp); + + rval = verify_sb((char *)buf, sbp, agno == 0); + free(buf); +diff --git a/repair/scan.c b/repair/scan.c +index 4b0ea04..f29ff8d 100644 +--- a/repair/scan.c ++++ b/repair/scan.c +@@ -46,6 +46,7 @@ struct aghdr_cnts { + __uint64_t fdblocks; + __uint64_t icount; + __uint64_t ifreecount; ++ __uint32_t fibtfreecount; + }; + + void +@@ -897,6 +898,208 @@ _("inode rec for ino %" PRIu64 " (%d/%d) overlaps existing rec (start %d/%d)\n") + return suspect; + } + ++static int ++scan_single_finobt_chunk( ++ xfs_agnumber_t agno, ++ xfs_inobt_rec_t *rp, ++ int suspect) ++{ ++ xfs_ino_t lino; ++ xfs_agino_t ino; ++ xfs_agblock_t agbno; ++ int j; ++ int nfree; ++ int off; ++ int state; ++ ino_tree_node_t *first_rec, *last_rec, *ino_rec; ++ ++ ino = be32_to_cpu(rp->ir_startino); ++ off = XFS_AGINO_TO_OFFSET(mp, ino); ++ agbno = XFS_AGINO_TO_AGBNO(mp, ino); ++ lino = XFS_AGINO_TO_INO(mp, agno, ino); ++ ++ /* ++ * on multi-block block chunks, all chunks start at the beginning of the ++ * block. with multi-chunk blocks, all chunks must start on 64-inode ++ * boundaries since each block can hold N complete chunks. if fs has ++ * aligned inodes, all chunks must start at a fs_ino_alignment*N'th ++ * agbno. skip recs with badly aligned starting inodes. ++ */ ++ if (ino == 0 || ++ (inodes_per_block <= XFS_INODES_PER_CHUNK && off != 0) || ++ (inodes_per_block > XFS_INODES_PER_CHUNK && ++ off % XFS_INODES_PER_CHUNK != 0) || ++ (fs_aligned_inodes && agbno % fs_ino_alignment != 0)) { ++ do_warn( ++ _("badly aligned finobt inode rec (starting inode = %" PRIu64 ")\n"), ++ lino); ++ suspect++; ++ } ++ ++ /* ++ * verify numeric validity of inode chunk first before inserting into a ++ * tree. don't have to worry about the overflow case because the ++ * starting ino number of a chunk can only get within 255 inodes of max ++ * (NULLAGINO). if it gets closer, the agino number will be illegal as ++ * the agbno will be too large. ++ */ ++ if (verify_aginum(mp, agno, ino)) { ++ do_warn( ++_("bad starting inode # (%" PRIu64 " (0x%x 0x%x)) in finobt rec, skipping rec\n"), ++ lino, agno, ino); ++ return ++suspect; ++ } ++ ++ if (verify_aginum(mp, agno, ++ ino + XFS_INODES_PER_CHUNK - 1)) { ++ do_warn( ++_("bad ending inode # (%" PRIu64 " (0x%x 0x%zx)) in finobt rec, skipping rec\n"), ++ lino + XFS_INODES_PER_CHUNK - 1, ++ agno, ++ ino + XFS_INODES_PER_CHUNK - 1); ++ return ++suspect; ++ } ++ ++ /* ++ * cross check state of each block containing inodes referenced by the ++ * finobt against what we have already scanned from the alloc inobt. ++ */ ++ if (off == 0 && !suspect) { ++ for (j = 0; ++ j < XFS_INODES_PER_CHUNK; ++ j += mp->m_sb.sb_inopblock) { ++ agbno = XFS_AGINO_TO_AGBNO(mp, ino + j); ++ ++ state = get_bmap(agno, agbno); ++ if (state == XR_E_INO) { ++ continue; ++ } else if ((state == XR_E_UNKNOWN) || ++ (state == XR_E_INUSE_FS && agno == 0 && ++ ino + j >= first_prealloc_ino && ++ ino + j < last_prealloc_ino)) { ++ do_warn( ++_("inode chunk claims untracked block, finobt block - agno %d, bno %d, inopb %d\n"), ++ agno, agbno, mp->m_sb.sb_inopblock); ++ ++ set_bmap(agno, agbno, XR_E_INO); ++ suspect++; ++ } else { ++ do_warn( ++_("inode chunk claims used block, finobt block - agno %d, bno %d, inopb %d\n"), ++ agno, agbno, mp->m_sb.sb_inopblock); ++ return ++suspect; ++ } ++ } ++ } ++ ++ /* ++ * ensure we have an incore entry for each chunk ++ */ ++ find_inode_rec_range(mp, agno, ino, ino + XFS_INODES_PER_CHUNK, ++ &first_rec, &last_rec); ++ ++ if (first_rec) { ++ if (suspect) ++ return suspect; ++ ++ /* ++ * verify consistency between finobt record and incore state ++ */ ++ if (first_rec->ino_startnum != ino) { ++ do_warn( ++_("finobt rec for ino %" PRIu64 " (%d/%u) does not match existing rec (%d/%d)\n"), ++ lino, agno, ino, agno, first_rec->ino_startnum); ++ return ++suspect; ++ } ++ ++ nfree = 0; ++ for (j = 0; j < XFS_INODES_PER_CHUNK; j++) { ++ int isfree = XFS_INOBT_IS_FREE_DISK(rp, j); ++ ++ if (isfree) ++ nfree++; ++ ++ /* ++ * inode allocation state should be consistent between ++ * the inobt and finobt ++ */ ++ if (!suspect && ++ isfree != is_inode_free(first_rec, j)) ++ suspect++; ++ } ++ ++ goto check_freecount; ++ } ++ ++ /* ++ * the finobt contains a record that the previous alloc inobt scan never ++ * found. insert the inodes into the appropriate tree. ++ */ ++ do_warn(_("undiscovered finobt record, ino %" PRIu64 " (%d/%u)\n"), ++ lino, agno, ino); ++ ++ if (!suspect) { ++ /* ++ * inodes previously inserted into the uncertain tree should be ++ * superceded by these when the uncertain tree is processed ++ */ ++ nfree = 0; ++ if (XFS_INOBT_IS_FREE_DISK(rp, 0)) { ++ nfree++; ++ ino_rec = set_inode_free_alloc(mp, agno, ino); ++ } else { ++ ino_rec = set_inode_used_alloc(mp, agno, ino); ++ } ++ for (j = 1; j < XFS_INODES_PER_CHUNK; j++) { ++ if (XFS_INOBT_IS_FREE_DISK(rp, j)) { ++ nfree++; ++ set_inode_free(ino_rec, j); ++ } else { ++ set_inode_used(ino_rec, j); ++ } ++ } ++ } else { ++ /* ++ * this should handle the case where the inobt scan may have ++ * already added uncertain inodes ++ */ ++ nfree = 0; ++ for (j = 0; j < XFS_INODES_PER_CHUNK; j++) { ++ if (XFS_INOBT_IS_FREE_DISK(rp, j)) { ++ add_aginode_uncertain(mp, agno, ino + j, 1); ++ nfree++; ++ } else { ++ add_aginode_uncertain(mp, agno, ino + j, 0); ++ } ++ } ++ } ++ ++check_freecount: ++ ++ /* ++ * Verify that the record freecount matches the actual number of free ++ * inodes counted in the record. Don't increment 'suspect' here, since ++ * we have already verified the allocation state of the individual ++ * inodes against the in-core state. This will have already incremented ++ * 'suspect' if something is wrong. If suspect hasn't been set at this ++ * point, these warnings mean that we have a simple freecount ++ * inconsistency or a stray finobt record (as opposed to a broader tree ++ * corruption). Issue a warning and continue the scan. The final btree ++ * reconstruction will correct this naturally. ++ */ ++ if (nfree != be32_to_cpu(rp->ir_freecount)) { ++ do_warn( ++_("finobt ir_freecount/free mismatch, inode chunk %d/%u, freecount %d nfree %d\n"), ++ agno, ino, be32_to_cpu(rp->ir_freecount), nfree); ++ } ++ ++ if (!nfree) { ++ do_warn( ++_("finobt record with no free inodes, inode chunk %d/%u\n"), agno, ino); ++ } ++ ++ return suspect; ++} + + /* + * this one walks the inode btrees sucking the info there into +@@ -1005,12 +1208,29 @@ _("inode btree block claimed (state %d), agno %d, bno %d, suspect %d\n"), + * the block. skip processing of bogus records. + */ + for (i = 0; i < numrecs; i++) { +- agcnts->agicount += XFS_INODES_PER_CHUNK; +- agcnts->icount += XFS_INODES_PER_CHUNK; +- agcnts->agifreecount += be32_to_cpu(rp[i].ir_freecount); +- agcnts->ifreecount += be32_to_cpu(rp[i].ir_freecount); ++ if (magic == XFS_IBT_MAGIC || ++ magic == XFS_IBT_CRC_MAGIC) { ++ agcnts->agicount += XFS_INODES_PER_CHUNK; ++ agcnts->icount += XFS_INODES_PER_CHUNK; ++ agcnts->agifreecount += ++ be32_to_cpu(rp[i].ir_freecount); ++ agcnts->ifreecount += ++ be32_to_cpu(rp[i].ir_freecount); ++ ++ suspect = scan_single_ino_chunk(agno, &rp[i], ++ suspect); ++ } else { ++ /* ++ * the finobt tracks records with free inodes, ++ * so only the free inode count is expected to be ++ * consistent with the agi ++ */ ++ agcnts->fibtfreecount += ++ be32_to_cpu(rp[i].ir_freecount); + +- suspect = scan_single_ino_chunk(agno, &rp[i], suspect); ++ suspect = scan_single_finobt_chunk(agno, &rp[i], ++ suspect); ++ } + } + + if (suspect) +@@ -1198,6 +1418,20 @@ validate_agi( + be32_to_cpu(agi->agi_root), agno); + } + ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) { ++ bno = be32_to_cpu(agi->agi_free_root); ++ if (bno != 0 && verify_agbno(mp, agno, bno)) { ++ magic = xfs_sb_version_hascrc(&mp->m_sb) ? ++ XFS_FIBT_CRC_MAGIC : XFS_FIBT_MAGIC; ++ scan_sbtree(bno, be32_to_cpu(agi->agi_free_level), ++ agno, 0, scan_inobt, 1, magic, agcnts, ++ &xfs_inobt_buf_ops); ++ } else { ++ do_warn(_("bad agbno %u for finobt root, agno %d\n"), ++ be32_to_cpu(agi->agi_free_root), agno); ++ } ++ } ++ + if (be32_to_cpu(agi->agi_count) != agcnts->agicount) { + do_warn(_("agi_count %u, counted %u in ag %u\n"), + be32_to_cpu(agi->agi_count), agcnts->agicount, agno); +@@ -1208,6 +1442,13 @@ validate_agi( + be32_to_cpu(agi->agi_freecount), agcnts->agifreecount, agno); + } + ++ if (xfs_sb_version_hasfinobt(&mp->m_sb) && ++ be32_to_cpu(agi->agi_freecount) != agcnts->fibtfreecount) { ++ do_warn(_("agi_freecount %u, counted %u in ag %u finobt\n"), ++ be32_to_cpu(agi->agi_freecount), agcnts->fibtfreecount, ++ agno); ++ } ++ + for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) { + xfs_agino_t agino = be32_to_cpu(agi->agi_unlinked[i]); + +@@ -1255,6 +1496,7 @@ scan_ag( + goto out_free_sb; + } + libxfs_sb_from_disk(sb, XFS_BUF_TO_SBP(sbbuf)); ++ libxfs_sb_quota_from_disk(sb); + + agfbuf = libxfs_readbuf(mp->m_dev, + XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)), +diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c +index 08b25f0..9eb2fa4 100644 +--- a/repair/xfs_repair.c ++++ b/repair/xfs_repair.c +@@ -399,14 +399,18 @@ calc_mkfs(xfs_mount_t *mp) + do_inoalign = mp->m_sinoalign; + + /* +- * pre-calculate geometry of ag 0. We know what it looks +- * like because we know what mkfs does -- 3 btree roots, +- * and some number of blocks to prefill the agfl. ++ * Pre-calculate the geometry of ag 0. We know what it looks like ++ * because we know what mkfs does: 2 allocation btree roots (by block ++ * and by size), the inode allocation btree root, the free inode ++ * allocation btree root (if enabled) and some number of blocks to ++ * prefill the agfl. + */ + bnobt_root = howmany(4 * mp->m_sb.sb_sectsize, mp->m_sb.sb_blocksize); + bcntbt_root = bnobt_root + 1; + inobt_root = bnobt_root + 2; + fino_bno = inobt_root + XFS_MIN_FREELIST_RAW(1, 1, mp) + 1; ++ if (xfs_sb_version_hasfinobt(&mp->m_sb)) ++ fino_bno++; + + /* + * If the log is allocated in the first allocation group we need to diff --git a/xfsprogs.spec b/xfsprogs.spec index fa7a906..1c280a3 100644 --- a/xfsprogs.spec +++ b/xfsprogs.spec @@ -6,12 +6,13 @@ Summary: Tools for the XFS filesystem Summary(pl.UTF-8): Narzędzia do systemu plików XFS Name: xfsprogs Version: 3.2.0 -Release: 2 +Release: 3 License: LGPL v2.1 (libhandle), GPL v2 (the rest) Group: Applications/System Source0: ftp://linux-xfs.sgi.com/projects/xfs/cmd_tars/%{name}-%{version}.tar.gz # Source0-md5: 400047b2f6af87c0345b8f0cc00c13db Source1: xfs_lsprojid +Patch100: %{name}-git.patch Patch0: %{name}-miscfix-v2.patch Patch1: %{name}-pl.po-update.patch Patch2: %{name}-repair-tcmalloc.patch @@ -93,8 +94,9 @@ Biblioteki statyczne do XFS. %prep %setup -q +%patch100 -p1 %patch0 -p1 -%patch1 -p1 +#%patch1 -p1 %{?with_tcmalloc:%patch2 -p1} %patch3 -p1 -- 2.44.0