fscrypt,f2fs: catch up fscrypt and f2fs-stable/v3.18 having v4.12-rc1

This patch adds fs/crypto and updates fs/f2fs towards v4.12-rc1, cherry-picked
from f2fs-stable/linux-3.18.y.

Changes include:
	Merge branch 'linux-3.18.y' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into linux-3.18.y
	f2fs: switch to using fscrypt_match_name()
	fscrypt: introduce helper function for filename matching
	fscrypt: fix context consistency check when key(s) unavailable
	fscrypt: Move key structure and constants to uapi
	fscrypt: remove unnecessary checks for NULL operations
	fscrypt: eliminate ->prepare_context() operation
	fscrypt: remove broken support for detecting keyring key revocation
	fscrypt: avoid collisions when presenting long encrypted filenames
	f2fs: check entire encrypted bigname when finding a dentry
	f2fs: sync f2fs_lookup() with ext4_lookup()
	f2fs: fix a mount fail for wrong next_scan_nid
	f2fs: relocate inode_{,un}lock in F2FS_IOC_SETFLAGS
	f2fs: show available_nids in f2fs/status
	f2fs: flush dirty nats periodically
	f2fs: introduce CP_TRIMMED_FLAG to avoid unneeded discard
	f2fs: allow cpc->reason to indicate more than one reason
	...

Change-Id: Iae7ac8d2aa890f6b15a4d20e625af1ccc5480848
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
46 files changed