[automerger skipped] fsck.f2fs: fix check order in -p1
am: 3f378efee4  -s ours

Change-Id: Ibaeaf1337a559f80715d41a335adfeed760f7099
diff --git a/fsck/sload.c b/fsck/sload.c
index 2842f2c..e9b12e3 100644
--- a/fsck/sload.c
+++ b/fsck/sload.c
@@ -106,7 +106,7 @@
 
 	/* Permissions */
 	if (fs_config_func != NULL) {
-		fs_config_func(mnt_path, S_ISDIR(de->mode),
+		fs_config_func(mnt_path, de->file_type == F2FS_FT_DIR,
 				c.target_out_dir, &uid, &gid, &imode,
 				&capabilities);
 		de->uid = uid & 0xffff;
@@ -157,7 +157,7 @@
 
 	de->size = stat.st_size;
 	de->mode = stat.st_mode &
-			(S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO);
+			(S_IFMT|S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO);
 	if (c.fixed_time == -1 && c.from_dir)
 		de->mtime = stat.st_mtime;
 	else
diff --git a/lib/libf2fs_io.c b/lib/libf2fs_io.c
index 4781517..76d283d 100644
--- a/lib/libf2fs_io.c
+++ b/lib/libf2fs_io.c
@@ -114,8 +114,13 @@
 	return 0;
 }
 
+#ifdef SPARSE_CALLBACK_USES_SIZE_T
+static int sparse_import_segment(void *UNUSED(priv), const void *data,
+		size_t len, unsigned int block, unsigned int nr_blocks)
+#else
 static int sparse_import_segment(void *UNUSED(priv), const void *data, int len,
 		unsigned int block, unsigned int nr_blocks)
+#endif
 {
 	/* Ignore chunk headers, only write the data */
 	if (!nr_blocks || len % F2FS_BLKSIZE)