CC: kbuild-all(a)lists.01.org In-Reply-To: <20210426184201.4177978-14-krisman@collabora.com> References: <20210426184201.4177978-14-krisman@collabora.com> TO: Gabriel Krisman Bertazi Hi Gabriel, [FYI, it's a private test report for your RFC patch.] [auto build test WARNING on pcmoore-audit/next] [also build test WARNING on ext4/dev linus/master v5.12] [cannot apply to ext3/fsnotify next-20210426] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Gabriel-Krisman-Bertazi/File-system-wide-monitoring/20210427-024627 base: https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git next :::::: branch date: 14 hours ago :::::: commit date: 14 hours ago config: i386-randconfig-m021-20210426 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: fs/ext4/super.c:739 ext4_fsnotify_error() warn: variable dereferenced before check 'inode' (see line 738) fs/ext4/super.c:918 __ext4_std_error() error: uninitialized symbol 'errstr'. Old smatch warnings: fs/ext4/super.c:3787 ext4_register_li_request() error: we previously assumed 'ext4_li_info' could be null (see line 3769) fs/ext4/super.c:4463 ext4_fill_super() warn: bitwise AND condition is false here vim +/inode +739 fs/ext4/super.c ac27a0ec112a08 Dave Kleikamp 2006-10-11 731 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 732 static void ext4_fsnotify_error(int error, struct inode *inode, __u64 block, 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 733 const char *func, int line, 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 734 const char *desc, struct va_format *vaf) 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 735 { 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 736 struct ext4_error_inode_report report; 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 737 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 @738 if (inode->i_sb->s_fsnotify_marks) { 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 @739 report.inode = inode ? inode->i_ino : -1L; 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 740 report.block = block ? block : -1L; 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 741 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 742 snprintf(report.desc, EXT4_FSN_DESC_LEN, "%s%pV\n", desc?:"", vaf); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 743 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 744 fsnotify_error_event(error, inode, func, line, &report, sizeof(report)); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 745 } 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 746 } 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 747 efbed4dc5857f8 Theodore Ts'o 2013-10-17 748 #define ext4_error_ratelimit(sb) \ efbed4dc5857f8 Theodore Ts'o 2013-10-17 749 ___ratelimit(&(EXT4_SB(sb)->s_err_ratelimit_state), \ efbed4dc5857f8 Theodore Ts'o 2013-10-17 750 "EXT4-fs error") efbed4dc5857f8 Theodore Ts'o 2013-10-17 751 12062dddda4509 Eric Sandeen 2010-02-15 752 void __ext4_error(struct super_block *sb, const char *function, 014c9caa29d3a4 Jan Kara 2020-11-27 753 unsigned int line, bool force_ro, int error, __u64 block, 54d3adbc29f0c7 Theodore Ts'o 2020-03-28 754 const char *fmt, ...) ac27a0ec112a08 Dave Kleikamp 2006-10-11 755 { 0ff2ea7d84e311 Joe Perches 2010-12-19 756 struct va_format vaf; ac27a0ec112a08 Dave Kleikamp 2006-10-11 757 va_list args; ac27a0ec112a08 Dave Kleikamp 2006-10-11 758 0db1ff222d40f1 Theodore Ts'o 2017-02-05 759 if (unlikely(ext4_forced_shutdown(EXT4_SB(sb)))) 0db1ff222d40f1 Theodore Ts'o 2017-02-05 760 return; 0db1ff222d40f1 Theodore Ts'o 2017-02-05 761 ccf0f32acd436b Theodore Ts'o 2018-02-18 762 trace_ext4_error(sb, function, line); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 763 ac27a0ec112a08 Dave Kleikamp 2006-10-11 764 va_start(args, fmt); 0ff2ea7d84e311 Joe Perches 2010-12-19 765 vaf.fmt = fmt; 0ff2ea7d84e311 Joe Perches 2010-12-19 766 vaf.va = &args; 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 767 if (ext4_error_ratelimit(sb)) { efbed4dc5857f8 Theodore Ts'o 2013-10-17 768 printk(KERN_CRIT efbed4dc5857f8 Theodore Ts'o 2013-10-17 769 "EXT4-fs error (device %s): %s:%d: comm %s: %pV\n", 0ff2ea7d84e311 Joe Perches 2010-12-19 770 sb->s_id, function, line, current->comm, &vaf); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 771 efbed4dc5857f8 Theodore Ts'o 2013-10-17 772 } 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 773 ext4_fsnotify_error(error, sb->s_root->d_inode, block, function, line, NULL, &vaf); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 774 va_end(args); e789ca0cc1d512 Jan Kara 2020-12-16 775 ext4_handle_error(sb, force_ro, error, 0, block, function, line); ac27a0ec112a08 Dave Kleikamp 2006-10-11 776 } ac27a0ec112a08 Dave Kleikamp 2006-10-11 777 e7c96e8e47baf2 Joe Perches 2013-07-01 778 void __ext4_error_inode(struct inode *inode, const char *function, 54d3adbc29f0c7 Theodore Ts'o 2020-03-28 779 unsigned int line, ext4_fsblk_t block, int error, 273df556b6ee20 Frank Mayhar 2010-03-02 780 const char *fmt, ...) 273df556b6ee20 Frank Mayhar 2010-03-02 781 { 273df556b6ee20 Frank Mayhar 2010-03-02 782 va_list args; f7c21177af0b32 Theodore Ts'o 2011-01-10 783 struct va_format vaf; 273df556b6ee20 Frank Mayhar 2010-03-02 784 0db1ff222d40f1 Theodore Ts'o 2017-02-05 785 if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) 0db1ff222d40f1 Theodore Ts'o 2017-02-05 786 return; 0db1ff222d40f1 Theodore Ts'o 2017-02-05 787 ccf0f32acd436b Theodore Ts'o 2018-02-18 788 trace_ext4_error(inode->i_sb, function, line); 273df556b6ee20 Frank Mayhar 2010-03-02 789 va_start(args, fmt); f7c21177af0b32 Theodore Ts'o 2011-01-10 790 vaf.fmt = fmt; f7c21177af0b32 Theodore Ts'o 2011-01-10 791 vaf.va = &args; 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 792 if (ext4_error_ratelimit(inode->i_sb)) { c398eda0e43a79 Theodore Ts'o 2010-07-27 793 if (block) d9ee81da93e86a Joe Perches 2012-03-19 794 printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: " d9ee81da93e86a Joe Perches 2012-03-19 795 "inode #%lu: block %llu: comm %s: %pV\n", d9ee81da93e86a Joe Perches 2012-03-19 796 inode->i_sb->s_id, function, line, inode->i_ino, d9ee81da93e86a Joe Perches 2012-03-19 797 block, current->comm, &vaf); d9ee81da93e86a Joe Perches 2012-03-19 798 else d9ee81da93e86a Joe Perches 2012-03-19 799 printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: " d9ee81da93e86a Joe Perches 2012-03-19 800 "inode #%lu: comm %s: %pV\n", d9ee81da93e86a Joe Perches 2012-03-19 801 inode->i_sb->s_id, function, line, inode->i_ino, d9ee81da93e86a Joe Perches 2012-03-19 802 current->comm, &vaf); efbed4dc5857f8 Theodore Ts'o 2013-10-17 803 } 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 804 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 805 ext4_fsnotify_error(error, inode, block, function, line, NULL, &vaf); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 806 va_end(args); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 807 e789ca0cc1d512 Jan Kara 2020-12-16 808 ext4_handle_error(inode->i_sb, false, error, inode->i_ino, block, 54d3adbc29f0c7 Theodore Ts'o 2020-03-28 809 function, line); 273df556b6ee20 Frank Mayhar 2010-03-02 810 } 273df556b6ee20 Frank Mayhar 2010-03-02 811 e7c96e8e47baf2 Joe Perches 2013-07-01 812 void __ext4_error_file(struct file *file, const char *function, f7c21177af0b32 Theodore Ts'o 2011-01-10 813 unsigned int line, ext4_fsblk_t block, f7c21177af0b32 Theodore Ts'o 2011-01-10 814 const char *fmt, ...) 273df556b6ee20 Frank Mayhar 2010-03-02 815 { 273df556b6ee20 Frank Mayhar 2010-03-02 816 va_list args; f7c21177af0b32 Theodore Ts'o 2011-01-10 817 struct va_format vaf; 496ad9aa8ef448 Al Viro 2013-01-23 818 struct inode *inode = file_inode(file); 273df556b6ee20 Frank Mayhar 2010-03-02 819 char pathname[80], *path; 273df556b6ee20 Frank Mayhar 2010-03-02 820 0db1ff222d40f1 Theodore Ts'o 2017-02-05 821 if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) 0db1ff222d40f1 Theodore Ts'o 2017-02-05 822 return; 0db1ff222d40f1 Theodore Ts'o 2017-02-05 823 ccf0f32acd436b Theodore Ts'o 2018-02-18 824 trace_ext4_error(inode->i_sb, function, line); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 825 9bf39ab2adafd7 Miklos Szeredi 2015-06-19 826 path = file_path(file, pathname, sizeof(pathname)); f9a62d090cf47f Dan Carpenter 2011-01-10 827 if (IS_ERR(path)) 273df556b6ee20 Frank Mayhar 2010-03-02 828 path = "(unknown)"; 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 829 f7c21177af0b32 Theodore Ts'o 2011-01-10 830 va_start(args, fmt); f7c21177af0b32 Theodore Ts'o 2011-01-10 831 vaf.fmt = fmt; f7c21177af0b32 Theodore Ts'o 2011-01-10 832 vaf.va = &args; 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 833 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 834 if (ext4_error_ratelimit(inode->i_sb)) { d9ee81da93e86a Joe Perches 2012-03-19 835 if (block) d9ee81da93e86a Joe Perches 2012-03-19 836 printk(KERN_CRIT d9ee81da93e86a Joe Perches 2012-03-19 837 "EXT4-fs error (device %s): %s:%d: inode #%lu: " d9ee81da93e86a Joe Perches 2012-03-19 838 "block %llu: comm %s: path %s: %pV\n", d9ee81da93e86a Joe Perches 2012-03-19 839 inode->i_sb->s_id, function, line, inode->i_ino, d9ee81da93e86a Joe Perches 2012-03-19 840 block, current->comm, path, &vaf); d9ee81da93e86a Joe Perches 2012-03-19 841 else d9ee81da93e86a Joe Perches 2012-03-19 842 printk(KERN_CRIT d9ee81da93e86a Joe Perches 2012-03-19 843 "EXT4-fs error (device %s): %s:%d: inode #%lu: " d9ee81da93e86a Joe Perches 2012-03-19 844 "comm %s: path %s: %pV\n", d9ee81da93e86a Joe Perches 2012-03-19 845 inode->i_sb->s_id, function, line, inode->i_ino, d9ee81da93e86a Joe Perches 2012-03-19 846 current->comm, path, &vaf); efbed4dc5857f8 Theodore Ts'o 2013-10-17 847 } 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 848 ext4_fsnotify_error(EFSCORRUPTED, inode, block, function, line, NULL, &vaf); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 849 va_end(args); 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 850 e789ca0cc1d512 Jan Kara 2020-12-16 851 ext4_handle_error(inode->i_sb, false, EFSCORRUPTED, inode->i_ino, block, 54d3adbc29f0c7 Theodore Ts'o 2020-03-28 852 function, line); 273df556b6ee20 Frank Mayhar 2010-03-02 853 } 273df556b6ee20 Frank Mayhar 2010-03-02 854 722887ddc8982f Theodore Ts'o 2013-02-08 855 const char *ext4_decode_error(struct super_block *sb, int errno, ac27a0ec112a08 Dave Kleikamp 2006-10-11 856 char nbuf[16]) ac27a0ec112a08 Dave Kleikamp 2006-10-11 857 { ac27a0ec112a08 Dave Kleikamp 2006-10-11 858 char *errstr = NULL; ac27a0ec112a08 Dave Kleikamp 2006-10-11 859 ac27a0ec112a08 Dave Kleikamp 2006-10-11 860 switch (errno) { 6a797d27378389 Darrick J. Wong 2015-10-17 861 case -EFSCORRUPTED: 6a797d27378389 Darrick J. Wong 2015-10-17 862 errstr = "Corrupt filesystem"; 6a797d27378389 Darrick J. Wong 2015-10-17 863 break; 6a797d27378389 Darrick J. Wong 2015-10-17 864 case -EFSBADCRC: 6a797d27378389 Darrick J. Wong 2015-10-17 865 errstr = "Filesystem failed CRC"; 6a797d27378389 Darrick J. Wong 2015-10-17 866 break; ac27a0ec112a08 Dave Kleikamp 2006-10-11 867 case -EIO: ac27a0ec112a08 Dave Kleikamp 2006-10-11 868 errstr = "IO failure"; ac27a0ec112a08 Dave Kleikamp 2006-10-11 869 break; ac27a0ec112a08 Dave Kleikamp 2006-10-11 870 case -ENOMEM: ac27a0ec112a08 Dave Kleikamp 2006-10-11 871 errstr = "Out of memory"; ac27a0ec112a08 Dave Kleikamp 2006-10-11 872 break; ac27a0ec112a08 Dave Kleikamp 2006-10-11 873 case -EROFS: 78f1ddbb498283 Theodore Ts'o 2009-07-27 874 if (!sb || (EXT4_SB(sb)->s_journal && 78f1ddbb498283 Theodore Ts'o 2009-07-27 875 EXT4_SB(sb)->s_journal->j_flags & JBD2_ABORT)) ac27a0ec112a08 Dave Kleikamp 2006-10-11 876 errstr = "Journal has aborted"; ac27a0ec112a08 Dave Kleikamp 2006-10-11 877 else ac27a0ec112a08 Dave Kleikamp 2006-10-11 878 errstr = "Readonly filesystem"; ac27a0ec112a08 Dave Kleikamp 2006-10-11 879 break; ac27a0ec112a08 Dave Kleikamp 2006-10-11 880 default: ac27a0ec112a08 Dave Kleikamp 2006-10-11 881 /* If the caller passed in an extra buffer for unknown ac27a0ec112a08 Dave Kleikamp 2006-10-11 882 * errors, textualise them now. Else we just return ac27a0ec112a08 Dave Kleikamp 2006-10-11 883 * NULL. */ ac27a0ec112a08 Dave Kleikamp 2006-10-11 884 if (nbuf) { ac27a0ec112a08 Dave Kleikamp 2006-10-11 885 /* Check for truncated error codes... */ ac27a0ec112a08 Dave Kleikamp 2006-10-11 886 if (snprintf(nbuf, 16, "error %d", -errno) >= 0) ac27a0ec112a08 Dave Kleikamp 2006-10-11 887 errstr = nbuf; ac27a0ec112a08 Dave Kleikamp 2006-10-11 888 } ac27a0ec112a08 Dave Kleikamp 2006-10-11 889 break; ac27a0ec112a08 Dave Kleikamp 2006-10-11 890 } ac27a0ec112a08 Dave Kleikamp 2006-10-11 891 ac27a0ec112a08 Dave Kleikamp 2006-10-11 892 return errstr; ac27a0ec112a08 Dave Kleikamp 2006-10-11 893 } ac27a0ec112a08 Dave Kleikamp 2006-10-11 894 617ba13b31fbf5 Mingming Cao 2006-10-11 895 /* __ext4_std_error decodes expected errors from journaling functions ac27a0ec112a08 Dave Kleikamp 2006-10-11 896 * automatically and invokes the appropriate error response. */ ac27a0ec112a08 Dave Kleikamp 2006-10-11 897 c398eda0e43a79 Theodore Ts'o 2010-07-27 898 void __ext4_std_error(struct super_block *sb, const char *function, c398eda0e43a79 Theodore Ts'o 2010-07-27 899 unsigned int line, int errno) ac27a0ec112a08 Dave Kleikamp 2006-10-11 900 { ac27a0ec112a08 Dave Kleikamp 2006-10-11 901 char nbuf[16]; ac27a0ec112a08 Dave Kleikamp 2006-10-11 902 const char *errstr; ac27a0ec112a08 Dave Kleikamp 2006-10-11 903 0db1ff222d40f1 Theodore Ts'o 2017-02-05 904 if (unlikely(ext4_forced_shutdown(EXT4_SB(sb)))) 0db1ff222d40f1 Theodore Ts'o 2017-02-05 905 return; 0db1ff222d40f1 Theodore Ts'o 2017-02-05 906 ac27a0ec112a08 Dave Kleikamp 2006-10-11 907 /* Special case: if the error is EROFS, and we're not already ac27a0ec112a08 Dave Kleikamp 2006-10-11 908 * inside a transaction, then there's really no point in logging ac27a0ec112a08 Dave Kleikamp 2006-10-11 909 * an error. */ bc98a42c1f7d0f David Howells 2017-07-17 910 if (errno == -EROFS && journal_current_handle() == NULL && sb_rdonly(sb)) ac27a0ec112a08 Dave Kleikamp 2006-10-11 911 return; ac27a0ec112a08 Dave Kleikamp 2006-10-11 912 efbed4dc5857f8 Theodore Ts'o 2013-10-17 913 if (ext4_error_ratelimit(sb)) { 617ba13b31fbf5 Mingming Cao 2006-10-11 914 errstr = ext4_decode_error(sb, errno, nbuf); c398eda0e43a79 Theodore Ts'o 2010-07-27 915 printk(KERN_CRIT "EXT4-fs error (device %s) in %s:%d: %s\n", c398eda0e43a79 Theodore Ts'o 2010-07-27 916 sb->s_id, function, line, errstr); efbed4dc5857f8 Theodore Ts'o 2013-10-17 917 } 151ead19fe71b5 Gabriel Krisman Bertazi 2021-04-26 @918 ext4_fsnotify_error(errno, NULL, -1L, function, line, errstr, NULL); ac27a0ec112a08 Dave Kleikamp 2006-10-11 919 e789ca0cc1d512 Jan Kara 2020-12-16 920 ext4_handle_error(sb, false, -errno, 0, 0, function, line); ac27a0ec112a08 Dave Kleikamp 2006-10-11 921 } ac27a0ec112a08 Dave Kleikamp 2006-10-11 922 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org