Add extra config options
[lwext4.git] / lwext4 / ext4_fs.c
index 368ebc795ba500be01da17750f212f5f27d0c46d..5edfda550619e36ce62ba2e33b3436512a41898f 100644 (file)
@@ -287,7 +287,7 @@ int ext4_fs_check_features(struct ext4_fs *fs, bool *read_only)
 
     /*Check features_incompatible*/
     v = (ext4_get32(&fs->sb, features_incompatible) &
-            (~EXT4_FEATURE_INCOMPAT_SUPP));
+            (~CONFIG_FEATURE_INCOMPAT_SUPP));
     if (v){
         ext4_dprintf(EXT4_DEBUG_FS,
                 "\nERROR sblock features_incompatible. Unsupported:\n");
@@ -298,7 +298,7 @@ int ext4_fs_check_features(struct ext4_fs *fs, bool *read_only)
 
     /*Check features_read_only*/
     v = (ext4_get32(&fs->sb, features_read_only) &
-            (~EXT4_FEATURE_RO_COMPAT_SUPP));
+            (~CONFIG_FEATURE_RO_COMPAT_SUPP));
     if (v){
         ext4_dprintf(EXT4_DEBUG_FS,
                 "\nERROR sblock features_read_only . Unsupported:\n");
@@ -691,6 +691,7 @@ int ext4_fs_alloc_inode(struct ext4_fs *fs, struct ext4_inode_ref *inode_ref,
         mode = 0777;
         mode |= EXT4_INODE_MODE_DIRECTORY;
         ext4_inode_set_mode(&fs->sb, inode, mode);
+        ext4_inode_set_links_count(inode, 0);
 
     } else {
         /*
@@ -701,9 +702,10 @@ int ext4_fs_alloc_inode(struct ext4_fs *fs, struct ext4_inode_ref *inode_ref,
         mode = 0666;
         mode |= EXT4_INODE_MODE_FILE;
         ext4_inode_set_mode(&fs->sb, inode, mode);
+        ext4_inode_set_links_count(inode, 1);
     }
 
-    ext4_inode_set_links_count(inode, 0);
+
     ext4_inode_set_uid(inode, 0);
     ext4_inode_set_gid(inode, 0);
     ext4_inode_set_size(inode, 0);
@@ -857,8 +859,9 @@ int ext4_fs_free_inode(struct ext4_inode_ref *inode_ref)
 
         ext4_inode_set_indirect_block(inode_ref->inode, 2, 0);
     }
-
+#if CONFIG_EXTENT_ENABLE
     finish:
+#endif
     /* Mark inode dirty for writing to the physical device */
     inode_ref->dirty = true;