Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'fs_for_v6.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs

Pull quota and udf fixes from Jan Kara:
"Two small UDF fixes for better handling of corrupted filesystem and a
quota fix to fix handling of filesystem freezing"

* tag 'fs_for_v6.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
udf: Verify inode link counts before performing rename
udf: Skip parent dir link count update if corrupted
quota: flush quota_release_work upon quota writeback

+17 -1
+2
fs/quota/dquot.c
··· 688 688 689 689 WARN_ON_ONCE(!rwsem_is_locked(&sb->s_umount)); 690 690 691 + flush_delayed_work(&quota_release_work); 692 + 691 693 for (cnt = 0; cnt < MAXQUOTAS; cnt++) { 692 694 if (type != -1 && cnt != type) 693 695 continue;
+15 -1
fs/udf/namei.c
··· 517 517 inode->i_nlink); 518 518 clear_nlink(inode); 519 519 inode->i_size = 0; 520 - inode_dec_link_count(dir); 520 + if (dir->i_nlink >= 3) 521 + inode_dec_link_count(dir); 522 + else 523 + udf_warn(inode->i_sb, "parent dir link count too low (%u)\n", 524 + dir->i_nlink); 521 525 udf_add_fid_counter(dir->i_sb, true, -1); 522 526 inode_set_mtime_to_ts(dir, 523 527 inode_set_ctime_to_ts(dir, inode_set_ctime_current(inode))); ··· 791 787 retval = -ENOTEMPTY; 792 788 if (!empty_dir(new_inode)) 793 789 goto out_oiter; 790 + retval = -EFSCORRUPTED; 791 + if (new_inode->i_nlink != 2) 792 + goto out_oiter; 794 793 } 794 + retval = -EFSCORRUPTED; 795 + if (old_dir->i_nlink < 3) 796 + goto out_oiter; 795 797 is_dir = true; 798 + } else if (new_inode) { 799 + retval = -EFSCORRUPTED; 800 + if (new_inode->i_nlink < 1) 801 + goto out_oiter; 796 802 } 797 803 if (is_dir && old_dir != new_dir) { 798 804 retval = udf_fiiter_find_entry(old_inode, &dotdot_name,