Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from namjaejeon:master #11

Open
wants to merge 141 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
531f58f
exfat: allow access to paths with trailing dots
vsntk18 Mar 17, 2022
e92aaf1
exfat: do not clear VolumeDirty in writeback
namjaejeon Mar 29, 2022
d99f8f0
exfat: remove travis-CI test
namjaejeon Mar 29, 2022
2ae9613
exfat: fix referencing wrong parent directory information
YuezhangMo Apr 4, 2022
8dbffe2
exfat: introduce mount option 'sys_tz'
cccheng Apr 8, 2022
1d092fc
exfat: reduce block requests when zeroing a cluster
YuezhangMo Apr 8, 2022
bf7b405
exfat: mm: require ->set_page_dirty to be explicitly wired up
May 11, 2022
1270e74
exfat: fs: Turn block_invalidatepage into block_invalidate_folio
May 11, 2022
e145a5f
exfat: fs: Convert __set_page_dirty_buffers to block_dirty_folio
May 11, 2022
51f491e
exfat: use EXT4_SUPER_MAGIC in magic.h
namjaejeon May 11, 2022
2363111
exfat: fs: allocate inode by using alloc_inode_sb()
May 11, 2022
fa4f895
exfat: fix write failure on kernels prior to 4.8.
namjaejeon May 13, 2022
54607fb
exfat: check if cluster num is valid
tstruk May 16, 2022
8d7603a
exfat: file: fix build with kernel < 4.4.72
1715173329 Feb 28, 2022
e7fd355
exfat: further fix 'fatal_signal_pending' undeclared
aiamadeus May 18, 2022
08b714e
exfat: fix uninitialized return value on kernel < 4.16
namjaejeon May 18, 2022
2a594d4
exfat: directly call filemap_write_and_wait_range() on < 5.19 kernel
namjaejeon May 19, 2022
89b59ca
exfat: release 5.19.1 version
namjaejeon Jun 3, 2022
c509458
exfat: use updated exfat_chain directly during renaming
Jun 7, 2022
56a5afd
exfat: reuse __exfat_write_inode() to update directory entry
YuezhangMo Jul 21, 2022
63e1c4f
exfat: remove duplicate write inode for truncating file
YuezhangMo Jul 22, 2022
8d627e3
exfat: remove duplicate write inode for extending dir/file
YuezhangMo Jul 21, 2022
dda72dc
block: remove QUEUE_FLAG_DISCARD
Jul 21, 2022
d196c9a
block: add a bdev_discard_granularity helper
Jul 21, 2022
ff027ab
fs: Remove aop flags parameter from cont_write_begin()
Jul 21, 2022
7bcf79c
fs: Remove flags parameter from aops->write_begin
Jul 21, 2022
c9d13ea
fs: Convert mpage_readpage to mpage_read_folio
Jul 21, 2022
5c18970
exfat: simplified by using round_up()
cvubrugier Jul 21, 2022
3cc661c
exfat: Return ENAMETOOLONG consistently for oversized paths
tiwai Jul 29, 2022
9a903a2
exfat: Define NLS_NAME_* as bit flags explicitly
tiwai Jul 29, 2022
0d2005c
exfat: Expand exfat_err() and co directly to pr_*() macro
tiwai Jul 29, 2022
33e7a40
exfat: Downgrade ENAMETOOLONG error message to debug messages
tiwai Jul 29, 2022
a129bcc
exfat: Drop superfluous new line for error messages
tiwai Jul 29, 2022
d7cd524
exfat: add auto build-test and simple stability test using travis-CI
namjaejeon Jul 29, 2022
03aa12a
exfat: fix overflow for large capacity partition
YuezhangMo Aug 23, 2022
bed6b02
exfat: release 6.0.0 version
namjaejeon Oct 17, 2022
9466ec4
exfat: remove travis-CI test
namjaejeon Oct 20, 2022
c39d9e5
exfat: add auto-test using github action
namjaejeon Oct 20, 2022
1050b8d
exfat: simplify empty entry hint
YuezhangMo Nov 3, 2022
5c4fd78
exfat: hint the empty entry which at the end of cluster chain
YuezhangMo Nov 3, 2022
54b4c1b
exfat: add SECTOR_SIZE macro
namjaejeon Nov 19, 2022
48f7c74
exfat: reduce the size of exfat_entry_set_cache
YuezhangMo Nov 26, 2022
5d4023f
exfat: support dynamic allocate bh for exfat_entry_set_cache
YuezhangMo Nov 26, 2022
7771b09
exfat: move exfat_entry_set_cache from heap to stack
YuezhangMo Nov 26, 2022
7cab729
exfat: rename exfat_free_dentry_set() to exfat_put_dentry_set()
YuezhangMo Nov 26, 2022
15a51d8
exfat: replace magic numbers with Macros
YuezhangMo Nov 26, 2022
b2d2ce0
exfat: treewide: use get_random_u32() when possible
zx2c4 Nov 19, 2022
3a977db
exfat: github actions: add apt-get update command
namjaejeon Nov 26, 2022
1813cc2
exfat: fix python package installation failure
namjaejeon Dec 9, 2022
2bb461c
exfat: remove generic/286
namjaejeon Dec 9, 2022
e112dbc
exfat: remove call ilog2() from exfat_readdir()
YuezhangMo Dec 9, 2022
9ba14ac
exfat: remove unneeded codes from __exfat_rename()
YuezhangMo Dec 9, 2022
5098d1e
exfat: remove unnecessary arguments from exfat_find_dir_entry()
YuezhangMo Dec 9, 2022
bf6c668
exfat: remove argument 'size' from exfat_truncate()
YuezhangMo Dec 9, 2022
ba9c0dc
exfat: remove i_size_write() from __exfat_truncate()
YuezhangMo Dec 9, 2022
eb7de3a
exfat: fix overflow in sector and cluster conversion
YuezhangMo Dec 14, 2022
c0bbea4
exfat: reuse exfat_find_location() to simplify exfat_get_dentry_set()
YuezhangMo Dec 14, 2022
bd80b9a
exfat: fix unexpected EOF while reading dir
YuezhangMo Dec 26, 2022
118b6d5
exfat: fix reporting fs error when reading dir beyond EOF
YuezhangMo Dec 26, 2022
17d8731
exfat: redefine DIR_DELETED as the bad cluster number
Dec 30, 2022
3eef540
exfat: fix inode->i_blocks for non-512 byte sector size device
namjaejeon Jan 8, 2023
47fb203
exfat: handle unreconized benign secondary entries
namjaejeon Jan 13, 2023
0e44fbe
exfat: remove ->writepage
Jan 13, 2023
cd17de5
exfat: remove unneeded code from exfat_alloc_cluster()
YuezhangMo Feb 23, 2023
7a55bf4
exfat: don't print error log in normal case
YuezhangMo Feb 28, 2023
03ab685
exfat: fix the newly allocated clusters are not freed in error handling
YuezhangMo Feb 23, 2023
f4f94fa
exfat: fs: port ->setattr() to pass mnt_idmap
brauner Jul 11, 2023
eb2bd5c
exfat: fs: port ->getattr() to pass mnt_idmap
brauner Jul 11, 2023
1610136
exfat: fs: port ->create() to pass mnt_idmap
brauner Jul 11, 2023
88c55a8
exfat: fs: port ->mkdir() to pass mnt_idmap
brauner Jul 11, 2023
d8b0eda
exfat: fs: port ->rename() to pass mnt_idmap
brauner Jul 11, 2023
796bbd0
exfat: fs: build the legacy direct I/O code conditionally
Jul 11, 2023
331d3f5
exfat: splice: Use filemap_splice_read() instead of generic_file_spli…
dhowells Jul 11, 2023
7d8b114
exfat: use kvmalloc_array/kvfree instead of kmalloc_array/kfree
namjaejeon Jul 12, 2023
17c7881
exfat: github action: make space for running xfstests
namjaejeon Jul 14, 2023
0bf9ccf
exfat: check if filename entries exceeds max filename length
namjaejeon Jul 13, 2023
803d714
exfat: release s_lock before calling dir_emit()
Jul 14, 2023
2a0023b
exfat: add necessary header for vmalloc
HiGarfield Jul 15, 2023
967fa6b
exfat: vfs: get rid of old '->iterate' directory operation
torvalds Aug 30, 2023
cc9879a
exfat: add ioctls for accessing attributes
hcincera Sep 4, 2023
f6c705d
exfat: support handle zero-size directory
YuezhangMo Sep 4, 2023
5bb0e9f
exfat: support create zero-size directory
YuezhangMo Sep 5, 2023
8279a1a
exfat: github action: remove liunx-4.1 source to get more disk space
namjaejeon Sep 11, 2023
950e271
exfat: use fat ioctls definitions from include/uapi/linux/msdos_fs.h
namjaejeon Oct 30, 2023
98f3631
exfat: fs: add CONFIG_BUFFER_HEAD
Nov 2, 2023
6eb9af0
exfat: ensure that ctime is updated whenever the mtime is
jtlayton Nov 2, 2023
308d7f6
exfat: convert to simple_rename_timestamp
jtlayton Nov 3, 2023
c49f06f
exfat: fs: pass the request_mask to generic_fillattr
jtlayton Nov 2, 2023
0e040b0
exfat: convert to ctime accessor functions
jtlayton Nov 2, 2023
59b349e
exfat: convert to new timestamp accessors
jtlayton Nov 2, 2023
327699f
exfat: fix setting uninitialized time to ctime/atime
YuezhangMo Nov 2, 2023
3ad1490
exfat: fix ctime is not updated
YuezhangMo Nov 2, 2023
47ed74d
exfat: changes the minimum supported kernel version from 4.10 to 5.15
namjaejeon Dec 1, 2023
41f8ba0
exfat: github action: avoid errors in case of undefined symbols when …
namjaejeon Dec 1, 2023
e4754d8
exfat: note old exfat oot for 4.1 kernel support in README
namjaejeon Dec 5, 2023
d64a1f9
exfat: using hweight instead of internal logic
sanpeqf Dec 6, 2023
2254ecb
exfat: using ffs instead of internal logic
sanpeqf Dec 11, 2023
f9cc939
exfat: change to get file size from DataLength
YuezhangMo Dec 11, 2023
7a111ad
exfat: do not zero the extended part
YuezhangMo Dec 10, 2023
b918344
exfat: fix zero the unwritten part for dio read
YuezhangMo Feb 18, 2024
2131327
exfat: fix appending discontinuous clusters to empty file
YuezhangMo Mar 1, 2024
1aa99bf
exfat: don't RCU-free the sbi
Aug 7, 2024
8269c2d
exfat: free the sbi and iocharset in ->kill_sb
Aug 7, 2024
7ef5cda
exfat: move freeing sbi, upcase table and dropping nls into rcu-delay…
Aug 7, 2024
498ec0f
mm, slab: remove last vestiges of SLAB_MEM_SPREAD
torvalds Aug 7, 2024
856f32b
exfat: add __exfat_get_dentry_set() helper
YuezhangMo Aug 7, 2024
2c2c840
exfat: add exfat_get_empty_dentry_set() helper
YuezhangMo Aug 7, 2024
70c6e7d
exfat: convert exfat_add_entry() to use dentry cache
YuezhangMo Aug 7, 2024
6ceba2a
exfat: convert exfat_remove_entries() to use dentry cache
YuezhangMo Aug 7, 2024
220ba13
exfat: move free cluster out of exfat_init_ext_entry()
YuezhangMo Aug 7, 2024
11deb20
exfat: convert exfat_init_ext_entry() to use dentry cache
YuezhangMo Aug 7, 2024
11581ee
exfat: convert exfat_find_empty_entry() to use dentry cache
YuezhangMo Aug 7, 2024
f5f217a
exfat: remove unused functions
YuezhangMo Aug 7, 2024
4de5c4e
exfat: do not sync parent dir if just update timestamp
YuezhangMo Aug 7, 2024
f497981
exfat: remove duplicate update parent dir
YuezhangMo Aug 7, 2024
15be380
exfat: fix timing of synchronizing bitmap and inode
YuezhangMo Aug 7, 2024
228f689
exfat: zero the reserved fields of file and stream extension dentries
YuezhangMo Aug 7, 2024
05b27be
exfat: Convert to new uid/gid option parsing helpers
Aug 7, 2024
cf95d93
exfat: handle idmapped mounts
mjeanson Aug 7, 2024
3071e02
exfat: fix potential deadlock on __exfat_get_dentry_set
Aug 7, 2024
42361a6
github action: make the space
namjaejeon Aug 7, 2024
5ea13be
github action: remove generic/130
namjaejeon Aug 8, 2024
f203d46
exfat: drop ->i_size_ondisk
YuezhangMo Aug 8, 2024
dc7c0b4
exfat: do not fallback to buffered write
YuezhangMo Aug 8, 2024
fcb9770
exfat: Implement sops->shutdown and ioctl
Nov 27, 2024
4a92b80
exfat: fix memory leak in exfat_load_bitmap()
YuezhangMo Nov 27, 2024
0aaed85
fs: Convert aops->write_end to take a folio
Nov 27, 2024
ce761de
fs: Convert aops->write_begin to take a folio
Nov 27, 2024
b07a69d
exfat: move extend valid_size into ->page_mkwrite()
YuezhangMo Nov 27, 2024
09a7285
exfat: resolve memory leak from exfat_create_upcase_table()
namjaejeon Nov 27, 2024
f33b758
move asm/unaligned.h to linux/unaligned.h
Nov 27, 2024
2d9f431
exfat: fix out-of-bounds access of directory entries
YuezhangMo Nov 27, 2024
3112e41
exfat: fix uninit-value in __exfat_get_dentry_set
namjaejeon Nov 27, 2024
ec49075
exfat: remove unnecessary read entry in __exfat_rename()
YuezhangMo Nov 27, 2024
e9113bd
exfat: rename argument name for exfat_move_file and exfat_rename_file
YuezhangMo Nov 27, 2024
ec7b929
exfat: add exfat_get_dentry_set_by_ei() helper
YuezhangMo Nov 27, 2024
1804f14
exfat: move exfat_chain_set() out of __exfat_resolve_path()
YuezhangMo Nov 27, 2024
40e2393
exfat: remove argument 'p_dir' from exfat_add_entry()
YuezhangMo Nov 27, 2024
bc00361
exfat: code cleanup for exfat_readdir()
YuezhangMo Nov 27, 2024
b366b0b
exfat: reduce FAT chain traversal
YuezhangMo Nov 27, 2024
de8180f
exfat: fix build error with linux-5.15 kernel
namjaejeon Nov 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
196 changes: 196 additions & 0 deletions .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
name: linux-exfat-oot CI

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Download the kernel
run: |
sudo apt-get update
sudo apt-get install libelf-dev wget tar gzip python2.7
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.15.140.tar.gz
tar xf linux-5.15.140.tar.gz
mv linux-5.15.140 linux-stable
rm -rf linux-5.15.140.tar.gz
- name: Prerequisite for xfstests testing
run: |
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install autoconf libtool pkg-config
sudo apt-get install xfslibs-dev uuid-dev libtool-bin xfsprogs libgdbm-dev gawk fio attr libattr1-dev libacl1-dev libaio-dev
git clone --branch=exfat-next https://github.com/exfatprogs/exfatprogs
git clone https://github.com/namjaejeon/exfat-testsuites
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/lib:$PATH
sudo useradd fsgqa
sudo useradd 123456-fsgqa
- name: Copy exfat source to kernel
run: |
mv linux-stable ../
cp -ar * ../linux-stable/fs/exfat/
- name: Compile with 5.15 kernel
run: |
cd ../linux-stable
yes "" | make oldconfig > /dev/null
echo 'CONFIG_EXFAT_FS=m' >> .config
echo 'CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"' >> .config
make KBUILD_MODPOST_WARN=1 KBUILD_MODPOST_NOFINAL=1 fs/exfat/exfat.ko
- name: Run xfstests testsuite
run: |
cd ..
rm -rf linux-stable
cd linux-exfat-oot
make > /dev/null
sudo make install > /dev/null
sudo insmod exfat.ko
cd exfatprogs
./autogen.sh > /dev/null
./configure > /dev/null
make -j$((`nproc`+1)) > /dev/null
sudo make install > /dev/null
cd ..
sudo mkdir -p /mnt/scratch
sudo mkdir -p /mnt/test
sudo mkdir -p full_test
- name: create file/director test
run: |
truncate -s 10G full_test.img
sudo losetup /dev/loop22 full_test.img
sudo mkfs.exfat /dev/loop22
sudo mount -t exfat /dev/loop22 ./full_test/
cd full_test/
i=1;while [ $i -le 10000 ];do sudo touch file$i;if [ $? != 0 ]; then exit 1; fi; i=$(($i + 1));done
sync
sudo fsck.exfat /dev/loop22
sudo rm -rf *
i=1;while [ $i -le 10000 ];do sudo mkdir file$i;if [ $? != 0 ]; then exit 1; fi; i=$(($i + 1));done
sync
sudo rm -rf *
sudo fsck.exfat /dev/loop22
cd ..
sudo umount ./full_test/
sudo fsck.exfat /dev/loop22
sudo losetup -d /dev/loop22
rm full_test.img
- name: xfstest tests
run: |
cd exfat-testsuites/
tar xzvf xfstests-exfat.tgz > /dev/null
rm -f xfstests-exfat.tgz
cd xfstests-exfat
make -j$((`nproc`+1)) > /dev/null
truncate -s 100G test.img
truncate -s 100G scratch.img
sudo losetup /dev/loop20 test.img
sudo losetup /dev/loop21 scratch.img
sudo mkfs.exfat /dev/loop20
sudo mkfs.exfat /dev/loop21
sudo ./check generic/001
sudo ./check generic/006
sudo ./check generic/007
sudo ./check generic/011
sudo ./check generic/013
sudo ./check generic/014
sudo ./check generic/028
sudo ./check generic/029
sudo ./check generic/030
sudo ./check generic/034
sudo ./check generic/035
sudo ./check generic/036
sudo ./check generic/069
sudo ./check generic/073
sudo ./check generic/074
sudo ./check generic/075
sudo ./check generic/076
sudo ./check generic/080
sudo ./check generic/084
sudo ./check generic/091
sudo ./check generic/095
sudo ./check generic/098
sudo ./check generic/100
sudo ./check generic/112
sudo ./check generic/113
sudo ./check generic/114
sudo ./check generic/120
sudo ./check generic/123
sudo ./check generic/124
sudo ./check generic/127
sudo ./check generic/129
sudo ./check generic/131
sudo ./check generic/132
sudo ./check generic/133
sudo ./check generic/135
sudo ./check generic/141
sudo ./check generic/169
sudo ./check generic/198
sudo ./check generic/207
sudo ./check generic/208
sudo ./check generic/209
sudo ./check generic/210
sudo ./check generic/211
sudo ./check generic/212
sudo ./check generic/215
sudo losetup -d /dev/loop20
sudo losetup -d /dev/loop21
rm test.img
rm scratch.img
truncate -s 100G test.img
truncate -s 100G scratch.img
sudo losetup /dev/loop20 test.img
sudo losetup /dev/loop21 scratch.img
sudo mkfs.exfat /dev/loop20
sudo mkfs.exfat /dev/loop21
sudo ./check generic/221
sudo ./check generic/239
sudo ./check generic/240
sudo ./check generic/241
sudo ./check generic/245
sudo ./check generic/246
sudo ./check generic/247
sudo ./check generic/248
sudo ./check generic/249
sudo ./check generic/257
sudo ./check generic/260
sudo ./check generic/263
sudo ./check generic/285
sudo ./check generic/288
sudo ./check generic/308
sudo ./check generic/309
sudo ./check generic/310
sudo ./check generic/313
sudo ./check generic/323
sudo ./check generic/325
sudo ./check generic/338
sudo ./check generic/339
sudo ./check generic/340
sudo ./check generic/344
sudo ./check generic/345
sudo ./check generic/346
sudo ./check generic/354
sudo ./check generic/376
sudo ./check generic/393
sudo ./check generic/394
sudo ./check generic/405
sudo ./check generic/406
sudo ./check generic/409
sudo ./check generic/410
sudo ./check generic/411
sudo ./check generic/412
sudo ./check generic/418
sudo ./check generic/428
sudo ./check generic/437
sudo ./check generic/438
sudo ./check generic/441
sudo ./check generic/443
sudo ./check generic/448
sudo ./check generic/450
sudo ./check generic/451
sudo ./check generic/452
188 changes: 0 additions & 188 deletions .travis.yml

This file was deleted.

Loading