From ff2229cc89f18429c1709f122203c13845a4de89 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Mon, 3 Oct 2016 19:23:55 +0200 Subject: ext2fs: Require users to opt-in for xattr-based translator records. * ext2fs/ext2fs.c (use_xattr_translator_records): New variable. (X_XATTR_TRANSLATOR_RECORDS): New macro. (options): New option '--x-xattr-translator-records'. (parse_opt): Handle new option. * ext2fs/ext2fs.h (use_xattr_translator_records): New declaration. * ext2fs/inode.c (diskfs_set_translator): Use new variable. (diskfs_get_translator): Likewise. --- ext2fs/inode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'ext2fs/inode.c') diff --git a/ext2fs/inode.c b/ext2fs/inode.c index 5109953f..58edb501 100644 --- a/ext2fs/inode.c +++ b/ext2fs/inode.c @@ -562,7 +562,8 @@ diskfs_set_translator (struct node *np, const char *name, unsigned namelen, /* If xattr is supported for this filesystem, use xattr to store translator record, otherwise, use legacy translator record */ - if (EXT2_HAS_COMPAT_FEATURE (sblock, EXT2_FEATURE_COMPAT_EXT_ATTR)) + if (EXT2_HAS_COMPAT_FEATURE (sblock, EXT2_FEATURE_COMPAT_EXT_ATTR) + && use_xattr_translator_records) { daddr_t blkno; struct ext2_inode *di; @@ -714,7 +715,8 @@ diskfs_get_translator (struct node *np, char **namep, unsigned *namelen) if (blkno) { /* If xattr is no supported by this filesystem, don't report a warning */ - if (EXT2_HAS_COMPAT_FEATURE (sblock, EXT2_FEATURE_COMPAT_EXT_ATTR)) + if (EXT2_HAS_COMPAT_FEATURE (sblock, EXT2_FEATURE_COMPAT_EXT_ATTR) + && use_xattr_translator_records) ext2_warning ("This is an old translator record, please update it"); transloc = disk_cache_block_ref (blkno); -- cgit v1.2.3