Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5139512imm; Tue, 31 Jul 2018 06:14:50 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcodDhyAvmu863OUBTZhcQUPflYEcYhSL7nJQwTBUsvDaeROF5urQ8xqYo+m3y/VNI9TPCF X-Received: by 2002:a17:902:9042:: with SMTP id w2-v6mr20613086plz.61.1533042890354; Tue, 31 Jul 2018 06:14:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533042890; cv=none; d=google.com; s=arc-20160816; b=PzexZ4zBiD0lWeV4Y+KVjfUIfAx4eAY0wUfjaVw4LM4C5TBbqyz6YIobmWsrTUBlRy wMN4gCvj/2X5zgsKyl0QtvKmBGhhvadzNDaYaqdbypnHKKj97pF4b68gmwxC+4Sjx37W 1hujum+nHygz6/BzRl1Xl+AJXYSGwhgBy7A4gvcb7wsy9jBKyBmKHAR25QpmZUf7kwIV x6IkMsfmB3/JXO46/5lWb6YrrJp8KarHOfZjMqyNL+hUVwETC20GakVyLwA6hWcHXO1Z IK1kco70ozjlTjtZvp+fu7zjFGVDPXu+e8yVS/M3EbaM2tf+8aJKnvJGZgz+l4AWbLzI c81Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=k5BJzDmPTALNOj3TS1jLShgIRhWEq1vpFANB4aINJbA=; b=Yxan+KpBMKtq2HRs6blQtlX01Taea1lMy8GtfQuU97V4rKALwZiyA504ulhNYJdqY0 VQme1pHo4v4UWkWnd3h8jWLbKjtHKCTlnyW0rF4UqL3YapRrrPj+z0a0Eg2dwCfPRPbA i4oKFZj5bKut08cTedXpF44RNPzy1qgHtC012nzaMxHIfgavUm8yqoxs/becx1VKM1j3 x3isII70XUSY4xjZL3TIkE0+HJ9BRuvUXzcHRvOYgm4wU8zz4KLlKYYS1g47vQXepP5B 1lRY2ahkAWbWsyB+9EJpFnB18lkJeXyUbkJTLmjjN32EvBZQpDlvf91kuZqgGN9ValOP ZUXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@agner.ch header.s=dkim header.b=I2gYSe82; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s35-v6si12751493pgl.656.2018.07.31.06.14.35; Tue, 31 Jul 2018 06:14:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@agner.ch header.s=dkim header.b=I2gYSe82; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732306AbeGaOxq (ORCPT + 99 others); Tue, 31 Jul 2018 10:53:46 -0400 Received: from mail.kmu-office.ch ([178.209.48.109]:57166 "EHLO mail.kmu-office.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732153AbeGaOxq (ORCPT ); Tue, 31 Jul 2018 10:53:46 -0400 Received: from trochilidae.toradex.int (unknown [46.140.72.82]) by mail.kmu-office.ch (Postfix) with ESMTPSA id 0BD275C03BB; Tue, 31 Jul 2018 15:13:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=agner.ch; s=dkim; t=1533042807; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:content-type:content-transfer-encoding: in-reply-to:references; bh=k5BJzDmPTALNOj3TS1jLShgIRhWEq1vpFANB4aINJbA=; b=I2gYSe82ShEhByEYEFxrVQlNHVTyLxrdk1YZsuUr03km9lebmNwGA3Hw9Aj5TVc3N/d7fx 8/Mqr0P5RYVR+YMYfHrj+T7igW4ris603szaKZx4zAlYyuYQgBnoonoUKTX5Ca7HM3HqEX h6eGDwkJ+In8ck4OzpJIcMfcL8x7+Vk= From: Stefan Agner To: richard@nod.at, dedekind1@gmail.com, adrian.hunter@intel.com Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Stefan Agner Subject: [PATCH] fs: ubifs: introduce Kconfig symbol for xattr support Date: Tue, 31 Jul 2018 15:13:20 +0200 Message-Id: <20180731131320.21087-1-stefan@agner.ch> X-Mailer: git-send-email 2.18.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allow to disable extended attribute support. This aids in reliability testing, especially since some xattr related bugs have surfaced. Also an embedded system might not need it, so this allows for a slightly smaller kernel (about 4KiB). Signed-off-by: Stefan Agner --- fs/ubifs/Kconfig | 15 +++++++++++++-- fs/ubifs/Makefile | 3 ++- fs/ubifs/dir.c | 2 ++ fs/ubifs/file.c | 4 ++++ fs/ubifs/super.c | 2 ++ fs/ubifs/ubifs.h | 6 ++++++ 6 files changed, 29 insertions(+), 3 deletions(-) diff --git a/fs/ubifs/Kconfig b/fs/ubifs/Kconfig index 83a961bf7280..bbc78549be4c 100644 --- a/fs/ubifs/Kconfig +++ b/fs/ubifs/Kconfig @@ -51,9 +51,20 @@ config UBIFS_ATIME_SUPPORT If unsure, say 'N' +config UBIFS_FS_XATTR + bool "UBIFS XATTR support" + depends on UBIFS_FS + default y + help + Saying Y here includes support for extended attributes (xattrs). + Xattrs are name:value pairs associated with inodes by + the kernel or by users (see the attr(5) manual page). + + If unsure, say Y. + config UBIFS_FS_ENCRYPTION bool "UBIFS Encryption" - depends on UBIFS_FS && BLOCK + depends on UBIFS_FS && UBIFS_FS_XATTR && BLOCK select FS_ENCRYPTION default n help @@ -64,7 +75,7 @@ config UBIFS_FS_ENCRYPTION config UBIFS_FS_SECURITY bool "UBIFS Security Labels" - depends on UBIFS_FS + depends on UBIFS_FS && UBIFS_FS_XATTR default y help Security labels provide an access control facility to support Linux diff --git a/fs/ubifs/Makefile b/fs/ubifs/Makefile index 9758f709c736..6197d7e539e4 100644 --- a/fs/ubifs/Makefile +++ b/fs/ubifs/Makefile @@ -4,6 +4,7 @@ obj-$(CONFIG_UBIFS_FS) += ubifs.o ubifs-y += shrinker.o journal.o file.o dir.o super.o sb.o io.o ubifs-y += tnc.o master.o scan.o replay.o log.o commit.o gc.o orphan.o ubifs-y += budget.o find.o tnc_commit.o compress.o lpt.o lprops.o -ubifs-y += recovery.o ioctl.o lpt_commit.o tnc_misc.o xattr.o debug.o +ubifs-y += recovery.o ioctl.o lpt_commit.o tnc_misc.o debug.o ubifs-y += misc.o ubifs-$(CONFIG_UBIFS_FS_ENCRYPTION) += crypto.o +ubifs-$(CONFIG_UBIFS_FS_XATTR) += xattr.o diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c index 9da224d4f2da..dc875886f11f 100644 --- a/fs/ubifs/dir.c +++ b/fs/ubifs/dir.c @@ -1647,7 +1647,9 @@ const struct inode_operations ubifs_dir_inode_operations = { .rename = ubifs_rename, .setattr = ubifs_setattr, .getattr = ubifs_getattr, +#ifdef CONFIG_UBIFS_FS_XATTR .listxattr = ubifs_listxattr, +#endif #ifdef CONFIG_UBIFS_ATIME_SUPPORT .update_time = ubifs_update_time, #endif diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index fd7eb6fe9090..b8b3962eb449 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c @@ -1654,7 +1654,9 @@ const struct address_space_operations ubifs_file_address_operations = { const struct inode_operations ubifs_file_inode_operations = { .setattr = ubifs_setattr, .getattr = ubifs_getattr, +#ifdef CONFIG_UBIFS_FS_XATTR .listxattr = ubifs_listxattr, +#endif #ifdef CONFIG_UBIFS_ATIME_SUPPORT .update_time = ubifs_update_time, #endif @@ -1664,7 +1666,9 @@ const struct inode_operations ubifs_symlink_inode_operations = { .get_link = ubifs_get_link, .setattr = ubifs_setattr, .getattr = ubifs_getattr, +#ifdef CONFIG_UBIFS_FS_XATTR .listxattr = ubifs_listxattr, +#endif #ifdef CONFIG_UBIFS_ATIME_SUPPORT .update_time = ubifs_update_time, #endif diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index c5466c70d620..564a131afc56 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -2053,7 +2053,9 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent) if (c->max_inode_sz > MAX_LFS_FILESIZE) sb->s_maxbytes = c->max_inode_sz = MAX_LFS_FILESIZE; sb->s_op = &ubifs_super_operations; +#ifdef CONFIG_UBIFS_FS_XATTR sb->s_xattr = ubifs_xattr_handlers; +#endif #ifdef CONFIG_UBIFS_FS_ENCRYPTION sb->s_cop = &ubifs_crypt_operations; #endif diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index 04bf84d71e7b..6aab759f0f9d 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h @@ -1755,7 +1755,13 @@ int ubifs_xattr_set(struct inode *host, const char *name, const void *value, size_t size, int flags, bool check_lock); ssize_t ubifs_xattr_get(struct inode *host, const char *name, void *buf, size_t size); + +#ifdef CONFIG_UBIFS_FS_XATTR void ubifs_evict_xattr_inode(struct ubifs_info *c, ino_t xattr_inum); +#else +static inline void ubifs_evict_xattr_inode(struct ubifs_info *c, + ino_t xattr_inum) { } +#endif #ifdef CONFIG_UBIFS_FS_SECURITY extern int ubifs_init_security(struct inode *dentry, struct inode *inode, -- 2.18.0