From patchwork Mon Oct 15 21:12:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gabriel Krisman Bertazi X-Patchwork-Id: 984394 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=collabora.co.uk Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42YrkN5wJlz9s5c for ; Tue, 16 Oct 2018 08:12:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726948AbeJPE7m (ORCPT ); Tue, 16 Oct 2018 00:59:42 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:37496 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726024AbeJPE7l (ORCPT ); Tue, 16 Oct 2018 00:59:41 -0400 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: krisman) with ESMTPSA id A289126109D From: Gabriel Krisman Bertazi To: tytso@mit.edu Cc: linux-ext4@vger.kernel.org, Gabriel Krisman Bertazi Subject: [PATCH e2fsprogs 5/9] chattr/lsattr: Support casefold attribute Date: Mon, 15 Oct 2018 17:12:16 -0400 Message-Id: <20181015211220.27370-6-krisman@collabora.co.uk> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181015211220.27370-1-krisman@collabora.co.uk> References: <20181015211220.27370-1-krisman@collabora.co.uk> MIME-Version: 1.0 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org This flag can be set on directories to request insensitive file name lookups. I used the letter 'F', referring to "caseFold" for lack of a better option. Signed-off-by: Gabriel Krisman Bertazi --- lib/e2p/pf.c | 1 + lib/ext2fs/ext2_fs.h | 5 +++-- misc/chattr.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/e2p/pf.c b/lib/e2p/pf.c index 884f1671edae..0c6998c4b766 100644 --- a/lib/e2p/pf.c +++ b/lib/e2p/pf.c @@ -44,6 +44,7 @@ static struct flags_name flags_array[] = { { EXT2_TOPDIR_FL, "T", "Top_of_Directory_Hierarchies" }, { EXT4_EXTENTS_FL, "e", "Extents" }, { FS_NOCOW_FL, "C", "No_COW" }, + { EXT4_CASEFOLD_FL, "F", "Casefold" }, { EXT4_INLINE_DATA_FL, "N", "Inline_Data" }, { EXT4_PROJINHERIT_FL, "P", "Project_Hierarchy" }, { EXT4_VERITY_FL, "V", "Verity" }, diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h index df8ced088f38..b27380866198 100644 --- a/lib/ext2fs/ext2_fs.h +++ b/lib/ext2fs/ext2_fs.h @@ -339,10 +339,11 @@ struct ext2_dx_tail { #define EXT4_SNAPFILE_SHRUNK_FL 0x08000000 /* Snapshot shrink has completed */ #define EXT4_INLINE_DATA_FL 0x10000000 /* Inode has inline data */ #define EXT4_PROJINHERIT_FL 0x20000000 /* Create with parents projid */ +#define EXT4_CASEFOLD_FL 0x40000000 /* Casefolded file */ #define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */ -#define EXT2_FL_USER_VISIBLE 0x204BDFFF /* User visible flags */ -#define EXT2_FL_USER_MODIFIABLE 0x204B80FF /* User modifiable flags */ +#define EXT2_FL_USER_VISIBLE 0x604BDFFF /* User visible flags */ +#define EXT2_FL_USER_MODIFIABLE 0x604B80FF /* User modifiable flags */ /* * ioctl commands diff --git a/misc/chattr.c b/misc/chattr.c index a5b401a741b7..a5d60170bdb6 100644 --- a/misc/chattr.c +++ b/misc/chattr.c @@ -86,7 +86,7 @@ static unsigned long sf; static void usage(void) { fprintf(stderr, - _("Usage: %s [-pRVf] [-+=aAcCdDeijPsStTu] [-v version] files...\n"), + _("Usage: %s [-pRVf] [-+=aAcCdDeijPsStTuF] [-v version] files...\n"), program_name); exit(1); } @@ -112,6 +112,7 @@ static const struct flags_char flags_array[] = { { EXT2_NOTAIL_FL, 't' }, { EXT2_TOPDIR_FL, 'T' }, { FS_NOCOW_FL, 'C' }, + { EXT4_CASEFOLD_FL, 'F' }, { 0, 0 } };