Commit Graph

1064 Commits

Author SHA1 Message Date
Bart Van Assche
c89be7a891 Use F2FS_BLKSIZE for dev_read_block() buffers
Use F2FS_BLKSIZE instead of PAGE_SIZE for dev_read_block() buffers since
dev_read_block() reads F2FS_BLKSIZE bytes.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-07-21 19:27:52 -07:00
Bart Van Assche
5317d184f4 Improve compile-time type checking for f2fs_report_zone()
Change the type of the third argument of f2fs_report_zone() from void *
into struct blk_zone * to enable type checking.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-07-21 19:27:23 -07:00
Bart Van Assche
92e2e52609 Fix f2fs_report_zone()
The definition of struct blk_zone_report is as follows:

	struct blk_zone_report {
		__u64		sector;
		__u32		nr_zones;
		__u32		flags;
		struct blk_zone zones[0];
	};

Since f2fs_report_zone() allocates the above data structure with
malloc() and since f2fs_report_zone() only initializes the sector and
nr_zones members, the flags member is not initialized. Modify
f2fs_report_zone() such that 0 is passed as flags to the
BLKREPORTZONE ioctl instead of a random value. This has been
discovered by reading the source code.

Cc: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Fixes: 6d7c7b785f ("libf2fs_zoned: Introduce f2fs_report_zone() helper function")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-07-21 19:27:03 -07:00
Bart Van Assche
648a49128a Fix the struct f2fs_dentry_block definition
Fix the struct f2fs_dentry_block definition on systems for which
PAGE_SIZE != 4096. This patch does not change the struct f2fs_dentry_block
definition if PAGE_SIZE == 4096.

Cc: Peter Collingbourne <pcc@google.com>
Reported-by: Peter Collingbourne <pcc@google.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Reviewed-by: Peter Collingbourne <pcc@google.com>
Tested-by: Peter Collingbourne <pcc@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-07-21 19:25:01 -07:00
liuchao12
c964547d77 resize.f2fs: add option to manually specify new overprovision
Make.f2fs supports manually specifying overprovision, and we expect
resize.f2fs to support it as well.

This change add a new '-o' option to manually specify overprovision,
and fix to check free space before grow. Otherwise, after grow,
kernel may report below error message when we mount the image if -o
parameter is specified during resize:

F2FS-fs (loop0): invalid crc_offset: 0
F2FS-fs (loop0): Wrong valid_user_blocks: 16404, user_block_count: 13312
F2FS-fs (loop0): Failed to get valid F2FS checkpoint
mount(2) system call failed: Structure needs cleaning.

Signed-off-by: liuchao12 <liuchao12@xiaomi.com>
Signed-off-by: qixiaoyu1 <qixiaoyu1@xiaomi.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-07-05 18:02:33 -07:00
Jaegeuk Kim
a741438585 fsck.f2fs: drop compression bit if inline_data is set
The kernel enforced not to have compression and inline_data bits
together, but old kernel created files with them. Let's disable
compression in that case.

Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-07-05 18:02:29 -07:00
Ben Chang
406b1c930f f2fs-tools: fix cannot get bdev information
Some device like android phone doesn't show the dev number path in
/dev/block/, for example:

$ ls /dev/block/
bootdevice  dm-6    loop24  loop43    ram13  sda5  sdd4   sde24  sde43  sde62  sdf1
by-name     dm-7    loop25  loop44    ram14  sda6  sdd5   sde25  sde44  sde63  sdf10
dm-0        dm-8    loop26  loop45    ram15  sda7  sdd6   sde26  sde45  sde64  sdf11
dm-1        dm-9    loop27  loop46    ram2   sda8  sdd7   sde27  sde46  sde65  sdf12
dm-10       loop0   loop28  loop47    ram3   sda9  sde    sde28  sde47  sde66  sdf13
dm-11       loop1   loop29  loop48    ram4   sdb   sde1   sde29  sde48  sde67  sdf14
dm-12       loop10  loop3   loop49    ram5   sdb1  sde10  sde3   sde49  sde68  sdf15
dm-13       loop11  loop30  loop5     ram6   sdb2  sde11  sde30  sde5   sde69  sdf16
dm-14       loop12  loop31  loop50    ram7   sdb3  sde12  sde31  sde50  sde7   sdf17
dm-15       loop13  loop32  loop51    ram8   sdb4  sde13  sde32  sde51  sde70  sdf18
dm-16       loop14  loop33  loop6     ram9   sdb5  sde14  sde33  sde52  sde71  sdf19
dm-17       loop15  loop34  loop7     sda    sdc   sde15  sde34  sde53  sde72  sdf2
dm-18       loop16  loop35  loop8     sda1   sdc1  sde16  sde35  sde54  sde73  sdf3
dm-19       loop17  loop36  loop9     sda10  sdc2  sde17  sde36  sde55  sde74  sdf4
dm-2        loop18  loop37  mapper    sda11  sdc3  sde18  sde37  sde56  sde75  sdf5
dm-20       loop19  loop38  platform  sda12  sdc4  sde19  sde38  sde57  sde76  sdf6
dm-21       loop2   loop39  ram0      sda13  sdc5  sde2   sde39  sde58  sde77  sdf7
dm-3        loop20  loop4   ram1      sda14  sdd   sde20  sde4   sde59  sde78  sdf8
dm-4        loop21  loop40  ram10     sda2   sdd1  sde21  sde40  sde6   sde8   sdf9
dm-5        loop22  loop41  ram11     sda3   sdd2  sde22  sde41  sde60  sde9   vold
dm-53       loop23  loop42  ram12     sda4   sdd3  sde23  sde42  sde61  sdf    zram0

this will cause stat_bdev cannot show bdev information.

But most of devices (include android) show dev number path in /sys/dev/block, for example:

$ ls  /sys/dev/block
1:0    254:1   254:6   259:21  259:38  259:54  7:104  7:24   7:368  8:11  8:4   8:70  8:87
1:1    254:10  254:7   259:22  259:39  259:55  7:112  7:240  7:376  8:12  8:48  8:71  8:88
1:10   254:11  254:8   259:23  259:4   259:56  7:120  7:248  7:384  8:13  8:49  8:72  8:89
1:11   254:12  254:9   259:24  259:40  259:57  7:128  7:256  7:392  8:14  8:5   8:73  8:9
1:12   254:13  259:0   259:25  259:41  259:58  7:136  7:264  7:40   8:16  8:50  8:74  8:90
1:13   254:14  259:1   259:26  259:42  259:59  7:144  7:272  7:400  8:17  8:51  8:75  8:91
1:14   254:15  259:10  259:27  259:43  259:6   7:152  7:280  7:408  8:18  8:52  8:76  8:92
1:15   254:16  259:11  259:28  259:44  259:60  7:16   7:288  7:48   8:19  8:53  8:77  8:93
1:2    254:17  259:12  259:29  259:45  259:61  7:160  7:296  7:56   8:2   8:54  8:78  8:94
1:3    254:18  259:13  259:3   259:46  259:62  7:168  7:304  7:64   8:20  8:55  8:79  8:95
1:4    254:19  259:14  259:30  259:47  259:63  7:176  7:312  7:72   8:21  8:6   8:8
1:5    254:2   259:15  259:31  259:48  259:64  7:184  7:32   7:8    8:3   8:64  8:80
1:6    254:20  259:16  259:32  259:49  259:65  7:192  7:320  7:80   8:32  8:65  8:81
1:7    254:21  259:17  259:33  259:5   259:66  7:200  7:328  7:88   8:33  8:66  8:82
1:8    254:3   259:18  259:34  259:50  259:7   7:208  7:336  7:96   8:34  8:67  8:83
1:9    254:4   259:19  259:35  259:51  259:8   7:216  7:344  8:0    8:35  8:68  8:84
253:0  254:5   259:2   259:36  259:52  259:9   7:224  7:352  8:1    8:36  8:69  8:85
254:0  254:53  259:20  259:37  259:53  7:0     7:232  7:360  8:10   8:37  8:7   8:86

so change the access path from /dev/block to /sys/dev/block
(same method of libudev)

Before:

$./f2fs.fibmap testfile_4k

----------------file info-------------------
testfile_4k :
--------------------------------------------
dev       [254:53]
ino       [0x    3dda : 15834]
mode      [0x    81b6 : 33206]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   40000 : 262144]
blksize   [0x    1000 : 4096]
blocks    [0x     200 : 512]
--------------------------------------------

file_pos   start_blk     end_blk        blks
       0     2256926     2256987          62
  253952     2150337     2150338           2

Patched:
$./f2fs.fibmap testfile_4k
----------------bdev info-------------------
devname = 254:53
start_lba = 0

----------------file info-------------------
testfile_4k :
--------------------------------------------
dev       [254:53]
ino       [0x    3dda : 15834]
mode      [0x    81b6 : 33206]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   40000 : 262144]
blksize   [0x    1000 : 4096]
blocks    [0x     200 : 512]
--------------------------------------------

file_pos   start_blk     end_blk        blks
       0     2256926     2256987          62
  253952     2150337     2150338           2

Signed-off-by: Ben Chang <ben.chang@sonicsky.net>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-06-24 17:30:30 -07:00
Jaegeuk Kim
9d0cb9e712 f2fs_io: add dsync option for write
This adds a write option having O_DIRECT | O_DSYNC.

Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-06-24 17:30:30 -07:00
Dylan Chang
a7b8b468ad tools: fix file too large causing overflow
fibmap: Fix file too large causing file_pos overflow

fibmap show file_pos with incorrectly value when passing a large file.

Before:

----------------file info-------------------
/data/media/0/data1 :
--------------------------------------------
dev       [254:18]
ino       [0x    4db1 : 19889]
mode      [0x    81b0 : 33200]
nlink     [0x       1 : 1]
uid       [0x    280e : 10254]
gid       [0x     3ff : 1023]
size      [0x1b3dca314 : 7312548628]
blksize   [0x    1000 : 4096]
blocks    [0x  da2530 : 14296368]
--------------------------------------------

file_pos   start_blk     end_blk        blks
       0     3197602     3198463         862
 3530752     3197509     3197509           1
 3534848     3197557     3197578          22
 3624960     3198464     3396701      198238
815607808     3396703     3632480      235778
1781354496     3632482     3652095       19614
1861693440     3396702     3396702           1
1861697536     3632481     3632481           1
1861701632     1514948     1514948           1
1861705728     1518774     1518774           1
1861709824     2543104     2543125          22
...
1862111232     2457813     2457813           1
1862115328     3652096     3878168      226073
-1506856960     3878170     4133725      255556
-460099584     1510048     1510052           5

Patched:
----------------file info-------------------
/data/media/0/data1 :
--------------------------------------------
dev       [254:18]
ino       [0x    4db1 : 19889]
mode      [0x    81b0 : 33200]
nlink     [0x       1 : 1]
uid       [0x    280e : 10254]
gid       [0x     3ff : 1023]
size      [0x1b3dca314 : 7312548628]
blksize   [0x    1000 : 4096]
blocks    [0x  da2530 : 14296368]
--------------------------------------------

file_pos   start_blk     end_blk        blks
       0     3197602     3198463         862
 3530752     3197509     3197509           1
 3534848     3197557     3197578          22
 3624960     3198464     3396701      198238
815607808     3396703     3632480      235778
1781354496     3632482     3652095       19614
1861693440     3396702     3396702           1
1861697536     3632481     3632481           1
1861701632     1514948     1514948           1
1861705728     1518774     1518774           1
1861709824     2543104     2543125          22
...
1862111232     2457813     2457813           1
1862115328     3652096     3878168      226073
2788110336     3878170     4133725      255556
3834867712     1510048     1510052           5

Signed-off-by: Dylan Chang <dylan.chang@oneplus.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-06-24 17:30:30 -07:00
Yufen Yu
bddca6fc28 dump.f2fs: add -I nid to dump inode by scan full disk
Usage:
	dump.f2fs -I [inode nid] /dev/sda

This feature can be useful for some bugs caused by system crash.
We not only need dump current valid node page, but alse the history
data in disk, which can give some clues for status change of the inode.

Signed-off-by: Yufen Yu <yuyufen@huawei.com>
Reviewed-by: Chao Yu <chao@kernel.org>
[Jaegeuk Kim: fix build error]
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-06-19 15:10:47 -07:00
Jaegeuk Kim
ebc3879b50 android_config: add time headers
This allows f2fs_io report latency.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-28 01:33:33 -07:00
Jaegeuk Kim
c1144bf472 Check fallthrough in mount.h for Mac
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/os/base.h:128:23: error: missing ')' after 'do'
                      ^~~~~~~~~~~
external/f2fs-tools/include/f2fs_fs.h:81:24: note: expanded from macro 'fallthrough'
                    ~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include/os/base.h:128:22: note: to match this '('

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-25 17:14:03 -07:00
Jaegeuk Kim
bcb992989d avoid unnecessary function
libf2fs.c:883:12: warning: unused function 'is_power_of_2' [-Wunused-function]

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-25 16:30:00 -07:00
Martin Stjernholm
7d902f412f Fix dependencies on linux/blkzoned.h when using Bionic.
This reverts commit adcec10b4d ("Support zoned device if libc exists).

Signed-off-by: Martin Stjernholm <mast@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2022-05-25 16:07:43 -07:00
Jaegeuk Kim
274abbb77c Remove unnecessary config.h
Instead, we should use <config.h> generated by configure.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-25 15:40:30 -07:00
Jaegeuk Kim
8c97ab33fd libzone: remove duplicate header
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-25 15:39:06 -07:00
Jaegeuk Kim
adcec10b4d Support zoned device if libc exists
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-25 10:33:05 -07:00
Jaegeuk Kim
efc2bc71b3 mkfs.f2fs: fix typo
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-24 21:50:25 -07:00
Jaegeuk Kim
3034a418ff mkfs.f2fs: split unused parameter
external/f2fs-tools/mkfs/f2fs_format_utils.c:51:28: error: unused parameter 'i' [-Werror,-Wunused-parameter]

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-24 18:07:41 -07:00
Jaegeuk Kim
dd8d8e54a6 f2fs-tools: do not use SG_IO in Android
Android security team does not allow to use SG_IO.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-23 13:30:37 -07:00
Jaegeuk Kim
4f216e6b06 f2fs-tools: move android_config before defining them
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-21 23:03:38 -07:00
Jaegeuk Kim
48c5dbb435 f2fscrypt: adjust config file first
We need to get the definitions first.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-19 17:13:22 -07:00
Jaegeuk Kim
4b554597ed android_config: add missing uuid library
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-19 17:12:42 -07:00
Jaegeuk Kim
64f2596142 f2fs-tools: upgrade version 1.15.0
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-13 10:50:41 -07:00
Jaegeuk Kim
d9d5b11413 f2fs-tools: build silently
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-13 10:50:41 -07:00
Jaegeuk Kim
299c0b566a fsck.f2fs: fix broken file_map output
The new fsck progress should not be used for file_map.

Reported-by: Michael Benedict <michaelbenedicttjahya@gmail.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-05-13 09:53:12 -07:00
Jaegeuk Kim
3af62be37c f2fs-tools: show segment/section layout correctly
This patch fixes wrong segment/section print-outs.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-26 16:55:51 -07:00
Jaegeuk Kim
4d9c009c34 f2fs-tools: use android config only if there's no config.h
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-26 16:05:36 -07:00
Chao Yu
0b9b89fda2 dump.f2fs: compress: fix dstlen of LZ4_compress_fast_extState()
Compressed cluster content includes compress cluster header, so
calculation of dstlen parameter in LZ4_compress_fast_extState()
should consider this design, otherwise compressed data may overflow
destination buffer during compression.

Signed-off-by: Chao Yu <chao.yu@oppo.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-26 16:05:35 -07:00
Jaegeuk Kim
eee3969d7d mkfs.f2fs: check uuid library
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-26 16:05:35 -07:00
Jaegeuk Kim
e5fe1a2136 f2fs-tools: use fsync() in Android
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-26 16:05:35 -07:00
Jaegeuk Kim
ea9921f4f5 f2fs-tools: support zoned device in Android
This requires to change Android.bp in AOSP.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Change-Id: I28a4a701513cb2420cdf0e0e2aa3f60e712f2fcb
2022-04-26 16:05:34 -07:00
Jaegeuk Kim
a8fefc20bd android_config.h: add missing liblz4
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Jaegeuk Kim
0c54cf767f libf2fs_io: add unused mactor to avoid build failure
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
6eebd13e76 ci: Enable -Wall, -Wextra and -Werror
Make the Github continuous integration checks more strict.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
c491657c0e Fix PowerPC format string warnings
__SANE_USERSPACE_TYPES__ must be defined before <linux/types.h> is
included. Hence this patch that moves the definition of that macro into
the source files that need it.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
70e4139665 Suppress a compiler warning about integer truncation
This patch prevents that older compilers report the following warning:

f2fs_format.c: In function ‘f2fs_prepare_super_block’:
../include/f2fs_fs.h:350:26: error: conversion from ‘unsigned int’ to ‘__uint16_t’ {aka ‘short unsigned int’} changes value from ‘4076150800’ to ‘8208’ [-Werror=overflow]
  350 | #define F2FS_SUPER_MAGIC 0xF2F52010 /* F2FS Magic Number */
      |                          ^~~~~~~~~~
 ../include/f2fs_fs.h:574:49: note: in expansion of macro ‘cpu_to_le16’
  574 | #define set_sb_le16(member, val)  (sb->member = cpu_to_le16(val))
      |                                                 ^~~~~~~~~~~

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
7a1206adf3 Annotate switch/case fallthrough
Just like in the Linux kernel source code, annotate switch/case
fallthrough.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
b964b79d49 Change #ifdef _WIN32 checks into #ifdef HAVE_.*
It is recommended to test a HAVE_* macro instead of directly testing the
host type in source code. Hence this patch.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
28de4d1334 tools/f2fs_io: Fix the type of 'ret'
Make it possible to check whether the return value of ioctl() is negative.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
fdff1ab315 fsck/segment.c: Remove dead code
Since 'remained_blkentries' is unsigned, the assert statement that
verifies whether that variable is positive will never fail. Hence
remove that assert statement.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:52 -07:00
Bart Van Assche
ede3bde6ea fsck/main.c: Suppress a compiler warning
Suppress the following compiler warning:

main.c:37:14: warning: unused function 'absolute_path' [-Wunused-function]
static char *absolute_path(const char *file)
             ^

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:51 -07:00
Bart Van Assche
93c6483b85 tools/f2fscrypt.c: Fix build without uuid/uuid.h header file
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:51 -07:00
Bart Van Assche
559e60ef1b fsck: Remove a superfluous include directive
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:51 -07:00
Bart Van Assche
98f7f56cf3 mkfs/f2fs_format.c: Suppress a compiler warning
Suppress the following compiler warning:

f2fs_format.c:1653:37: warning: adding 'int' to a string does not append to the
      string [-Wstring-plus-int]
                memcpy(dent_blk->filename[3], LPF + F2FS_SLOT_LEN,
                                              ~~~~^~~~~~~~~~~~~~~
f2fs_format.c:1653:37: note: use array indexing to silence this warning
                memcpy(dent_blk->filename[3], LPF + F2FS_SLOT_LEN,
                                                  ^
                                              &   [              ]

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:51 -07:00
Bart Van Assche
ef011a49f3 configure.ac: Detect selinux/android.h
The selinux/android.h header file is available in Android but not in the
Android NDK. Hence this patch that detects presence of that header file
at configure time.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 12:42:50 -07:00
Bart Van Assche
2e59ab8fa6 configure.ac: Detect the sparse/sparse.h header
The <sparse/sparse.h> header is available in Android but not in the
Android NDK. Hence this patch that only includes the sparse header file
if it is available.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 11:54:20 -07:00
Bart Van Assche
1790203dee Fix the MinGW build
Fix multiple compiler warnings and build errors reported by the MinGW
cross-compiler.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 11:43:14 -07:00
Bart Van Assche
ecd27dc7de Use %zu to format size_t
Use %zu to format size_t as required by the POSIX standards.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 11:43:14 -07:00
Bart Van Assche
24663b6227 Include <stddef.h> instead of defining offsetof()
Prepare for enabling -Wmacro-redefined.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-04-22 11:43:13 -07:00