]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Merge tag 'v1.45.6' into next
authorTheodore Ts'o <tytso@mit.edu>
Sun, 22 Mar 2020 02:34:30 +0000 (22:34 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 22 Mar 2020 02:34:30 +0000 (22:34 -0400)
v1.45.6

31 files changed:
README
RELEASE-NOTES
contrib/android/basefs_allocator.c
contrib/android/fsmap.c
debian/changelog
debian/libext2fs2.symbols
debugfs/Android.bp
doc/RelNotes/v1.45.6.txt [new file with mode: 0644]
doc/libext2fs.texinfo
e2fsck/Android.bp
e2fsprogs.lsm
e2fsprogs.spec
lib/Android.bp
lib/blkid/Android.bp
lib/e2p/Android.bp
lib/e2p/e2p.h
lib/e2p/feature.c
lib/et/Android.bp
lib/ext2fs/Android.bp
lib/ext2fs/gen_bitmap.c
lib/support/Android.bp
lib/uuid/Android.bp
misc/Android.bp
misc/mke2fs.8.in
misc/tune2fs.8.in
po/e2fsprogs.pot
po/ms.po
resize/Android.bp
util/android_types.h
util/gen-android-files
version.h

diff --git a/README b/README
index 75cd2fc13ccadc1eaf0fc31f2cb7a9f26ca9ee64..3304a4d98e253141ee2bf73b0bcea30e7fb30b5b 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-       This is the new version (1.45.5) of the second extended file
+       This is the new version (1.45.6) of the second extended file
 system management programs.
 
        From time to time, I release new versions of e2fsprogs, to fix
index df49682243c00acf40bcc0f894520fae6eba0dd1..9387cc6db87b146cd6ba3734e2ebc1fd5fea60f3 120000 (symlink)
@@ -1 +1 @@
-doc/RelNotes/v1.45.5.txt
\ No newline at end of file
+doc/RelNotes/v1.45.6.txt
\ No newline at end of file
index 658a75147dda41ba829d886c92cd10f6bec8f3c8..5c92ddc2d994e1ec8afabf311e70c98de79c4d73 100644 (file)
@@ -9,6 +9,8 @@
 struct base_fs_allocator {
        struct ext2fs_hashmap *entries;
        struct basefs_entry *cur_entry;
+       /* The next expected logical block to allocate for cur_entry. */
+       blk64_t next_lblk;
        /* Blocks which are definitely owned by a single inode in BaseFS. */
        ext2fs_block_bitmap exclusive_block_map;
        /* Blocks which are available to the first inode that requests it. */
@@ -39,6 +41,28 @@ static void fs_free_blocks_range(ext2_filsys fs,
        }
 }
 
+/*
+ * Free any blocks in the bitmap that were reserved but never used. This is
+ * needed to free dedup_block_map and ensure the free block bitmap is
+ * internally consistent.
+ */
+static void fs_free_blocks_bitmap(ext2_filsys fs, ext2fs_block_bitmap bitmap)
+{
+       blk64_t block = 0;
+       blk64_t start = fs->super->s_first_data_block;
+       blk64_t end = ext2fs_blocks_count(fs->super) - 1;
+       errcode_t retval;
+
+       for (;;) {
+               retval = ext2fs_find_first_set_block_bitmap2(bitmap, start, end,
+                       &block);
+               if (retval)
+                       break;
+               ext2fs_unmark_block_bitmap2(fs->block_map, block);
+               start = block + 1;
+       }
+}
+
 static void basefs_allocator_free(ext2_filsys fs,
                                  struct base_fs_allocator *allocator)
 {
@@ -53,6 +77,7 @@ static void basefs_allocator_free(ext2_filsys fs,
                }
                ext2fs_hashmap_free(entries);
        }
+       fs_free_blocks_bitmap(fs, allocator->dedup_block_map);
        ext2fs_free_block_bitmap(allocator->exclusive_block_map);
        ext2fs_free_block_bitmap(allocator->dedup_block_map);
        free(allocator);
@@ -191,29 +216,66 @@ out:
 }
 
 /* Try and acquire the next usable block from the Base FS map. */
-static int get_next_block(ext2_filsys fs, struct base_fs_allocator *allocator,
-                         struct block_range_list* list, blk64_t *ret)
+static errcode_t get_next_block(ext2_filsys fs, struct base_fs_allocator *allocator,
+                               struct block_range_list* list, blk64_t *ret)
 {
        blk64_t block;
        ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map;
        ext2fs_block_bitmap dedup_map = allocator->dedup_block_map;
 
-       while (list->head) {
+       if (!list->head)
+               return EXT2_ET_BLOCK_ALLOC_FAIL;
+
+       block = consume_next_block(list);
+       if (block >= ext2fs_blocks_count(fs->super))
+               return EXT2_ET_BLOCK_ALLOC_FAIL;
+       if (ext2fs_test_block_bitmap2(exclusive_map, block)) {
+               ext2fs_unmark_block_bitmap2(exclusive_map, block);
+               *ret = block;
+               return 0;
+       }
+       if (ext2fs_test_block_bitmap2(dedup_map, block)) {
+               ext2fs_unmark_block_bitmap2(dedup_map, block);
+               *ret = block;
+               return 0;
+       }
+       return EXT2_ET_BLOCK_ALLOC_FAIL;
+}
+
+/*
+ * BaseFS lists blocks in logical block order. However, the allocator hook is
+ * only called if a block needs to be allocated. In the case of a deduplicated
+ * block, or a hole, the hook is not invoked. This means the next block
+ * allocation request will be out of sequence. For example, consider if BaseFS
+ * specifies the following (0 being a hole):
+ *     1 2 3 0 4 5
+ *
+ * If the new file has a hole at logical block 0, we could accidentally
+ * shift the entire expected block list as follows:
+ *     0 1 2 0 3 4
+ *
+ * To account for this, we track the next expected logical block in the
+ * allocator. If the current request is for a later logical block, we skip and
+ * free the intermediate physical blocks that would have been allocated. This
+ * ensures the original block assignment is respected.
+ */
+static void skip_blocks(ext2_filsys fs, struct base_fs_allocator *allocator,
+                       struct blk_alloc_ctx *ctx)
+{
+       blk64_t block;
+       struct block_range_list *list = &allocator->cur_entry->blocks;
+       ext2fs_block_bitmap exclusive_map = allocator->exclusive_block_map;
+
+       while (list->head && allocator->next_lblk < ctx->lblk) {
                block = consume_next_block(list);
                if (block >= ext2fs_blocks_count(fs->super))
                        continue;
                if (ext2fs_test_block_bitmap2(exclusive_map, block)) {
                        ext2fs_unmark_block_bitmap2(exclusive_map, block);
-                       *ret = block;
-                       return 0;
-               }
-               if (ext2fs_test_block_bitmap2(dedup_map, block)) {
-                       ext2fs_unmark_block_bitmap2(dedup_map, block);
-                       *ret = block;
-                       return 0;
+                       ext2fs_unmark_block_bitmap2(fs->block_map, block);
                }
+               allocator->next_lblk++;
        }
-       return -1;
 }
 
 static errcode_t basefs_block_allocator(ext2_filsys fs, blk64_t goal,
@@ -225,6 +287,10 @@ static errcode_t basefs_block_allocator(ext2_filsys fs, blk64_t goal,
        ext2fs_block_bitmap dedup_map = allocator->dedup_block_map;
 
        if (e && ctx && (ctx->flags & BLOCK_ALLOC_DATA)) {
+               if (allocator->next_lblk < ctx->lblk)
+                       skip_blocks(fs, allocator, ctx);
+               allocator->next_lblk = ctx->lblk + 1;
+
                if (!get_next_block(fs, allocator, &e->blocks, ret))
                        return 0;
        }
@@ -234,17 +300,28 @@ static errcode_t basefs_block_allocator(ext2_filsys fs, blk64_t goal,
                ext2fs_mark_block_bitmap2(fs->block_map, *ret);
                return 0;
        }
-       if (retval == EXT2_ET_BLOCK_ALLOC_FAIL) {
-               /* Try to steal a block from the dedup pool. */
-               retval = ext2fs_find_first_set_block_bitmap2(dedup_map,
-                       fs->super->s_first_data_block,
-                       ext2fs_blocks_count(fs->super) - 1, ret);
-               if (!retval) {
-                       ext2fs_unmark_block_bitmap2(dedup_map, *ret);
+       if (retval != EXT2_ET_BLOCK_ALLOC_FAIL)
+               return retval;
+
+       /* Try to steal a block from the dedup pool. */
+       retval = ext2fs_find_first_set_block_bitmap2(dedup_map,
+               fs->super->s_first_data_block,
+               ext2fs_blocks_count(fs->super) - 1, ret);
+       if (!retval) {
+               ext2fs_unmark_block_bitmap2(dedup_map, *ret);
+               return 0;
+       }
+
+       /*
+        * As a last resort, take any block from our file's list. This
+        * risks bloating the diff, but means we are more likely to
+        * successfully build an image.
+        */
+       while (e->blocks.head) {
+               if (!get_next_block(fs, allocator, &e->blocks, ret))
                        return 0;
-               }
        }
-       return retval;
+       return EXT2_ET_BLOCK_ALLOC_FAIL;
 }
 
 void base_fs_alloc_cleanup(ext2_filsys fs)
@@ -264,10 +341,12 @@ errcode_t base_fs_alloc_set_target(ext2_filsys fs, const char *target_path,
        if (mode != S_IFREG)
                return 0;
 
-       if (allocator)
+       if (allocator) {
                allocator->cur_entry = ext2fs_hashmap_lookup(allocator->entries,
                                                      target_path,
                                                      strlen(target_path));
+               allocator->next_lblk = 0;
+       }
        return 0;
 }
 
index 36adb7f0a43ebe797f2efe40b54914e3c4c2cd83..9ee8472dc4f61ba3101e7052b83472ac5ed7194d 100644 (file)
@@ -23,11 +23,51 @@ static int walk_block(ext2_filsys fs  EXT2FS_ATTR((unused)), blk64_t *blocknr,
        return format->add_block(fs, *blocknr, blockcnt < 0, format->private);
 }
 
+static errcode_t ino_iter_extents(ext2_filsys fs, ext2_ino_t ino,
+                                 ext2_extent_handle_t extents,
+                                 struct walk_ext_priv_data *pdata)
+{
+       blk64_t block;
+       errcode_t retval;
+       blk64_t next_lblk = 0;
+       int op = EXT2_EXTENT_ROOT;
+       struct ext2fs_extent extent;
+       struct fsmap_format *format = pdata->format;
+
+       for (;;) {
+               retval = ext2fs_extent_get(extents, op, &extent);
+               if (retval)
+                       break;
+
+               op = EXT2_EXTENT_NEXT;
+
+               if ((extent.e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT) ||
+                   !(extent.e_flags & EXT2_EXTENT_FLAGS_LEAF))
+                       continue;
+
+               for (; next_lblk < extent.e_lblk; next_lblk++)
+                       format->add_block(fs, 0, 0, format->private);
+
+               block = extent.e_pblk;
+               for (; next_lblk < extent.e_lblk + extent.e_len; next_lblk++)
+                       format->add_block(fs, block++, 0, format->private);
+       }
+
+       if (retval == EXT2_ET_EXTENT_NO_NEXT)
+               retval = 0;
+       if (retval) {
+               com_err(__func__, retval, ("getting extents of ino \"%u\""),
+                       ino);
+       }
+       return retval;
+}
+
 static errcode_t ino_iter_blocks(ext2_filsys fs, ext2_ino_t ino,
                                 struct walk_ext_priv_data *pdata)
 {
        errcode_t retval;
        struct ext2_inode inode;
+       ext2_extent_handle_t extents;
        struct fsmap_format *format = pdata->format;
 
        retval = ext2fs_read_inode(fs, ino, &inode);
@@ -38,10 +78,20 @@ static errcode_t ino_iter_blocks(ext2_filsys fs, ext2_ino_t ino,
                return format->inline_data(&(inode.i_block[0]),
                                           format->private);
 
-       retval = ext2fs_block_iterate3(fs, ino, 0, NULL, walk_block, pdata);
-       if (retval)
-               com_err(__func__, retval, _("listing blocks of ino \"%u\""),
-                       ino);
+       retval = ext2fs_extent_open(fs, ino, &extents);
+       if (retval == EXT2_ET_INODE_NOT_EXTENT) {
+               retval = ext2fs_block_iterate3(fs, ino, BLOCK_FLAG_READ_ONLY,
+                       NULL, walk_block, pdata);
+               if (retval) {
+                       com_err(__func__, retval, _("listing blocks of ino \"%u\""),
+                               ino);
+               }
+               return retval;
+       }
+
+       retval = ino_iter_extents(fs, ino, extents, pdata);
+
+       ext2fs_extent_free(extents);
        return retval;
 }
 
index b388f1231eb516b26664c40b4b2a4747e1e93898..4fd1eca47bdcca219c47d5c1b479a29ac1c5ddd0 100644 (file)
@@ -1,3 +1,27 @@
+e2fsprogs (1.45.6-1) unstable; urgency=medium
+
+  * New upstream release
+  * Fixed a number of potential out of bounds memory accesses caused by
+    fuzzed / malicious file systems.
+  * Fix a spurious complaint from e2fsck when a directory which previously
+    had more than 32000 subdirectories has the number of subdirectories
+    drops below 32000.
+  * Improve e2fsck's ability to deal with file systems with a *very* large
+    number of directories.
+  * Debugfs will ignore lines in its command files which start with a
+    comment character ("#").
+  * Fix debugfs so it correctly prints inode numbers > 2**31.
+  * Filefrag now supports very large files (with > 4 billion blocks), as
+    well as block sizes up to 1 GiB.
+  * Mke2fs -d now correctly sets permission with files where the owner
+    permissions are not rwx.
+  * Updated and clarified various man pages
+    (Closes: #953493, #953494, #951808)
+  * Drop as unneeded libattr1-dev as a build dependency (Closes: #953926)
+  * Update the Malay translation from the translation project.
+
+ -- Theodore Y. Ts'o <tytso@mit.edu>  Fri, 20 Mar 2020 23:49:33 -0400
+
 e2fsprogs (1.45.5-2) unstable; urgency=medium
 
   * Fix com_err support on Hurd, which has POSIX E* error code starting at
@@ -9,7 +33,7 @@ e2fsprogs (1.45.5-2) unstable; urgency=medium
 
 e2fsprogs (1.45.5-1) unstable; urgency=medium
 
-  * New upstream feature
+  * New upstream release
   * E2fsck will no longer force a full file system check if time-based
     forced checks are disabled and the last mount time or last write time in
     the superblock are in the future.
index 024630fadcf2e526882f6282441bb87679a78b6f..e4952481a83a57bf7b7ae395485f7472fa89fb70 100644 (file)
@@ -6,6 +6,7 @@ libe2p.so.2 libext2fs2 #MINVER#
  e2p_encmode2string@Base 1.43
  e2p_encoding2str@Base 1.45.1
  e2p_feature2string@Base 1.37
+ e2p_feature_to_string@Base 1.45.6
  e2p_get_encoding_flags@Base 1.45
  e2p_hash2string@Base 1.37
  e2p_is_null_uuid@Base 1.37
@@ -480,6 +481,7 @@ libext2fs.so.2 libext2fs2 #MINVER#
  ext2fs_read_inode_full@Base 1.37
  ext2fs_remove_exit_fn@Base 1.43
  ext2fs_reserve_super_and_bgd@Base 1.37
+ ext2fs_resize_array@Base 1.45.6
  ext2fs_resize_block_bitmap2@Base 1.42
  ext2fs_resize_block_bitmap@Base 1.37
  ext2fs_resize_generic_bitmap@Base 1.37
index 9f9a9f0ce40ee9501857468a97d9bb2280766b76..b9f299b5f46f2ef0eef0aaa2738afa217d01f6be 100644 (file)
@@ -66,6 +66,7 @@ cc_binary {
 cc_binary {
     name: "debugfs_static",
     static_executable: true,
+    host_supported: true,
     defaults: ["debugfs-defaults"],
 
     static_libs: debugfs_libs,
diff --git a/doc/RelNotes/v1.45.6.txt b/doc/RelNotes/v1.45.6.txt
new file mode 100644 (file)
index 0000000..ac822bf
--- /dev/null
@@ -0,0 +1,62 @@
+E2fsprogs 1.45.6 (March 20, 2020)
+==================================
+
+Updates/Fixes since v1.45.5:
+
+UI and Features
+---------------
+
+Debugfs will ignore lines in its command files which start with a
+comment character ("#").
+
+
+Fixes
+-----
+
+Fixed a number of potential out of bounds memory accesses caused by
+fuzzed / malicious file systems.  (Addresses Google Bug: #147849134)
+
+Fix a spurious complaint from e2fsck when a directory which previously
+had more than 32000 subdirectories has the number of subdirectories
+drops below 32000.
+
+Fix an ismounted check when an LVM device is renamed while the device is
+mounted.
+
+Mke2fs -d now correctly sets permission with files where the owner
+permissions are not rwx.
+
+Improve e2fsck's ability to deal with file systems with very large
+number of directories, such that various data structures take more than
+2GiB of memory.  Use better structure packing to improve the memory
+efficiency of these data structures.
+
+Fix debugfs so it correctly prints inode numbers > 2**31.
+
+Filefrag now supports very large files (with > 4 billion blocks), as
+well as block sizes up to 1 GiB.
+
+Updated and clarified various man pages.  (Addresses Debian Bugs:
+#953493, #953494, #951808)
+
+
+
+Performance, Internal Implementation, Development Support etc.
+--------------------------------------------------------------
+
+Reserved the error code EXT2_ET_NO_GDESC (which will be used in
+e2fsprogs v1.46+)
+
+Added a thread-safe variant of e2p_feature2string(),
+e2p_feature_to_string() to the libe2p library.
+
+Fixed portability problems caused by gcc 10.
+
+Fixed portability problem in libcom_err with GNU Hurd.
+
+Fixed various Debian packaging issues.  (Addresses-Debian-Bug: #953926)
+
+Synchronized changes from Android's AOSP e2fsprogs tree.
+
+Update the Malay translation from the translation project.
+
index 3ad28efa02be96a8da81d4c3f944a4462b7980df..51012eb631b962e81bfeb7768ece053271def319 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo    @c -*-texinfo-*-
 @c %**start of header
 @setfilename libext2fs.info
-@settitle The EXT2FS Library (version 1.45.5)
+@settitle The EXT2FS Library (version 1.45.6)
 @synindex tp fn
 @comment %**end of header
 
@@ -60,8 +60,8 @@ by the author.
 
 @title The EXT2FS Library
 @subtitle The EXT2FS Library
-@subtitle Version 1.45.5
-@subtitle January 2020
+@subtitle Version 1.45.6
+@subtitle March 2020
 
 @author by Theodore Ts'o
 
@@ -101,7 +101,7 @@ by the Foundation.
 
 @top The EXT2FS Library
 
-This manual documents the EXT2FS Library, version 1.45.5.
+This manual documents the EXT2FS Library, version 1.45.6.
 
 @menu
 * Introduction to the EXT2FS Library::  
index 5c802ac6dd867e97bd12a8c5144c2e3d1fe4fd56..d410a5e39a4d69f04fb147cbbc72fc6e72ecc352 100644 (file)
@@ -67,3 +67,13 @@ cc_binary {
 
     static_libs: e2fsck_libs,
 }
+
+cc_binary {
+    name: "e2fsck_ramdisk",
+    stem: "e2fsck",
+    static_executable: true,
+    ramdisk: true,
+    defaults: ["e2fsck-defaults"],
+    system_shared_libs: [],
+    static_libs: e2fsck_libs,
+}
index e90b44e9328273e40260e6ba74f77d63c93e37aa..fe9d65e7b9d7bc48c503073aa76269c89ae493e6 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title:          EXT2 Filesystem utilities
-Version:        1.45.5
-Entered-date:   2020-01-07
+Version:        1.45.6
+Entered-date:   2020-03-20
 Description:    The filesystem utilities for the EXT2, EXT3, and EXT4
                filesystems, including e2fsck, mke2fs, dumpe2fs, and others.
 Keywords:       utilities, filesystem, Ext2fs, ext3, ext4
 Author:         tytso@mit.edu (Theodore Tso)
 Maintained-by:  tytso@mit.edu (Theodore Tso)
 Primary-site:   ftp.kernel.org /pub/linux/kernel/people/tytso/e2fsprogs
-                7756kB e2fsprogs-1.45.5.tar.gz
-                1kB    e2fsprogs-1.45.5.lsm
+                7756kB e2fsprogs-1.45.6.tar.gz
+                1kB    e2fsprogs-1.45.6.lsm
 Alternate-site: download.sourceforge.net /pub/sourceforge/e2fsprogs
 Platforms:     linux 1.2.x/1.3.x/2.0.x/2.1.x/2.2.x/2.3.x/2.4.x/2.5.x/2.6.x/3.x/4.x
 Copying-policy: GPL-2/LGPL-2
index ca35cc270c114f62fa0833537a0bf68bc717b08f..7026601bb95f2bd14b1b684940e5c6b1d0897d2d 100644 (file)
@@ -5,7 +5,7 @@
 
 Summary: Utilities for managing ext2/ext3/ext4 filesystems
 Name: e2fsprogs
-Version: 1.45.4
+Version: 1.45.6
 Release: 0
 License: GPLv2
 Group: System Environment/Base
index 77f69da7745408689ca344030f6115cc857c1779..d877475a5859ecbd531b69ca7a82f6818486efeb 100644 (file)
@@ -7,6 +7,7 @@ cc_library_headers {
     name: "libext2-headers",
     host_supported: true,
     vendor_available: true,
+    ramdisk_available: true,
     recovery_available: true,
     target: {
         windows: {
index 5a02736aabe93d623db96c7c26ecbda53d848440..ccfdf8b986faf2ccbddb0e6c6b06ee2dd88f6af0 100644 (file)
@@ -3,6 +3,7 @@
 cc_library {
     name: "libext2_blkid",
     host_supported: true,
+    ramdisk_available: true,
     recovery_available: true,
     unique_host_soname: true,
     defaults: ["e2fsprogs-defaults"],
index d74ba685604430abcb47fd753c92efce9f55ffaf..aa09ad060d74722329e21beff9d838149892eaa2 100644 (file)
@@ -3,6 +3,7 @@
 cc_library {
     name: "libext2_e2p",
     host_supported: true,
+    ramdisk_available: true,
     recovery_available: true,
     unique_host_soname: true,
     defaults: ["e2fsprogs-defaults"],
index c3a6b2587bf6d566cd6e98cb24e05ab35d5788f6..ae7dd74dd02969264253419f7c835f0126044920 100644 (file)
@@ -50,6 +50,8 @@ int setversion (int fd, unsigned long version);
 void e2p_list_journal_super(FILE *f, char *journal_sb_buf,
                            int exp_block_size, int flags);
 
+void e2p_feature_to_string(int compat, unsigned int mask, char *buf,
+                           size_t buf_len);
 const char *e2p_feature2string(int compat, unsigned int mask);
 const char *e2p_jrnl_feature2string(int compat, unsigned int mask);
 int e2p_string2feature(char *string, int *compat, unsigned int *mask);
index 965ba33be5452cdbaedfa0edaefbcb27de58b116..2291060214ff98e77bd59bdabfc927470726c5c5 100644 (file)
@@ -137,17 +137,20 @@ static struct feature jrnl_feature_list[] = {
        {       0, 0, 0 },
 };
 
-const char *e2p_feature2string(int compat, unsigned int mask)
+void e2p_feature_to_string(int compat, unsigned int mask, char *buf,
+                           size_t buf_len)
 {
        struct feature  *f;
-       static char buf[20];
        char    fchar;
        int     fnum;
 
        for (f = feature_list; f->string; f++) {
                if ((compat == f->compat) &&
-                   (mask == f->mask))
-                       return f->string;
+                   (mask == f->mask)) {
+                       strncpy(buf, f->string, buf_len);
+                       buf[buf_len - 1] = 0;
+                       return;
+               }
        }
        switch (compat) {
        case  E2P_FEATURE_COMPAT:
@@ -165,6 +168,13 @@ const char *e2p_feature2string(int compat, unsigned int mask)
        }
        for (fnum = 0; mask >>= 1; fnum++);
        sprintf(buf, "FEATURE_%c%d", fchar, fnum);
+}
+
+const char *e2p_feature2string(int compat, unsigned int mask)
+{
+       static char buf[20];
+
+       e2p_feature_to_string(compat, mask, buf, sizeof(buf) / sizeof(buf[0]));
        return buf;
 }
 
index 3414639a74921f3ea5d792253926b839a9c39d7f..7df5bf600f92e43dbb963a3a296b053d900d7dcc 100644 (file)
@@ -3,6 +3,7 @@
 cc_library {
     name: "libext2_com_err",
     host_supported: true,
+    ramdisk_available: true,
     recovery_available: true,
     unique_host_soname: true,
     defaults: ["e2fsprogs-defaults"],
index 909c4fa89e8fac57e1b75cde58732c05da10a3b4..8a46c025fde4e29d66380b62542086a6f045e944 100644 (file)
@@ -3,6 +3,7 @@
 cc_library {
     name: "libext2fs",
     host_supported: true,
+    ramdisk_available: true,
     recovery_available: true,
     unique_host_soname: true,
     defaults: ["e2fsprogs-defaults"],
index c94c21b663dc3aaef09cc0740f0b114d20220232..1536d4b3ea1ce3ea3144dc5a9035b651827bc4ac 100644 (file)
@@ -418,7 +418,7 @@ errcode_t ext2fs_get_generic_bitmap_range(ext2fs_generic_bitmap gen_bmap,
        if ((start < bmap->start) || (start+num-1 > bmap->real_end))
                return EXT2_ET_INVALID_ARGUMENT;
 
-       memcpy(out, bmap->bitmap + (start >> 3), (num+7) >> 3);
+       memcpy(out, bmap->bitmap + ((start - bmap->start) >> 3), (num+7) >> 3);
        return 0;
 }
 
@@ -435,7 +435,7 @@ errcode_t ext2fs_set_generic_bitmap_range(ext2fs_generic_bitmap gen_bmap,
        if ((start < bmap->start) || (start+num-1 > bmap->real_end))
                return EXT2_ET_INVALID_ARGUMENT;
 
-       memcpy(bmap->bitmap + (start >> 3), in, (num+7) >> 3);
+       memcpy(bmap->bitmap + ((start - bmap->start) >> 3), in, (num+7) >> 3);
        return 0;
 }
 
index 2bc07b7f85250ee137a1e2397b1cc277cc134597..14f2f23976a8b6ea77470fdabe1a081c9f685d64 100644 (file)
@@ -3,6 +3,7 @@
 cc_library {
     name: "libext2_quota",
     host_supported: true,
+    ramdisk_available: true,
     recovery_available: true,
     unique_host_soname: true,
     defaults: ["e2fsprogs-defaults"],
index 7d4dfcacc88bdd20d59f7cc4693a6f4821c7212b..37b44673fe6c54cd8fad28f43464f716ba040979 100644 (file)
@@ -3,6 +3,7 @@
 cc_library {
     name: "libext2_uuid",
     host_supported: true,
+    ramdisk_available: true,
     recovery_available: true,
     vendor_available: true,
     unique_host_soname: true,
index dea2f9fe4e7ed7c2b00e473260897eb161ab4511..a93bea4d5c7875573034e60afd1dde83dd4e5ee7 100644 (file)
@@ -143,6 +143,16 @@ cc_binary {
     static_libs: tune2fs_libs,
 }
 
+cc_binary {
+    name: "tune2fs_ramdisk",
+    stem: "tune2fs",
+    static_executable: true,
+    ramdisk: true,
+    defaults: ["tune2fs-defaults"],
+    system_shared_libs: [],
+    static_libs: tune2fs_libs,
+}
+
 cc_library_static {
     name: "libtune2fs",
     defaults: ["tune2fs-defaults"],
@@ -174,7 +184,7 @@ cc_binary {
 // Build chattr
 
 cc_binary {
-    name: "chattr",
+    name: "chattr-e2fsprogs",
     host_supported: true,
     defaults: ["e2fsprogs-defaults"],
 
@@ -201,7 +211,7 @@ lsattr_libs = [
 ]
 
 cc_binary {
-    name: "lsattr",
+    name: "lsattr-e2fsprogs",
     host_supported: true,
     defaults: ["lsattr-defaults"],
 
@@ -288,3 +298,22 @@ cc_binary {
     ],
     system_shared_libs: ["libc", "libdl"],
 }
+
+//##########################################################################
+// Build e2freefrag
+
+cc_binary {
+    name: "e2freefrag",
+    host_supported: true,
+    defaults: ["e2fsprogs-defaults"],
+
+    srcs: [
+        "e2freefrag.c",
+    ],
+    header_libs: ["libext2-headers"],
+    shared_libs: [
+        "libext2fs",
+        "libext2_com_err",
+    ],
+    system_shared_libs: ["libc", "libdl"],
+}
index 5bcee25ec786fd6b8704a82ad384fe44394fce10..e6bfc6d6fd2de4791e390e28c193898eb3fb97cd 100644 (file)
@@ -484,13 +484,10 @@ space in the filesystem and can also negatively impact performance.
 It is not
 possible to change this value after the filesystem is created.
 .IP
-In kernels after 2.6.10 and some
-earlier vendor kernels it is possible to utilize inodes larger than
-128 bytes to store
-extended attributes for improved performance.
-Extended attributes
-stored in large inodes are not visible with older kernels, and such
-filesystems will not be mountable with 2.4 kernels at all.
+File systems with an inode size of 128 bytes do not support timestamps
+beyond January 19, 2038.  Inodes which are 256 bytes or larger will
+support extended timestamps, project id's, and the ability to store some
+extended attributes in the inode table for improved performance.
 .IP
 The default inode size is controlled by the
 .BR mke2fs.conf (5)
index 74eebb6a87363a374450f742a0c39ff5480e102f..3cf1f5eda57508cc3d084960c540c7e5c5d11785 100644 (file)
@@ -299,7 +299,13 @@ consistency first using
 .BR e2fsck (8).
 This operation can also take a while and the file system can be
 corrupted and data lost if it is interrupted while in the middle of
-converting the file system.
+converting the file system.  Backing up the file system before changing
+inode size is recommended.
+.IP
+File systems with an inode size of 128 bytes do not support timestamps
+beyond January 19, 2038.  Inodes which are 256 bytes or larger will
+support extended timestamps, project id's, and the ability to store some
+extended attributes in the inode table for improved performance.
 .TP
 .B \-j
 Add an ext3 journal to the filesystem.  If the
index 0ad3b291f83b77cd319ffea08d34a4da23d439ab..a5c9115eed98a20d4558f19f8300c15db8e557c4 100644 (file)
@@ -77,9 +77,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: e2fsprogs v1.45.5\n"
+"Project-Id-Version: e2fsprogs v1.45.6\n"
 "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2020-01-05 23:49-0500\n"
+"POT-Creation-Date: 2020-03-20 23:47-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -105,7 +105,7 @@ msgstr ""
 #: e2fsck/badblocks.c:72 e2fsck/scantest.c:107 e2fsck/unix.c:1571
 #: e2fsck/unix.c:1685 misc/badblocks.c:1251 misc/badblocks.c:1259
 #: misc/badblocks.c:1273 misc/badblocks.c:1285 misc/dumpe2fs.c:431
-#: misc/dumpe2fs.c:688 misc/dumpe2fs.c:692 misc/e2image.c:1430
+#: misc/dumpe2fs.c:692 misc/dumpe2fs.c:696 misc/e2image.c:1430
 #: misc/e2image.c:1627 misc/e2image.c:1648 misc/mke2fs.c:236
 #: misc/tune2fs.c:2808 misc/tune2fs.c:2907 resize/main.c:414
 #, c-format
@@ -130,7 +130,7 @@ msgstr ""
 msgid "Warning: illegal block %u found in bad block inode.  Cleared.\n"
 msgstr ""
 
-#: e2fsck/dirinfo.c:331
+#: e2fsck/dirinfo.c:332
 msgid "while freeing dir_info tdb file"
 msgstr ""
 
@@ -162,15 +162,15 @@ msgstr ""
 msgid "Error writing block %lu (%s).  "
 msgstr ""
 
-#: e2fsck/emptydir.c:57
+#: e2fsck/emptydir.c:56
 msgid "empty dirblocks"
 msgstr ""
 
-#: e2fsck/emptydir.c:62
+#: e2fsck/emptydir.c:61
 msgid "empty dir map"
 msgstr ""
 
-#: e2fsck/emptydir.c:98
+#: e2fsck/emptydir.c:97
 #, c-format
 msgid "Empty directory block %u (#%d) in inode %u\n"
 msgstr ""
@@ -180,12 +180,12 @@ msgstr ""
 msgid "%s: %s filename nblocks blocksize\n"
 msgstr ""
 
-#: e2fsck/extend.c:44
+#: e2fsck/extend.c:45
 #, c-format
 msgid "Illegal number of blocks!\n"
 msgstr ""
 
-#: e2fsck/extend.c:50
+#: e2fsck/extend.c:51
 #, c-format
 msgid "Couldn't allocate block buffer (size=%d)\n"
 msgstr ""
@@ -527,7 +527,7 @@ msgstr ""
 msgid "while hashing entry with e_value_inum = %u"
 msgstr ""
 
-#: e2fsck/pass1.c:775 e2fsck/pass2.c:1009
+#: e2fsck/pass1.c:775 e2fsck/pass2.c:1010
 msgid "reading directory block"
 msgstr ""
 
@@ -605,11 +605,11 @@ msgstr ""
 msgid "inode table"
 msgstr ""
 
-#: e2fsck/pass2.c:307
+#: e2fsck/pass2.c:308
 msgid "Pass 2"
 msgstr ""
 
-#: e2fsck/pass2.c:1082 e2fsck/pass2.c:1249
+#: e2fsck/pass2.c:1083 e2fsck/pass2.c:1250
 msgid "Can not continue."
 msgstr ""
 
@@ -629,7 +629,7 @@ msgstr ""
 msgid "inode loop detection bitmap"
 msgstr ""
 
-#: e2fsck/pass4.c:277
+#: e2fsck/pass4.c:289
 msgid "Pass 4"
 msgstr ""
 
@@ -2759,57 +2759,62 @@ msgstr ""
 msgid "@d exceeds max links, but no DIR_NLINK feature in @S.\n"
 msgstr ""
 
-#: e2fsck/problem.c:2016
+#: e2fsck/problem.c:2014
+#. @-expanded: directory inode %i ref count set to overflow but could be exact value %N.  
+msgid "@d @i %i ref count set to overflow but could be exact value %N.  "
+msgstr ""
+
+#: e2fsck/problem.c:2021
 #. @-expanded: Pass 5: Checking group summary information\n
 msgid "Pass 5: Checking @g summary information\n"
 msgstr ""
 
-#: e2fsck/problem.c:2021
+#: e2fsck/problem.c:2026
 #. @-expanded: Padding at end of inode bitmap is not set. 
 msgid "Padding at end of @i @B is not set. "
 msgstr ""
 
-#: e2fsck/problem.c:2026
+#: e2fsck/problem.c:2031
 #. @-expanded: Padding at end of block bitmap is not set. 
 msgid "Padding at end of @b @B is not set. "
 msgstr ""
 
-#: e2fsck/problem.c:2031
+#: e2fsck/problem.c:2036
 #. @-expanded: block bitmap differences: 
 msgid "@b @B differences: "
 msgstr ""
 
-#: e2fsck/problem.c:2053
+#: e2fsck/problem.c:2058
 #. @-expanded: inode bitmap differences: 
 msgid "@i @B differences: "
 msgstr ""
 
-#: e2fsck/problem.c:2075
+#: e2fsck/problem.c:2080
 #. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
 msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
 msgstr ""
 
-#: e2fsck/problem.c:2080
+#: e2fsck/problem.c:2085
 #. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
 msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
 msgstr ""
 
-#: e2fsck/problem.c:2085
+#: e2fsck/problem.c:2090
 #. @-expanded: Free inodes count wrong (%i, counted=%j).\n
 msgid "Free @is count wrong (%i, counted=%j).\n"
 msgstr ""
 
-#: e2fsck/problem.c:2090
+#: e2fsck/problem.c:2095
 #. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
 msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
 msgstr ""
 
-#: e2fsck/problem.c:2095
+#: e2fsck/problem.c:2100
 #. @-expanded: Free blocks count wrong (%b, counted=%c).\n
 msgid "Free @bs count wrong (%b, counted=%c).\n"
 msgstr ""
 
-#: e2fsck/problem.c:2100
+#: e2fsck/problem.c:2105
 #. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap 
 #. @-expanded: endpoints (%i, %j)\n
 msgid ""
@@ -2817,81 +2822,81 @@ msgid ""
 "endpoints (%i, %j)\n"
 msgstr ""
 
-#: e2fsck/problem.c:2106
+#: e2fsck/problem.c:2111
 msgid "Internal error: fudging end of bitmap (%N)\n"
 msgstr ""
 
-#: e2fsck/problem.c:2112
+#: e2fsck/problem.c:2117
 #, no-c-format
 #. @-expanded: Error copying in replacement inode bitmap: %m\n
 msgid "Error copying in replacement @i @B: %m\n"
 msgstr ""
 
-#: e2fsck/problem.c:2118
+#: e2fsck/problem.c:2123
 #, no-c-format
 #. @-expanded: Error copying in replacement block bitmap: %m\n
 msgid "Error copying in replacement @b @B: %m\n"
 msgstr ""
 
-#: e2fsck/problem.c:2148
+#: e2fsck/problem.c:2153
 #, no-c-format
 #. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
 msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
 msgstr ""
 
-#: e2fsck/problem.c:2154
+#: e2fsck/problem.c:2159
 #, no-c-format
 #. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
 msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
 msgstr ""
 
-#: e2fsck/problem.c:2160
+#: e2fsck/problem.c:2165
 #, no-c-format
 #. @-expanded: group %g inode bitmap does not match checksum.\n
 msgid "@g %g @i @B does not match checksum.\n"
 msgstr ""
 
-#: e2fsck/problem.c:2166
+#: e2fsck/problem.c:2171
 #, no-c-format
 #. @-expanded: group %g block bitmap does not match checksum.\n
 msgid "@g %g @b @B does not match checksum.\n"
 msgstr ""
 
-#: e2fsck/problem.c:2173
+#: e2fsck/problem.c:2178
 #. @-expanded: Recreate journal
 msgid "Recreate @j"
 msgstr ""
 
-#: e2fsck/problem.c:2178
+#: e2fsck/problem.c:2183
 msgid "Update quota info for quota type %N"
 msgstr ""
 
-#: e2fsck/problem.c:2184
+#: e2fsck/problem.c:2189
 #, no-c-format
 #. @-expanded: Error setting block group checksum info: %m\n
 msgid "Error setting @b @g checksum info: %m\n"
 msgstr ""
 
-#: e2fsck/problem.c:2190
+#: e2fsck/problem.c:2195
 #, no-c-format
 msgid "Error writing file system info: %m\n"
 msgstr ""
 
-#: e2fsck/problem.c:2196
+#: e2fsck/problem.c:2201
 #, no-c-format
 msgid "Error flushing writes to storage device: %m\n"
 msgstr ""
 
-#: e2fsck/problem.c:2201
+#: e2fsck/problem.c:2206
 msgid "Error writing quota info for quota type %N: %m\n"
 msgstr ""
 
-#: e2fsck/problem.c:2364
+#: e2fsck/problem.c:2369
 #, c-format
 msgid "Unhandled error code (0x%x)!\n"
 msgstr ""
 
-#: e2fsck/problem.c:2494 e2fsck/problem.c:2498
+#: e2fsck/problem.c:2499 e2fsck/problem.c:2503
 msgid "IGNORED"
 msgstr ""
 
@@ -2901,7 +2906,7 @@ msgstr ""
 
 #: e2fsck/scantest.c:79
 #, c-format
-msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
+msgid "Memory used: %lu, elapsed time: %6.3f/%6.3f/%6.3f\n"
 msgstr ""
 
 #: e2fsck/scantest.c:98
@@ -3100,7 +3105,7 @@ msgid_plural "%12u files\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: e2fsck/unix.c:238 misc/badblocks.c:1002 misc/tune2fs.c:2998 misc/util.c:129
+#: e2fsck/unix.c:238 misc/badblocks.c:1002 misc/tune2fs.c:2997 misc/util.c:129
 #: resize/main.c:354
 #, c-format
 msgid "while determining whether %s is mounted."
@@ -3328,7 +3333,7 @@ msgid "while reading MMP block"
 msgstr ""
 
 #: e2fsck/unix.c:1302 e2fsck/unix.c:1354 misc/e2undo.c:236 misc/e2undo.c:281
-#: misc/mke2fs.c:2696 misc/mke2fs.c:2747 misc/tune2fs.c:2725
+#: misc/mke2fs.c:2694 misc/mke2fs.c:2745 misc/tune2fs.c:2725
 #: misc/tune2fs.c:2770 resize/main.c:188 resize/main.c:233
 #, c-format
 msgid ""
@@ -3337,13 +3342,13 @@ msgid ""
 "\n"
 msgstr ""
 
-#: e2fsck/unix.c:1343 misc/e2undo.c:270 misc/mke2fs.c:2736 misc/tune2fs.c:2759
+#: e2fsck/unix.c:1343 misc/e2undo.c:270 misc/mke2fs.c:2734 misc/tune2fs.c:2759
 #: resize/main.c:222
 #, c-format
 msgid "while trying to delete %s"
 msgstr ""
 
-#: e2fsck/unix.c:1369 misc/mke2fs.c:2762 resize/main.c:243
+#: e2fsck/unix.c:1369 misc/mke2fs.c:2760 resize/main.c:243
 msgid "while trying to setup undo file\n"
 msgstr ""
 
@@ -3430,117 +3435,117 @@ msgstr ""
 msgid "Get a newer version of e2fsck!"
 msgstr ""
 
-#: e2fsck/unix.c:1749
+#: e2fsck/unix.c:1748
 #, c-format
 msgid "while checking journal for %s"
 msgstr ""
 
-#: e2fsck/unix.c:1752
+#: e2fsck/unix.c:1751
 msgid "Cannot proceed with file system check"
 msgstr ""
 
-#: e2fsck/unix.c:1763
+#: e2fsck/unix.c:1762
 msgid ""
 "Warning: skipping journal recovery because doing a read-only filesystem "
 "check.\n"
 msgstr ""
 
-#: e2fsck/unix.c:1775
+#: e2fsck/unix.c:1774
 #, c-format
 msgid "unable to set superblock flags on %s\n"
 msgstr ""
 
-#: e2fsck/unix.c:1781
+#: e2fsck/unix.c:1780
 #, c-format
 msgid "Journal checksum error found in %s\n"
 msgstr ""
 
-#: e2fsck/unix.c:1785
+#: e2fsck/unix.c:1784
 #, c-format
 msgid "Journal corrupted in %s\n"
 msgstr ""
 
-#: e2fsck/unix.c:1789
+#: e2fsck/unix.c:1788
 #, c-format
 msgid "while recovering journal of %s"
 msgstr ""
 
-#: e2fsck/unix.c:1811
+#: e2fsck/unix.c:1810
 #, c-format
 msgid "%s has unsupported feature(s):"
 msgstr ""
 
-#: e2fsck/unix.c:1826
+#: e2fsck/unix.c:1825
 #, c-format
 msgid "%s has unsupported encoding: %0x\n"
 msgstr ""
 
-#: e2fsck/unix.c:1876
+#: e2fsck/unix.c:1875
 #, c-format
 msgid "%s: %s while reading bad blocks inode\n"
 msgstr ""
 
-#: e2fsck/unix.c:1879
+#: e2fsck/unix.c:1878
 msgid "This doesn't bode well, but we'll try to go on...\n"
 msgstr ""
 
-#: e2fsck/unix.c:1919
+#: e2fsck/unix.c:1918
 #, c-format
 msgid "Creating journal (%d blocks): "
 msgstr ""
 
-#: e2fsck/unix.c:1929
+#: e2fsck/unix.c:1928
 msgid " Done.\n"
 msgstr ""
 
-#: e2fsck/unix.c:1931
+#: e2fsck/unix.c:1930
 msgid ""
 "\n"
 "*** journal has been regenerated ***\n"
 msgstr ""
 
-#: e2fsck/unix.c:1937
+#: e2fsck/unix.c:1936
 msgid "aborted"
 msgstr ""
 
-#: e2fsck/unix.c:1939
+#: e2fsck/unix.c:1938
 #, c-format
 msgid "%s: e2fsck canceled.\n"
 msgstr ""
 
-#: e2fsck/unix.c:1966
+#: e2fsck/unix.c:1965
 msgid "Restarting e2fsck from the beginning...\n"
 msgstr ""
 
-#: e2fsck/unix.c:1970
+#: e2fsck/unix.c:1969
 msgid "while resetting context"
 msgstr ""
 
-#: e2fsck/unix.c:2029
+#: e2fsck/unix.c:2028
 #, c-format
 msgid ""
 "\n"
 "%s: ***** FILE SYSTEM ERRORS CORRECTED *****\n"
 msgstr ""
 
-#: e2fsck/unix.c:2031
+#: e2fsck/unix.c:2030
 #, c-format
 msgid "%s: File system was modified.\n"
 msgstr ""
 
-#: e2fsck/unix.c:2035 e2fsck/util.c:71
+#: e2fsck/unix.c:2034 e2fsck/util.c:71
 #, c-format
 msgid ""
 "\n"
 "%s: ***** FILE SYSTEM WAS MODIFIED *****\n"
 msgstr ""
 
-#: e2fsck/unix.c:2040
+#: e2fsck/unix.c:2039
 #, c-format
 msgid "%s: ***** REBOOT SYSTEM *****\n"
 msgstr ""
 
-#: e2fsck/unix.c:2050 e2fsck/util.c:77
+#: e2fsck/unix.c:2049 e2fsck/util.c:77
 #, c-format
 msgid ""
 "\n"
@@ -3548,96 +3553,96 @@ msgid ""
 "\n"
 msgstr ""
 
-#: e2fsck/util.c:196 misc/util.c:93
+#: e2fsck/util.c:195 misc/util.c:93
 msgid "yY"
 msgstr ""
 
-#: e2fsck/util.c:197 misc/util.c:112
+#: e2fsck/util.c:196 misc/util.c:112
 msgid "nN"
 msgstr ""
 
-#: e2fsck/util.c:198
+#: e2fsck/util.c:197
 msgid "aA"
 msgstr ""
 
-#: e2fsck/util.c:202
+#: e2fsck/util.c:201
 msgid " ('a' enables 'yes' to all) "
 msgstr ""
 
-#: e2fsck/util.c:219
+#: e2fsck/util.c:218
 msgid "<y>"
 msgstr ""
 
-#: e2fsck/util.c:221
+#: e2fsck/util.c:220
 msgid "<n>"
 msgstr ""
 
-#: e2fsck/util.c:223
+#: e2fsck/util.c:222
 msgid " (y/n)"
 msgstr ""
 
-#: e2fsck/util.c:246
+#: e2fsck/util.c:245
 msgid "cancelled!\n"
 msgstr ""
 
-#: e2fsck/util.c:279
+#: e2fsck/util.c:278
 msgid "yes to all\n"
 msgstr ""
 
-#: e2fsck/util.c:281
+#: e2fsck/util.c:280
 msgid "yes\n"
 msgstr ""
 
-#: e2fsck/util.c:283
+#: e2fsck/util.c:282
 msgid "no\n"
 msgstr ""
 
-#: e2fsck/util.c:293
+#: e2fsck/util.c:292
 #, c-format
 msgid ""
 "%s? no\n"
 "\n"
 msgstr ""
 
-#: e2fsck/util.c:297
+#: e2fsck/util.c:296
 #, c-format
 msgid ""
 "%s? yes\n"
 "\n"
 msgstr ""
 
-#: e2fsck/util.c:301
+#: e2fsck/util.c:300
 msgid "yes"
 msgstr ""
 
-#: e2fsck/util.c:301
+#: e2fsck/util.c:300
 msgid "no"
 msgstr ""
 
-#: e2fsck/util.c:317
+#: e2fsck/util.c:316
 #, c-format
 msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
 msgstr ""
 
-#: e2fsck/util.c:322
+#: e2fsck/util.c:321
 msgid "reading inode and block bitmaps"
 msgstr ""
 
-#: e2fsck/util.c:334
+#: e2fsck/util.c:333
 #, c-format
 msgid "while retrying to read bitmaps for %s"
 msgstr ""
 
-#: e2fsck/util.c:346
+#: e2fsck/util.c:345
 msgid "writing block and inode bitmaps"
 msgstr ""
 
-#: e2fsck/util.c:351
+#: e2fsck/util.c:350
 #, c-format
 msgid "while rewriting block and inode bitmaps for %s"
 msgstr ""
 
-#: e2fsck/util.c:363
+#: e2fsck/util.c:362
 #, c-format
 msgid ""
 "\n"
@@ -3646,37 +3651,37 @@ msgid ""
 "\t(i.e., without -a or -p options)\n"
 msgstr ""
 
-#: e2fsck/util.c:444
+#: e2fsck/util.c:442
 #, c-format
-msgid "Memory used: %luk/%luk (%luk/%luk), "
+msgid "Memory used: %lluk/%lluk (%lluk/%lluk), "
 msgstr ""
 
 #: e2fsck/util.c:448
 #, c-format
-msgid "Memory used: %lu, "
+msgid "Memory used: %lluk, "
 msgstr ""
 
-#: e2fsck/util.c:455
+#: e2fsck/util.c:454
 #, c-format
 msgid "time: %5.2f/%5.2f/%5.2f\n"
 msgstr ""
 
-#: e2fsck/util.c:460
+#: e2fsck/util.c:459
 #, c-format
 msgid "elapsed time: %6.3f\n"
 msgstr ""
 
-#: e2fsck/util.c:495 e2fsck/util.c:509
+#: e2fsck/util.c:494 e2fsck/util.c:508
 #, c-format
 msgid "while reading inode %lu in %s"
 msgstr ""
 
-#: e2fsck/util.c:523 e2fsck/util.c:536
+#: e2fsck/util.c:522 e2fsck/util.c:535
 #, c-format
 msgid "while writing inode %lu in %s"
 msgstr ""
 
-#: e2fsck/util.c:792
+#: e2fsck/util.c:793
 msgid ""
 "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
 "running.\n"
@@ -4234,30 +4239,30 @@ msgstr ""
 msgid "Couldn't find journal superblock magic numbers"
 msgstr ""
 
-#: misc/dumpe2fs.c:468
+#: misc/dumpe2fs.c:470
 msgid "failed to alloc MMP buffer\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:479
+#: misc/dumpe2fs.c:481
 #, c-format
 msgid "reading MMP block %llu from '%s'\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:507 misc/mke2fs.c:800 misc/tune2fs.c:2039
+#: misc/dumpe2fs.c:511 misc/mke2fs.c:798 misc/tune2fs.c:2039
 msgid "Couldn't allocate memory to parse options!\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:533
+#: misc/dumpe2fs.c:537
 #, c-format
 msgid "Invalid superblock parameter: %s\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:548
+#: misc/dumpe2fs.c:552
 #, c-format
 msgid "Invalid blocksize parameter: %s\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:559
+#: misc/dumpe2fs.c:563
 #, c-format
 msgid ""
 "\n"
@@ -4271,27 +4276,27 @@ msgid ""
 "\tblocksize=<blocksize>\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:649 misc/mke2fs.c:1889
+#: misc/dumpe2fs.c:653 misc/mke2fs.c:1887
 #, c-format
 msgid "\tUsing %s\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:694 misc/e2image.c:1629 misc/tune2fs.c:2925
+#: misc/dumpe2fs.c:698 misc/e2image.c:1629 misc/tune2fs.c:2925
 #: resize/main.c:416
 msgid "Couldn't find valid filesystem superblock.\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:716
+#: misc/dumpe2fs.c:720
 #, c-format
 msgid "%s: MMP feature not enabled.\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:747
+#: misc/dumpe2fs.c:751
 #, c-format
 msgid "while trying to read '%s' bitmaps\n"
 msgstr ""
 
-#: misc/dumpe2fs.c:756
+#: misc/dumpe2fs.c:760
 msgid ""
 "*** Run e2fsck now!\n"
 "\n"
@@ -4571,7 +4576,7 @@ msgstr ""
 msgid "e2label: not an ext2 filesystem\n"
 msgstr ""
 
-#: misc/e2label.c:97 misc/tune2fs.c:3129
+#: misc/e2label.c:97 misc/tune2fs.c:3128
 #, c-format
 msgid "Warning: label too long, truncating.\n"
 msgstr ""
@@ -4791,7 +4796,7 @@ msgid ""
 "mount_time           sb_uuid label\n"
 msgstr ""
 
-#: misc/findsuper.c:264
+#: misc/findsuper.c:265
 #, c-format
 msgid ""
 "\n"
@@ -4906,7 +4911,7 @@ msgstr ""
 msgid "%s: %s.\n"
 msgstr ""
 
-#: misc/fuse2fs.c:3777 misc/fuse2fs.c:3792 misc/tune2fs.c:3025
+#: misc/fuse2fs.c:3777 misc/fuse2fs.c:3792 misc/tune2fs.c:3024
 #, c-format
 msgid "Please run e2fsck -fy %s.\n"
 msgstr ""
@@ -5029,7 +5034,7 @@ msgid ""
 "Could not write %d blocks in inode table starting at %llu: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:456 misc/mke2fs.c:2809 misc/mke2fs.c:3214
+#: misc/mke2fs.c:456 misc/mke2fs.c:2807 misc/mke2fs.c:3212
 msgid "done                            \n"
 msgstr ""
 
@@ -5093,176 +5098,176 @@ msgstr ""
 msgid "while writing journal superblock"
 msgstr ""
 
-#: misc/mke2fs.c:665
+#: misc/mke2fs.c:664
 #, c-format
 msgid "Creating filesystem with %llu %dk blocks and %u inodes\n"
 msgstr ""
 
-#: misc/mke2fs.c:673
+#: misc/mke2fs.c:672
 #, c-format
 msgid ""
 "warning: %llu blocks unused.\n"
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:678
+#: misc/mke2fs.c:675
 #, c-format
-msgid "Filesystem label=%s\n"
+msgid "Filesystem label=%.*s\n"
 msgstr ""
 
-#: misc/mke2fs.c:681
+#: misc/mke2fs.c:679
 #, c-format
 msgid "OS type: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:683
+#: misc/mke2fs.c:681
 #, c-format
 msgid "Block size=%u (log=%u)\n"
 msgstr ""
 
-#: misc/mke2fs.c:686
+#: misc/mke2fs.c:684
 #, c-format
 msgid "Cluster size=%u (log=%u)\n"
 msgstr ""
 
-#: misc/mke2fs.c:690
+#: misc/mke2fs.c:688
 #, c-format
 msgid "Fragment size=%u (log=%u)\n"
 msgstr ""
 
-#: misc/mke2fs.c:692
+#: misc/mke2fs.c:690
 #, c-format
 msgid "Stride=%u blocks, Stripe width=%u blocks\n"
 msgstr ""
 
-#: misc/mke2fs.c:694
+#: misc/mke2fs.c:692
 #, c-format
 msgid "%u inodes, %llu blocks\n"
 msgstr ""
 
-#: misc/mke2fs.c:696
+#: misc/mke2fs.c:694
 #, c-format
 msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
 msgstr ""
 
-#: misc/mke2fs.c:699
+#: misc/mke2fs.c:697
 #, c-format
 msgid "First data block=%u\n"
 msgstr ""
 
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:699
 #, c-format
 msgid "Root directory owner=%u:%u\n"
 msgstr ""
 
-#: misc/mke2fs.c:703
+#: misc/mke2fs.c:701
 #, c-format
 msgid "Maximum filesystem blocks=%lu\n"
 msgstr ""
 
-#: misc/mke2fs.c:707
+#: misc/mke2fs.c:705
 #, c-format
 msgid "%u block groups\n"
 msgstr ""
 
-#: misc/mke2fs.c:709
+#: misc/mke2fs.c:707
 #, c-format
 msgid "%u block group\n"
 msgstr ""
 
-#: misc/mke2fs.c:711
+#: misc/mke2fs.c:709
 #, c-format
 msgid "%u blocks per group, %u clusters per group\n"
 msgstr ""
 
-#: misc/mke2fs.c:714
+#: misc/mke2fs.c:712
 #, c-format
 msgid "%u blocks per group, %u fragments per group\n"
 msgstr ""
 
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:714
 #, c-format
 msgid "%u inodes per group\n"
 msgstr ""
 
-#: misc/mke2fs.c:725
+#: misc/mke2fs.c:723
 #, c-format
 msgid "Filesystem UUID: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:726
+#: misc/mke2fs.c:724
 msgid "Superblock backups stored on blocks: "
 msgstr ""
 
-#: misc/mke2fs.c:822
+#: misc/mke2fs.c:820
 #, c-format
 msgid "%s requires '-O 64bit'\n"
 msgstr ""
 
-#: misc/mke2fs.c:828
+#: misc/mke2fs.c:826
 #, c-format
 msgid "'%s' must be before 'resize=%u'\n"
 msgstr ""
 
-#: misc/mke2fs.c:841
+#: misc/mke2fs.c:839
 #, c-format
 msgid "Invalid desc_size: '%s'\n"
 msgstr ""
 
-#: misc/mke2fs.c:855
+#: misc/mke2fs.c:853
 #, c-format
 msgid "Invalid hash seed: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:867
+#: misc/mke2fs.c:865
 #, c-format
 msgid "Invalid offset: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:881 misc/tune2fs.c:2067
+#: misc/mke2fs.c:879 misc/tune2fs.c:2067
 #, c-format
 msgid "Invalid mmp_update_interval: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:898
+#: misc/mke2fs.c:896
 #, c-format
 msgid "Invalid # of backup superblocks: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:920
+#: misc/mke2fs.c:918
 #, c-format
 msgid "Invalid stride parameter: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:935
+#: misc/mke2fs.c:933
 #, c-format
 msgid "Invalid stripe-width parameter: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:958
+#: misc/mke2fs.c:956
 #, c-format
 msgid "Invalid resize parameter: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:965
+#: misc/mke2fs.c:963
 msgid "The resize maximum must be greater than the filesystem size.\n"
 msgstr ""
 
-#: misc/mke2fs.c:989
+#: misc/mke2fs.c:987
 msgid "On-line resizing not supported with revision 0 filesystems\n"
 msgstr ""
 
-#: misc/mke2fs.c:1015 misc/mke2fs.c:1024
+#: misc/mke2fs.c:1013 misc/mke2fs.c:1022
 #, c-format
 msgid "Invalid root_owner: '%s'\n"
 msgstr ""
 
-#: misc/mke2fs.c:1069
+#: misc/mke2fs.c:1067
 #, c-format
 msgid "Invalid encoding: %s"
 msgstr ""
 
-#: misc/mke2fs.c:1087
+#: misc/mke2fs.c:1085
 #, c-format
 msgid ""
 "\n"
@@ -5291,7 +5296,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:1114
+#: misc/mke2fs.c:1112
 #, c-format
 msgid ""
 "\n"
@@ -5299,52 +5304,52 @@ msgid ""
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:1125
+#: misc/mke2fs.c:1123
 #, c-format
 msgid "error: Invalid encoding flag: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:1131
+#: misc/mke2fs.c:1129
 #, c-format
 msgid ""
 "error: An encoding must be explicitly specified when passing encoding-flags\n"
 msgstr ""
 
-#: misc/mke2fs.c:1179
+#: misc/mke2fs.c:1177
 #, c-format
 msgid ""
 "Syntax error in mke2fs config file (%s, line #%d)\n"
 "\t%s\n"
 msgstr ""
 
-#: misc/mke2fs.c:1192 misc/tune2fs.c:1068
+#: misc/mke2fs.c:1190 misc/tune2fs.c:1068
 #, c-format
 msgid "Invalid filesystem option set: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:1204 misc/tune2fs.c:417
+#: misc/mke2fs.c:1202 misc/tune2fs.c:417
 #, c-format
 msgid "Invalid mount option set: %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:1340
+#: misc/mke2fs.c:1338
 #, c-format
 msgid ""
 "\n"
 "Your mke2fs.conf file does not define the %s filesystem type.\n"
 msgstr ""
 
-#: misc/mke2fs.c:1344
+#: misc/mke2fs.c:1342
 msgid ""
 "You probably need to install an updated mke2fs.conf file.\n"
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:1348
+#: misc/mke2fs.c:1346
 msgid "Aborting...\n"
 msgstr ""
 
-#: misc/mke2fs.c:1389
+#: misc/mke2fs.c:1387
 #, c-format
 msgid ""
 "\n"
@@ -5352,154 +5357,154 @@ msgid ""
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:1571
+#: misc/mke2fs.c:1569
 msgid "Couldn't allocate memory for new PATH.\n"
 msgstr ""
 
-#: misc/mke2fs.c:1608
+#: misc/mke2fs.c:1606
 #, c-format
 msgid "Couldn't init profile successfully (error: %ld).\n"
 msgstr ""
 
-#: misc/mke2fs.c:1641
+#: misc/mke2fs.c:1639
 #, c-format
 msgid "invalid block size - %s"
 msgstr ""
 
-#: misc/mke2fs.c:1645
+#: misc/mke2fs.c:1643
 #, c-format
 msgid "Warning: blocksize %d not usable on most systems.\n"
 msgstr ""
 
-#: misc/mke2fs.c:1661
+#: misc/mke2fs.c:1659
 #, c-format
 msgid "invalid cluster size - %s"
 msgstr ""
 
-#: misc/mke2fs.c:1674
+#: misc/mke2fs.c:1672
 msgid "'-R' is deprecated, use '-E' instead"
 msgstr ""
 
-#: misc/mke2fs.c:1688 misc/tune2fs.c:1796
+#: misc/mke2fs.c:1686 misc/tune2fs.c:1796
 #, c-format
 msgid "bad error behavior - %s"
 msgstr ""
 
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1698
 msgid "Illegal number for blocks per group"
 msgstr ""
 
-#: misc/mke2fs.c:1705
+#: misc/mke2fs.c:1703
 msgid "blocks per group must be multiple of 8"
 msgstr ""
 
-#: misc/mke2fs.c:1713
+#: misc/mke2fs.c:1711
 msgid "Illegal number for flex_bg size"
 msgstr ""
 
-#: misc/mke2fs.c:1719
+#: misc/mke2fs.c:1717
 msgid "flex_bg size must be a power of 2"
 msgstr ""
 
-#: misc/mke2fs.c:1724
+#: misc/mke2fs.c:1722
 #, c-format
 msgid "flex_bg size (%lu) must be less than or equal to 2^31"
 msgstr ""
 
-#: misc/mke2fs.c:1734
+#: misc/mke2fs.c:1732
 #, c-format
 msgid "invalid inode ratio %s (min %d/max %d)"
 msgstr ""
 
-#: misc/mke2fs.c:1744
+#: misc/mke2fs.c:1742
 #, c-format
 msgid "invalid inode size - %s"
 msgstr ""
 
-#: misc/mke2fs.c:1757
+#: misc/mke2fs.c:1755
 msgid ""
 "Warning: -K option is deprecated and should not be used anymore. Use '-E "
 "nodiscard' extended option instead!\n"
 msgstr ""
 
-#: misc/mke2fs.c:1768
+#: misc/mke2fs.c:1766
 msgid "in malloc for bad_blocks_filename"
 msgstr ""
 
-#: misc/mke2fs.c:1777
+#: misc/mke2fs.c:1775
 #, c-format
 msgid ""
 "Warning: label too long; will be truncated to '%s'\n"
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:1786
+#: misc/mke2fs.c:1784
 #, c-format
 msgid "invalid reserved blocks percent - %s"
 msgstr ""
 
-#: misc/mke2fs.c:1801
+#: misc/mke2fs.c:1799
 #, c-format
 msgid "bad num inodes - %s"
 msgstr ""
 
-#: misc/mke2fs.c:1814
+#: misc/mke2fs.c:1812
 msgid "while allocating fs_feature string"
 msgstr ""
 
-#: misc/mke2fs.c:1831
+#: misc/mke2fs.c:1829
 #, c-format
 msgid "bad revision level - %s"
 msgstr ""
 
-#: misc/mke2fs.c:1836
+#: misc/mke2fs.c:1834
 #, c-format
 msgid "while trying to create revision %d"
 msgstr ""
 
-#: misc/mke2fs.c:1850
+#: misc/mke2fs.c:1848
 msgid "The -t option may only be used once"
 msgstr ""
 
-#: misc/mke2fs.c:1858
+#: misc/mke2fs.c:1856
 msgid "The -T option may only be used once"
 msgstr ""
 
-#: misc/mke2fs.c:1914 misc/mke2fs.c:3298
+#: misc/mke2fs.c:1912 misc/mke2fs.c:3296
 #, c-format
 msgid "while trying to open journal device %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1918
 #, c-format
 msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
 msgstr ""
 
-#: misc/mke2fs.c:1926
+#: misc/mke2fs.c:1924
 #, c-format
 msgid "Using journal device's blocksize: %d\n"
 msgstr ""
 
-#: misc/mke2fs.c:1937
+#: misc/mke2fs.c:1935
 #, c-format
 msgid "invalid blocks '%s' on device '%s'"
 msgstr ""
 
-#: misc/mke2fs.c:1967
+#: misc/mke2fs.c:1965
 msgid "filesystem"
 msgstr ""
 
-#: misc/mke2fs.c:1985 resize/main.c:497
+#: misc/mke2fs.c:1983 resize/main.c:497
 msgid "while trying to determine filesystem size"
 msgstr ""
 
-#: misc/mke2fs.c:1991
+#: misc/mke2fs.c:1989
 msgid ""
 "Couldn't determine device size; you must specify\n"
 "the size of the filesystem\n"
 msgstr ""
 
-#: misc/mke2fs.c:1998
+#: misc/mke2fs.c:1996
 msgid ""
 "Device size reported to be zero.  Invalid partition specified, or\n"
 "\tpartition table wasn't reread after running fdisk, due to\n"
@@ -5507,142 +5512,142 @@ msgid ""
 "\tto re-read your partition table.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2015
+#: misc/mke2fs.c:2013
 msgid "Filesystem larger than apparent device size."
 msgstr ""
 
-#: misc/mke2fs.c:2035
+#: misc/mke2fs.c:2033
 msgid "Failed to parse fs types list\n"
 msgstr ""
 
-#: misc/mke2fs.c:2085
+#: misc/mke2fs.c:2083
 msgid "The HURD does not support the filetype feature.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2090
+#: misc/mke2fs.c:2088
 msgid "The HURD does not support the huge_file feature.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2095
+#: misc/mke2fs.c:2093
 msgid "The HURD does not support the metadata_csum feature.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2100
+#: misc/mke2fs.c:2098
 msgid "The HURD does not support the ea_inode feature.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2110
+#: misc/mke2fs.c:2108
 msgid "while trying to determine hardware sector size"
 msgstr ""
 
-#: misc/mke2fs.c:2116
+#: misc/mke2fs.c:2114
 msgid "while trying to determine physical sector size"
 msgstr ""
 
-#: misc/mke2fs.c:2148
+#: misc/mke2fs.c:2146
 msgid "while setting blocksize; too small for device\n"
 msgstr ""
 
-#: misc/mke2fs.c:2153
+#: misc/mke2fs.c:2151
 #, c-format
 msgid ""
 "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
 msgstr ""
 
-#: misc/mke2fs.c:2177
+#: misc/mke2fs.c:2175
 #, c-format
 msgid ""
 "%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
 "\tin 32 bits using a blocksize of %d.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2191
+#: misc/mke2fs.c:2189
 #, c-format
 msgid ""
 "%s: Size of device (0x%llx blocks) %s too big to create\n"
 "\ta filesystem using a blocksize of %d.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2213
+#: misc/mke2fs.c:2211
 msgid "fs_types for mke2fs.conf resolution: "
 msgstr ""
 
-#: misc/mke2fs.c:2220
+#: misc/mke2fs.c:2218
 msgid "Filesystem features not supported with revision 0 filesystems\n"
 msgstr ""
 
-#: misc/mke2fs.c:2228
+#: misc/mke2fs.c:2226
 msgid "Sparse superblocks not supported with revision 0 filesystems\n"
 msgstr ""
 
-#: misc/mke2fs.c:2238
+#: misc/mke2fs.c:2236
 msgid "Journals not supported with revision 0 filesystems\n"
 msgstr ""
 
-#: misc/mke2fs.c:2251
+#: misc/mke2fs.c:2249
 #, c-format
 msgid "invalid reserved blocks percent - %lf"
 msgstr ""
 
-#: misc/mke2fs.c:2268
+#: misc/mke2fs.c:2266
 msgid ""
 "Extents MUST be enabled for a 64-bit filesystem.  Pass -O extents to "
 "rectify.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2288
+#: misc/mke2fs.c:2286
 msgid "The cluster size may not be smaller than the block size.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2294
+#: misc/mke2fs.c:2292
 msgid "specifying a cluster size requires the bigalloc feature"
 msgstr ""
 
-#: misc/mke2fs.c:2314
+#: misc/mke2fs.c:2312
 #, c-format
 msgid "warning: Unable to get device geometry for %s\n"
 msgstr ""
 
-#: misc/mke2fs.c:2317
+#: misc/mke2fs.c:2315
 #, c-format
 msgid "%s alignment is offset by %lu bytes.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2319
+#: misc/mke2fs.c:2317
 #, c-format
 msgid ""
 "This may result in very poor performance, (re)-partitioning suggested.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2340
+#: misc/mke2fs.c:2338
 #, c-format
 msgid "%d-byte blocks too big for system (max %d)"
 msgstr ""
 
-#: misc/mke2fs.c:2344
+#: misc/mke2fs.c:2342
 #, c-format
 msgid ""
 "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
 msgstr ""
 
-#: misc/mke2fs.c:2352
+#: misc/mke2fs.c:2350
 #, c-format
 msgid ""
 "Suggestion: Use Linux kernel >= 3.18 for improved stability of the metadata "
 "and journal checksum features.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2398
+#: misc/mke2fs.c:2396
 #, c-format
 msgid "Unknown filename encoding from profile: %s"
 msgstr ""
 
-#: misc/mke2fs.c:2409
+#: misc/mke2fs.c:2407
 #, c-format
 msgid "Unknown encoding flags from profile: %s"
 msgstr ""
 
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2432
 #, c-format
 msgid ""
 "\n"
@@ -5652,28 +5657,28 @@ msgid ""
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:2449
+#: misc/mke2fs.c:2447
 #, c-format
 msgid "%d byte inodes are too small for project quota"
 msgstr ""
 
-#: misc/mke2fs.c:2465
+#: misc/mke2fs.c:2463
 msgid ""
 "The encrypt and casefold features are not compatible.\n"
 "They can not be both enabled simultaneously.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2480
+#: misc/mke2fs.c:2478
 msgid "Can't support bigalloc feature without extents feature"
 msgstr ""
 
-#: misc/mke2fs.c:2487
+#: misc/mke2fs.c:2485
 msgid ""
 "The resize_inode and meta_bg features are not compatible.\n"
 "They can not be both enabled simultaneously.\n"
 msgstr ""
 
-#: misc/mke2fs.c:2495
+#: misc/mke2fs.c:2493
 msgid ""
 "\n"
 "Warning: the bigalloc feature is still under development\n"
@@ -5681,39 +5686,39 @@ msgid ""
 "\n"
 msgstr ""
 
-#: misc/mke2fs.c:2507
+#: misc/mke2fs.c:2505
 msgid "reserved online resize blocks not supported on non-sparse filesystem"
 msgstr ""
 
-#: misc/mke2fs.c:2516
+#: misc/mke2fs.c:2514
 msgid "blocks per group count out of range"
 msgstr ""
 
-#: misc/mke2fs.c:2538
+#: misc/mke2fs.c:2536
 msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
 msgstr ""
 
-#: misc/mke2fs.c:2550
+#: misc/mke2fs.c:2548
 #, c-format
 msgid "invalid inode size %d (min %d/max %d)"
 msgstr ""
 
-#: misc/mke2fs.c:2565
+#: misc/mke2fs.c:2563
 #, c-format
 msgid "%d byte inodes are too small for inline data; specify larger size"
 msgstr ""
 
-#: misc/mke2fs.c:2580
+#: misc/mke2fs.c:2578
 #, c-format
 msgid "too many inodes (%llu), raise inode ratio?"
 msgstr ""
 
-#: misc/mke2fs.c:2587
+#: misc/mke2fs.c:2585
 #, c-format
 msgid "too many inodes (%llu), specify < 2^32 inodes"
 msgstr ""
 
-#: misc/mke2fs.c:2601
+#: misc/mke2fs.c:2599
 #, c-format
 msgid ""
 "inode_size (%u) * inodes_count (%u) too big for a\n"
@@ -5721,153 +5726,153 @@ msgid ""
 "\tor lower inode count (-N).\n"
 msgstr ""
 
-#: misc/mke2fs.c:2788
+#: misc/mke2fs.c:2786
 msgid "Discarding device blocks: "
 msgstr ""
 
-#: misc/mke2fs.c:2804
+#: misc/mke2fs.c:2802
 msgid "failed - "
 msgstr ""
 
-#: misc/mke2fs.c:2863
+#: misc/mke2fs.c:2861
 msgid "while initializing quota context"
 msgstr ""
 
-#: misc/mke2fs.c:2870
+#: misc/mke2fs.c:2868
 msgid "while writing quota inodes"
 msgstr ""
 
-#: misc/mke2fs.c:2895
+#: misc/mke2fs.c:2893
 #, c-format
 msgid "bad error behavior in profile - %s"
 msgstr ""
 
-#: misc/mke2fs.c:2971
+#: misc/mke2fs.c:2969
 msgid "in malloc for android_sparse_params"
 msgstr ""
 
-#: misc/mke2fs.c:2985
+#: misc/mke2fs.c:2983
 msgid "while setting up superblock"
 msgstr ""
 
-#: misc/mke2fs.c:3001
+#: misc/mke2fs.c:2999
 msgid ""
 "Extents are not enabled.  The file extent tree can be checksummed, whereas "
 "block maps cannot.  Not enabling extents reduces the coverage of metadata "
 "checksumming.  Pass -O extents to rectify.\n"
 msgstr ""
 
-#: misc/mke2fs.c:3008
+#: misc/mke2fs.c:3006
 msgid ""
 "64-bit filesystem support is not enabled.  The larger fields afforded by "
 "this feature enable full-strength checksumming.  Pass -O 64bit to rectify.\n"
 msgstr ""
 
-#: misc/mke2fs.c:3016
+#: misc/mke2fs.c:3014
 msgid "The metadata_csum_seed feature requires the metadata_csum feature.\n"
 msgstr ""
 
-#: misc/mke2fs.c:3040
+#: misc/mke2fs.c:3038
 msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
 msgstr ""
 
-#: misc/mke2fs.c:3139
+#: misc/mke2fs.c:3137
 #, c-format
 msgid "unknown os - %s"
 msgstr ""
 
-#: misc/mke2fs.c:3202
+#: misc/mke2fs.c:3200
 msgid "Allocating group tables: "
 msgstr ""
 
-#: misc/mke2fs.c:3210
+#: misc/mke2fs.c:3208
 msgid "while trying to allocate filesystem tables"
 msgstr ""
 
-#: misc/mke2fs.c:3219
+#: misc/mke2fs.c:3217
 msgid ""
 "\n"
 "\twhile converting subcluster bitmap"
 msgstr ""
 
-#: misc/mke2fs.c:3225
+#: misc/mke2fs.c:3223
 #, c-format
 msgid "%s may be further corrupted by superblock rewrite\n"
 msgstr ""
 
-#: misc/mke2fs.c:3266
+#: misc/mke2fs.c:3264
 #, c-format
 msgid "while zeroing block %llu at end of filesystem"
 msgstr ""
 
-#: misc/mke2fs.c:3279
+#: misc/mke2fs.c:3277
 msgid "while reserving blocks for online resize"
 msgstr ""
 
-#: misc/mke2fs.c:3291 misc/tune2fs.c:1504
+#: misc/mke2fs.c:3289 misc/tune2fs.c:1504
 msgid "journal"
 msgstr ""
 
-#: misc/mke2fs.c:3303
+#: misc/mke2fs.c:3301
 #, c-format
 msgid "Adding journal to device %s: "
 msgstr ""
 
-#: misc/mke2fs.c:3310
+#: misc/mke2fs.c:3308
 #, c-format
 msgid ""
 "\n"
 "\twhile trying to add journal to device %s"
 msgstr ""
 
-#: misc/mke2fs.c:3315 misc/mke2fs.c:3344 misc/mke2fs.c:3382
+#: misc/mke2fs.c:3313 misc/mke2fs.c:3342 misc/mke2fs.c:3380
 #: misc/mk_hugefiles.c:600 misc/tune2fs.c:1533 misc/tune2fs.c:1552
 msgid "done\n"
 msgstr ""
 
-#: misc/mke2fs.c:3321
+#: misc/mke2fs.c:3319
 msgid "Skipping journal creation in super-only mode\n"
 msgstr ""
 
-#: misc/mke2fs.c:3331
+#: misc/mke2fs.c:3329
 #, c-format
 msgid "Creating journal (%u blocks): "
 msgstr ""
 
-#: misc/mke2fs.c:3340
+#: misc/mke2fs.c:3338
 msgid ""
 "\n"
 "\twhile trying to create journal"
 msgstr ""
 
-#: misc/mke2fs.c:3352 misc/tune2fs.c:1133
+#: misc/mke2fs.c:3350 misc/tune2fs.c:1133
 msgid ""
 "\n"
 "Error while enabling multiple mount protection feature."
 msgstr ""
 
-#: misc/mke2fs.c:3357
+#: misc/mke2fs.c:3355
 #, c-format
 msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
 msgstr ""
 
-#: misc/mke2fs.c:3373
+#: misc/mke2fs.c:3371
 msgid "Copying files into the device: "
 msgstr ""
 
-#: misc/mke2fs.c:3379
+#: misc/mke2fs.c:3377
 msgid "while populating file system"
 msgstr ""
 
-#: misc/mke2fs.c:3386
+#: misc/mke2fs.c:3384
 msgid "Writing superblocks and filesystem accounting information: "
 msgstr ""
 
-#: misc/mke2fs.c:3393
+#: misc/mke2fs.c:3391
 msgid "while writing out and closing file system"
 msgstr ""
 
-#: misc/mke2fs.c:3396
+#: misc/mke2fs.c:3394
 msgid ""
 "done\n"
 "\n"
@@ -6443,7 +6448,7 @@ msgstr ""
 msgid "Resizing inodes could take some time."
 msgstr ""
 
-#: misc/tune2fs.c:3010
+#: misc/tune2fs.c:3009
 #, c-format
 msgid ""
 "Warning: The journal is dirty. You may wish to replay the journal like:\n"
@@ -6454,153 +6459,153 @@ msgid ""
 "by journal recovery.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3021
+#: misc/tune2fs.c:3020
 #, c-format
 msgid "Recovering journal.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3040
+#: misc/tune2fs.c:3039
 #, c-format
 msgid "Setting maximal mount count to %d\n"
 msgstr ""
 
-#: misc/tune2fs.c:3046
+#: misc/tune2fs.c:3045
 #, c-format
 msgid "Setting current mount count to %d\n"
 msgstr ""
 
-#: misc/tune2fs.c:3051
+#: misc/tune2fs.c:3050
 #, c-format
 msgid "Setting error behavior to %d\n"
 msgstr ""
 
-#: misc/tune2fs.c:3056
+#: misc/tune2fs.c:3055
 #, c-format
 msgid "Setting reserved blocks gid to %lu\n"
 msgstr ""
 
-#: misc/tune2fs.c:3061
+#: misc/tune2fs.c:3060
 #, c-format
 msgid "interval between checks is too big (%lu)"
 msgstr ""
 
-#: misc/tune2fs.c:3068
+#: misc/tune2fs.c:3067
 #, c-format
 msgid "Setting interval between checks to %lu seconds\n"
 msgstr ""
 
-#: misc/tune2fs.c:3075
+#: misc/tune2fs.c:3074
 #, c-format
 msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
 msgstr ""
 
-#: misc/tune2fs.c:3081
+#: misc/tune2fs.c:3080
 #, c-format
 msgid "reserved blocks count is too big (%llu)"
 msgstr ""
 
-#: misc/tune2fs.c:3088
+#: misc/tune2fs.c:3087
 #, c-format
 msgid "Setting reserved blocks count to %llu\n"
 msgstr ""
 
-#: misc/tune2fs.c:3093
+#: misc/tune2fs.c:3092
 msgid ""
 "\n"
 "The filesystem already has sparse superblocks.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3096
+#: misc/tune2fs.c:3095
 msgid ""
 "\n"
 "Setting the sparse superblock flag not supported\n"
 "for filesystems with the meta_bg feature enabled.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3106
+#: misc/tune2fs.c:3105
 #, c-format
 msgid ""
 "\n"
 "Sparse superblock flag set.  %s"
 msgstr ""
 
-#: misc/tune2fs.c:3111
+#: misc/tune2fs.c:3110
 msgid ""
 "\n"
 "Clearing the sparse superblock flag not supported.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3119
+#: misc/tune2fs.c:3118
 #, c-format
 msgid "Setting time filesystem last checked to %s\n"
 msgstr ""
 
-#: misc/tune2fs.c:3125
+#: misc/tune2fs.c:3124
 #, c-format
 msgid "Setting reserved blocks uid to %lu\n"
 msgstr ""
 
-#: misc/tune2fs.c:3157
+#: misc/tune2fs.c:3156
 msgid "Error in using clear_mmp. It must be used with -f\n"
 msgstr ""
 
-#: misc/tune2fs.c:3175
+#: misc/tune2fs.c:3174
 msgid ""
 "The quota feature may only be changed when the filesystem is unmounted.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3193
+#: misc/tune2fs.c:3192
 msgid "Setting the UUID on this filesystem could take some time."
 msgstr ""
 
-#: misc/tune2fs.c:3208
+#: misc/tune2fs.c:3207
 msgid "The UUID may only be changed when the filesystem is unmounted.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3211
+#: misc/tune2fs.c:3210
 msgid ""
 "If you only use kernels newer than v4.4, run 'tune2fs -O metadata_csum_seed' "
 "and re-run this command.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3241
+#: misc/tune2fs.c:3240
 msgid "Invalid UUID format\n"
 msgstr ""
 
-#: misc/tune2fs.c:3257
+#: misc/tune2fs.c:3256
 msgid "Need to update journal superblock.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3279
+#: misc/tune2fs.c:3278
 msgid "The inode size may only be changed when the filesystem is unmounted.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3286
+#: misc/tune2fs.c:3285
 msgid ""
 "Changing the inode size not supported for filesystems with the flex_bg\n"
 "feature enabled.\n"
 msgstr ""
 
-#: misc/tune2fs.c:3304
+#: misc/tune2fs.c:3303
 #, c-format
 msgid "Setting inode size %lu\n"
 msgstr ""
 
-#: misc/tune2fs.c:3308
+#: misc/tune2fs.c:3307
 msgid "Failed to change inode size\n"
 msgstr ""
 
-#: misc/tune2fs.c:3322
+#: misc/tune2fs.c:3321
 #, c-format
 msgid "Setting stride size to %d\n"
 msgstr ""
 
-#: misc/tune2fs.c:3327
+#: misc/tune2fs.c:3326
 #, c-format
 msgid "Setting stripe width to %d\n"
 msgstr ""
 
-#: misc/tune2fs.c:3334
+#: misc/tune2fs.c:3333
 #, c-format
 msgid "Setting extended default mount options to '%s'\n"
 msgstr ""
@@ -7099,7 +7104,7 @@ msgid "Should never happen: resize inode corrupt!\n"
 msgstr ""
 
 #: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.45.5"
+msgid "EXT2FS Library version 1.45.6"
 msgstr ""
 
 #: lib/ext2fs/ext2_err.c:12
@@ -7814,6 +7819,10 @@ msgstr ""
 msgid "Inode containing extended attribute value is corrupted"
 msgstr ""
 
+#: lib/ext2fs/ext2_err.c:190
+msgid "Group descriptors not loaded"
+msgstr ""
+
 #: lib/support/prof_err.c:11
 msgid "Profile version 0.0"
 msgstr ""
@@ -7938,68 +7947,68 @@ msgstr ""
 msgid "Bad magic value in profile_file_data_t"
 msgstr ""
 
-#: lib/support/plausible.c:118
+#: lib/support/plausible.c:114
 #, c-format
-msgid "\tlast mounted on %s on %s"
+msgid "\tlast mounted on %.*s on %s"
 msgstr ""
 
-#: lib/support/plausible.c:121
+#: lib/support/plausible.c:117
 #, c-format
 msgid "\tlast mounted on %s"
 msgstr ""
 
-#: lib/support/plausible.c:124
+#: lib/support/plausible.c:120
 #, c-format
 msgid "\tcreated on %s"
 msgstr ""
 
-#: lib/support/plausible.c:127
+#: lib/support/plausible.c:123
 #, c-format
 msgid "\tlast modified on %s"
 msgstr ""
 
-#: lib/support/plausible.c:161
+#: lib/support/plausible.c:157
 #, c-format
 msgid "Found a %s partition table in %s\n"
 msgstr ""
 
-#: lib/support/plausible.c:191
+#: lib/support/plausible.c:187
 #, c-format
 msgid "The file %s does not exist and no size was specified.\n"
 msgstr ""
 
-#: lib/support/plausible.c:199
+#: lib/support/plausible.c:195
 #, c-format
 msgid "Creating regular file %s\n"
 msgstr ""
 
-#: lib/support/plausible.c:202
+#: lib/support/plausible.c:198
 #, c-format
 msgid "Could not open %s: %s\n"
 msgstr ""
 
-#: lib/support/plausible.c:205
+#: lib/support/plausible.c:201
 msgid ""
 "\n"
 "The device apparently does not exist; did you specify it correctly?\n"
 msgstr ""
 
-#: lib/support/plausible.c:227
+#: lib/support/plausible.c:223
 #, c-format
 msgid "%s is not a block special device.\n"
 msgstr ""
 
-#: lib/support/plausible.c:249
+#: lib/support/plausible.c:245
 #, c-format
 msgid "%s contains a %s file system labelled '%s'\n"
 msgstr ""
 
-#: lib/support/plausible.c:252
+#: lib/support/plausible.c:248
 #, c-format
 msgid "%s contains a %s file system\n"
 msgstr ""
 
-#: lib/support/plausible.c:276
+#: lib/support/plausible.c:272
 #, c-format
 msgid "%s contains `%s' data\n"
 msgstr ""
index ebee449cc0ebbc3a76f472046b5208534aee3536..8944ea0d8c001de786f95a85603669176433cd9d 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -1,7 +1,7 @@
 # e2fsprogs Bahasa Melayu (Malay) (ms).
-# Copyright (C) 2008, 2009, 2015, 2018, 2019 Theodore Tso (msgids)
+# Copyright (C) 2008, 2009, 2015, 2018, 2019, 2020 Theodore Tso (msgids)
 # This file is distributed under the same license as the e2fsprogs package.
-# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2008, 2009, 2015, 2018, 2019.
+# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2008, 2009, 2015, 2018, 2019, 2020.
 #
 #. The strings in e2fsck's problem.c can be very hard to translate,
 #. since the strings are expanded in two different ways.  First of all,
@@ -77,7 +77,7 @@ msgstr ""
 "Project-Id-Version: e2fsprogs 1.45.3\n"
 "Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
 "POT-Creation-Date: 2019-07-14 20:56-0400\n"
-"PO-Revision-Date: 2019-12-27 12:44+0800\n"
+"PO-Revision-Date: 2020-03-18 13:02+0800\n"
 "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
 "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
 "Language: ms\n"
@@ -86,7 +86,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.2.4\n"
+"X-Generator: Poedit 2.3\n"
 
 #: e2fsck/badblocks.c:23 misc/mke2fs.c:220
 #, c-format
@@ -132,10 +132,8 @@ msgid "Warning: illegal block %u found in bad block inode.  Cleared.\n"
 msgstr "Amaran: blok tidak sah %u terdapat di dalam blok inode buruk. Dibersihkan.\n"
 
 #: e2fsck/dirinfo.c:331
-#, fuzzy
-#| msgid "while reading root inode"
 msgid "while freeing dir_info tdb file"
-msgstr "Ralat apabila membaca fail."
+msgstr "ketika membebaskan fail dir_info tdb"
 
 #: e2fsck/ehandler.c:55
 #, c-format
@@ -170,7 +168,7 @@ msgstr "Ralat membaca blok %lu (%s) ketika %s.  "
 #: e2fsck/emptydir.c:57
 #, fuzzy
 msgid "empty dirblocks"
-msgstr "kosong"
+msgstr "Makro adalah kosong"
 
 #: e2fsck/emptydir.c:62
 #, fuzzy
@@ -205,7 +203,7 @@ msgstr "fail kosong biasa"
 #: e2fsck/flushb.c:35
 #, fuzzy, c-format
 msgid "Usage: %s disk\n"
-msgstr "Penggunaan: %s [PILIHAN]\n"
+msgstr "Penggunaan: %s [-r] [-t]\n"
 
 #: e2fsck/flushb.c:64
 #, c-format
@@ -265,7 +263,7 @@ msgstr "%s: fail terlalu pendek untuk menjadi fail gmon\n"
 #: e2fsck/journal.c:972 misc/fuse2fs.c:3792
 #, fuzzy, c-format
 msgid "%s: recovering journal\n"
-msgstr "ketika mendapatkan semula jurnal ext3 bagi %s"
+msgstr "%s adalah bukan peranti jurnal.\n"
 
 #: e2fsck/journal.c:974
 #, c-format
@@ -353,7 +351,7 @@ msgstr ""
 #: e2fsck/message.c:133
 #, fuzzy
 msgid "llost+found"
-msgstr "\"%s\" tidak dijumpai"
+msgstr "/@l tidak dijumpai."
 
 #: e2fsck/message.c:134
 #, fuzzy
@@ -373,9 +371,8 @@ msgid "oorphaned"
 msgstr ""
 
 #: e2fsck/message.c:138
-#, fuzzy
 msgid "pproblem in"
-msgstr "Sedang Diguna"
+msgstr "pproblem dalam"
 
 #: e2fsck/message.c:139
 msgid "qquota"
@@ -384,7 +381,7 @@ msgstr ""
 #: e2fsck/message.c:140
 #, fuzzy
 msgid "rroot @i"
-msgstr "@u @z @i %i.  "
+msgstr "<i>(tiada cadangan)</i>"
 
 #: e2fsck/message.c:141
 #, fuzzy
@@ -475,7 +472,7 @@ msgstr "direktori"
 #: e2fsck/message.c:331
 #, fuzzy
 msgid "character device"
-msgstr "peranti tidak sah %s %s"
+msgstr "aksara tidak sah"
 
 #: e2fsck/message.c:333
 #, fuzzy
@@ -485,7 +482,7 @@ msgstr "%s adalah bukan peranti khas.\n"
 #: e2fsck/message.c:335
 #, fuzzy
 msgid "named pipe"
-msgstr "fail dinamakan"
+msgstr "(paip)"
 
 #: e2fsck/message.c:337
 msgid "symbolic link"
@@ -532,7 +529,7 @@ msgstr "pengguna"
 #: e2fsck/message.c:485
 #, fuzzy
 msgid "group"
-msgstr "tak dapat menukar ke kumpulan null"
+msgstr "Pemerihal kumpulan kelihatan buruk..."
 
 #: e2fsck/message.c:488
 msgid "project"
@@ -580,7 +577,7 @@ msgstr "membaca direktori %s"
 #: e2fsck/pass1.c:1224
 #, fuzzy
 msgid "in-use inode map"
-msgstr "Tidak dapat memetakan nama \"%s\" ke menu\n"
+msgstr "Guna%"
 
 #: e2fsck/pass1.c:1235
 #, fuzzy
@@ -595,13 +592,13 @@ msgstr "fail kosong biasa"
 #: e2fsck/pass1.c:1254 misc/e2image.c:1282
 #, fuzzy
 msgid "in-use block map"
-msgstr "Tidak dapat memetakan nama \"%s\" ke menu\n"
+msgstr "Peta terjemahan: sintaks tidak betul"
 
 #: e2fsck/pass1.c:1263
 #, fuzzy
 #| msgid "meta-data blocks"
 msgid "metadata block map"
-msgstr "Tidak dapat memetakan nama \"%s\" ke menu\n"
+msgstr "Peta terjemahan: sintaks tidak betul"
 
 #: e2fsck/pass1.c:1325
 #, fuzzy
@@ -635,7 +632,7 @@ msgstr "ketika menetapkan inod blok buruk"
 #: e2fsck/pass1.c:2239
 #, fuzzy
 msgid "imagic inode map"
-msgstr "Tidak dapat memetakan nama \"%s\" ke menu\n"
+msgstr "Peta terjemahan: sintaks tidak betul"
 
 #: e2fsck/pass1.c:2270
 msgid "multiply claimed block map"
@@ -658,7 +655,7 @@ msgstr "  Bitmap block di"
 #: e2fsck/pass1.c:4066
 #, fuzzy
 msgid "inode bitmap"
-msgstr ", Bitmap inode di"
+msgstr "ketika menulis inod bitmap"
 
 #: e2fsck/pass1.c:4072
 #, fuzzy
@@ -680,7 +677,7 @@ msgstr ""
 #: e2fsck/pass3.c:77
 #, fuzzy
 msgid "inode done bitmap"
-msgstr ", Bitmap inode di"
+msgstr "ketika menulis inod bitmap"
 
 #: e2fsck/pass3.c:86
 #, fuzzy
@@ -695,17 +692,17 @@ msgstr "Ulangan 3: Memeriksa sambungan @d\n"
 #: e2fsck/pass3.c:344
 #, fuzzy
 msgid "inode loop detection bitmap"
-msgstr ", Bitmap inode di"
+msgstr "ketika menulis inod bitmap"
 
 #: e2fsck/pass4.c:277
 #, fuzzy
 msgid "Pass 4"
-msgstr "Katalaluan tidak diketahui?!?"
+msgstr "--menunggu-- (lalu %d)\n"
 
 #: e2fsck/pass5.c:79
 #, fuzzy
 msgid "Pass 5"
-msgstr "Katalaluan tidak diketahui?!?"
+msgstr "--menunggu-- (lalu %d)\n"
 
 #: e2fsck/pass5.c:102
 msgid "check_inode_bitmap_checksum: Memory allocation error"
@@ -752,7 +749,7 @@ msgstr "ketika mencipta /lost+found"
 #: e2fsck/problem.c:59
 #, fuzzy
 msgid "Create"
-msgstr "tidak dapat mencipta paip"
+msgstr "tak dapat memcipta fail biasa %s"
 
 #: e2fsck/problem.c:60
 msgid "Salvage"
@@ -930,15 +927,13 @@ msgstr ""
 
 #. @-expanded: block bitmap for group %g is not in group.  (block %b)\n
 #: e2fsck/problem.c:115
-#, fuzzy
 msgid "@b @B for @g %g is not in @g.  (@b %b)\n"
-msgstr "%s adalah nama hos yang tidak sah"
+msgstr "@b @B untuk @g %g tiada didalam @g.  (@b %b)\n"
 
 #. @-expanded: inode bitmap for group %g is not in group.  (block %b)\n
 #: e2fsck/problem.c:119
-#, fuzzy
 msgid "@i @B for @g %g is not in @g.  (@b %b)\n"
-msgstr "%s adalah nama hos yang tidak sah"
+msgstr "@i @B untuk @g %g tiada didalam @g.  (@b %b)\n"
 
 #. @-expanded: inode table for group %g is not in group.  (block %b)\n
 #. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
@@ -997,9 +992,8 @@ msgstr ""
 
 #. @-expanded: superblock first_data_block = %b, should have been %c\n
 #: e2fsck/problem.c:160
-#, fuzzy
 msgid "@S first_data_@b = %b, should have been %c\n"
-msgstr "          Semua data anda yang dipilih telah"
+msgstr "@S first_data_@b = %b, sepatutnya adalah %c\n"
 
 #. @-expanded: filesystem did not have a UUID; generating one.\n
 #. @-expanded: \n
@@ -1135,7 +1129,7 @@ msgstr "Fail Telah Ada dalam Senarai"
 #: e2fsck/problem.c:281
 #, fuzzy, no-c-format
 msgid "@I @o @i %i in @S.\n"
-msgstr "@i %i (%Q) adalah @I FIFO.\n"
+msgstr "@A baru @d @b untuk @i %i (%s): %m\n"
 
 #. @-expanded: illegal inode %i in orphaned inode list.\n
 #: e2fsck/problem.c:287
@@ -1190,7 +1184,7 @@ msgstr ""
 #: e2fsck/problem.c:325
 #, fuzzy
 msgid "Run @j anyway"
-msgstr "mke2fs dipaksa juga.\n"
+msgstr "ketika cuba untuk melaksana '%s'"
 
 #. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
 #: e2fsck/problem.c:330
@@ -1223,7 +1217,7 @@ msgstr ""
 #: e2fsck/problem.c:352
 #, fuzzy
 msgid "Resize @i not valid.  "
-msgstr "Tidak dapat mengubah saiz tetingkap suntingan"
+msgstr "ketika cuba untuk mengulangsaiz %s"
 
 #. @-expanded: superblock last mount time (%t,\n
 #. @-expanded: \tnow = %T) is in the future.\n
@@ -1401,7 +1395,7 @@ msgstr ""
 #: e2fsck/problem.c:512
 #, fuzzy
 msgid "Invalid %U @q @i %i.  "
-msgstr "@u @z @i %i.  "
+msgstr "@i %i (%Q) adalah @I FIFO.\n"
 
 #. @-expanded: superblock would have too many inodes (%N).\n
 #: e2fsck/problem.c:517
@@ -1454,7 +1448,7 @@ msgstr ""
 #: e2fsck/problem.c:562
 #, fuzzy, no-c-format
 msgid "@i %i is a @z @d.  "
-msgstr "@u @z @i %i.  "
+msgstr "/@l adalah bukan sejenis @d (ino=%i)\n"
 
 #. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
 #: e2fsck/problem.c:567
@@ -1614,7 +1608,7 @@ msgstr "&Cari Bantuan"
 msgid "@A @b buffer for relocating %s\n"
 msgstr ""
 "\n"
-"Buffer tidak ditulis ke %s: %s\n"
+"Buffer ditulis ke %s\n"
 
 #. @-expanded: Relocating group %g's %s from %b to %c...\n
 #: e2fsck/problem.c:702
@@ -2289,7 +2283,9 @@ msgstr ""
 #: e2fsck/problem.c:1344
 #, fuzzy, no-c-format
 msgid "Couldn't clone file: %m\n"
-msgstr "Tidak dapat membuka fail profil"
+msgstr ""
+"Tidak dapat membaiki induk untuk @i %i: %m\n"
+"\n"
 
 #. @-expanded: Pass 1E: Optimizing extent trees\n
 #: e2fsck/problem.c:1350
@@ -2308,7 +2304,7 @@ msgstr "Gagal untuk mengoptima direktori %q (%d): %m"
 #, fuzzy
 #| msgid "Optimizing directories: "
 msgid "Optimizing @x trees: "
-msgstr "\t\tX: "
+msgstr "Mengoptimakan direktori"
 
 #: e2fsck/problem.c:1376
 msgid "Internal error: max extent tree depth too large (%b; expected=%c).\n"
@@ -2354,7 +2350,7 @@ msgstr ""
 #: e2fsck/problem.c:1414
 #, fuzzy
 msgid "@E @L to '.'  "
-msgstr "@E adalah salinan '.' @e.\n"
+msgstr "/@l tidak dijumpai."
 
 #. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
 #: e2fsck/problem.c:1419
@@ -2498,7 +2494,7 @@ msgstr ""
 #: e2fsck/problem.c:1550
 #, fuzzy, no-c-format
 msgid "@A icount structure: %m\n"
-msgstr "Tidak dapat mengembang /@l: %m\n"
+msgstr "Jenis beg struktur PKCS tidak diketahui."
 
 #. @-expanded: Error iterating over directory blocks: %m\n
 #: e2fsck/problem.c:1556
@@ -2952,7 +2948,7 @@ msgstr ""
 #: e2fsck/problem.c:1992
 #, fuzzy
 msgid "@a @i %i ref count is %N, @s %n. "
-msgstr "i_frag @F %N, @s sifar.\n"
+msgstr "i_fsize @F %N, @s sifar.\n"
 
 #. @-expanded: directory exceeds max links, but no DIR_NLINK feature in superblock.\n
 #: e2fsck/problem.c:1997
@@ -3099,9 +3095,7 @@ msgstr "DIABAIKAN"
 #: e2fsck/quota.c:30 e2fsck/quota.c:37 e2fsck/quota.c:50 e2fsck/quota.c:59
 #, fuzzy
 msgid "in move_quota_inode"
-msgstr ""
-"\n"
-"  Jadual inode di"
+msgstr "tak dapat pindahkan %s ke %s"
 
 #: e2fsck/scantest.c:79
 #, c-format
@@ -3222,7 +3216,7 @@ msgstr[0] "ketika menetapkan inod blok buruk"
 #, fuzzy, c-format
 msgid "%12u large file\n"
 msgid_plural "%12u large files\n"
-msgstr[0] "%12u fifo\n"
+msgstr[0] "%s adalah terlalu besar"
 
 #: e2fsck/unix.c:202
 #, fuzzy, c-format
@@ -3232,19 +3226,19 @@ msgid ""
 msgid_plural ""
 "\n"
 "%12u regular files\n"
-msgstr[0] "fail biasa"
+msgstr[0] "fail kosong biasa"
 
 #: e2fsck/unix.c:204
 #, fuzzy, c-format
 msgid "%12u directory\n"
 msgid_plural "%12u directories\n"
-msgstr[0] "%12u fifo\n"
+msgstr[0] "direktori"
 
 #: e2fsck/unix.c:206
 #, fuzzy, c-format
 msgid "%12u character device file\n"
 msgid_plural "%12u character device files\n"
-msgstr[0] "Fail \"%s\" adalah sebuah fail peranti"
+msgstr[0] "fail khas aksara"
 
 #: e2fsck/unix.c:209
 #, fuzzy, c-format
@@ -3262,7 +3256,7 @@ msgstr[0] "%12u fifo\n"
 #, fuzzy, c-format
 msgid "%12u link\n"
 msgid_plural "%12u links\n"
-msgstr[0] "%12u fifo\n"
+msgstr[0] "Pautan ke %s\n"
 
 #: e2fsck/unix.c:215
 #, fuzzy, c-format
@@ -3280,13 +3274,13 @@ msgstr[0] "pautan simbolik"
 #, fuzzy, c-format
 msgid "%12u socket\n"
 msgid_plural "%12u sockets\n"
-msgstr[0] "%12u fifo\n"
+msgstr[0] "soket"
 
 #: e2fsck/unix.c:225
 #, fuzzy, c-format
 msgid "%12u file\n"
 msgid_plural "%12u files\n"
-msgstr[0] "%12u fifo\n"
+msgstr[0] "Fail:"
 
 #: e2fsck/unix.c:238 misc/badblocks.c:1002 misc/tune2fs.c:2986 misc/util.c:129
 #: resize/main.c:354
@@ -3297,7 +3291,7 @@ msgstr "ketika menentukan sama ada %s telah dilekapkan."
 #: e2fsck/unix.c:259
 #, fuzzy, c-format
 msgid "Warning!  %s is mounted.\n"
-msgstr "\tterakhir dilekapkan pada %s pada %s"
+msgstr "\tterakhir dilekapkan pada %s"
 
 #: e2fsck/unix.c:262
 #, fuzzy, c-format
@@ -3314,7 +3308,7 @@ msgstr "%s dilekapkan;"
 #, fuzzy, c-format
 #| msgid "%s is mounted.  "
 msgid "%s is in use.\n"
-msgstr "opsyen `-%s' sudah luput; guna `-%c %.*s%.*s%s'"
+msgstr "Guna%"
 
 #: e2fsck/unix.c:272
 msgid ""
@@ -3408,7 +3402,7 @@ msgstr "Versi EA tidak sah.\n"
 #, fuzzy
 #| msgid "Invalid resize parameter: %s\n"
 msgid "Invalid readahead buffer size.\n"
-msgstr "saiz blok tidak sah - %s"
+msgstr "Tidak dapat memperoleh saiz buffer paip"
 
 #: e2fsck/unix.c:757
 #, c-format
@@ -3498,7 +3492,7 @@ msgstr ""
 msgid ""
 "E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
 "\n"
-msgstr "`%s' adalah bukan integer positif yang sah"
+msgstr "integer diluar julat: %s"
 
 #: e2fsck/unix.c:1151
 #, fuzzy, c-format
@@ -3516,7 +3510,7 @@ msgstr ""
 #: e2fsck/unix.c:1259 e2fsck/unix.c:1264
 #, fuzzy
 msgid "while checking MMP block"
-msgstr "ketika menulis bitmap blok"
+msgstr "ketika memeriksa kewarasan blok inode buruk"
 
 #: e2fsck/unix.c:1266
 #, c-format
@@ -3528,7 +3522,7 @@ msgstr ""
 #: e2fsck/unix.c:1282
 #, fuzzy
 msgid "while reading MMP block"
-msgstr "ketika menulis bitmap blok"
+msgstr "Ralat apabila membaca fail."
 
 #: e2fsck/unix.c:1302 e2fsck/unix.c:1354 misc/e2undo.c:236 misc/e2undo.c:281
 #: misc/mke2fs.c:2696 misc/mke2fs.c:2747 misc/tune2fs.c:2713
@@ -3637,7 +3631,7 @@ msgstr ""
 #: e2fsck/unix.c:1749
 #, fuzzy, c-format
 msgid "while checking journal for %s"
-msgstr "ketika mendapatkan semula jurnal ext3 bagi %s"
+msgstr "ketika mengosongkan inod jurnal"
 
 #: e2fsck/unix.c:1752
 #, fuzzy
@@ -3664,13 +3658,13 @@ msgstr "Superblok jurnal tidak dijumpai!\n"
 #, fuzzy, c-format
 #| msgid "Journal removed\n"
 msgid "Journal corrupted in %s\n"
-msgstr "jurnal"
+msgstr "Menambah jurnal ke peranti %s:"
 
 #: e2fsck/unix.c:1789
 #, fuzzy, c-format
 #| msgid "while recovering ext3 journal of %s"
 msgid "while recovering journal of %s"
-msgstr "ketika mendapatkan semula jurnal ext3 bagi %s"
+msgstr "ketika membaca superblok jurnal"
 
 #: e2fsck/unix.c:1811
 #, c-format
@@ -3755,7 +3749,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "%s: ***** REBOOT LINUX *****\n"
 msgid "%s: ***** REBOOT SYSTEM *****\n"
-msgstr "%s: ***** ULANGBOOT LINUX *****\n"
+msgstr "(dan ulangboot selepas itu!)\n"
 
 #: e2fsck/unix.c:2050 e2fsck/util.c:77
 #, c-format
@@ -3794,7 +3788,7 @@ msgstr "Tiada"
 #: e2fsck/util.c:223
 #, fuzzy
 msgid " (y/n)"
-msgstr "Teruskan juga? (y,t)"
+msgstr "\t\tY: "
 
 #: e2fsck/util.c:246
 msgid "cancelled!\n"
@@ -3896,7 +3890,7 @@ msgstr "masa lepas: %6.3f\n"
 #: e2fsck/util.c:495 e2fsck/util.c:509
 #, fuzzy, c-format
 msgid "while reading inode %lu in %s"
-msgstr "Ralat membaca blok %lu (%s) ketika %s.  "
+msgstr "ketika membaca inod jurnal"
 
 #: e2fsck/util.c:523 e2fsck/util.c:536
 #, fuzzy, c-format
@@ -3910,7 +3904,7 @@ msgstr ""
 #: misc/badblocks.c:75
 #, fuzzy
 msgid "done                                                 \n"
-msgstr "selesai                             \n"
+msgstr "selesai                         \n"
 
 #: misc/badblocks.c:100
 #, c-format
@@ -3941,7 +3935,7 @@ msgstr "Gagal untuk mendapatkan data rawak."
 #: misc/badblocks.c:355
 #, fuzzy
 msgid "Testing with pattern 0x"
-msgstr "Corak"
+msgstr "Tiada corak carian semasa"
 
 #: misc/badblocks.c:387 misc/badblocks.c:460
 msgid "during seek"
@@ -4097,7 +4091,7 @@ msgstr "ketika membaca dalam senarai blok buruk dari fail"
 #: misc/badblocks.c:1305
 #, fuzzy
 msgid "input file - bad format"
-msgstr "fail masukan mengecil"
+msgstr "%s: fail input adalah fail output"
 
 #: misc/badblocks.c:1313 misc/badblocks.c:1322
 msgid "while adding to in-memory bad block list"
@@ -4203,7 +4197,7 @@ msgstr "ketika menulis jadual inod"
 #: misc/create_inode.c:152 misc/create_inode.c:176
 #, fuzzy, c-format
 msgid "while listing attributes of \"%s\""
-msgstr "tak dapat menyenaraikan direktori tersedia-tersenarai: %s"
+msgstr "gagal mendapatkan atribut bagi %s"
 
 #: misc/create_inode.c:163
 #, fuzzy, c-format
@@ -4243,7 +4237,7 @@ msgstr "ketika mengumpukkan penimbal"
 #: misc/create_inode.c:294
 #, fuzzy, c-format
 msgid "while creating inode \"%s\""
-msgstr "ketika mencipta direktori root"
+msgstr "Mencipta inode jurnal:"
 
 #: misc/create_inode.c:360
 #, fuzzy, c-format
@@ -4277,29 +4271,29 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "while creating root dir"
 msgid "while scanning directory \"%s\""
-msgstr "ketika menetapkan versi pada %s"
+msgstr "ketika cuba untuk memadam %s"
 
 #: misc/create_inode.c:825
 #, fuzzy, c-format
 #| msgid "while trying to stat %s"
 msgid "while lstat \"%s\""
-msgstr "tak dapat lstat %s"
+msgstr "ketika membuka %s"
 
 #: misc/create_inode.c:875
 #, fuzzy, c-format
 msgid "while creating special file \"%s\""
-msgstr "Mencipta fail biasa %s\n"
+msgstr "tak boleh mencipta fail istimewa %s"
 
 #: misc/create_inode.c:884
 #, fuzzy
 msgid "malloc failed"
-msgstr "malloc() gagal. Tidak dapat memperuntukkan memori yang cukup."
+msgstr "Gagal"
 
 #: misc/create_inode.c:892
 #, fuzzy, c-format
 #| msgid "while trying to resize %s"
 msgid "while trying to read link \"%s\""
-msgstr "ketika cuba untuk memadam %s"
+msgstr "tak dapat membaca pautan simbolik %s"
 
 #: misc/create_inode.c:899
 msgid "symlink increased in size between lstat() and readlink()"
@@ -4313,7 +4307,7 @@ msgstr "ketika menulis jadual inod"
 #: misc/create_inode.c:921
 #, fuzzy, c-format
 msgid "while writing file \"%s\""
-msgstr "Ralat menulis fail sementara: %s"
+msgstr "Ralat menulis fail salinan %s: %s"
 
 #: misc/create_inode.c:934
 #, fuzzy, c-format
@@ -4431,7 +4425,7 @@ msgstr ""
 #, fuzzy
 #| msgid ", Inode bitmap at "
 msgid " Inode bitmap at "
-msgstr ", Bitmap inode di"
+msgstr "ketika menulis inod bitmap"
 
 #: misc/dumpe2fs.c:273
 msgid ""
@@ -4478,12 +4472,12 @@ msgstr "ketika membaca inod jurnal"
 #: misc/dumpe2fs.c:379
 #, fuzzy
 msgid "while opening journal inode"
-msgstr "ketika mengosongkan inod jurnal"
+msgstr "ketika membaca inod jurnal"
 
 #: misc/dumpe2fs.c:385
 #, fuzzy
 msgid "while reading journal super block"
-msgstr "ketika membaca superblok jurnal"
+msgstr "ketika membaca inod jurnal"
 
 #: misc/dumpe2fs.c:392
 #, fuzzy
@@ -4573,7 +4567,7 @@ msgstr ""
 #: misc/e2image.c:110
 #, fuzzy, c-format
 msgid "       %s -I device image-file\n"
-msgstr "_Kerangka pada fail imej:"
+msgstr "\"%s\" adalah sebuah fail peranti"
 
 #: misc/e2image.c:111
 #, c-format
@@ -4599,7 +4593,7 @@ msgstr "ketika menulis bitmap blok"
 #: misc/e2image.c:198
 #, fuzzy
 msgid "error in generic_write()"
-msgstr "Penghurai ASN1: Ralat menghurai generik."
+msgstr "ralat menulis"
 
 #: misc/e2image.c:215
 msgid "Error: header size is bigger than wrt_size\n"
@@ -4639,7 +4633,7 @@ msgstr ""
 #: misc/e2image.c:568
 #, fuzzy, c-format
 msgid "%llu / %llu blocks (%d%%)"
-msgstr "inod (%llu) mesti kurang dari %u"
+msgstr "inode (%llu) mesti kurang dari %u"
 
 #: misc/e2image.c:599 misc/e2image.c:639
 #, fuzzy
@@ -4774,7 +4768,7 @@ msgstr ""
 #: misc/e2image.c:1596
 #, fuzzy
 msgid "checking if mounted"
-msgstr " Dilekapkan pada\n"
+msgstr "Dilekapkan pada"
 
 #: misc/e2image.c:1603
 msgid ""
@@ -4791,22 +4785,22 @@ msgstr ""
 #: misc/e2image.c:1663
 #, fuzzy
 msgid "Can not stat output\n"
-msgstr "ketika cuba untuk stat %s"
+msgstr "Keluaran:\n"
 
 #: misc/e2image.c:1673
 #, fuzzy, c-format
 msgid "Image (%s) is compressed\n"
-msgstr "Imej"
+msgstr "Terdapat ralat memuatkan gambar bulan: %s"
 
 #: misc/e2image.c:1676
 #, fuzzy, c-format
 msgid "Image (%s) is encrypted\n"
-msgstr "_Kerangka pada fail imej:"
+msgstr "Terdapat ralat memuatkan gambar bulan: %s"
 
 #: misc/e2image.c:1679
 #, fuzzy, c-format
 msgid "Image (%s) is corrupted\n"
-msgstr "_Kerangka pada fail imej:"
+msgstr "Terdapat ralat memuatkan gambar bulan: %s"
 
 #: misc/e2image.c:1683
 #, c-format
@@ -4858,7 +4852,7 @@ msgstr "e2label: ralat membaca superblok\n"
 #: misc/e2label.c:72
 #, fuzzy, c-format
 msgid "e2label: not an ext2 filesystem\n"
-msgstr "Sistem fail       "
+msgstr "sistemfail"
 
 #: misc/e2label.c:97 misc/tune2fs.c:3117
 #, c-format
@@ -4927,7 +4921,7 @@ msgstr ""
 #: misc/e2undo.c:340
 #, fuzzy, c-format
 msgid "illegal offset - %s"
-msgstr "%s: opsyen tidak dibenarkan -- %c\n"
+msgstr "%s: pilihan salah  -- %c\n"
 
 #: misc/e2undo.c:364
 #, c-format
@@ -4980,7 +4974,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Error while determining whether %s is mounted.\n"
 msgid "Error while determining whether %s is mounted."
-msgstr "Ralat ketika menentukan sama ada %s telah dilekapkan.\n"
+msgstr "ketika menentukan sama ada %s telah dilekapkan."
 
 #: misc/e2undo.c:439
 msgid "e2undo should only be run on unmounted filesystems"
@@ -5100,7 +5094,7 @@ msgstr ""
 msgid ""
 "\n"
 "%11Lu: finished with errno %d\n"
-msgstr "Program tempatan [%d] selesai."
+msgstr "Selesai dengan %s (status keluar %d)\n"
 
 #: misc/fsck.c:343
 #, c-format
@@ -5249,7 +5243,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Usage: %s [-RVadlv] [files...]\n"
 msgid "Usage: %s [-RVadlpv] [files...]\n"
-msgstr "Penggunaan: %s [-RVadlv] [fail...]\n"
+msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
 
 #: misc/lsattr.c:86
 #, c-format
@@ -5428,7 +5422,7 @@ msgstr "Label sistemfail=%s\n"
 #: misc/mke2fs.c:681
 #, fuzzy, c-format
 msgid "OS type: %s\n"
-msgstr "Jenis OS:"
+msgstr "OS tidak diketahui - %s"
 
 #: misc/mke2fs.c:683
 #, c-format
@@ -5453,7 +5447,7 @@ msgstr ""
 #: misc/mke2fs.c:694
 #, fuzzy, c-format
 msgid "%u inodes, %llu blocks\n"
-msgstr "inod (%llu) mesti kurang dari %u"
+msgstr "inode (%llu) mesti kurang dari %u"
 
 #: misc/mke2fs.c:696
 #, c-format
@@ -5513,7 +5507,7 @@ msgstr ""
 #: misc/mke2fs.c:822
 #, fuzzy, c-format
 msgid "%s requires '-O 64bit'\n"
-msgstr "Pilihan \"%s\" memerlukan hujah"
+msgstr "%s: pilihan `%s' memerlukan hujah\n"
 
 #: misc/mke2fs.c:828
 #, c-format
@@ -5544,7 +5538,7 @@ msgstr "jarakmasa `%s' tidak sah"
 #, fuzzy, c-format
 #| msgid "Invalid superblock parameter: %s\n"
 msgid "Invalid # of backup superblocks: %s\n"
-msgstr "tak dapat backup %s"
+msgstr "%s: Tak dapat backup fail ini"
 
 #: misc/mke2fs.c:920
 #, c-format
@@ -5572,7 +5566,7 @@ msgstr ""
 #: misc/mke2fs.c:1015 misc/mke2fs.c:1024
 #, fuzzy, c-format
 msgid "Invalid root_owner: '%s'\n"
-msgstr "Pemilik tidak sah"
+msgstr "Ralat mencipta root @d (%s): %m\n"
 
 #: misc/mke2fs.c:1069
 #, fuzzy, c-format
@@ -5691,7 +5685,7 @@ msgstr ""
 #: misc/mke2fs.c:1661
 #, fuzzy, c-format
 msgid "invalid cluster size - %s"
-msgstr "saiz pecahan tidak sah - %s"
+msgstr "saiz blok tidak sah - %s"
 
 #: misc/mke2fs.c:1674
 msgid "'-R' is deprecated, use '-E' instead"
@@ -6047,7 +6041,7 @@ msgstr "  Blok bebas: "
 #: misc/mke2fs.c:2804
 #, fuzzy
 msgid "failed - "
-msgstr "GAGAL"
+msgstr "Gagal"
 
 #: misc/mke2fs.c:2863
 #, fuzzy
@@ -6182,7 +6176,7 @@ msgstr "Mengosongkan peranti jurnal:"
 #: misc/mke2fs.c:3379
 #, fuzzy
 msgid "while populating file system"
-msgstr "Ralat apabila membaca fail."
+msgstr "Abai fail tetapan sistem"
 
 #: misc/mke2fs.c:3386
 msgid "Writing superblocks and filesystem accounting information: "
@@ -6214,7 +6208,7 @@ msgstr ""
 #: misc/mk_hugefiles.c:583
 #, fuzzy
 msgid "Huge files will be zero'ed\n"
-msgstr " %d fail,"
+msgstr "Ke Fail"
 
 #: misc/mk_hugefiles.c:584
 #, fuzzy, c-format
@@ -6366,7 +6360,7 @@ msgstr "enable/disable"
 #: misc/tune2fs.c:497
 #, fuzzy, c-format
 msgid "' to disable 64-bit mode.\n"
-msgstr "enable/disable"
+msgstr "MOD"
 
 #: misc/tune2fs.c:1035
 msgid ""
@@ -6433,7 +6427,7 @@ msgstr ""
 #: misc/tune2fs.c:1174
 #, fuzzy
 msgid "while reading MMP block."
-msgstr "ketika menulis bitmap blok"
+msgstr "Ralat apabila membaca fail."
 
 #: misc/tune2fs.c:1206
 msgid ""
@@ -6699,7 +6693,7 @@ msgstr ""
 #: misc/tune2fs.c:2622
 #, fuzzy
 msgid "Failed to read inode bitmap\n"
-msgstr ", Bitmap inode di"
+msgstr "ketika menulis inod bitmap"
 
 #: misc/tune2fs.c:2627
 #, fuzzy
@@ -6780,7 +6774,7 @@ msgstr ""
 #: misc/tune2fs.c:3009
 #, fuzzy, c-format
 msgid "Recovering journal.\n"
-msgstr "ketika mendapatkan semula jurnal ext3 bagi %s"
+msgstr "jurnal"
 
 #: misc/tune2fs.c:3028
 #, c-format
@@ -6911,7 +6905,7 @@ msgstr "Menetapkan saiz inod %lu\n"
 #: misc/tune2fs.c:3296
 #, fuzzy
 msgid "Failed to change inode size\n"
-msgstr "saiz inode tidak sah - %s"
+msgstr "gagal menukar hakmilik %s ke %s\n"
 
 #: misc/tune2fs.c:3310
 #, c-format
@@ -7040,12 +7034,12 @@ msgstr "Sijil buruk"
 #: misc/uuidd.c:173
 #, fuzzy
 msgid "connect"
-msgstr "IDENT: connect() gagal: %s."
+msgstr "IDENT: connect() gagal"
 
 #: misc/uuidd.c:192
 #, fuzzy
 msgid "write"
-msgstr "Tidak dapat menulis salinan: %s"
+msgstr "Tidak dapat menulis diluar daripada %s"
 
 #: misc/uuidd.c:200
 #, fuzzy
@@ -7055,7 +7049,7 @@ msgstr "Kiraan Perkataan"
 #: misc/uuidd.c:206
 #, fuzzy
 msgid "bad response length"
-msgstr "\t\t\tKekangan Panjang Laluan: %d\n"
+msgstr "panjang pita tidak sah"
 
 #: misc/uuidd.c:271
 #, c-format
@@ -7090,7 +7084,7 @@ msgstr ""
 #: misc/uuidd.c:381
 #, fuzzy, c-format
 msgid "Generated time UUID: %s\n"
-msgstr "tak memperolehi setem masa bagi %s"
+msgstr "masa dalam %s: %ld.%06ld (%ld%%)\n"
 
 #: misc/uuidd.c:391
 #, c-format
@@ -7111,7 +7105,7 @@ msgstr "Format UUID tidak sah\n"
 #: misc/uuidd.c:433
 #, fuzzy, c-format
 msgid "Invalid operation %d\n"
-msgstr "nilai $ tidak sah: %d"
+msgstr "Nyahbuat tindakan terakhir"
 
 #: misc/uuidd.c:477 misc/uuidd.c:499
 #, fuzzy, c-format
@@ -7232,7 +7226,7 @@ msgstr ""
 #: resize/main.c:507
 #, fuzzy, c-format
 msgid "Invalid new size: %s\n"
-msgstr "saiz inode tidak sah - %s"
+msgstr "saiz blok tidak sah - %s"
 
 #: resize/main.c:526
 msgid "New size too large to be expressed in 32 bits\n"
@@ -7297,12 +7291,12 @@ msgstr "Sistemfail telah mempunyai jurnal.\n"
 #: resize/main.c:613
 #, fuzzy, c-format
 msgid "Converting the filesystem to 64-bit.\n"
-msgstr "Sistem fail       "
+msgstr "sistemfail"
 
 #: resize/main.c:615
 #, fuzzy, c-format
 msgid "Converting the filesystem to 32-bit.\n"
-msgstr "Sistem fail       "
+msgstr "sistemfail"
 
 #: resize/main.c:617
 #, c-format
@@ -7404,7 +7398,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "inodes (%llu) must be less than %u"
 msgid "inodes (%llu) must be less than %u\n"
-msgstr "inod (%llu) mesti kurang dari %u"
+msgstr "inode (%llu) mesti kurang dari %u"
 
 #: resize/resize2fs.c:1038
 msgid "reserved blocks"
@@ -7550,12 +7544,12 @@ msgstr ""
 #: lib/ext2fs/ext2_err.c:38
 #, fuzzy
 msgid "Can't write an inode bitmap"
-msgstr ", Bitmap inode di"
+msgstr "Tidak dapat menulis diluar daripada %s"
 
 #: lib/ext2fs/ext2_err.c:39
 #, fuzzy
 msgid "Can't read an inode bitmap"
-msgstr ", Bitmap inode di"
+msgstr "ketika menulis inod bitmap"
 
 #: lib/ext2fs/ext2_err.c:40
 #, fuzzy
@@ -7570,9 +7564,7 @@ msgstr "  Bitmap block di"
 #: lib/ext2fs/ext2_err.c:42
 #, fuzzy
 msgid "Can't write an inode table"
-msgstr ""
-"\n"
-"  Jadual inode di"
+msgstr "Tidak dapat menulis diluar daripada %s"
 
 #: lib/ext2fs/ext2_err.c:43
 #, fuzzy
@@ -7606,12 +7598,12 @@ msgstr ""
 #: lib/ext2fs/ext2_err.c:49
 #, fuzzy
 msgid "No free space in the directory"
-msgstr "ruang (i.e., ` ')"
+msgstr "direktori"
 
 #: lib/ext2fs/ext2_err.c:50
 #, fuzzy
 msgid "Inode bitmap not loaded"
-msgstr ", Bitmap inode di"
+msgstr "ketika menulis inod bitmap"
 
 #: lib/ext2fs/ext2_err.c:51
 #, fuzzy
@@ -7776,7 +7768,7 @@ msgstr "Terlalu banyak ralat, keluar"
 #: lib/ext2fs/ext2_err.c:87
 #, fuzzy
 msgid "File not found by ext2_lookup"
-msgstr "Ralat ditemui dalam fail .nanorc"
+msgstr "/@l tidak dijumpai."
 
 #: lib/ext2fs/ext2_err.c:88
 #, fuzzy
@@ -7791,7 +7783,7 @@ msgstr "Menulis bitmap blok"
 #: lib/ext2fs/ext2_err.c:90
 #, fuzzy
 msgid "Ext2 directory already exists"
-msgstr "Seksyen telah wujud"
+msgstr "%s wujud tapi ianya bukan direktori"
 
 #: lib/ext2fs/ext2_err.c:91
 msgid "Unimplemented ext2 library function"
@@ -7800,7 +7792,7 @@ msgstr ""
 #: lib/ext2fs/ext2_err.c:92
 #, fuzzy
 msgid "User cancel requested"
-msgstr "pengguna"
+msgstr "Batal"
 
 #: lib/ext2fs/ext2_err.c:93
 #, fuzzy
@@ -7862,7 +7854,7 @@ msgstr " Penghurai kumpulan di"
 #: lib/ext2fs/ext2_err.c:105
 #, fuzzy
 msgid "Resize inode is corrupt"
-msgstr "Tidak dapat mengubah saiz tetingkap bawah"
+msgstr "ketika cuba untuk mengulangsaiz %s"
 
 #: lib/ext2fs/ext2_err.c:106
 msgid "Tried to set block bmap with missing indirect block"
@@ -7871,22 +7863,22 @@ msgstr ""
 #: lib/ext2fs/ext2_err.c:107
 #, fuzzy
 msgid "TDB: Success"
-msgstr "tdb_fetch %s gagal\n"
+msgstr "Berjaya."
 
 #: lib/ext2fs/ext2_err.c:108
 #, fuzzy
 msgid "TDB: Corrupt database"
-msgstr "tdb_fetch %s gagal\n"
+msgstr "Pengkalan data tidak dinyatakan"
 
 #: lib/ext2fs/ext2_err.c:109
 #, fuzzy
 msgid "TDB: IO Error"
-msgstr "tdb_open %s gagal\n"
+msgstr "ralat"
 
 #: lib/ext2fs/ext2_err.c:110
 #, fuzzy
 msgid "TDB: Locking error"
-msgstr "tdb_open %s gagal\n"
+msgstr "Ralat decode"
 
 #: lib/ext2fs/ext2_err.c:111
 #, fuzzy
@@ -7896,7 +7888,7 @@ msgstr "nano tidak cukup memori!"
 #: lib/ext2fs/ext2_err.c:112
 #, fuzzy
 msgid "TDB: Record exists"
-msgstr "tdb_open %s gagal\n"
+msgstr "Rekod melimpah"
 
 #: lib/ext2fs/ext2_err.c:113
 msgid "TDB: Lock exists on other keys"
@@ -7915,7 +7907,7 @@ msgstr "pengguna %s tidak wujud"
 #: lib/ext2fs/ext2_err.c:116
 #, fuzzy
 msgid "TDB: Write not permitted"
-msgstr "tdb_fetch %s gagal\n"
+msgstr "Tidak dapat menulis diluar daripada %s"
 
 #: lib/ext2fs/ext2_err.c:117
 #, fuzzy
@@ -8018,7 +8010,7 @@ msgstr "# Loggokan extent:\n"
 #: lib/ext2fs/ext2_err.c:138
 #, fuzzy
 msgid "No 'down' extent"
-msgstr "Turun"
+msgstr "Skrol Bawah"
 
 #: lib/ext2fs/ext2_err.c:139
 #, fuzzy
@@ -8050,7 +8042,7 @@ msgstr ""
 #: lib/ext2fs/ext2_err.c:145
 #, fuzzy
 msgid "Extent length is invalid"
-msgstr "panjang konteks `%s' tidak sah"
+msgstr "Panjang stride tidak sah"
 
 #: lib/ext2fs/ext2_err.c:146
 msgid "I/O Channel does not support 64-bit block numbers"
@@ -8067,7 +8059,7 @@ msgstr ""
 #: lib/ext2fs/ext2_err.c:149
 #, fuzzy
 msgid "MMP: invalid magic number"
-msgstr "jumlah hujah tidak sah"
+msgstr "nombor versi tidak sah `%s'"
 
 #: lib/ext2fs/ext2_err.c:150
 msgid "MMP: device currently active"
@@ -8139,7 +8131,7 @@ msgstr "Perkara yang sama bagi hujah pilihan.\n"
 #: lib/ext2fs/ext2_err.c:166
 #, fuzzy
 msgid "Ext2 file already exists"
-msgstr "Seksyen telah wujud"
+msgstr "Fail `%s' telah pun dibaca.\n"
 
 #: lib/ext2fs/ext2_err.c:167
 #, fuzzy
@@ -8208,33 +8200,27 @@ msgstr ""
 #: lib/ext2fs/ext2_err.c:182
 #, fuzzy
 msgid "Journal flags inconsistent"
-msgstr "jurnal"
+msgstr "ketika membaca penanda pada %s"
 
 #: lib/ext2fs/ext2_err.c:183
-#, fuzzy
 msgid "Undo file corrupt"
-msgstr "Nyahbuat"
+msgstr "Undur fail yang rosak"
 
 #: lib/ext2fs/ext2_err.c:184
-#, fuzzy
 msgid "Wrong undo file for this filesystem"
-msgstr "Penggunaan: %s <fail transaksi> <sistemfail>\n"
+msgstr "Fail undur yang salah untuk sistem fail ini"
 
 #: lib/ext2fs/ext2_err.c:185
-#, fuzzy
 msgid "File system is corrupted"
-msgstr ""
-"\n"
-"%s: ***** SISTEM FAIL TELAH DIUBAHSUAI *****\n"
+msgstr "Sistem fail rosak"
 
 #: lib/ext2fs/ext2_err.c:186
 msgid "Bad CRC detected in file system"
 msgstr ""
 
 #: lib/ext2fs/ext2_err.c:187
-#, fuzzy
 msgid "The journal superblock is corrupt"
-msgstr "ketika membaca superblok jurnal"
+msgstr "Superblock jurnal ini rosak"
 
 #: lib/ext2fs/ext2_err.c:188
 msgid "Inode is corrupted"
@@ -8298,7 +8284,7 @@ msgstr ""
 
 #: lib/support/prof_err.c:24
 msgid "Profile section header not at top level"
-msgstr ""
+msgstr "Profail seksyen pengepala tidak di peringkat tertinggi"
 
 #: lib/support/prof_err.c:25
 msgid "Syntax error in profile section header"
index d55e24c216701a09246dd90532127c38a0496ca5..8acdcf6207361e84c78a711e5ade17153720b061 100644 (file)
@@ -1,10 +1,16 @@
 // Copyright 2017 The Android Open Source Project
 
-cc_binary {
-    name: "resize2fs",
-    host_supported: true,
-    defaults: ["e2fsprogs-defaults"],
+resize2fs_libs = [
+    "libext2fs",
+    "libext2_com_err",
+    "libext2_e2p",
+    "libext2_uuid",
+    "libext2_blkid",
+]
 
+cc_defaults {
+    name: "resize2fs-defaults",
+    defaults: ["e2fsprogs-defaults"],
     srcs: [
         "extent.c",
         "resize2fs.c",
@@ -13,12 +19,32 @@ cc_binary {
         "sim_progress.c",
         "resource_track.c",
     ],
-    shared_libs: [
-        "libext2fs",
-        "libext2_com_err",
-        "libext2_e2p",
-        "libext2_uuid",
-        "libext2_blkid",
-    ],
+}
+
+cc_binary {
+    name: "resize2fs",
+    host_supported: true,
+    defaults: ["resize2fs-defaults"],
+
+    // Host binaries can be compiled statically to be re-used in other environments.
+    // For android binaries, we keep shared libraries to keep the binary size smaller.
+    target: {
+        host: {
+            static_libs: resize2fs_libs,
+        },
+        android: {
+            shared_libs: resize2fs_libs,
+        },
+    },
     system_shared_libs: ["libc", "libdl"],
 }
+
+cc_binary {
+    name: "resize2fs_ramdisk",
+    stem: "resize2fs",
+    static_executable: true,
+    ramdisk: true,
+    defaults: ["resize2fs-defaults"],
+    system_shared_libs: [],
+    static_libs: resize2fs_libs,
+}
index a8d7cff1fa5f7aec1faf579e5c444bbb8e3ec51d..5f05903da42f1b74b4327be364fb3c4af96bf1cc 100644 (file)
@@ -4,8 +4,8 @@
  * also defined the types that we need.
  */
 #if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
-       !defined(_EXT2_TYPES_H))
-#define _EXT2_TYPES_H
+       !defined(_EXT2_TYPES_H) && !defined(_UUID_TYPES_H))
+#define _LINUX_TYPES_H
 
 typedef unsigned char __u8;
 typedef __signed__ char __s8;
index 937496bcab0d6a9b11f483a7b35634142c237bcd..cab4e8d4bf9670e827dc52db5248ded39e85a878 100755 (executable)
@@ -37,9 +37,16 @@ rm -f $MK_CMDS
 
 cp lib/blkid/blkid.h.in lib/blkid/blkid.h
 cp lib/uuid/uuid.h.in lib/uuid/uuid.h
+
 cp util/android_types.h lib/ext2fs/ext2_types.h
 cp util/android_types.h lib/blkid/blkid_types.h
 cp util/android_types.h lib/uuid/uuid_types.h
+# Copied header files having exactly same content results in debug output
+# differences on RBE. Hence modify the #define's appropriately.
+sed -i 's/#define _LINUX_TYPES_H/#define _BLKID_TYPES_H/g' lib/blkid/blkid_types.h
+sed -i 's/#define _LINUX_TYPES_H/#define _EXT2_TYPES_H/g' lib/ext2fs/ext2_types.h
+sed -i 's/#define _LINUX_TYPES_H/#define _UUID_TYPES_H/g' lib/uuid/uuid_types.h
+
 cp util/android_config.h lib/config.h
 cp misc/e2freefrag.c debugfs/
 cp e2fsck/recovery.c e2fsck/revoke.c debugfs/
index da06950e0e8055479b595c41b15456aeca8c4f37..48ff9b695b8a9ed5c1de9ade322ef936feeb2297 100644 (file)
--- a/version.h
+++ b/version.h
@@ -8,4 +8,4 @@
  */
 
 #define E2FSPROGS_VERSION "1.46-WIP"
-#define E2FSPROGS_DATE "09-Oct-2019"
+#define E2FSPROGS_DATE "20-Mar-2020"