linux/fs/ubifs
Eric Biggers 2ee6a576be fs, fscrypt: add an S_ENCRYPTED inode flag
Introduce a flag S_ENCRYPTED which can be set in ->i_flags to indicate
that the inode is encrypted using the fscrypt (fs/crypto/) mechanism.

Checking this flag will give the same information that
inode->i_sb->s_cop->is_encrypted(inode) currently does, but will be more
efficient.  This will be useful for adding higher-level helper functions
for filesystems to use.  For example we'll be able to replace this:

	if (ext4_encrypted_inode(inode)) {
		ret = fscrypt_get_encryption_info(inode);
		if (ret)
			return ret;
		if (!fscrypt_has_encryption_key(inode))
			return -ENOKEY;
	}

with this:

	ret = fscrypt_require_key(inode);
	if (ret)
		return ret;

... since we'll be able to retain the fast path for unencrypted files as
a single flag check, using an inline function.  This wasn't possible
before because we'd have had to frequently call through the
->i_sb->s_cop->is_encrypted function pointer, even when the encryption
support was disabled or not being used.

Note: we don't define S_ENCRYPTED to 0 if CONFIG_FS_ENCRYPTION is
disabled because we want to continue to return an error if an encrypted
file is accessed without encryption support, rather than pretending that
it is unencrypted.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Acked-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2017-10-18 19:52:36 -04:00
..
budget.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
commit.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
compress.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
crypto.c ubifs: Massage assert in ubifs_xattr_set() wrt. init_xattrs 2017-07-14 22:50:54 +02:00
debug.c ubifs: Fix cut and paste error on sb type comparisons 2017-05-08 20:48:41 +02:00
debug.h UBIFS: print less 2012-08-31 17:32:58 +03:00
dir.c ubifs: Wire-up statx() support 2017-07-14 22:49:07 +02:00
file.c mm/migrate: new migrate mode MIGRATE_SYNC_NO_COPY 2017-09-08 18:26:46 -07:00
find.c UBIFS: fix mounting problems after power cuts 2012-10-26 16:26:44 +03:00
gc.c ubifs: Remove some dead code 2016-12-12 23:06:28 +01:00
io.c ubifs: Use dirty_writeback_interval value for wbuf timer 2016-12-12 23:06:24 +01:00
ioctl.c fs, fscrypt: add an S_ENCRYPTED inode flag 2017-10-18 19:52:36 -04:00
journal.c ubifs: Set double hash cookie also for RENAME_EXCHANGE 2017-07-14 22:50:57 +02:00
Kconfig ubifs: Add CONFIG_UBIFS_FS_SECURITY to disable/enable security labels 2017-05-08 20:48:23 +02:00
key.h ubifs: Add assert to dent_key_init() 2017-07-14 22:49:06 +02:00
log.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
lprops.c UBIFS: improve function-level documentation 2016-10-02 22:55:02 +02:00
lpt_commit.c UBIFS: improve function-level documentation 2016-10-02 22:55:02 +02:00
lpt.c UBIFS: use kmemdup rather than duplicating its implementation 2015-10-03 20:03:14 +02:00
Makefile ubifs: Add skeleton for fscrypto 2016-12-12 23:07:38 +01:00
master.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
misc.c ubifs: Add logging functions for ubifs_msg, ubifs_err and ubifs_warn 2016-03-20 21:36:05 +01:00
misc.h fs: ubifs: replace CURRENT_TIME_SEC with current_time 2017-05-08 17:15:15 -07:00
orphan.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
recovery.c ubifs: Remove unnecessary assignment 2017-05-08 20:48:47 +02:00
replay.c ubifs: Implement encrypted filenames 2016-12-12 23:07:38 +01:00
sb.c fs: ubifs: replace CURRENT_TIME_SEC with current_time 2017-05-08 17:15:15 -07:00
scan.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
shrinker.c UBIFS: Remove incorrect assertion in shrink_tnc() 2014-06-02 11:28:24 +03:00
super.c VFS: Convert sb->s_flags & MS_RDONLY to sb_rdonly(sb) 2017-07-17 08:45:34 +01:00
tnc_commit.c ubifs: Fail commit if TNC is obviously inconsistent 2017-07-14 22:49:07 +02:00
tnc_misc.c UBIFS: extend debug/message capabilities 2015-03-25 11:08:41 +02:00
tnc.c ubifs: Massage debug prints wrt. fscrypt 2017-07-14 22:49:07 +02:00
ubifs-media.h ubifs: Raise write version to 5 2016-12-12 23:07:38 +01:00
ubifs.h fscrypt: clean up include file mess 2017-10-18 19:52:36 -04:00
xattr.c fs, fscrypt: add an S_ENCRYPTED inode flag 2017-10-18 19:52:36 -04:00