nilfs2-kmod7-1.2.14 Sat Mar 16, 2024 JST * backport fixes for potential issues that could cause a buffer I/O routine to trigger a kernel bug due to writes to file systems whose DAT metadata is corrupted or unexpected write races: - nilfs2: fix failure to detect DAT corruption in btree and direct mappings - nilfs2: prevent kernel bug at submit_bh_wbc() nilfs2-kmod7-1.2.13 Sun Feb 11, 2024 JST * backport fixes for a data corruption issue, mmap-related hangs and recovery failures, potential kernel panics, and a log writer freeze handling issue: - nilfs2: fix hang in nilfs_lookup_dirty_data_buffers() - nilfs2: fix data corruption in dsync block recovery for small block sizes - nilfs2: fix potential bug in end_buffer_async_write - nilfs2: add missing set_freezable() for freezable kthread * backport a patch that replaces potentially problematic state inconsistency checks with warning message output: - nilfs2: switch WARN_ONs to warning output in nilfs_sufile_do_free() nilfs2-kmod7-1.2.12 Sat Dec 9, 2023 JST * backport fixes for a potential use-after-free issue, problems including memory access violations due to lack of block size error handling, and a bug reported by syzbot: - nilfs2: fix potential use after free in nilfs_gccache_submit_read_data() - nilfs2: fix missing error check for sb_set_blocksize call - nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() nilfs2-kmod7-1.2.11 Sun Sep 3, 2023 JST * backport fixes for general protection fault and kernel warning issues reported by syzbot: - nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers() - nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse nilfs2-kmod7-1.2.10 Sat Jun 24, 2023 JST * backport fixes for general protection faults on corrupted disk images and buffer corruption issues caused by concurrent device reads: - nilfs2: prevent general protection fault in nilfs_clear_dirty_page() - nilfs2: fix buffer corruption due to concurrent device reads nilfs2-kmod7-1.2.9 Wed Jun 14, 2023 JST * backport recent fixes for various issues reported by syzbot: - nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode() - nilfs2: reject devices with insufficient block count - nilfs2: fix possible out-of-bounds segment allocation in resize ioctl - nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key() * add some new macro and inline function compatibility definitions for maintenance: - Allow to use U64_MAX and similar definitions - Allow to use bdev_nr_bytes() and sb_bdev_nr_blocks() nilfs2-kmod7-1.2.8 Sun May 7, 2023 JST * backport fixes for kernel hangs and writes even after read-only degeneration: - nilfs2: do not write dirty data after degenerating to read-only - nilfs2: fix infinite loop in nilfs_mdt_get_block() nilfs2-kmod7-1.2.7 Sun Apr 23, 2023 JST * backport another missing block initialization fix: - nilfs2: initialize unused bytes in segment summary blocks nilfs2-kmod7-1.2.6 Sun Apr 16, 2023 JST * backport fixes for a potential use-after-free read issue and missing segment summary data initialization: - nilfs2: initialize "struct nilfs_binfo_dat"->bi_pad field - nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread() nilfs2-kmod7-1.2.5 Mon Mar 27, 2023 JST * backport fixes for a potential kernel information leak when specifying anomalous ioctl parameters: - nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy() * backport improved anomaly checks for corrupted disk images: - nilfs2: prevent WARNING in nilfs_dat_commit_end() - nilfs2: replace WARN_ONs for invalid DAT metadata block requests nilfs2-kmod7-1.2.4 Sun Feb 19, 2023 JST * backport fixes for general protection faults on corrupted disk images, an out-of-bounds block access issue on empty or very small devices, bad segment counts and a writer thread hang issue after attempting to resize to very small sizes: - nilfs2: fix general protection fault in nilfs_btree_insert() - nilfs2: fix underflow in second superblock position calculations nilfs2-kmod7-1.2.3 Sun Dec 25, 2022 JST * backport the fixes for potential shift-out-of-bounds issues at mount time against corrupted disk images: - nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset() - nilfs2: fix shift-out-of-bounds due to too large exponent of block size nilfs2-kmod7-1.2.2 Mon Dec 5, 2022 JST * backport bug fixes: - nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty - nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry() nilfs2-kmod7-1.2.1 Sun Nov 20, 2022 JST * backport bug fixes: - nilfs2: fix deadlock in nilfs_count_free_blocks() - nilfs2: fix use-after-free bug of ns_writer on remount * backport change for maintenance: - Allow to use sb_rdonly() nilfs2-kmod7-1.2.0 Sun Oct 23, 2022 JST * backport bug fixes: - nilfs2: fix leak of nilfs_root in case of writer thread creation failure - nilfs2: fix use-after-free bug of struct nilfs_root - nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level() - nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure * backport SPDX license tags, etc: - License cleanup: add SPDX license identifier to uapi header files with a license - nilfs2: convert to SPDX license tags - nilfs2: clarify permission to replicate the design * backport improved logging helpers: - nilfs2: convert __nilfs_msg to integrate the level and format - nilfs2: use a more common logging style - nilfs2: reduce bare use of printk() with nilfs_msg() - nilfs2: replace nilfs_warning() with nilfs_msg() - nilfs2: emit error message when I/O error is detected - nilfs2: add nilfs_msg() message interface - nilfs2: hide function name argument from nilfs_error() * backport uapi header files support: - nilfs2: move ioctl interface and disk layout to uapi separately - nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header * backport various changes for easier future maintenance: - nilfs2: move cleanup code of metadata file from inode routines - nilfs2: avoid bare use of 'unsigned' - nilfs2: fix block comments - nilfs2: embed a back pointer to super block instance in nilfs object - nilfs2: refactor parser of snapshot mount option - nilfs2: get rid of nilfs_mdt_mark_block_dirty() - mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros - git simplify nilfs check for busy subtree nilfs2-kmod7-1.1.3 Sat Oct 22, 2022 JST * backport bug fixes - nilfs2: fix use-after-free bug in nilfs_mdt_destroy() - nilfs2: fix incorrect masking of permission flags for symlinks - nilfs2: use refcount_dec_and_lock() to fix potential UAF - nilfs2: only call unlock_new_inode() if I_NEW * backport other changes: - Allow to use refcount type - fs, nilfs: convert nilfs_root.count from atomic_t to refcount_t - nilfs2: deletion of an unnecessary check before the function call "iput" * Makefile updates: - nilfs2-kmod7: pass RHEL release number to preprocessor - nilfs2-kmod7: include header files in local include/uapi directory - Use KBUILD_EXTMOD instead of SUBDIRS in fs/nilfs2/Makefile - Use KBUILD_CFLAGS and LINUXINCLUDE instead of EXTRA_CFLAGS * README: update git repository url * README: fix the list of required packages nilfs2-kmod7-1.1.2 Sat Nov 18, 2017 JST * fix race condition that causes file system corruption * fix a coding style issue: - align block comments of nilfs_sufile_truncate_range() at * * README: replace the repository name in examples with nilfs2-kmod7 nilfs2-kmod7-1.1.1 Sat Jul 23, 2016 JST * fix potential underflow in call to crc32_le * do not emit extra newline on nilfs_warning() and nilfs_error() * fix coding style issues - remove FSF mailing address from GPL notices - remove space before comma - remove space before semicolon - add missing line spacing - fix code indent coding style issue - remove unnecessary else after return or break - remove loops of single statement macros * cleanup: - clean up old e-mail addresses nilfs2-kmod7-1.1.0 Sun Nov 8, 2015 JST * resolve decline of the available disk space due to bloat of DAT metadata file - add helper functions to delete blocks from dat file - free unused dat file blocks during garbage collection * refactor bitmap based object allocator/deallocator - use nilfs_warning() in allocator implementation - do not call nilfs_mdt_bgl_lock() needlessly - refactor nilfs_palloc_find_available_slot() - get rid of nilfs_palloc_group_is_in() * fix sanity check of btree level in nilfs_btree_root_broken() * support NFSv2 export * support vanilla kernel 3.6 ~ 3.9 - Add compat function of file_inode() - Add mimic of MODULE_ALIAS_FS macro - Add compat function of wait_for_stable_page() - Add FILEID_INVALID macro - Fix build failure of nilfs_mapping_init() in kernel 3.7 - Fix build error due to addition of vm_ops->remap_pages() - Set VM_CAN_NONLINIEAR to vm_flags in kernel 3.6 and earlier - Only call file_update_time() in nilfs_page_mkwrite() for kernel 3.7+ - README: include vanilla kernel 3.6+ to supported versions nilfs2-kmod7-1.0.0 Sun Apr 19, 2015 JST * fix gcc warning at nilfs_checkpoint_is_mounted() * fix minor race issue with chattr: - put out gfp mask manipulation from nilfs_set_inode_flags() - add mimic of inode_set_flags() helper - use inode_set_flags() in nilfs_set_inode_flags() to atomically set inode->i_flags. * support build for recent mainline kernels (v3.10 ~ v4.0): - fix build error due to relocation of version.h - fix build error due to change of readdir at Linux 3.11 - fix build error due to change of bio struct at Linux 3.14 - fix build error due to change related to iov iterator at Linux 3.16 - use d_obtain_root() and add its compat function - fix build error due to removal of vm_ops->remap_pages() - fix build error due to removal of mapping->backing_dev_info * improve execution time of lscp command on aged file systems: - unify type of key arguments in bmap interface - add bmap function to seek a valid key - add helper to find existent block on metadata file - improve execution time of NILFS_IOCTL_GET_CPINFO ioctl * reduce the number of atomic bit operations with set_mask_bits helper: - do not use async write flag for segment summary buffers - add mimic of set_mask_bits() helper - use set_mask_bits() for operations on buffer state bitmap * cleanup: - use bgl_lock_ptr() helper to simplify nilfs_mdt_bgl_lock() nilfs2-kmod-centos7-0.1.5 Sun Apr 5, 2015 JST * fix build error on CentOS 7.1 supporting a change of truncate_pagecache() function. nilfs2-kmod-centos7-0.1.4 Fri Mar 13, 2015 JST * fix deadlock of segment constructor during recovery * fix potential memory overrun on inode nilfs2-kmod-centos7-0.1.3 Sat Feb 7, 2015 JST * fix deadlock of segment constructor over I_SYNC flag * fix the nilfs_iget() vs. nilfs_new_inode() races nilfs2-kmod-centos7-0.1.2 Sun Oct 19, 2014 JST * improve the performance of fdatasync() * add missing blkdev_issue_flush() to nilfs_sync_fs() nilfs2-kmod-centos7-0.1.1 Sat Sep 27, 2014 JST * fix data loss with mmap() nilfs2-kmod-centos7-0.1.0 Wed Jul 9, 2014 JST * update project's web site in nilfs2.txt * verify metadata sizes read from disk * add FITRIM ioctl support * add NILFS_IOCTL_SET_SUINFO ioctl support * apply "nilfs2: add comments for ioctls" * apply "nilfs2: use atomic64_t type for inode_count and blocks_count fields in nilfs_root struct" * apply "nilfs2: implement calculation of tree inodes count" * apply "helper for reading ->d_count" * apply "mm + fs: store shadow entries in pace cache" * add kern_feature.h header file * add .gitignore file * Import source files from stable kernel-3.10.y.