Message ID | 20210301160102.2884774-10-almaz.alexandrovich@paragon-software.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | NTFS read-write driver GPL implementation by Paragon Software | expand |
Hi Konstantin, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on fe07bfda2fb9cdef8a4d4008a409bb02f35f1bd8] url: https://github.com/0day-ci/linux/commits/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20210302-000938 base: fe07bfda2fb9cdef8a4d4008a409bb02f35f1bd8 config: openrisc-randconfig-r031-20210305 (attached as .config) compiler: or1k-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/94dd419cbcd18faff52a6d852f2571684175a98f git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20210302-000938 git checkout 94dd419cbcd18faff52a6d852f2571684175a98f # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=openrisc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): fs/ntfs3/attrib.c: In function 'attr_data_get_block': >> fs/ntfs3/attrib.c:834:6: warning: variable 'new_size' set but not used [-Wunused-but-set-variable] 834 | u64 new_size, total_size; | ^~~~~~~~ -- >> fs/ntfs3/index.c:554:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 554 | static const inline struct NTFS_DE *hdr_find_split(const struct INDEX_HDR *hdr) | ^~~~~~ fs/ntfs3/index.c:585:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 585 | static const inline struct NTFS_DE * | ^~~~~~ fs/ntfs3/index.c: In function 'indx_add_allocate': >> fs/ntfs3/index.c:1465:17: warning: variable 'alloc_size' set but not used [-Wunused-but-set-variable] 1465 | u64 data_size, alloc_size; | ^~~~~~~~~~ fs/ntfs3/index.c: In function 'indx_insert_into_root': >> fs/ntfs3/index.c:1555:8: warning: variable 'next' set but not used [-Wunused-but-set-variable] 1555 | char *next; | ^~~~ >> fs/ntfs3/index.c:1552:40: warning: variable 'aoff' set but not used [-Wunused-but-set-variable] 1552 | u32 hdr_used, hdr_total, asize, used, aoff, to_move; | ^~~~ -- fs/ntfs3/run.c: In function 'run_packed_size': >> fs/ntfs3/run.c:603:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 603 | return (const u8 *)n + sizeof(n) - p; | ^ vim +/new_size +834 fs/ntfs3/attrib.c 10063fbe42995c Konstantin Komarov 2021-03-01 822 10063fbe42995c Konstantin Komarov 2021-03-01 823 int attr_data_get_block(struct ntfs_inode *ni, CLST vcn, CLST clen, CLST *lcn, 10063fbe42995c Konstantin Komarov 2021-03-01 824 CLST *len, bool *new) 10063fbe42995c Konstantin Komarov 2021-03-01 825 { 10063fbe42995c Konstantin Komarov 2021-03-01 826 int err = 0; 10063fbe42995c Konstantin Komarov 2021-03-01 827 struct runs_tree *run = &ni->file.run; 10063fbe42995c Konstantin Komarov 2021-03-01 828 struct ntfs_sb_info *sbi; 10063fbe42995c Konstantin Komarov 2021-03-01 829 u8 cluster_bits; 10063fbe42995c Konstantin Komarov 2021-03-01 830 struct ATTRIB *attr = NULL, *attr_b; 10063fbe42995c Konstantin Komarov 2021-03-01 831 struct ATTR_LIST_ENTRY *le, *le_b; 10063fbe42995c Konstantin Komarov 2021-03-01 832 struct mft_inode *mi, *mi_b; 10063fbe42995c Konstantin Komarov 2021-03-01 833 CLST hint, svcn, to_alloc, evcn1, next_svcn, asize, end; 10063fbe42995c Konstantin Komarov 2021-03-01 @834 u64 new_size, total_size; 10063fbe42995c Konstantin Komarov 2021-03-01 835 u32 clst_per_frame; 10063fbe42995c Konstantin Komarov 2021-03-01 836 bool ok; 10063fbe42995c Konstantin Komarov 2021-03-01 837 10063fbe42995c Konstantin Komarov 2021-03-01 838 if (new) 10063fbe42995c Konstantin Komarov 2021-03-01 839 *new = false; 10063fbe42995c Konstantin Komarov 2021-03-01 840 10063fbe42995c Konstantin Komarov 2021-03-01 841 down_read(&ni->file.run_lock); 10063fbe42995c Konstantin Komarov 2021-03-01 842 ok = run_lookup_entry(run, vcn, lcn, len, NULL); 10063fbe42995c Konstantin Komarov 2021-03-01 843 up_read(&ni->file.run_lock); 10063fbe42995c Konstantin Komarov 2021-03-01 844 10063fbe42995c Konstantin Komarov 2021-03-01 845 if (ok && (*lcn != SPARSE_LCN || !new)) { 10063fbe42995c Konstantin Komarov 2021-03-01 846 /* normal way */ 10063fbe42995c Konstantin Komarov 2021-03-01 847 return 0; 10063fbe42995c Konstantin Komarov 2021-03-01 848 } 10063fbe42995c Konstantin Komarov 2021-03-01 849 10063fbe42995c Konstantin Komarov 2021-03-01 850 if (!clen) 10063fbe42995c Konstantin Komarov 2021-03-01 851 clen = 1; 10063fbe42995c Konstantin Komarov 2021-03-01 852 10063fbe42995c Konstantin Komarov 2021-03-01 853 if (ok && clen > *len) 10063fbe42995c Konstantin Komarov 2021-03-01 854 clen = *len; 10063fbe42995c Konstantin Komarov 2021-03-01 855 10063fbe42995c Konstantin Komarov 2021-03-01 856 sbi = ni->mi.sbi; 10063fbe42995c Konstantin Komarov 2021-03-01 857 cluster_bits = sbi->cluster_bits; 10063fbe42995c Konstantin Komarov 2021-03-01 858 new_size = ((u64)vcn + clen) << cluster_bits; 10063fbe42995c Konstantin Komarov 2021-03-01 859 10063fbe42995c Konstantin Komarov 2021-03-01 860 ni_lock(ni); 10063fbe42995c Konstantin Komarov 2021-03-01 861 down_write(&ni->file.run_lock); 10063fbe42995c Konstantin Komarov 2021-03-01 862 10063fbe42995c Konstantin Komarov 2021-03-01 863 le_b = NULL; 10063fbe42995c Konstantin Komarov 2021-03-01 864 attr_b = ni_find_attr(ni, NULL, &le_b, ATTR_DATA, NULL, 0, NULL, &mi_b); 10063fbe42995c Konstantin Komarov 2021-03-01 865 if (!attr_b) { 10063fbe42995c Konstantin Komarov 2021-03-01 866 err = -ENOENT; 10063fbe42995c Konstantin Komarov 2021-03-01 867 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 868 } 10063fbe42995c Konstantin Komarov 2021-03-01 869 10063fbe42995c Konstantin Komarov 2021-03-01 870 if (!attr_b->non_res) { 10063fbe42995c Konstantin Komarov 2021-03-01 871 *lcn = RESIDENT_LCN; 10063fbe42995c Konstantin Komarov 2021-03-01 872 *len = 1; 10063fbe42995c Konstantin Komarov 2021-03-01 873 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 874 } 10063fbe42995c Konstantin Komarov 2021-03-01 875 10063fbe42995c Konstantin Komarov 2021-03-01 876 asize = le64_to_cpu(attr_b->nres.alloc_size) >> sbi->cluster_bits; 10063fbe42995c Konstantin Komarov 2021-03-01 877 if (vcn >= asize) { 10063fbe42995c Konstantin Komarov 2021-03-01 878 err = -EINVAL; 10063fbe42995c Konstantin Komarov 2021-03-01 879 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 880 } 10063fbe42995c Konstantin Komarov 2021-03-01 881 10063fbe42995c Konstantin Komarov 2021-03-01 882 clst_per_frame = 1u << attr_b->nres.c_unit; 10063fbe42995c Konstantin Komarov 2021-03-01 883 to_alloc = (clen + clst_per_frame - 1) & ~(clst_per_frame - 1); 10063fbe42995c Konstantin Komarov 2021-03-01 884 10063fbe42995c Konstantin Komarov 2021-03-01 885 if (vcn + to_alloc > asize) 10063fbe42995c Konstantin Komarov 2021-03-01 886 to_alloc = asize - vcn; 10063fbe42995c Konstantin Komarov 2021-03-01 887 10063fbe42995c Konstantin Komarov 2021-03-01 888 svcn = le64_to_cpu(attr_b->nres.svcn); 10063fbe42995c Konstantin Komarov 2021-03-01 889 evcn1 = le64_to_cpu(attr_b->nres.evcn) + 1; 10063fbe42995c Konstantin Komarov 2021-03-01 890 10063fbe42995c Konstantin Komarov 2021-03-01 891 attr = attr_b; 10063fbe42995c Konstantin Komarov 2021-03-01 892 le = le_b; 10063fbe42995c Konstantin Komarov 2021-03-01 893 mi = mi_b; 10063fbe42995c Konstantin Komarov 2021-03-01 894 10063fbe42995c Konstantin Komarov 2021-03-01 895 if (le_b && (vcn < svcn || evcn1 <= vcn)) { 10063fbe42995c Konstantin Komarov 2021-03-01 896 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn, 10063fbe42995c Konstantin Komarov 2021-03-01 897 &mi); 10063fbe42995c Konstantin Komarov 2021-03-01 898 if (!attr) { 10063fbe42995c Konstantin Komarov 2021-03-01 899 err = -EINVAL; 10063fbe42995c Konstantin Komarov 2021-03-01 900 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 901 } 10063fbe42995c Konstantin Komarov 2021-03-01 902 svcn = le64_to_cpu(attr->nres.svcn); 10063fbe42995c Konstantin Komarov 2021-03-01 903 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; 10063fbe42995c Konstantin Komarov 2021-03-01 904 } 10063fbe42995c Konstantin Komarov 2021-03-01 905 10063fbe42995c Konstantin Komarov 2021-03-01 906 err = attr_load_runs(attr, ni, run, NULL); 10063fbe42995c Konstantin Komarov 2021-03-01 907 if (err) 10063fbe42995c Konstantin Komarov 2021-03-01 908 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 909 10063fbe42995c Konstantin Komarov 2021-03-01 910 if (!ok) { 10063fbe42995c Konstantin Komarov 2021-03-01 911 ok = run_lookup_entry(run, vcn, lcn, len, NULL); 10063fbe42995c Konstantin Komarov 2021-03-01 912 if (ok && (*lcn != SPARSE_LCN || !new)) { 10063fbe42995c Konstantin Komarov 2021-03-01 913 /* normal way */ 10063fbe42995c Konstantin Komarov 2021-03-01 914 err = 0; 10063fbe42995c Konstantin Komarov 2021-03-01 915 goto ok; 10063fbe42995c Konstantin Komarov 2021-03-01 916 } 10063fbe42995c Konstantin Komarov 2021-03-01 917 10063fbe42995c Konstantin Komarov 2021-03-01 918 if (!ok && !new) { 10063fbe42995c Konstantin Komarov 2021-03-01 919 *len = 0; 10063fbe42995c Konstantin Komarov 2021-03-01 920 err = 0; 10063fbe42995c Konstantin Komarov 2021-03-01 921 goto ok; 10063fbe42995c Konstantin Komarov 2021-03-01 922 } 10063fbe42995c Konstantin Komarov 2021-03-01 923 10063fbe42995c Konstantin Komarov 2021-03-01 924 if (ok && clen > *len) { 10063fbe42995c Konstantin Komarov 2021-03-01 925 clen = *len; 10063fbe42995c Konstantin Komarov 2021-03-01 926 new_size = ((u64)vcn + clen) << cluster_bits; 10063fbe42995c Konstantin Komarov 2021-03-01 927 to_alloc = (clen + clst_per_frame - 1) & 10063fbe42995c Konstantin Komarov 2021-03-01 928 ~(clst_per_frame - 1); 10063fbe42995c Konstantin Komarov 2021-03-01 929 } 10063fbe42995c Konstantin Komarov 2021-03-01 930 } 10063fbe42995c Konstantin Komarov 2021-03-01 931 10063fbe42995c Konstantin Komarov 2021-03-01 932 if (!is_attr_ext(attr_b)) { 10063fbe42995c Konstantin Komarov 2021-03-01 933 err = -EINVAL; 10063fbe42995c Konstantin Komarov 2021-03-01 934 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 935 } 10063fbe42995c Konstantin Komarov 2021-03-01 936 10063fbe42995c Konstantin Komarov 2021-03-01 937 /* Get the last lcn to allocate from */ 10063fbe42995c Konstantin Komarov 2021-03-01 938 hint = 0; 10063fbe42995c Konstantin Komarov 2021-03-01 939 10063fbe42995c Konstantin Komarov 2021-03-01 940 if (vcn > evcn1) { 10063fbe42995c Konstantin Komarov 2021-03-01 941 if (!run_add_entry(run, evcn1, SPARSE_LCN, vcn - evcn1, 10063fbe42995c Konstantin Komarov 2021-03-01 942 false)) { 10063fbe42995c Konstantin Komarov 2021-03-01 943 err = -ENOMEM; 10063fbe42995c Konstantin Komarov 2021-03-01 944 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 945 } 10063fbe42995c Konstantin Komarov 2021-03-01 946 } else if (vcn && !run_lookup_entry(run, vcn - 1, &hint, NULL, NULL)) { 10063fbe42995c Konstantin Komarov 2021-03-01 947 hint = -1; 10063fbe42995c Konstantin Komarov 2021-03-01 948 } 10063fbe42995c Konstantin Komarov 2021-03-01 949 10063fbe42995c Konstantin Komarov 2021-03-01 950 err = attr_allocate_clusters( 10063fbe42995c Konstantin Komarov 2021-03-01 951 sbi, run, vcn, hint + 1, to_alloc, NULL, 0, len, 10063fbe42995c Konstantin Komarov 2021-03-01 952 (sbi->record_size - le32_to_cpu(mi->mrec->used) + 8) / 3 + 1, 10063fbe42995c Konstantin Komarov 2021-03-01 953 lcn); 10063fbe42995c Konstantin Komarov 2021-03-01 954 if (err) 10063fbe42995c Konstantin Komarov 2021-03-01 955 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 956 *new = true; 10063fbe42995c Konstantin Komarov 2021-03-01 957 10063fbe42995c Konstantin Komarov 2021-03-01 958 end = vcn + *len; 10063fbe42995c Konstantin Komarov 2021-03-01 959 10063fbe42995c Konstantin Komarov 2021-03-01 960 total_size = le64_to_cpu(attr_b->nres.total_size) + 10063fbe42995c Konstantin Komarov 2021-03-01 961 ((u64)*len << cluster_bits); 10063fbe42995c Konstantin Komarov 2021-03-01 962 10063fbe42995c Konstantin Komarov 2021-03-01 963 repack: 10063fbe42995c Konstantin Komarov 2021-03-01 964 err = mi_pack_runs(mi, attr, run, max(end, evcn1) - svcn); 10063fbe42995c Konstantin Komarov 2021-03-01 965 if (err) 10063fbe42995c Konstantin Komarov 2021-03-01 966 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 967 10063fbe42995c Konstantin Komarov 2021-03-01 968 attr_b->nres.total_size = cpu_to_le64(total_size); 10063fbe42995c Konstantin Komarov 2021-03-01 969 inode_set_bytes(&ni->vfs_inode, total_size); 10063fbe42995c Konstantin Komarov 2021-03-01 970 ni->ni_flags |= NI_FLAG_UPDATE_PARENT; 10063fbe42995c Konstantin Komarov 2021-03-01 971 10063fbe42995c Konstantin Komarov 2021-03-01 972 mi_b->dirty = true; 10063fbe42995c Konstantin Komarov 2021-03-01 973 mark_inode_dirty(&ni->vfs_inode); 10063fbe42995c Konstantin Komarov 2021-03-01 974 10063fbe42995c Konstantin Komarov 2021-03-01 975 /* stored [vcn : next_svcn) from [vcn : end) */ 10063fbe42995c Konstantin Komarov 2021-03-01 976 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; 10063fbe42995c Konstantin Komarov 2021-03-01 977 10063fbe42995c Konstantin Komarov 2021-03-01 978 if (end <= evcn1) { 10063fbe42995c Konstantin Komarov 2021-03-01 979 if (next_svcn == evcn1) { 10063fbe42995c Konstantin Komarov 2021-03-01 980 /* Normal way. update attribute and exit */ 10063fbe42995c Konstantin Komarov 2021-03-01 981 goto ok; 10063fbe42995c Konstantin Komarov 2021-03-01 982 } 10063fbe42995c Konstantin Komarov 2021-03-01 983 /* add new segment [next_svcn : evcn1 - next_svcn )*/ 10063fbe42995c Konstantin Komarov 2021-03-01 984 if (!ni->attr_list.size) { 10063fbe42995c Konstantin Komarov 2021-03-01 985 err = ni_create_attr_list(ni); 10063fbe42995c Konstantin Komarov 2021-03-01 986 if (err) 10063fbe42995c Konstantin Komarov 2021-03-01 987 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 988 /* layout of records is changed */ 10063fbe42995c Konstantin Komarov 2021-03-01 989 le_b = NULL; 10063fbe42995c Konstantin Komarov 2021-03-01 990 attr_b = ni_find_attr(ni, NULL, &le_b, ATTR_DATA, NULL, 10063fbe42995c Konstantin Komarov 2021-03-01 991 0, NULL, &mi_b); 10063fbe42995c Konstantin Komarov 2021-03-01 992 if (!attr_b) { 10063fbe42995c Konstantin Komarov 2021-03-01 993 err = -ENOENT; 10063fbe42995c Konstantin Komarov 2021-03-01 994 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 995 } 10063fbe42995c Konstantin Komarov 2021-03-01 996 10063fbe42995c Konstantin Komarov 2021-03-01 997 attr = attr_b; 10063fbe42995c Konstantin Komarov 2021-03-01 998 le = le_b; 10063fbe42995c Konstantin Komarov 2021-03-01 999 mi = mi_b; 10063fbe42995c Konstantin Komarov 2021-03-01 1000 goto repack; 10063fbe42995c Konstantin Komarov 2021-03-01 1001 } 10063fbe42995c Konstantin Komarov 2021-03-01 1002 } 10063fbe42995c Konstantin Komarov 2021-03-01 1003 10063fbe42995c Konstantin Komarov 2021-03-01 1004 svcn = evcn1; 10063fbe42995c Konstantin Komarov 2021-03-01 1005 10063fbe42995c Konstantin Komarov 2021-03-01 1006 /* Estimate next attribute */ 10063fbe42995c Konstantin Komarov 2021-03-01 1007 attr = ni_find_attr(ni, attr, &le, ATTR_DATA, NULL, 0, &svcn, &mi); 10063fbe42995c Konstantin Komarov 2021-03-01 1008 10063fbe42995c Konstantin Komarov 2021-03-01 1009 if (attr) { 10063fbe42995c Konstantin Komarov 2021-03-01 1010 CLST alloc = bytes_to_cluster( 10063fbe42995c Konstantin Komarov 2021-03-01 1011 sbi, le64_to_cpu(attr_b->nres.alloc_size)); 10063fbe42995c Konstantin Komarov 2021-03-01 1012 CLST evcn = le64_to_cpu(attr->nres.evcn); 10063fbe42995c Konstantin Komarov 2021-03-01 1013 10063fbe42995c Konstantin Komarov 2021-03-01 1014 if (end < next_svcn) 10063fbe42995c Konstantin Komarov 2021-03-01 1015 end = next_svcn; 10063fbe42995c Konstantin Komarov 2021-03-01 1016 while (end > evcn) { 10063fbe42995c Konstantin Komarov 2021-03-01 1017 /* remove segment [svcn : evcn)*/ 10063fbe42995c Konstantin Komarov 2021-03-01 1018 mi_remove_attr(mi, attr); 10063fbe42995c Konstantin Komarov 2021-03-01 1019 10063fbe42995c Konstantin Komarov 2021-03-01 1020 if (!al_remove_le(ni, le)) { 10063fbe42995c Konstantin Komarov 2021-03-01 1021 err = -EINVAL; 10063fbe42995c Konstantin Komarov 2021-03-01 1022 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 1023 } 10063fbe42995c Konstantin Komarov 2021-03-01 1024 10063fbe42995c Konstantin Komarov 2021-03-01 1025 if (evcn + 1 >= alloc) { 10063fbe42995c Konstantin Komarov 2021-03-01 1026 /* last attribute segment */ 10063fbe42995c Konstantin Komarov 2021-03-01 1027 evcn1 = evcn + 1; 10063fbe42995c Konstantin Komarov 2021-03-01 1028 goto ins_ext; 10063fbe42995c Konstantin Komarov 2021-03-01 1029 } 10063fbe42995c Konstantin Komarov 2021-03-01 1030 10063fbe42995c Konstantin Komarov 2021-03-01 1031 if (ni_load_mi(ni, le, &mi)) { 10063fbe42995c Konstantin Komarov 2021-03-01 1032 attr = NULL; 10063fbe42995c Konstantin Komarov 2021-03-01 1033 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 1034 } 10063fbe42995c Konstantin Komarov 2021-03-01 1035 10063fbe42995c Konstantin Komarov 2021-03-01 1036 attr = mi_find_attr(mi, NULL, ATTR_DATA, NULL, 0, 10063fbe42995c Konstantin Komarov 2021-03-01 1037 &le->id); 10063fbe42995c Konstantin Komarov 2021-03-01 1038 if (!attr) { 10063fbe42995c Konstantin Komarov 2021-03-01 1039 err = -EINVAL; 10063fbe42995c Konstantin Komarov 2021-03-01 1040 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 1041 } 10063fbe42995c Konstantin Komarov 2021-03-01 1042 svcn = le64_to_cpu(attr->nres.svcn); 10063fbe42995c Konstantin Komarov 2021-03-01 1043 evcn = le64_to_cpu(attr->nres.evcn); 10063fbe42995c Konstantin Komarov 2021-03-01 1044 } 10063fbe42995c Konstantin Komarov 2021-03-01 1045 10063fbe42995c Konstantin Komarov 2021-03-01 1046 if (end < svcn) 10063fbe42995c Konstantin Komarov 2021-03-01 1047 end = svcn; 10063fbe42995c Konstantin Komarov 2021-03-01 1048 10063fbe42995c Konstantin Komarov 2021-03-01 1049 err = attr_load_runs(attr, ni, run, &end); 10063fbe42995c Konstantin Komarov 2021-03-01 1050 if (err) 10063fbe42995c Konstantin Komarov 2021-03-01 1051 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 1052 10063fbe42995c Konstantin Komarov 2021-03-01 1053 evcn1 = evcn + 1; 10063fbe42995c Konstantin Komarov 2021-03-01 1054 attr->nres.svcn = cpu_to_le64(next_svcn); 10063fbe42995c Konstantin Komarov 2021-03-01 1055 err = mi_pack_runs(mi, attr, run, evcn1 - next_svcn); 10063fbe42995c Konstantin Komarov 2021-03-01 1056 if (err) 10063fbe42995c Konstantin Komarov 2021-03-01 1057 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 1058 10063fbe42995c Konstantin Komarov 2021-03-01 1059 le->vcn = cpu_to_le64(next_svcn); 10063fbe42995c Konstantin Komarov 2021-03-01 1060 ni->attr_list.dirty = true; 10063fbe42995c Konstantin Komarov 2021-03-01 1061 mi->dirty = true; 10063fbe42995c Konstantin Komarov 2021-03-01 1062 10063fbe42995c Konstantin Komarov 2021-03-01 1063 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; 10063fbe42995c Konstantin Komarov 2021-03-01 1064 } 10063fbe42995c Konstantin Komarov 2021-03-01 1065 ins_ext: 10063fbe42995c Konstantin Komarov 2021-03-01 1066 if (evcn1 > next_svcn) { 10063fbe42995c Konstantin Komarov 2021-03-01 1067 err = ni_insert_nonresident(ni, ATTR_DATA, NULL, 0, run, 10063fbe42995c Konstantin Komarov 2021-03-01 1068 next_svcn, evcn1 - next_svcn, 10063fbe42995c Konstantin Komarov 2021-03-01 1069 attr_b->flags, &attr, &mi); 10063fbe42995c Konstantin Komarov 2021-03-01 1070 if (err) 10063fbe42995c Konstantin Komarov 2021-03-01 1071 goto out; 10063fbe42995c Konstantin Komarov 2021-03-01 1072 } 10063fbe42995c Konstantin Komarov 2021-03-01 1073 ok: 10063fbe42995c Konstantin Komarov 2021-03-01 1074 run_truncate_around(run, vcn); 10063fbe42995c Konstantin Komarov 2021-03-01 1075 out: 10063fbe42995c Konstantin Komarov 2021-03-01 1076 up_write(&ni->file.run_lock); 10063fbe42995c Konstantin Komarov 2021-03-01 1077 ni_unlock(ni); 10063fbe42995c Konstantin Komarov 2021-03-01 1078 10063fbe42995c Konstantin Komarov 2021-03-01 1079 return err; 10063fbe42995c Konstantin Komarov 2021-03-01 1080 } 10063fbe42995c Konstantin Komarov 2021-03-01 1081 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/fs/Kconfig b/fs/Kconfig index 462253ae483a..1a24384b1f3f 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -145,6 +145,7 @@ menu "DOS/FAT/EXFAT/NT Filesystems" source "fs/fat/Kconfig" source "fs/exfat/Kconfig" source "fs/ntfs/Kconfig" +source "fs/ntfs3/Kconfig" endmenu endif # BLOCK diff --git a/fs/Makefile b/fs/Makefile index 3215fe205256..6bdfcf712cb1 100644 --- a/fs/Makefile +++ b/fs/Makefile @@ -99,6 +99,7 @@ obj-$(CONFIG_SYSV_FS) += sysv/ obj-$(CONFIG_CIFS) += cifs/ obj-$(CONFIG_HPFS_FS) += hpfs/ obj-$(CONFIG_NTFS_FS) += ntfs/ +obj-$(CONFIG_NTFS3_FS) += ntfs3/ obj-$(CONFIG_UFS_FS) += ufs/ obj-$(CONFIG_EFS_FS) += efs/ obj-$(CONFIG_JFFS2_FS) += jffs2/
This adds NTFS3 in fs/Kconfig and fs/Makefile Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com> --- fs/Kconfig | 1 + fs/Makefile | 1 + 2 files changed, 2 insertions(+)