[OnePlus 3 & 3T Cross Device Development] :
f2fs test build (changelog 1/2)

Most important are setups with f2fs on data (no matter if encrypted or not). ext4 setups are also important to exclude any side effects. Everybody can test f2fs on cache, of course.

I've also updated webview. Please check if it's hiding playstore installed webviews in dev-opts.

Disclaimer: I stromgly recommend ext4 on cache. I recommend - at least for the normal, non-adventueres user type - ext4 encrypted for data.

BTW: I've dirty flashed the build after taking a backup to usb_otg.

I needed to split the chanhelog, because of 30000 char posting limit.

Build: 20200724

Changelog (part 1/2):

DNM hotfix. — Nvertigo (HEAD -> tmp, nvertigo/tmp

f2fs: fix f2fs_msg(

vfs: add find_inode_nowait(

f2fs: remove unneeded check for error allocating bio_post_read_ctx — Eric Biggers

f2fs: convert inline_dir early before starting rename — Jaegeuk Kim

f2fs: don't put new_page twice in f2fs_rename — Jaegeuk Kim

f2fs: set I_LINKABLE early to avoid wrong access by vfs — Jaegeuk Kim

f2fs: cleanup duplicate stats for atomic files — Sahitya Tummala

f2fs: set GFP_NOFS when moving inline dentries — Jaegeuk Kim

f2fs: should avoid recursive filesystem ops — Jaegeuk Kim

f2fs: call f2fs_balance_fs outside of locked page — Jaegeuk Kim

f2fs: stop GC when the victim becomes fully valid — Jaegeuk Kim

f2fs: Fix deadlock in f2fs_gc(

f2fs: fix potential overflow — Chao Yu

f2fs: fix to update dir's i_pino during cross_rename — Chao Yu

f2fs: mark recovery flag correctly in read_raw_super_block(

f2fs: fix to update time in lazytime mode — Chao Yu

f2fs: add a condition to detect overflow in f2fs_ioc_gc_range(

f2fs: fix extent corrupotion during directIO in LFS mode — Chao Yu

f2fs: check all the data segments against all node ones — Surbhi Palande

f2fs: fix to avoid accessing uninitialized field of inode page in is_alive(

f2fs: avoid infinite GC loop due to stale atomic files — Jaegeuk Kim

f2fs: Fix indefinite loop in f2fs_gc(

f2fs: fix flushing node pages when checkpoint is disabled — Jaegeuk Kim

f2fs: fix to writeout dirty inode during node flush — Chao Yu

f2fs: Fix indefinite loop in f2fs_gc(

f2fs: allocate memory in batch in build_sit_info(

f2fs: fix to avoid data corruption by forbidding SSR overwrite — Chao Yu

f2fs: disallow direct IO in atomic write — Chao Yu

f2fs: fix to drop meta/node pages during umount — Chao Yu

f2fs: fix f2fs_msg(

f2fs: don't wait with each discards under gc_urgent — Park Ju Hyung

f2fs: use a more reasonable discard policy for high utilization — Park Ju Hyung

f2fs: reduce timeout for uncongestion on f2fs_write_cache_pages(

f2fs: rename /sys/fs/f2fs — Park Ju Hyung

f2fs: do not expose tunables that doesn't work with rapid GC — Park Ju Hyung

f2fs: drop caches upon rapid GC exit — Park Ju Hyung

fs: drop_caches: expose mm_drop_caches(

f2fs: explicitly flush device upon foreground GC — Park Ju Hyung

f2fs/rapid_gc: do not wait until all invalid blocks are discarded — Park Ju Hyung

f2fs: implement rapid GC for Android — Park Ju Hyung

f2fs: set ioprio of GC kthread to idle — Park Ju Hyung

f2fs: Use fsync_mode=nobarrier by default. — Park Ju Hyung

f2fs: Remove additional tracings added by CAF. — Park Ju Hyung

f2fs: Use WRITE_SYNC for REQ_SYNC. — Jaegeuk Kim

f2fs: use EINVAL for superblock with invalid magic — Icenowy Zheng

f2fs: fix to read source block before invalidating it — Jaegeuk Kim

f2fs: remove redundant check from f2fs_setflags_common(

f2fs: use generic checking and prep function for FS_IOC_SETFLAGS — Eric Biggers

f2fs: improve print log in f2fs_sanity_check_ckpt(

f2fs: avoid out-of-range memory access — Ocean Chen

f2fs: fix to avoid long latency during umount — Heng Xiao

f2fs: allow all the users to pin a file — Jaegeuk Kim

f2fs: support swap file w/ DIO — Jaegeuk Kim

f2fs: allocate blocks for pinned file — Jaegeuk Kim

f2fs: fix is_idle(

f2fs: add a rw_sem to cover quota flag changes — Jaegeuk Kim

f2fs: set SBI_NEED_FSCK for xattr corruption case — Chao Yu

f2fs: use generic EFSBADCRC/EFSCORRUPTED — Chao Yu

f2fs: Use DIV_ROUND_UP(

f2fs: print kernel message if filesystem is inconsistent — Chao Yu

f2fs: introduce f2fs_<level> macros to wrap f2fs_printk(

f2fs: avoid get_valid_blocks(

f2fs: ioctl for removing a range from F2FS — Qiuyang Sun

f2fs: only set project inherit bit for directory — Wang Shilong

f2fs: separate f2fs i_flags from fs_flags and ext4 i_flags — Eric Biggers

f2fs: Add option to limit required GC for checkpoint=disable — Daniel Rosenberg

f2fs: Fix accounting for unusable blocks — Daniel Rosenberg

f2fs: Fix root reserved on remount — Daniel Rosenberg

f2fs: Lower threshold for disable_cp_again — Daniel Rosenberg

f2fs: fix sparse warning — Chao Yu

f2fs: fix f2fs_show_options to show nodiscard mount option — Sahitya Tummala

f2fs: add error prints for debugging mount failure — Sahitya Tummala

f2fs: fix to do sanity check on segment bitmap of LFS curseg — Chao Yu

f2fs: add missing sysfs entries in documentation — Jaegeuk Kim

f2fs: fix to avoid deadloop if data_flush is on — Chao Yu

f2fs: always assume that the device is idle under gc_urgent — Park Ju Hyung

f2fs: add bio cache for IPU — Chao Yu

f2fs: allow ssr block allocation during checkpoint=disable period — Jaegeuk Kim

f2fs: fix to check layout on last valid checkpoint park — Chao Yu

f2fs: link f2fs quota ops for sysfile — Jaegeuk Kim

f2fs: fix to avoid accessing xattr across the boundary — Randall Huang

f2fs: fix to avoid potential race on sbi->unusable_block_count access/update — Chao Yu

f2fs: add tracepoint for f2fs_filemap_fault(

f2fs: introduce DATA_GENERIC_ENHANCE — Chao Yu

f2fs: fix to handle error in f2fs_disable_checkpoint(

f2fs: fix to be aware of readonly device in write_checkpoint(

f2fs: fix to skip recovery on readonly device — Chao Yu

f2fs: fix to consider multiple device for readonly check — Chao Yu

f2fs: relocate chksum_offset for large_nat_bitmap feature — Chao Yu

f2fs: allow unfixed f2fs_checkpoint.checksum_offset — Chao Yu

f2fs: Replace spaces with tab — Youngjun Yoo

f2fs: insert space before the open parenthesis '(' — Youngjun Yoo

f2fs: allow address pointer number of dnode aligning to specified size — Chao Yu

f2fs: introduce f2fs_read_single_page(

f2fs: mark is_extension_exist(

f2fs: fix to set FI_UPDATE_WRITE correctly — Chao Yu

f2fs: fix to avoid panic in f2fs_inplace_write_data(

f2fs: fix to do sanity check on valid block count of segment — Chao Yu

f2fs: fix to do sanity check on valid node/block count — Chao Yu

f2fs: fix to avoid panic in do_recover_data(

f2fs: fix to do sanity check on free nid — Chao Yu

f2fs: fix to do checksum even if inode page is uptodate — Chao Yu

f2fs: fix to avoid panic in f2fs_remove_inode_page(

f2fs: fix to clear dirty inode in error path of f2fs_iget(

f2fs: remove new blank line of f2fs kernel message — Chao Yu

f2fs: fix wrong __is_meta_io(

f2fs: fix to avoid panic in dec_valid_node_count(

f2fs: fix to avoid panic in dec_valid_block_count(

f2fs: fix to use inline space only if inline_xattr is enable — Chao Yu

f2fs: fix to retrieve inline xattr space — Chao Yu

f2fs: fix error path of recovery — Chao Yu

f2fs: fix to avoid deadloop in foreground GC — Chao Yu

f2fs: data: fix warning Using plain integer as NULL pointer — Hariprasad Kelam

f2fs: add tracepoint for f2fs_file_write_iter(

f2fs: add comment for conditional compilation statement — Chao Yu

f2fs: fix potential recursive call when enabling data_flush — Chao Yu

f2fs: improve discard handling with multi-device volumes — Damien Le Moal

f2fs: Reduce zoned block device memory usage — Damien Le Moal

f2fs: Fix use of number of devices — Damien Le Moal

f2fs: set pin_file under CAP_SYS_ADMIN — Jaegeuk Kim

f2fs: fix to avoid deadlock in f2fs_read_inline_dir(

f2fs: fix to adapt small inline xattr space in __find_inline_xattr(

f2fs: fix to do sanity check with inode.i_inline_xattr_size — Chao Yu

f2fs: give some messages for inline_xattr_size — Jaegeuk Kim

f2fs: don't trigger read IO for beyond EOF page — Chao Yu

f2fs: fix to add refcount once page is tagged PG_private — Chao Yu

f2fs: remove wrong comment in f2fs_invalidate_page(

f2fs: fix to use kvfree instead of kzfree — Chao Yu

f2fs: print more parameters in trace_f2fs_map_blocks — Chao Yu

f2fs: trace f2fs_ioc_shutdown — Chao Yu

f2fs: fix to avoid deadlock of atomic file operations — Chao Yu

f2fs: fix to dirty inode for i_mode recovery — Chao Yu

f2fs: give random value to i_generation — Jaegeuk Kim

f2fs: no need to take page lock in readdir — Gao Xiang

f2fs: fix to update iostat correctly in IPU path — Chao Yu

f2fs: fix encrypted page memory leak — Chao Yu

f2fs: make fault injection covering __submit_flush_wait(

f2fs: fix to retry fill_super only if recovery failed — Chao Yu

f2fs: silence VM_WARN_ON_ONCE in mempool_alloc — Gao Xiang

f2fs: correct spelling mistake — Zeng Guangyue

f2fs: fix wrong #endif — Jaegeuk Kim

f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG — Jaegeuk Kim

f2fs: don't allow negative ->write_io_size_bits — Chao Yu

f2fs: fix to check inline_xattr_size boundary correctly — Chao Yu

Revert "f2fs: fix to avoid deadlock of atomic file operations" — Jaegeuk Kim

Revert "f2fs: fix to check inline_xattr_size boundary correctly" — Jaegeuk Kim

f2fs: do not use mutex lock in atomic context — Sahitya Tummala

f2fs: fix potential data inconsistence of checkpoint — Chao Yu

f2fs: fix to avoid deadlock of atomic file operations — Chao Yu

f2fs: fix to check inline_xattr_size boundary correctly — Chao Yu

f2fs: jump to label 'free_node_inode' when failing from d_make_root(

f2fs: fix to document inline_xattr_size option — Chao Yu

f2fs: fix to data block override node segment by mistake — zhengliang

f2fs: fix typos in code comments — Geliang Tang

f2fs: sync filesystem after roll-forward recovery — Jaegeuk Kim

fs: export evict_inodes — Jaegeuk Kim

f2fs: flush quota blocks after turnning it off — Jaegeuk Kim

f2fs: avoid null pointer exception in dcc_info — Jaegeuk Kim

f2fs: don't wake up too frequently, if there is lots of IOs — Jaegeuk Kim

f2fs: try to keep CP_TRIMMED_FLAG after successful umount — Jaegeuk Kim

f2fs: add quick mode of checkpoint=disable for QA — Jaegeuk Kim

f2fs: run discard jobs when put_super — Jaegeuk Kim

f2fs: fix to set sbi dirty correctly — Chao Yu

f2fs: UBSAN: set boolean value iostat_enable correctly — Sheng Yong

f2fs: add brackets for macros — Sheng Yong

f2fs: check if file namelen exceeds max value — Sheng Yong

f2fs: fix to trigger fsck if dirent.name_len is zero — Chao Yu

f2fs: no need to check return value of debugfs_create functions — Greg Kroah-Hartman

f2fs: export FS_NOCOW_FL flag to user — Jaegeuk Kim

f2fs: check inject_rate validity during configuring — Chao Yu

f2fs: fix compile warnings: 'struct *' declared inside parameter list — Zhikang Zhang

f2fs: change error code to -ENOMEM from -EINVAL — Chengguang Xu

f2fs: don't access node/meta inode mapping after iput — Jaegeuk Kim

f2fs: wait on atomic writes to count F2FS_CP_WB_DATA — Jaegeuk Kim

f2fs: sanity check of xattr entry size — Jaegeuk Kim

f2fs: fix use-after-free issue when accessing sbi->stat_info — Sahitya Tummala

f2fs: check PageWriteback flag for ordered case — Chao Yu

f2fs: fix validation of the block count in sanity_check_raw_super — Martin Blumenstingl

f2fs: fix missing unlock(sbi->gc_mutex

f2fs: clean up structure extent_node — Chao Yu

f2fs: fix block address for __check_sit_bitmap — Qiuyang Sun

f2fs: fix sbi->extent_list corruption issue — Sahitya Tummala

f2fs: clean up checkpoint flow — Chao Yu

f2fs: flush stale issued discard candidates — Jaegeuk Kim

f2fs: correct wrong spelling, issing_* — Jaegeuk Kim

f2fs: use kvmalloc, if kmalloc is failed — Jaegeuk Kim

f2fs: remove redundant comment of unused wio_mutex — Yunlong Song

f2fs: fix to reorder set_page_dirty and wait_on_page_writeback — Chao Yu

f2fs: clear PG_writeback if IPU failed — Sheng Yong

f2fs: add an ioctl(

f2fs: avoid frequent costly fsck triggers — Jaegeuk Kim

f2fs: adjust trace print in f2fs_get_victim(

f2fs: fix to allow node segment for GC by ioctl path — Sahitya Tummala

f2fs: make "f2fs_fault_name[]" const char * — Alexey Dobriyan

f2fs: read page index before freeing — Pan Bian

f2fs: fix wrong return value of f2fs_acl_create — Tiezhu Yang

f2fs: avoid build warn of fall_through — Jaegeuk Kim

f2fs: fix race between write_checkpoint and write_begin — Sheng Yong

f2fs: check memory boundary by insane namelen — Jaegeuk Kim