diff mbox series

[v9,09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile

Message ID 20201016152937.4030001-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

Commit Message

Konstantin Komarov Oct. 16, 2020, 3:29 p.m. UTC
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(+)

Comments

kernel test robot Oct. 17, 2020, 2:13 a.m. UTC | #1
Hi Konstantin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.9 next-20201016]
[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/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201016-233309
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 9ff9b0d392ea08090cd1780fb196f36dbb586529
config: x86_64-randconfig-a011-20201017 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project efd02c1548ee458d59063f6393e94e972b5c3d50)
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
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/3339f0d0890cfe6ed760dc24916de15e74c4f67d
        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/20201016-233309
        git checkout 3339f0d0890cfe6ed760dc24916de15e74c4f67d
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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:1256:7: warning: variable 'hint' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized]
                   if (vcn + clst_data &&
                       ^~~~~~~~~~~~~~~
   fs/ntfs3/attrib.c:1263:11: note: uninitialized use occurs here
                                                hint + 1, len - clst_data, NULL, 0,
                                                ^~~~
   fs/ntfs3/attrib.c:1256:7: note: remove the '&&' if its condition is always true
                   if (vcn + clst_data &&
                       ^~~~~~~~~~~~~~~~~~
   fs/ntfs3/attrib.c:1254:18: note: initialize the variable 'hint' to silence this warning
                   CLST alen, hint;
                                  ^
                                   = 0
   fs/ntfs3/attrib.c:72:20: warning: unused function 'attr_must_be_resident' [-Wunused-function]
   static inline bool attr_must_be_resident(struct ntfs_sb_info *sbi,
                      ^
   2 warnings generated.

vim +1256 fs/ntfs3/attrib.c

dc58d89d2835db2 Konstantin Komarov 2020-10-16  1171  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1172  /*
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1173   * attr_allocate_frame
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1174   *
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1175   * allocate/free clusters for 'frame'
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1176   */
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1177  int attr_allocate_frame(struct ntfs_inode *ni, CLST frame, size_t compr_size,
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1178  			u64 new_valid)
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1179  {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1180  	int err = 0;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1181  	struct runs_tree *run = &ni->file.run;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1182  	struct ntfs_sb_info *sbi = ni->mi.sbi;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1183  	struct ATTRIB *attr, *attr_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1184  	struct ATTR_LIST_ENTRY *le, *le_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1185  	struct mft_inode *mi, *mi_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1186  	CLST svcn, evcn1, next_evcn1, next_svcn, lcn, len;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1187  	CLST vcn, end, clst_data;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1188  	u64 total_size, valid_size, data_size;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1189  	bool is_compr;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1190  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1191  	le_b = NULL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1192  	attr_b = ni_find_attr(ni, NULL, &le_b, ATTR_DATA, NULL, 0, NULL, &mi_b);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1193  	if (!attr_b)
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1194  		return -ENOENT;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1195  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1196  	if (!is_attr_ext(attr_b))
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1197  		return -EINVAL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1198  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1199  	vcn = frame << NTFS_LZNT_CUNIT;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1200  	end = vcn + (1u << NTFS_LZNT_CUNIT);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1201  	total_size = le64_to_cpu(attr_b->nres.total_size);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1202  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1203  	svcn = le64_to_cpu(attr_b->nres.svcn);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1204  	evcn1 = le64_to_cpu(attr_b->nres.evcn) + 1;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1205  	data_size = le64_to_cpu(attr_b->nres.data_size);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1206  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1207  	if (svcn <= vcn && vcn < evcn1) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1208  		attr = attr_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1209  		le = le_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1210  		mi = mi_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1211  	} else if (!le_b) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1212  		err = -EINVAL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1213  		goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1214  	} else {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1215  		le = le_b;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1216  		attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn,
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1217  				    &mi);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1218  		if (!attr) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1219  			err = -EINVAL;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1220  			goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1221  		}
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1222  		svcn = le64_to_cpu(attr->nres.svcn);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1223  		evcn1 = le64_to_cpu(attr->nres.evcn) + 1;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1224  	}
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1225  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1226  	err = attr_load_runs(attr, ni, run, NULL);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1227  	if (err)
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1228  		goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1229  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1230  	err = attr_is_frame_compressed(ni, attr_b, frame, &clst_data,
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1231  				       &is_compr);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1232  	if (err)
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1233  		goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1234  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1235  	total_size -= (u64)clst_data << sbi->cluster_bits;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1236  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1237  	len = bytes_to_cluster(sbi, compr_size);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1238  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1239  	if (len == clst_data)
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1240  		goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1241  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1242  	if (len < clst_data) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1243  		err = run_deallocate_ex(sbi, run, vcn + len, clst_data - len,
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1244  					NULL, true);
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1245  		if (err)
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1246  			goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1247  
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1248  		if (!run_add_entry(run, vcn + len, SPARSE_LCN,
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1249  				   clst_data - len)) {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1250  			err = -ENOMEM;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1251  			goto out;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1252  		}
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1253  	} else {
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1254  		CLST alen, hint;
dc58d89d2835db2 Konstantin Komarov 2020-10-16  1255  		/* Get the last lcn to allocate from */
dc58d89d2835db2 Konstantin Komarov 2020-10-16 @1256  		if (vcn + clst_data &&

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff mbox series

Patch

diff --git a/fs/Kconfig b/fs/Kconfig
index aa4c12282301..eae96d55ab67 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 7bb2a05fda1f..a0394ec8e822 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -100,6 +100,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/